2020-05-20 13:23:04 +03:00
|
|
|
****************************
|
|
|
|
Gambit Scheme Code Generator
|
|
|
|
****************************
|
|
|
|
|
|
|
|
The Gambit Scheme code generator can be accessed via the REPL command:
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
Main> :set cg gambit
|
|
|
|
|
2020-05-23 23:35:36 +03:00
|
|
|
Alternatively, you can set it via the ``IDRIS2_CG`` environment variable:
|
2020-05-23 20:40:57 +03:00
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
$ export IDRIS2_CG=gambit
|
|
|
|
|
|
|
|
To run Idris programs with this generator, you will need to install
|
2020-05-20 13:23:04 +03:00
|
|
|
`Gambit Scheme <https://gambitscheme.org>`_. Gambit Scheme is free software,
|
2020-05-23 20:40:57 +03:00
|
|
|
and available via most package managers.
|
2020-05-20 13:23:04 +03:00
|
|
|
|
|
|
|
You can compile an expression ``expr`` of type ``IO ()`` to an executable as
|
|
|
|
follows, at the REPL:
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
Main> :c execname expr
|
|
|
|
|
|
|
|
...where ``execname`` is the name of the executable file. This will generate
|
|
|
|
the following:
|
|
|
|
|
|
|
|
* An executable binary ``build/exec/execname`` of the program.
|
|
|
|
* A Gambit Scheme source file ``build/exec/execname.scm``, from which the
|
|
|
|
binary is generated.
|
|
|
|
|
|
|
|
You can also execute an expression directly:
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
Main> :exec expr
|
|
|
|
|
|
|
|
Again, ``expr`` must have type ``IO ()``. This will generate a temporary
|
|
|
|
Scheme file, and execute the Gambit interpreter on it.
|