Giter Club home page Giter Club logo

docs's Introduction

Join the chat at https://gitter.im/red/red Windows build 2 Linux build 2 ARMhf build 2 macOS build 2

Red Programming Language

Red is a programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting, while providing modern support for concurrency and multi-core CPUs.

Red tackles the software building complexity using a DSL-oriented approach (we call them dialects) . The following dialects are built-in:

  • Red/System: a C-level system programming language compiled to native code
  • Parse: a powerful PEG parser
  • VID: a simple GUI layout creation dialect
  • Draw: a vector 2D drawing dialect
  • Rich-text: a rich-text description dialect

Red has its own complete cross-platform toolchain, featuring an encapper, a native compiler, an interpreter, and a linker, not depending on any third-party library, except for a Rebol2 interpreter, required during the alpha stage. Once 1.0 is reached, Red will be self-hosted. Currently, Red is still at alpha stage and 32-bit only.

Red's main features are:

  • Human-friendly syntax
  • Homoiconic (Red is its own meta-language and own data-format)
  • Functional, imperative, reactive and symbolic programming
  • Prototype-based object support
  • Multi-typing
  • Powerful pattern-matching Macros system
  • Rich set of built-in datatypes (50+)
  • Both statically and JIT-compiled(*) to native code
  • Cross-compilation done right
  • Produces executables of less than 1MB, with no dependencies
  • Concurrency and parallelism strong support (actors, parallel collections)(*)
  • Low-level system programming abilities through the built-in Red/System DSL
  • Powerful PEG parser DSL built-in
  • Fast and compacting Garbage Collector
  • Instrumentation built-in for the interpreter, lexer and parser.
  • Cross-platform native GUI system, with a UI layout DSL and a drawing DSL
  • Bridging to the JVM
  • High-level scripting and REPL GUI and CLI consoles included
  • Visual Studio Code plugin, with many helpful features
  • Highly embeddable
  • Low memory footprint
  • Single-file (~1MB) contains whole toolchain, full standard library and REPL (**)
  • No install, no setup
  • Fun guaranteed!

(*) Not implemented yet. (**) Temporarily split in two binaries

More information at red-lang.org.

Running the Red REPL

Download a GUI or CLI console binary suitable for your operating system, rename it at your convenience, then run it from shell or by double-clicking on it (Windows). You should see the following output:

    ---== Red 0.6.5 ==--
    Type HELP for starting information.

    >>

A simple Hello World would look like:

    >> print "Hello World!"
    Hello World!

If you are on the GUI console, a GUI Hello World (prompt omitted):

    view [text "Hello World!"]

A more sophisticated example that retrieves the last commits from this repo and displays their log messages in a scrollable list:

    view [
        text-list data collect [
            foreach event load https://api.github.com/repos/red/red/commits [
                keep event/commit/message
            ]
        ]
    ]

Note: check also the following improved version allowing you to click on a given commit log and open the commit page on github.

You can now head to see and try some showcasing scripts here and there. You can run those examples from the console directly using Github's "raw" link. E.g.:

    >> do https://raw.githubusercontent.com/red/code/master/Showcase/calculator.red

Note: If you are using the Wine emulator, it has some issues with the GUI-Console. Install the Consolas font to fix the problem.

Generating a standalone executable

The Red toolchain comes as a single executable file that you can download for the big-3 platforms (32-bit only for now). Rename the file to redc (or redc.exe under Windows).

  1. Put the downloaded redc binary in the working folder.

  2. In a code or text editor, write the following Hello World program:

     Red [
         Title: "Simple hello world script"
     ]
    
     print "Hello World!"
    
  3. Save it under the name: hello.red

  4. Generate a compiled executable from that program: (first run will pre-compile libRedRT library)

     $ redc -c hello.red
     $ ./hello
    
  5. Want to generate a compiled executable from that program with no dependencies?

     $ redc -r hello.red
     $ ./hello
    
  6. Want to cross-compile to another supported platform?

     $ redc -t Windows hello.red
     $ redc -t Darwin hello.red
     $ redc -t Linux-ARM hello.red
    

The full command-line syntax is:

redc [command] [options] [file]

[file] any Red or Red/System source file.

  • The -c, -r and -u options are mutually exclusive.

[options]

-c, --compile                  : Generate an executable in the working
                                 folder, using libRedRT. (development mode)

