Posting this on behalf of Fork who hasn't been around here for a while and says he's lost his credentials.
"For those who weren't sure exactly what a C++ binding for Rebol or Red would be 'for', I present here an overview... with a demo of Ren Garden... a GUI console with several novel features:
Ren Garden has been built for Linux, Mac, and Windows, and variously for 32-bit and 64-bit architectures. Though it's linked up with Rebol for now, it was designed to be linked against Red also. The conditional build is set up, so it's just work that someone needs to go in and do.
Where these projects can (or will) go depends on community support and interest. So far response has been very encouraging...but to push this from demo to 'product' will require more hands and heads than just mine!"
Here are the features Ren Garden brings over that built-in Rebol REPL:
Multi-Line Editing
Input History
Undo - This allows you to clear clutter in the REPL by undoing input and output.
Variable/Expression Watches - A great aid for debugging, watches show the current value of words or expressions. Anything being watched can be duplicated, and frozen to help in comparing values over time. Watches can be renamed to give them memorable names.
Multiple Buffers - Any number of buffers can be created and accessed using a tabbed interface. The tabs are nameable to make it easy to distinguish them.
Separate Contexts Across Tabs - Right now, each tab is given its own context (essentially a new user context) when it's created so there don't need to be multiple Rebol/Red runtimes running at once to achieve a certain degree of isolation. Though the creation of a new context or complete runtime per tab is not currently configurable, it could be made so.
Shell Integration - This feature makes it easy to interact with or automate the OS shell being used from a Rebol/Red session.
Auto-Completion - Basic auto-completion is available.
Beginnings of Buffer "API" - There is a demonstration of buffer cursor and selection control which could be used to provide smart snippets or to enable interactive tutorials to be created.
Ren Garden also includes some of the Rebol language experiments that Hostilefork has been talking about to allow people to try them out and give feedback on.
The projects can currently be found at the following link. Note that Ren Garden will be pulled out of the RenCpp source tree not too far down the road.
I did watch the video. For those not familiar with C, I am wondering if someone could clarify the terminology, specifically, "a C++ binding for Rebol or Red." Does that mean a way for a C program to call a REBOL program? Or a REBOL program to call a C program? Or something else? Thank you.
Replaced to-error with cause-error Replaced func with funct Added execute function Added MS Access support to execute Added SQLite support to execute Added /only (was /unique in 1.06) Added spec none! support Added /save none! support Fixed /merge bug Fixed sqlcmd /headings/key bug Added cols? function Added rows? function Added sheets? function Fixed to work with R3 Alpha (rebolsource.net) Added load-dsv /blocks Fixed delete/where (missing implied all) Added unzip function
I have written a tool to generate rebol 3 binding from c header files using libclang: https://github.com/zsx/c2r3. It includes a partial replicate of gtk3-demo for testing and demostration purpose.
Added call compatibility function for R3 Alpha Added /all support to read-xls Added /part to load-dsv Re-factored VBS calls Added fields? function Added associative array support (index, lookup, assign) Added unique undex support (index/direct, retrieve)
I have a number of employees/interns that want to learn Rebol 3, so I'm writing a step-by-step tutorial for them. I only have the home and intro pages done so far. Let me know what you think: http://video.respectech.com:8080/tutorial/r3/index.r3
I know that the Try-It Editor allows infinite loops and other things that can crash R3. However, I have disabled all the damaging functions like 'call, 'write, etc. so at least there's that. I'll soon be adding a timer to kill the Try-It process if it runs longer than a few seconds.
Bo
I've added another section to my Rebol 3 tutorial at http://video.respectech.com:8080/tutorial/r3/index.r3 called "R3 Nesting Functions". I believe that this is the area that confuses most users, so I hope that this section is understandable.