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 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.
Not specifically Rebol/Red related, but I wanted to let you all know that ameriDroid.com is now an official distributor for Banana Pi, Banana Pro, and Raspberry Pi 2, in addition to exclusive N. American distributor for Hardkernel/ODROID. We also carry a full line of accessories and peripherals. I hope you give us a chance if you need any of the systems that we now carry!
Refactored main munge function removed /flip refinement removed %.xml, %.xlsx and none! as valid /save targets added /group 'avg removed implied Excel column names /update can reference column names without /where (e.g. munge/update blk 2 ['c1 [c2 * 2]]) split /merge off into a separate function split rowid referencing off into separate functions (pick-cell, poke-cell, copy-row, remove-row) big speed improvements (about 40%-60% faster for most /where and/or /part operations) Added a lot of support functions No longer redefine 'select (new select-skip function added) No longer redefine 'unique (new unique-skip function added) No longer redefine 'call for R3 Alpha (use R2 or Atronix R3 instead)
Ren/C is an interim fork of the open sourced Rebol codebase. It has many goals:
To create a library form of the interpreter, which is focused on providing the full spectrum of Rebol's internals to other projects. This is to open up possibilities for linking to new IDEs, debuggers, and consoles (such as Ren Garden). It will also be the basis for language bindings like Ren/C++.
To un-fork the divergence between the community build of Rebol based on the 12-Dec-2012 open-sourced code and the codebase built on pre-open-source code at Saphirion, later maintained by Atronix Engineering.
To accelerate the process by which consensus features and fixes are integrated into the language. Though debates continue over features in Rebol and Red Chat, many changes are ready and agreed upon--some submitted as patches. Yet they haven't had a focal location where they can be launched and people get new builds.
To integrate the test suite into the build, and make the bar obvious that contributions must meet by keeping it at zero errors. The Valgrind and Address Sanitizer tools are being integrated into the build and test process, with modifications to the code to prevent masking bugs.
To provide an option for stable open-source bootstrapping to be used by the Red Language, which is currently bootstrapped from closed-source Rebol2. (Red's roadmap goal is to move directly to a self-hosting state from the Rebol2 codebase. This may be a poorer option than moving to an improved Rebol3 as an interim step.)
The Atronix/Saphirion build diverged from Rebol at a point in time prior to its release as an Apache-licensed open-source project. Their build had a graphical user interface and several other additional features, but was only available for Windows and Linux.
Ren/C split out a "Core" build from the Atronix/Saphirion branch, which runs as a console process and does not require GUI support. It was then audited to build under strict ANSI C89, C99, and C11. It also added the option to build as strict ISO C++98, C++11, and C++14. The goal is to take advantage of stronger type-checking and metaprogramming, while still retaining the ability to do a complete build on very old compilers when __cplusplus is not defined.
Consequently, Ren/C brings all the non-GUI features added by Atronix and Saphirion to core builds for other systems (Mac 32-bit and 64-bit, HaikuOS, Raspberry Pi, etc.) It also allows users who are not interested in the GUI to use lighter builds on Windows and Linux.
Besides building under these ranges of languages, Ren/C can do so under both GCC and Clang with zero warnings (with as strict warnings as reasonable). Significant changes are needed to do this, which are being given heavy thought on how to make things simpler, clearer, and better-checked. Across the board the code is more readable than what came in, with notable simplifications and improved checks.
(Note: Ultimately the goal is that Ren/C will not be something Rebol end-users will be aware of, but a library facing those building software that links to the evaluator. Hence systems like Rebol and Ren Garden would be branded as interfaces and consoles using the core interpreter, and Ren/C would contain no 'main.c'. Getting to that point will take a while, and in the meantime Ren/C produces a traditional Rebol executable as part of its build process.) Features
New features available in Ren/C's console builds vs. the open-sourced Rebol codebase of 12-Dec-2012 are:
HTTPS support as a protocol written in Rebol code, empowered by underlying cryptography libraries incorporated the C code.
An implementation of LIBRARY!, which allows Rebol to load a DLL or shared library and then directly call functions in it. This is accomplished with the "FFI" (Foreign Function Interface) and new data types for representing C-level constructs like ROUTINE! and STRUCT!.
Note: Building Ren/C with FFI currently requires additional steps or package, installation, as the FFI library has not been extracted into code following Rebol's build process.
CALL with /INPUT /OUTPUT /ERROR
UDP Network Scheme
Ability to make use of native ("__builtin") 64-bit math, if it is available
(Additionally there is serial port support on Linux and Windows.) Platforms
As of 16-Jul-2015, Ren/C has been verified as reaching the goal of building across the standards-compliant spectrum of C or C++ without warnings on these desktop platforms:
Linux 32-bit, libcc 2.11 (OS_ID=0.3.04) Linux 64-bit (OS_ID=0.4.40) Windows 32-bit (OS_ID=0.3.01) Windows 64-bit (OS_ID=0.3.02) OS/X 32-bit (OS_ID=0.2.05) OS/X 64-bit (OS_ID=0.2.40)
It has additionally been built for:
ARM Linux on Raspberry Pi (OS_ID=0.4.21) OS/X PowerPC (OS_ID=0.2.04) HaikuOS (OS_ID=0.5.75) SyllableOS Desktop(OS_ID=0.14.01)
The tools above are an older precursor to CrossUI, but I like them because they're free and open source, really light weight, and not only the created apps, but also the entire development system run virtually anywhere - even IE6, Firefox 1.5, and in just about any mobile browser. It's really simple to learn to use, and extremely productive, at least for the needs I've encountered. You can package the GUIs for mobile platforms using Phonegap build (and desktop with Node Webkit - although I don't see as likely a need for that). You can run the visual builder from any Apache install on any OS - I've done it locally on Windows, on Android with KSWeb server, on shared hosting Lunarpages accounts (which I've been able to use even on the old Android phone). It's nice to be able to quickly and easily create full featured front ends on any device, which run on any device, and which connect easily with Rebol server scripts that run just about anywhere too, including shared hosting. The whole system is really simple to use, and exhaustively documented.
The video is 1.3 hours long - very sorry for the length - I did it to prepare for making a written tutorial which will be more succinct. All the files used in the video are here: