mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 13:49:16 +02:00
245 lines
5.2 KiB
Markdown
245 lines
5.2 KiB
Markdown
# Transforms Library
|
|
|
|
The `(scheme cyclone transforms)` library performs Scheme-to-Scheme transformations, and also contains various utility functions used by the compiler.
|
|
|
|
- [`*defined-macros* `](#*defined-macros)
|
|
- [`*do-code-gen* `](#*do-code-gen)
|
|
- [`*primitives* `](#*primitives)
|
|
- [`*trace-level* `](#*trace-level)
|
|
- [`alpha-convert `](#alpha-convert)
|
|
- [`analyze-mutable-variables `](#analyze-mutable-variables)
|
|
- [`app->args `](#app-args)
|
|
- [`app->fun `](#app-fun)
|
|
- [`assq-remove-key `](#assq-remove-key)
|
|
- [`assq-remove-keys `](#assq-remove-keys)
|
|
- [`ast:lambda-formals->list `](#astlambda-formals-list)
|
|
- [`ast:lambda-formals-type `](#astlambda-formals-type)
|
|
- [`azip `](#azip)
|
|
- [`basename `](#basename)
|
|
- [`begin->exps `](#begin-exps)
|
|
- [`built-in-syms `](#built-in-syms)
|
|
- [`cell->value `](#cell-value)
|
|
- [`cell-get->cell `](#cell-get-cell)
|
|
- [`cell-get? `](#cell-get)
|
|
- [`cell? `](#cell)
|
|
- [`clear-mutables `](#clear-mutables)
|
|
- [`closure->env `](#closure-env)
|
|
- [`closure->fv `](#closure-fv)
|
|
- [`closure->lam `](#closure-lam)
|
|
- [`closure-convert `](#closure-convert)
|
|
- [`closure? `](#closure)
|
|
- [`cps-convert `](#cps-convert)
|
|
- [`cyc:error `](#cycerror)
|
|
- [`define->lambda `](#define-lambda)
|
|
- [`define-lambda? `](#define-lambda-1)
|
|
- [`difference `](#difference)
|
|
- [`env-get->env `](#env-get-env)
|
|
- [`env-get->field `](#env-get-field)
|
|
- [`env-get->id `](#env-get-id)
|
|
- [`env-get? `](#env-get)
|
|
- [`env-make->fields `](#env-make-fields)
|
|
- [`env-make->id `](#env-make-id)
|
|
- [`env-make->values `](#env-make-values)
|
|
- [`env-make? `](#env-make)
|
|
- [`expand `](#expand)
|
|
- [`expand-lambda-body `](#expand-lambda-body)
|
|
- [`filter-unused-variables `](#filter-unused-variables)
|
|
- [`free-vars `](#free-vars)
|
|
- [`get-macros `](#get-macros)
|
|
- [`global-vars `](#global-vars)
|
|
- [`has-global? `](#has-global)
|
|
- [`insert `](#insert)
|
|
- [`is-mutable? `](#is-mutable)
|
|
- [`isolate-globals `](#isolate-globals)
|
|
- [`lambda-num-args `](#lambda-num-args)
|
|
- [`let->args `](#let-args)
|
|
- [`let->bindings `](#let-bindings)
|
|
- [`let->bound-vars `](#let-bound-vars)
|
|
- [`let->exp `](#let-exp)
|
|
- [`let=>lambda `](#letlambda)
|
|
- [`let? `](#let)
|
|
- [`letrec->args `](#letrec-args)
|
|
- [`letrec->bindings `](#letrec-bindings)
|
|
- [`letrec->bound-vars `](#letrec-bound-vars)
|
|
- [`letrec->exp `](#letrec-exp)
|
|
- [`letrec? `](#letrec)
|
|
- [`list->lambda-formals `](#list-lambda-formals)
|
|
- [`list->pair `](#list-pair)
|
|
- [`list-index `](#list-index)
|
|
- [`mark-mutable `](#mark-mutable)
|
|
- [`pos-in-list `](#pos-in-list)
|
|
- [`precompute-prim-app? `](#precompute-prim-app)
|
|
- [`reduce `](#reduce)
|
|
- [`remove `](#remove)
|
|
- [`set-cell!->cell `](#set-cell-cell)
|
|
- [`set-cell!->value `](#set-cell-value)
|
|
- [`set-cell!? `](#set-cell)
|
|
- [`symbol<? `](#symbol)
|
|
- [`trace `](#trace)
|
|
- [`trace:debug `](#tracedebug)
|
|
- [`trace:error `](#traceerror)
|
|
- [`trace:info `](#traceinfo)
|
|
- [`trace:warn `](#tracewarn)
|
|
- [`union `](#union)
|
|
- [`wrap-mutables `](#wrap-mutables)
|
|
|
|
# \*defined-macros\*
|
|
|
|
# \*do-code-gen\*
|
|
|
|
# \*primitives\*
|
|
|
|
# \*trace-level\*
|
|
|
|
# alpha-convert
|
|
|
|
# analyze-mutable-variables
|
|
|
|
# app->args
|
|
|
|
# app->fun
|
|
|
|
# assq-remove-key
|
|
|
|
# assq-remove-keys
|
|
|
|
# ast:lambda-formals->list
|
|
|
|
# ast:lambda-formals-type
|
|
|
|
# azip
|
|
|
|
# basename
|
|
|
|
# begin->exps
|
|
|
|
# built-in-syms
|
|
|
|
# cell->value
|
|
|
|
# cell-get->cell
|
|
|
|
# cell-get?
|
|
|
|
# cell?
|
|
|
|
# clear-mutables
|
|
|
|
# closure->env
|
|
|
|
# closure->fv
|
|
|
|
# closure->lam
|
|
|
|
# closure-convert
|
|
|
|
# closure?
|
|
|
|
# cps-convert
|
|
|
|
# cyc:error
|
|
|
|
# define->lambda
|
|
|
|
# define-lambda?
|
|
|
|
# difference
|
|
|
|
# env-get->env
|
|
|
|
# env-get->field
|
|
|
|
# env-get->id
|
|
|
|
# env-get?
|
|
|
|
# env-make->fields
|
|
|
|
# env-make->id
|
|
|
|
# env-make->values
|
|
|
|
# env-make?
|
|
|
|
# expand
|
|
|
|
# expand-lambda-body
|
|
|
|
# filter-unused-variables
|
|
|
|
# free-vars
|
|
|
|
# get-macros
|
|
|
|
# global-vars
|
|
|
|
# has-global?
|
|
|
|
# insert
|
|
|
|
# is-mutable?
|
|
|
|
# isolate-globals
|
|
|
|
# lambda-num-args
|
|
|
|
# let->args
|
|
|
|
# let->bindings
|
|
|
|
# let->bound-vars
|
|
|
|
# let->exp
|
|
|
|
# let=>lambda
|
|
|
|
# let?
|
|
|
|
# letrec->args
|
|
|
|
# letrec->bindings
|
|
|
|
# letrec->bound-vars
|
|
|
|
# letrec->exp
|
|
|
|
# letrec?
|
|
|
|
# list->lambda-formals
|
|
|
|
# list->pair
|
|
|
|
# list-index
|
|
|
|
# mark-mutable
|
|
|
|
# pos-in-list
|
|
|
|
# precompute-prim-app?
|
|
|
|
# reduce
|
|
|
|
# remove
|
|
|
|
# set-cell!->cell
|
|
|
|
# set-cell!->value
|
|
|
|
# set-cell!?
|
|
|
|
# symbol<?
|
|
|
|
# trace
|
|
|
|
# trace:debug
|
|
|
|
# trace:error
|
|
|
|
# trace:info
|
|
|
|
# trace:warn
|
|
|
|
# union
|
|
|
|
# wrap-mutables
|
|
|