Copyright © 1998, 2001 by Ian Horswill, see comment within this file.

Girl compiler release notes

GRL compiler release notes

Compiler version 2.0ß

 

Installation

Scheme environment

The GRL compiler is written for Scheme48.  Before running the compiler, you should obtain Scheme48 from www.scheme48.org.  The standard version of Scheme48 is for POSIX-complaint systems.  We have also developed a native windows port and a MacOS port.  We also recommend that you run Scheme48 under XEmacs, which runs under everything but MacOS.  If you use XEmacs or GNU Emacs, be sure to load the Emacs libraries shipped with Scheme48.  These can be found in the "emacs/" directory at the top-level of the Scheme48 distribution directory.  Windows users may also want to download the Cygwin distribution, which does a good job of impersonating a Unix environment under MS Windows, however cygwin is not necessary to run GRL.

If you want to use Emacs and don't know how, install it, run it and type Control-h (Help), then t (give me a tutorial).  Go through the tutorial and you'll be all set..

To configure Emacs, edit your .emacs or .xemacs/init.el file to include the following:

(push "scheme48-directory/emacs" load-path)
(require 'cmuscheme48)
(require 'scheme)
(defvar scheme-program-name "scheme48vm -h 15000000 -s 50000 -i scheme48.image")

where:

Once you've added these forms to your init file, restart Emacs.

Get the GRL compiler

First, download the current GRL distribution and unpack it onto your hard drive.

Running the environment

To run the compiler, start Scheme48 (type M-x run-scheme under Emacs) and type the commands shown in boldface:

> ,config ,load GRL-directory/packages.scm
> ,open package

Here GRL-directory should be the pathname of the directory containing the GRL sources and package should be some package exported by the GRL system.   Standard-grl is a good default.  Note that the commas are not misprints; they're the signal to the scheme interpreter that this is an interpreter command rather than part of a program.

Packages comprising the GRL environment

Core language and compiler

GRL-language
The basic GRL language.  Mostly macros.
GRL-top-level
Contains the procedures for calling the default compiler back end.
GRL-signals
Internal definitions for the signal data structures
GRL-compiler
Internal definitions for customizing the compiler

Library routines

GRL-library
The standard library
rulesets
A macro for defining production-system-like sets of if-them rules.
role-passing
Role-passing extensions
behavior-utilities
Macros and procedures for manipulating behaviors

Back ends

c-generator
Emits C code
basic-generator
Emits Tiger Basic code
unreal-generator
Emits Unrealscript

Support for specific robot platforms

kluge-platform
Definitions for left-distance, etc. for kluge
openr-platform
Definitions for Scheme48 port to the Sony Aibo
tiger-platform
Definitions for BASIC Tiger-based robots
scheme48-run-time
Contains the stubs necessaril to compile and run GRL code directly within Scheme48.

Combination packages

standard-GRL
Includes GRL compiler, language, signals, utilities, and rulesets
tiger-GRL
Standard-GRL plus the basic generator
kluge-GRL
Standard-GRL plus kluge-platform
unreal-GRL
Standard-GRL plus the unrealscript generator
cs-c95
Standard package for the Behavior-Based Robotics class at NWU.