Source code for the Rebol interpreter
C Rebol C++ Objective-C CMake Clojure Other
Clone or download
Pull request Compare This branch is 3558 commits ahead of rebol:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
external
git-hooks
make
scripts/changes-file
src
tests
.gitattributes
.gitignore
.gitmodules
.travis.yml
.travis.yml.tcc
CHANGES.md
CREDITS.md
LICENSE
README
README.md
appveyor.yml
ren-c-logo.png

README.md

Ren-C Logo

Ren/C

Build Status

Ren-C is an interim fork of the Apache 2.0 open-sourced Rebol codebase. The goal of the project isn't to be a new language or a different console, rather to provide a smooth API for embedding a Rebol interpreter in C programs. This API would offer nearly the full range of power that is internally offered to the core, making it easy to write new clients or REPLs using it.

Because the API is not fully ready for publication, the current way to explore the new features of Ren-C is using the r3 console built by the makefile. It should function nearly identically (though it has been extended through user contribution to support a multi-line continuation method similar to Rebol2.) For those interested in a more novel application of the Ren-C library, see the C++ binding and Ren Garden.

In the process of designing the library, Ren-C also aspires to solve several of the major outstanding design problems that were left unfinished in the R3-Alpha codebase. Several of these problems have been solved already--and for progress and notes on these issues, a Trello board is frequently updated to reflect a summary of some of the changes.

In doing this work, the hope is to provide an artifact that would rally common usage between the mainline builds, community builds, and those made by Atronix Engineering and Saphirion AG.

For more information, please visit the FAQ:

https://github.com/metaeducation/ren-c/wiki/FAQ

Feel free to add your own questions to the bottom of the list.

Community

To promote the Rebol community's participation in public forums, development discussion for Ren-C generally takes place in the Rebol and Red StackOverflow Chat.

It is also possible to contact the developers through the Ren-C GitHub Issues page. This should be limited to questions regarding the Ren-C builds specifically, as overall language design wishes and debates are kept in the rebol-issues repository of Rebol's GitHub.

Building

There are currently two build systems in Ren-C: plain make files for basic features, and CMake for extended features.

  • With plain make files

First get the sources -- from cloning the repository with git, or downloading a ZIP:

https://github.com/metaeducation/ren-c/archive/master.zip

Next you need to get a pre-built R3-Alpha interpreter, rename it to r3-make or r3-make.exe, and put it in the %make/ subdirectory.

Then run:

make -f makefile.boot

The platform to target will be assumed to be the same as the build type of the r3-make you use. If your needs are more complex (such as doing a cross-compilation, or if the system/version in your r3-make doesn't match the target you want), refer to the bootstrap makefile %src/make/makefile.boot:

https://github.com/metaeducation/ren-c/blob/master/make/makefile.boot

(Note: Ren-C's build process cannot be performed with Rebol2. It requires R3-Alpha or Ren-C itself. However, it can build using an old pre-open-source R3-Alpha A111.)

  • With CMake

Please see https://github.com/metaeducation/ren-c/wiki/Building-Ren-C-with-CMake