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