Project website:

Gitter chat:


When using random, remember about seeding with random/seed now/time to get different results each time.

Anyone requesting a change to Red language should prepare a draft proposal in AsciiDoc format. The file name of the proposal should be in the form rep-<initials>-<yyyy-mm-dd>.adoc. The proposal should follow the REP 2 which defines the proposal format.
gitter github

The difference between CLI and GUI console is, GUI console doesn't print/show the zero bytes - #{00}. But CLI shows it as a space.

Rebolek is there any chance of you publishing the code of your implementation of @aolko's GUI? Or could you point me to other good examples / tutorials about creating custom styles to achieve this kind of non-native visual GUIs? Loziniak Here's the GUI , remove line 123 with avatar picture and here's simple guide

Can someone point me to a tutorial on how to export red-values from RS?

foo: routine [
    /local c-string red-string
    c-string: "this is a C string!" 
    red-string: string/load c-string length? c-string UTF-8

print replace foo "C" "Red" 


How to tell if my code is run by Red or REBOL? It's useful when determining preprocessor directives environment (compiled - REBOL, interpreted - Red)
In Red, word rebol is set to false, in R2 it's a system object.

Is possible to change the default standard font name and size for the window and all his faces in one time and not coding font for each single face?
One way is to change system template, but this change affects only changed styles, of course:

append system/view/VID/styles/text/template [
    font: make font! [
        color: red size: 20 name: "Courier New" 
view [below text "Changed default font style" panel black [text "On panel too"]]

Second way is to change default-font, but this still needs you to "touch" font facet of styles you want to display this font, e.g.:
system/view/VID/default-font: [
    name fname size fsize color fcolor
fname: "Courier New" fsize: 16 fcolor: orange 
view [below 
    text "Second way" font [] 
    button font [] "On all styles" 
    tab-panel 200x50 font [] ["A" [] "B" []]

...second method lets you vary aspects of the custom style, e.g.:
system/view/VID/default-font: [name fname size fsize color fcolor]
set [fname fsize fcolor]["Courier New" 8 255.64.64]
view [below 
    text "Very small text" font-size 6 
    button "Bigger, but otherwise same" font-size 10 
    area wrap "And big one, with same custom style" font-size 16

And on further thought you might want to use something like this:
set-defaults-for-styles: function [styles [block!] defaults [block!]][
    foreach style styles [
        append system/view/VID/styles/:style/template defaults
set-defaults-for-styles [text area field][
    font: make font! [name: "Courier New" size: 16 color: orange]


Other sources of documentation - Rebolek's articles on miscellaneous aspects of Red programming