Sat Jul 20, 2013

One of the things we talk about at the Toronto Common Lisp User Group meetings is, possibly surprisingly, other interesting languages, whether classical or up-and-coming.

REBOL (pronounced the same as "rebel") is one that got mentioned a few times. And it sounded quite interesting. But I never talked about it here because it was released under a proprietary license, and as you've probably guessed if this blog wasn't evidence enough, I'm a GPL nerd. Well, as of REBOL3, the language is released under the Apache v2.0 license, which officially makes it Free Software. You can find the complete source here.

It's a fairly recent development, so this isn't one you can apt-get install quite yet. So, here's how you go about building it on Debian.

Before We Get Started...

You'll obviously need git and make installed.

apt-get install git make

Then...'ll need to clone the REBOL3 repo.

git clone

And then you'll need to download the r3 binary from this page. If you're on an x86 linux machine, you have a choice of three depending on what version of libc you have installed. To find that out, run ldd --version|1|. Once you've go that, unpack it, and rename the new r3 file to r3-make.

On 32-bit machines...

You're pretty much done. Enter

make make # re-generate the makefile
make prep # generate relevant header files
make      # compile REBOL

After a minute or so, you should have a binary file called r3 that you can add to your path as a REBOL3 interpreter.

On 64-bit machines...

... you have a couple more things to do. Specifically, you need to run this as root|2|

dpkg --add-architecture i386
aptitude update
apt-get install ia32-libs
apt-get install libc6-dev-i386

That will add the 32-bit versions of libc and some other libraries so that you can actually run the compilation step.

Now Then

You can find the basic primer here, but the thing that most interests me about REBOL so far is its implementation and use of parse, which you can see demonstrated here, here and here, though there have been changes between REBOL2 and REBOL3. You can find the appropriate Emacs mode here, and I'm already thinking of the changes I want to make to it. Other interesting documentation includes the REBOL3 guide, the list of REBOL3 functions and this SO answer which includes a quick REBOL3 CGI script, though really, anything in the rebol3 tag is pretty interesting.


1 - |back| -Note that if you're just out to use the language, and don't really care about any of this Software Freedom business, you've already wasted some time. You can just get the appropriate binary and call it a day. I'm getting it because REBOL3 builds part of itself using REBOL3 scripts. And I'm compiling my own because I like being able to see inside of the languages I use, and I'm a big enough nerd to actually do it from time to time, and I've probably spent more time than is strictly healthy listening to Richard Stallman. Proceed or ignore the remaining parts of the process at your discretion.

2 - |back| -Thank you user Fork from this thread.

Creative Commons License

all articles at langnostic are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License

Reprint, rehost and distribute freely (even for profit), but attribute the work and allow your readers the same freedoms. Here's a license widget you can use.

The menu background image is Jewel Wash, taken from Dan Zen's flickr stream and released under a CC-BY license