REBOL Document

REBOL/SDK - Development Kernels

Return to Contents

Contents:

1. Purpose of Kernels
2. Security Changes
3. REBOL/Base
      3.1 Contents of /Base
      3.2 Building /Core from /Base
4. REBOL/Pro
      4.1 Contents of /Pro
      4.2 License Key
5. REBOL/Face
      5.1 Contents of /Face
      5.2 Building /View from /Face
      5.3 License Key


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


2. Security Changes

Warning

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.


3. 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.

3.1 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

3.2 Building /Core from /Base

To build REBOL/Core functionality from REBOL/Base, include these modules in your program:


    #include %mezz.r
    #include %prot.r


4. 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.

4.1 Contents of /Pro

/Pro is built on top of /Base and includes:

  • 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

4.2 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.


5. 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.

5.1 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.

5.2 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.

5.3 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.


REBOL/MakeDoc 2.0

REBOL is a registered trademark of REBOL Technologies
Copyright 2003 REBOL Technologies

5-Aug-2003