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

Porting the GRL compiler to your environment

Porting the GRL compiler to your environment

To make GRL work on your robot you need to:

  1. Choose a target language.  If you can run Scheme48 directly on your robot, then you can compile GRL directly into your scheme interpreter and program interactively.  Otherwise, you need to cross-compile.  If cross-compiling, C++ is the preferred backend, since it has some extra features and is the only one that has users at the moment.  However, the other backends are still serviceable and we still support them.
  2. Port the run-time system.  There are a small number of procedures and global variables that GRL needs to be there to run properly.  Specifically, the clock-related variables (%ms-clock, %clock-period, %measured-clock-period) and the update_grl_time() procedure that sets them.  You also need to make sure exit() exists if you're going to use it from GRL.  If you are not running in one of our supported environments, you will need to modify our boilerplate versions to fit your OS.
  3. Write wrappers for your sensors and effector drivers.  Basically, you need to