Next: , Previous: , Up: compiler letrec   [Index]


17.10.2 Transformations programming interface

The following bindings are exported by the library (vicare compiler).

Function: pass-optimize-letrec recordised-code

Perform transformations and optimisations to convert the recordised representation of letrec, letrec* and libary-letrec* core language forms into a composition of low level binding constructs and assignments.

Parameter: check-for-illegal-letrec

If set to true: optimize-letrec will perform an additional recordized code pass to check for illegal binding references in the right–hand sides of letrec, letrec* and library-letrec* syntaxes, raising a syntax violation error if one is found. This is the default.

If set to false: the validating pass is not performed, faithfully hoping for no problems in code.

Parameter: current-letrec-pass

Select the transformations performed by optimize-letrec; possible values are the symbols:

basic

Perform the basic transformation.

waddell

Perform a transformation similar (but no equal) to the one described in the [WSD] paper.

scc

Perform a transformation similar (but no equal) to the one described in the [SCC] paper. This is the default.