REBOL
Downloads Products Documents Community

REBOL/SDK - Development Kernels

SDK Documentation

Minimized REBOL kernels for SDK tuned performance.

Purpose of Kernels

These REBOL kernels serve dual purposes:

  1. 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).
  2. 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.

Security Changes

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

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:

The /Base system includes:

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?
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
mezz-series.r - series modification functions
mezz-control.r - program control functions
mezz-file.r - file IO functions
mezz-input.r - user input functions
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
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

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

Shellrun external applications and commands
Libraryinterface to external libraries (DLLs)
FastCGIfast processing of CGI
Registryaccess to the windows registry
EncryptionBlowfish, Rijndael, AES, and more
RSA Encryptionpublic key encryption
DH/DSA Encryptiondigital signatures and key exchange
SysPortexception trapping and more

License Key

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

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 functionsthe optimized realtime compositing engine with effects, text rendering, and event system for mouse and keyboard input.
Sound portfor 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.

License Key

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.

About | Contact | Support | Privacy | LicenseREBOL Technologies 2013