-d, --debug, --debug-stabs     : Compile source file in debug mode. STABS
                                 is supported for Linux targets.

-dlib, --dynamic-lib           : Generate a shared library from the source
                                 file.

-e, --encap                    : Compile in encap mode, so code is interpreted
                                 at runtime. Avoids compiler issues. Required
                                 for some dynamic code.

-h, --help                     : Output this help text.

-o <file>, --output <file>     : Specify a non-default [path/][name] for
                                 the generated binary file.

-r, --release                  : Compile in release mode, linking everything
                                 together (default: development mode).

-s, --show-expanded            : Output result of Red source code expansion by
                                 the preprocessor.

-t <ID>, --target <ID>         : Cross-compile to a different platform
                                 target than the current one (see targets
                                 table below).

-u, --update-libRedRT          : Rebuild libRedRT and compile the input script
                                  (only for Red scripts with R/S code).

-v <level>, --verbose <level>  : Set compilation verbosity level, 1-3 for
                                 Red, 4-11 for Red/System.

-V, --version                  : Output Red's executable version in x.y.z
                                 format.

--config [...]                 : Provides compilation settings as a block
                                 of `name: value` pairs.

--no-compress                  : Omit Redbin format compression.

--no-runtime                   : Do not include runtime during Red/System
                                 source compilation.

--no-view                      : Do not include VIEW module in the CLI console
                                 and the libRedRT.

--red-only                     : Stop just after Red-level compilation.
                                 Use higher verbose level to see compiler
                                 output. (internal debugging purpose)

--show-func-map                : Output an address/name map of Red/System
                                 functions, for debugging purposes.

[command]

build libRed [stdcall]         : Builds libRed library and unpacks the
                                 libRed/ folder locally.

clear [<path>]                 : Delete all temporary files from current
                                 or target <path> folder.

Cross-compilation targets:

MSDOS        : Windows, x86, console (+ GUI) applications
Windows      : Windows, x86, GUI applications
WindowsXP    : Windows, x86, GUI applications, no touch API
Linux        : GNU/Linux, x86, console (+ GUI) applications
Linux-GTK    : GNU/Linux, x86, GUI only applications
Linux-musl   : GNU/Linux, x86, musl libc
Linux-ARM    : GNU/Linux, ARMv5, armel (soft-float)
RPi          : GNU/Linux, ARMv7, armhf (hard-float)
RPi-GTK      : GNU/Linux, ARMv7, armhf (hard-float), GUI only applications
Pico         : GNU/Linux, ARMv7, armhf (hard-float), uClibc
Darwin       : macOS Intel, console-only applications
macOS        : macOS Intel, applications bundles
Syllable     : Syllable OS, x86
FreeBSD      : FreeBSD, x86
NetBSD       : NetBSD, x86
Android      : Android, ARMv5
Android-x86  : Android, x86

