REBOL/SDK - Development Kernels
Minimized REBOL kernels for SDK tuned performance.
Purpose of Kernels
These REBOL kernels serve dual purposes:
- They can be used for professional applications that run as REBOL scripts and want to reduce the overhead required for unused features found in REBOL/Core or REBOL/View (such as the built-in help system, variety of network protocols, Visual Interface Dialect, and more).
- They can be used to interactively test your encapsulated applications prior to encapsulation. This provides the time savings of immediate execution without waiting for the encapsulation process, but offers identical functionality to that found in the SDK encap programs.
These kernels are intended for professional users. As a result, the file security normally found in REBOL is set to NONE by default. In other words the standard file security of REBOL/Core and REBOL/View is disabled.
In addition under Windows, the /Pro and /Face kernels allow programatic access to the Windows registry. When your program no longer needs access to the Windows registry it should call UNSET-REG-FUNCS to disable all calls to registry functions.
To restore the security to that found in /Core, add this line to your script:
secure [file [allow read ask write ask execute]]
Of course, you need not use these settings. Set the security to whatever levels and file directories (sandboxes) your script requires.
REBOL/Base is an optmized version of REBOL/Core that removes all but the most critical functions of the language. The result is a lean REBOL kernel that can be used for faster startup that takes less memory. This is useful for scripts such as those used in CGI processing.
Contents of /Base
Here is a summary of the primary differences between REBOL/Core and REBOL/Base:
- Unnecessary mezzanine functions have been removed (For example, the HELP function has been removed) and are now provided as source code to let you pick and choose which functions you need to include.
- All function definition and argument help strings have been removed.
- All protocol and network related functions have been removed (They are provided as source files.)
The /Base system includes:
- All of the REBOL/Core Native functions.
- The following constant definitions:
on: true off: false yes: true no: false zero: 0 tab: #"^-" newline: #"^/" newpage: #"^l" slash: #"/" backslash: #"\" escape: #"^(ESC)" cr: #"^M" lf: newline crlf: "^M^J" REBOL: :system q: :quit min: :minimum max: :maximum abs: :absolute empty?: :tail?
- These mezzanine functions:
throw-on-error - Evaluates block, throws errors. func - Defines a user function with given spec and body. function - Defines a user function with local words. does - Defines a function that has no arguments or locals. has - Defines a function that just has local variables. context - Defines an object context. probe - Prints a molded value and returns the same value. ?? - Prints a variable name followed by its molded value. sign? - Returns sign of number as 1, 0, or -1 to-* - All datatype conversions. component? - Returns specific component info
- The functions defined in these source modules (included as source code in this distribution):
mezz-series.r - series modification functions mezz-control.r - program control functions mezz-file.r - file IO functions mezz-input.r - user input functions
- All system object definitions as found in REBOL/Core, including:
version - current version number build - build id product - product name string components - internal component list words - word list license - license string options - execution options user - user options script - script options console - terminal control ports - standard I/O ports network - network options schemes - protocols list (empty) error - error messages standard - standard objects locale - localization strings stats - memory statistics
- These components:
SysPort - system control port
Building /Core from /Base
To build REBOL/Core functionality from REBOL/Base, include these modules in your program:
#include %mezz.r #include %prot.r
REBOL/Pro has been designed for professional applications that require functions or services outside of REBOL, but do not require graphics and sound support. REBOL/Pro is very useful for server side applications and CGI scripting.
Contents of /Pro
|Shell||run external applications and commands|
|Library||interface to external libraries (DLLs)|
|FastCGI||fast processing of CGI|
|Registry||access to the windows registry|
|Encryption||Blowfish, Rijndael, AES, and more|
|RSA Encryption||public key encryption|
|DH/DSA Encryption||digital signatures and key exchange|
|SysPort||exception trapping and more|
To run /Pro, your SDK license.key file must be provided. This is the same license.key file that is required to run the encapsulation program and should not be distributed. The file can be located in the same directory as the /Pro executable file, or it can be located in the directory from which you started the /Pro program.
REBOL/Face adds graphics and sound capability to REBOL/Pro. It's main purpose is to provide you with a testing environment for your Encap/Face scripts before encapsulating them. /Face does not include View and VID functions. The result is a minimized graphics kernel that starts faster and requires much less boot memory. You can pick precisely the /View and VID functions that you require.
Contents of /Face
REBOL/Face includes all of the functions of /Pro plus these components:
|Graphics functions||the optimized realtime compositing engine with effects, text rendering, and event system for mouse and keyboard input.|
|Sound port||for producing sound and loading wave files|
Note that View and VID functions are provided in source code format, allowing you to selectively build and modify the functions to best suit your application needs.
Building /View from /Face
To build the REBOL/View level of functionality from /Face include these scripts in your program:
#include %mezz.r #include %prot.r #include %view.r
Note that the REBOL/View desktop source code is not currently included in this release, but may be included at a later date.
To run /Face, your SDK license.key file must be provided. This is the same license.key file that is required to run the encapsulation program and should not be distributed. The file can be located in the same directory as the /Face executable file, or it can be located in the directory from which you started the /Face program.