Note: The toolchain executable (redc.exe) relies on Rebol encapper which does not support being run from a location specified in PATH environment variable and you get PROGRAM ERROR: Invalid encapsulated data error. If you are on Windows try using PowerShell instead of CMD. You can also provide the full path to the executable, put a copy of it in your working folder or wrap a shell script (see relevant tickets: #543 and #1547).

Running Red from the sources (for contributors)

The compiler and linker are currently written in Rebol. Please follow the instructions for installing the compiler toolchain in order to run it from sources:

  1. Clone this git repository or download an archive (ZIP button above or from tagged packages).

  2. Download a Rebol interpreter suitable for your OS: Windows, Linux (or Linux), Mac OS X, FreeBSD, OpenBSD, Solaris.

  3. Extract the rebol binary, put it in the root folder, that's all!

  4. Let's test it: run ./rebol, you'll see a >> prompt appear. Windows users need to double-click on the rebol.exe file to run it.

  5. From the REBOL console type:

     >> do/args %red.r "%tests/hello.red"
    

The compilation process should finish with a ...output file size message. The resulting binary is in the working folder. Windows users need to open a DOS console and run hello.exe from there.

You can compile the Red console from source:

    >> do/args %red.r "-r %environment/console/CLI/console.red"

To compile the Windows GUI console from source:

    >> do/args %red.r "-r -t Windows %environment/console/GUI/gui-console.red"

Note: the -c argument is not necessary when launching the Red toolchain from sources, as the default action is to compile the input script (the toolchain in binary form default action is to run the input script through the interpreter). The -r argument is needed when compiling the Red console to make additional runtime functions available.

Note: The red git repository does not include a .gitignore file. If you run the automated tests, several files will be created that are not stored in the repository. Installing and renaming a copy of .git/.gitignore-sample file will ignore these generated files.

Contributing

If you want to contribute code to the Red project be sure to read the guidelines first.

It is usually a good idea to inform the Red team about what changes you are going to make in order to ensure that someone is not already working on the same thing. You can reach us through our chat room.

Satisfied with the results of your change and want to issue a pull request on Github?

Make sure the changes pass all the existing tests, add relevant tests to the test-suite, and please test on as many platforms as you can. You can run all the tests using (from Rebol console, at repository root):

    >> do %run-all-tests.r

Git integration with console built from sources

If you want git version included in your Red console built from sources, use this command:

call/show ""                                              ;-- patch call bug on Windows
save %build/git.r do %build/git-version.r                 ;-- lookup git version if available
do/args %red.r "-r %environment/console/CLI/console.red"  ;-- build Console
write %build/git.r "none^/"                               ;-- restore git repo status

Anti-virus false positive

Some anti-virus programs are a bit too sensitive and can wrongly report an alert on some binaries generated by Red (see here for the details). If that happens to you, please report it to your anti-virus vendor as a false positive.

License

Both Red and Red/System are published under BSD license, runtime is under BSL license. BSL is a bit more permissive license than BSD, more suitable for the runtime parts.

docs's People

Contributors

225559 avatar 9214 avatar asampal avatar bgrossot avatar dander avatar dockimbel avatar endo64 avatar eranws avatar geekyi avatar gitter-badger avatar gltewalt avatar greggirwin avatar gunnarahlberg avatar hiiamboris avatar koba-yu avatar loziniak avatar mark-summerfield avatar nedzadarek avatar palaing avatar pekr avatar peterwawood avatar qtxie avatar toomasv avatar tovim avatar wallysilva avatar x8x avatar xdminsy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Rename pixel format to RGBT

Temporarily rename rgba to rgbt until Red Team makes a final decision.

Per discussion in red/redfrom @dockimbel :

"In Redbol, we rely on the notion of transparency (you ask: "how transparent it is?", not "how opaque it is?"), which is more human-friendly than opacity (which is an alpha channel mask), so we should maybe rather call our pixel format RGBT, rather than RGBA."

some faces miss listings of supported event types

In View reference docs, some of the face types have tables with descriptions of supported event types and their respective handlers, but some do not:

  • base
  • text
  • progress
  • slider
  • camera
  • window
  • screen
  • group-box

CALL /show refinement description is inaccurate

>> ? call
....
     /show        => Force the display of system's shell window (Windows only).
....

Two problems:

  1. "of shell window" wording is misleading
  2. it is reflected nowhere that without this flag the window will be forcefully hidden

Because, as seen from https://github.com/red/red/blob/8d712e4ba1b16e1b7a339006d1154aebc9cb7ce4/runtime/call.reds#L324
in the absence of /show it uses the wShowWindow field of STARTUPINFO structure, which is never initialized explicitly and thus defaults to 0 = SW_HIDE. As a consequence, any GUI program called without /show cannot be interacted with (try call {notepad.exe}). (Although due to a bug some Red GUI programs are still visible partly on W7 - only those parts that are emulated using layered windows mechanics, but it's another topic)

Undocumented set-focus for positioning cursor in a text box so the user doesn't need mouse click

amreus @amreus 08:57 found this for me on 12/29/2018

I found myself having to click on a text box each time I entered text because the control lost focus.

The set-focus worked beautifully but neither amreus or myself found it in the documentation.

amreus provided the following example and it worked like a charm!

Red [
needs: 'view
]

view [
f1: field focus
f2: field
f3: field
b: button "Set Focus" [set-focus f3]
]

Add note to binary! about how chars append with `/part`.

From Gitter chat: https://gitter.im/red/bugs?at=5ec5643626d26710bba95dbf

If we think of it as "The value is first coerced to a type compatible with the series, then the part is taken." we get what we have now. Easy to understand. This is similar:

>> append/part {} 'a/b/c 2
== "a/"

Where the path is first formed, then part of that taken. Knowing this behavior, we can add a doc note that shows how to work around it if you want to append full chars to binaries. e.g.

>> append #{} copy/part "^(2190)XYZ" 1
== #{E28690}

Unnecessary example in error! doc

It is not necessary to put below example in the end of section 3 (Creation) in error! datatype doc: page: https://doc.red-lang.org/en/datatypes/error.html#_creation

Arg values in the block are reduced.

>> cause-error 'syntax 'missing [foo bar]
*** Script Error: foo has no value
*** Where: reduce
*** Stack: cause-error

It is obvious that foo has no value and the error is not related to usage of cause-error function.

It can be removed or changed to

Arg values in the block are reduced.

>> foo: "foo" bar: "bar"
>> cause-error 'syntax 'missing [foo bar]
*** Syntax Error: missing "foo" at "bar"
*** Where: reduce
*** Stack: cause-error

`qcurv` documentation

Part 1 of red/red#3789 was never solved

  1. Contrary to the docs, qcurv accepts 1 or more points.
  2. The docs don't say that it continues what qcurve or other qcurvs might have started (using the latest pair of points from these directives)

Some suggestions about documentation formatting

Here are some suggestions about the formatting of documentation which came up while I was working on the translation. The goal is to make the documentation look less confusing and more compatible with different translations in terms of formatting.

Document Header

Suggestion: Add an attribute :toc-title: Table of Contents.

Reason: This attribute represents the TOC label. The translator only need to change "Table of Contents" to the translated language without adding a new attribute manually.

Bold and Italic

Suggestion: Always using __text__ and **text** instead of _text_ and *text*.

Reason: Like in Chinese and Japanese, there is no spacing between words, so single _ or * will be treated as normal texts instead of formatting instructions. It is better to avoid translators changing the formatting manually.

Link and Anchor

Suggestion: Always use link:url[text] syntax. Note the link: prefix must be added.

Reason: This can work without spacing around the link. Maybe just I can't figure out how to make << xxx >> work.

Suggestion: Always using link:#a-anchor[text] for links within the document and add an explicit anchor ID [#a-anchor] right above the section title to link.

Reason: The anchor for a section is dependent on the text of that section, which can be messed up after translation. This works across different translations.

Suggestion: Use link:another-document.adoc[text] for links between documents. Note the extension of the link is adoc.

Reason: This makes the link works both on github and gitbook. Gitbook will automatically change .adoc to .html.

Admonition

Suggestion: Always using the syntax described below (NOTE can be other type):

[NOTE, caption=Note]
====
Something to note.
====

Reason: That "Note" of the caption attribute is the label displayed in the left of the admonition block. The translator only need to change into translated language without changing the formatting. The label of inline admonitions (NOTE: ) can't be changed (or maybe I couldn't figure it out).

Word Name

Suggestion: Always surround the word which means Red word with ` (also in section titles, without uppercase).

Reason: Red word (keyword in DSL, or function name) is not that distinguishable from normal English words (in my opinion). If it is used in section titles without surrounded in a code span, it can be hard for translators to decide whether to translate it or not, and also may be confusing for normal readers. I have tried to make it a code span in the section title and it renders good.

Suggestion: Maybe avoid using red-words like normal English words in sentences.

Reason: Like the example below from the description of check in view.adoc, It sounds stupid if I keep left and right as is after translating. Or wrap left and right into a parenthesis and annotate after translating left and right, which also doesn't looks so good.

para: The align field controls if the text is displayed on the left or on the right side.

para: align 字段控制该文本是靠 left 边显示还是靠 right 边显示。

para: align 字段控制该文本是靠左边(left)显示还是靠右边(right)显示。

Type Annotation

Suggestion: Unify the type annotation over all documentation.

Reason: It is good to do so. Currently it can appear in two different kind of contents (see below), function syntax code blocks and some tables. It is not always at the end of a paragraph.

From macro of preprocessor:

#macro <name> func <spec> <body>
#macro <pattern> func <spec> <body>

<name>    : name of the macro function (set-word!).
<pattern> : matching rule for triggering the macro (block!, word!, lit-word!).
<spec>    : specification block for the macro function.
<body>    : body block of the macro function.

From Event! datatype of view:

|`offset`| Offset of mouse cursor relative to the face object when the event occurred (`pair!`). For gestures events, returns the center point coordinates.

Suggestion: Don't use "," to separate multiple types, nor "or" needed.

Reason: Removing these won't cause confusion. The datatype won't lose coloring as the example of #macro above.

Spacing

Suggestion: Always add a separate line between the actual content.

Reason: This can avoid content format corruption in some languages.

DOC: various peculiarities of make bitset!

@meijeru commented on Tue Apr 18 2017

  1. charset is shorthand for make bitset! except it does not cover make bitset! <binary>. This does make sense since charset suggests we deal with code point numbers, but it is useful to point out.
  2. charset 5 makes a single-byte empty bitset, charset #"^E" makes #{04}, BUT both charset [5] and charset [#"^E"] make #{04}. In other words, make bitset! <integer> is treated as storage reservation, as with all series! values, although bitset! does not belong to series!. It is questionable which kind of (in)consistency is less confusing for the user. In any case, the chosen solution has to be documented...
  3. charset [32 - #"Z"] is allowed, in other words, integers and code points may be freely mixed in the spec block.

@meijeru commented on Wed Apr 19 2017

Point 3 is solved by the fixes to #2587

Add docs for Red #system directive

Right now there's no documentation present for the #system directive introduced with this commit: red/red@c9cfa3f

It's only mentioned in an example for the #call directive in the red/system spec: https://static.red-lang.org/red-system-specs.html#section-16.8

Having it added to the directives of the red docs would help in making people aware that it's possible to call red/system code from red using this directive. Otherwise it's kind of hidden and might only be found by accident or a long search.

Also not sure if i'm the right person to make a pull request for that as, I'm still learning and getting familiar with red and its environment. But I guess the commit message provides enough information (at least for me) about what it is and how to use it. So maybe only one or two examples are missing for a proper doc entry.

Thank you very much!

Version selector is confusing

Version 0.6.0 does not have a version selector, but 0.6.1 does, and it allows selection of 0.6.0, 0.6.1 and 0.6.2. However, 0.6.2 is not (yet) available. Moreover, the default value shown in the version selector is 0.6.2, so the impression is created that this version is selectable. I propose that in each version, the version selector shows THAT version as default. This is a better way of finding out which version one is in, than to look at the URL in the address box.

area scroll bars go to top when appending to area text with no word to scroll it to bottom

Every time I append to the area that it scrolls the who way back up to the top even if I had i scrolled all the way down to the bottom. For things like logging and chat session and chat bots like I'm doing the information being added to the bottom is usually what the user is most interested in.

When I append text to an area, at some point the text is hidden from the user because it is scrolled off the screen. Is there a Red word I can use to tell the scroll bar on the area to scroll down so the user knows the new text has been appended. Otherwise I would have to inform the user to manually scroll to the bottom if he does not see a response in the area.

bug at compile tine

in this code https://gist.github.com/tinulac-leinad/00a0e9a85e13782858eab2a71bc2ac59
there is a problem with I: here :

tune: object [
  tA: tB: tC: tD: tE: tF: tG: tH: I: tK: tL: tM: tN: tO: tP: tQ: tR: tS: tT: tX: tZ: ""
                                             

in the REPL the code work fine....
when I compile with -c it's ok
when I compile with -r -> error


Compiling /home/daniel/Apps/red/red_projets/dn-abc-tools/test.red ...
...compilation time : 1875 ms

Target: Linux 

Compiling to native code...
*** Compilation Error: argument type mismatch on calling: red/natives/repeat-init* 
*** expected: [struct! [
        header [integer!] 
        data1 [integer!] 
        data2 [integer!] 
        data3 [integer!]
    ]], found: [struct! [
        header [integer!] 
        ctx [pointer! [integer!]] 
        symbol [integer!] 
        index [integer!]
    ]] 
*** in file: %/home/daniel/Apps/red/red_projets/dn-abc-tools/test.red 
*** in function: exec/f_ctx||394~value-path?
*** at line: 1 
*** near: [
    r3: 0 
    stack/reset integer/push 0 
    stack/mark-loop ~repeat 
    while
]

and just this simple code cause the same error :

Red[]
I: none

DOC: various peculiarities of make bitset!

@meijeru commented on Tue Apr 18 2017

  1. charset is shorthand for make bitset! except it does not cover make bitset! <binary>. This does make sense since charset suggests we deal with code point numbers, but it is useful to point out.
  2. charset 5 makes a single-byte empty bitset, charset #"^E" makes #{04}, BUT both charset [5] and charset [#"^E"] make #{04}. In other words, make bitset! <integer> is treated as storage reservation, as with all series! values, although bitset! does not belong to series!. It is questionable which kind of (in)consistency is less confusing for the user. In any case, the chosen solution has to be documented...
  3. charset [32 - #"Z"] is allowed, in other words, integers and code points may be freely mixed in the spec block.

@meijeru commented on Wed Apr 19 2017

Point 3 is solved by the fixes to #2587

VID documentation formatting issues

Section 6.1 Keywords breaks off on draw keyword description, and after that wrap becomes a top level header, wrapping all subsequent keyword definitions.

On closer examination, this happens because draw section contains ragged code fences caused by this.

[VIEW] In 'Draw block in a Face, "Set-word" used as a position mark is updated. It's not like what the document said.

@JenniferLee520 commented on Sat Jun 10 2017

According to the "Draw" documentation

  1. Source position

Set-words can be used in the Draw code in-between commands to record the current position in Draw block and be able to easily access it later.
Note:
If the Draw block length preceding a set-word is changed, the recorded position will not be updated.

But somehow, the position can be updated.

view [ 
    origin 0x0
    base 800x400 draw [
        fill-pen green
        pos: box 400x0 450x100
    ] on-down [
        probe pos
        insert face/draw [pen red]
    ]
]

Run the code. "pen red" will be inserted into the draw block every time you click on the face. But as you will see: it's updated. In the following result, I clicked 4 times.

>> do %pos-test.red
[box 400x0 450x100]
[box 400x0 450x100]
[box 400x0 450x100]
[box 400x0 450x100]

@dockimbel commented on Sat Jul 29 2017

It's a wording issue in the note, the "recorded position" refers to the initial position.

I'm changing it to:

NOTE: If the Draw block length preceeding a set-word is changed, the original position will be changed accordingly, so the set-word will not point to the same reference anymore.

Shape dialect's `arc` <angle> explanation is wrong

Documentation (https://doc.red-lang.org/en/draw.html#_arc_2) says:

<angle> : angle between the starting and ending points of the arc in degrees (integer! float!).

Should be: <angle> : rotation angle of the underlying ellipse in degrees (integer! float!).

Explanation: In following code angle between start and end points is 0 but rotation angle of ellipse is 45:

view [box 100x100 draw [shape [move 30x50 arc 70x50 30 20 45 large]]]

Japanese document fix list

I would fix/improve problems below,

view.html

  • "オプションファセット" should be "Options ファセット".
    gitter talk about it: 2018年2月2日 15:28
  • "追加の関数" is too literally translated. "その他の関数" might be better.
  • The sentence below should be deleted(original English sentence left).

A vertical scroll-bar can appear if all lines of text cannot be visible in the area (might be controlled by a flags option in the future).

float `to` binary conversion needs improvement

See: https://gitter.im/red/docs?at=5cfe6e31e41fe15e7544d0ae

My suggestions:

The any-list part could remove some prose.

An any-list! value must contain two numbers. The result will be the first number multiplied with the value of 10 to the power of the truncated second number. first-number * (power 10 second-number)

Could be

An any-list! value must contain two numbers. The result will be first-number * (10 ** second-number)

The binary example is backwards from the text. It described to float!. And your new text seems better. Beyond that, an example of what happens with truncated data (less than 8 bytes) should either be included, or we should say that's not supported.

Bugs in `declare!` docs

1


s/c: declare struct! [d [integer!] e [float!]] it should be

2

And just below:

12 + 4 (integer) + 8 (float) = 24 in my book, not 20 bytes

3

The returned value of DECLARE STRUCT! is the memory address of the newly created struct! value.

It is never stated that structure is static (only allocated once), so is dangerous to use inside functions (see red/red@069f335 commit)

WISH: Make the asciidoc content format compatible with possible coming document translations

I am working on Chinese translation of the documents. I find if only changing the text(no line added), the contents in github will be corrupted(like that original Japanese translation). After I add lines seperating elements(eg, header, code blocks), it will renders correctly. It seems seperated lines are need for some languages.

I can add lines needed while translating the documents. If permitted(needed), I will be happy to help.

In description of check face, there is a typo

In view.adoc:

|`type`| `'check`
|`text`| Label text.
|`para`|	The `align` field controls if the text is displayed on the `left` or on the `right` side.
`data`, `true`: checked; `false`: unchecked (default).

I assume that the last line needs a | in front of it , and another | in place of the ,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.