Fix spacing

This commit is contained in:
Justin Ethier 2016-10-04 00:23:07 -04:00
parent 5cb20182da
commit 2151fe3663
11 changed files with 296 additions and 0 deletions

View file

@ -21,12 +21,22 @@ The `(scheme cyclone ast)` library defines abstract syntax tree types used durin
(ast:lambda? obj)
# ast:lambda-id
(ast:lambda-id lambda-obj)
# ast:lambda-args
(ast:lambda-args lambda-obj)
# ast:set-lambda-args!
(ast:set-lambda-args! lambda-obj args)
# ast:lambda-body
(ast:lambda-body lambda-obj)
# ast:set-lambda-body!
(ast:set-lambda-body! lambda-obj body)

View file

@ -11,23 +11,44 @@ The `(scheme cyclone cgen)` library compiles scheme code to a Cheney-on-the-MTA
- [`string-join`](#string-join)
# mta:code-gen
(mta:code-gen input-program program? lib-name lib-exports imported-globals globals c-headers required-libs src-file)
Convert the given input program - as pre-processed Scheme AST - into C code. This function cannot be called directly on a Scheme program, but must be called on Scheme code that has already been processed by all of the compiler's Scheme transformations, including CPS and closure conversions.
# emit
(emit string)
`display` the string to the output port with a trailing newline.
# emit\*
(emit* string ...)
Emit all of the given strings and add a trailing newline.
# emits
(emits string)
`display` the string to the output port.
# emits\*
(emits* string ...)
Call `emits` for each of the given strings.
# emit-newline
(emit-newline)
`display` a newline to the current output port.
# string-join
(string-join list deliminator)
Create a single string from a list of strings, adding `deliminator` between each of the strings.

View file

@ -10,14 +10,26 @@ The `(scheme cyclone common)` library contains definitions used by the compiler
- [`*c-file-header-comment*`](#c-file-header-comment)
# \*Cyc-version-banner\*
The version banner printed when `icyc` starts.
# \*version\*
The version number and name.
# \*version-number\*
The current version number.
# \*version-name\*
The current version name.
# \*version-banner\*
The version banner printed when `icyc` starts.
# \*c-file-header-comment\*
The header comment added to C files.

View file

@ -39,37 +39,72 @@ The `(scheme cyclone optimizations)` library performs CPS analysis and optimizat
- [`adbf:set-unused-params!`](#adbfset-unused-params)
# optimize-cps
# analyze-cps
# opt:contract
# opt:inline-prims
# adb:clear!
# adb:get
# adb:get/default
# adb:set!
# adb:get-db
# simple-lambda?
# one-instance-of-new-mutable-obj?
# adb:make-var
# %adb:make-var
# adb:variable?
# adbv:global?
# adbv:set-global!
# adbv:defined-by
# adbv:set-defined-by!
# adbv:reassigned?
# adbv:set-reassigned!
# adbv:assigned-value
# adbv:set-assigned-value!
# adbv:const?
# adbv:set-const!
# adbv:const-value
# adbv:set-const-value!
# adbv:ref-by
# adbv:set-ref-by!
# adb:make-fnc
# %adb:make-fnc
# adb:function?
# adbf:simple
# adbf:set-simple!
# adbf:unused-params
# adbf:set-unused-params!

View file

@ -29,28 +29,54 @@ The `(scheme cyclone libraries)` library implements r7rs libraries.
- [`lib:idb:id->import`](#libidb:id-import)
# library?
(library? obj)
# lib:list->import-set
# lib:name
# lib:name->string
# lib:name->symbol
# lib:result
# lib:exports
# lib:rename-exports
# lib:imports
# lib:body
# lib:includes
# lib:include-c-headers
# lib:import->filename
# lib:import->metalist
# lib:import->path
# lib:read-imports
# lib:import->export-list
# lib:resolve-imports
# lib:resolve-meta
# lib:get-all
# lib:get-all-import-deps
# lib:get-dep-list
# lib:imports->idb
# lib:idb:ids
# lib:idb:id->import

View file

@ -12,10 +12,18 @@ The `(scheme cyclone macro)` library contains code to deal with macros.
- [`macro:get-defined-macros`](#macroget-defined-macros)
# define-syntax?
# macro:macro?
# macro:expand
# macro:add!
# macro:cleanup
# macro:load-env!
# macro:get-env
# macro:get-defined-macros

View file

@ -5,6 +5,9 @@ The `(scheme cyclone pretty-print)` library provides a pretty-printer for code f
- [`pretty-print`](#pretty-print)
# pretty-print
(pretty-print obj)
(pretty-print obj port)
Outputs object to the given output port, or the current output port if none is given. The output is automatically indented just like it would be in a source code file, to make it easier to read.

View file

@ -18,16 +18,30 @@ The `(scheme cyclone primitives)` library contains information about Cyclone's s
- [`prim:allocates-object?)`](#primallocates-object)
# prim?
# \*primitives\*
# \*primitives-num-args\*
# prim-call?
# prim->c-func
# prim/data-arg?
# prim/c-var-assign
# prim/cvar?
# prim:check-arg-count
# prim:mutates?
# prim:cont?
# prim:cont/no-args?
# prim:arg-count?
# prim:allocates-object?)

View file

@ -30,28 +30,54 @@ The `(scheme cyclone test)` library contains a testing framework ported from `(c
- [`current-test-comparator`](#current-test-comparator)
# warning
# test-group-inc!
# print-exception
# test
# test-equal
# test-error
# test-assert
# test-not
# test-values
# test-group
# current-test-group
# test-begin
# test-end
# test-syntax-error
# test-propagate-info
# test-vars
# test-run
# test-exit
# current-test-verbosity
# current-test-applier
# current-test-handler
# current-test-skipper
# current-test-group-reporter
# test-failure-count
# current-test-epsilon
# current-test-comparator

View file

@ -84,82 +84,162 @@ The `(scheme cyclone transforms)` library performs Scheme-to-Scheme transformati
- [`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

View file

@ -65,63 +65,124 @@ The `(scheme cyclone util`) library contains various utility functions.
- [`take `](#take)
# Cyc-er-compare?
# Cyc-er-rename
# app?
# begin?
# const?
# define->exp
# define->var
# define-c?
# define?
# delete
# delete-duplicates
# env:\_lookup-variable-value
# env:add-binding-to-frame!
# env:all-values
# env:all-variables
# env:define-variable!
# env:enclosing-environment
# env:extend-environment
# env:first-frame
# env:frame-values
# env:frame-variables
# env:lookup
# env:lookup-variable-value
# env:make-frame
# env:set-variable-value!
# env:the-empty-environment
# filter
# flatten
# formals->list
# gensym
# identifier->symbol
# identifier=?
# identifier?
# if->condition
# if->else
# if->then
# if-else?
# if?
# lambda->exp
# lambda->formals
# lambda-formals->list
# lambda-formals-type
# lambda-varargs-var
# lambda-varargs?
# lambda?
# length/obj
# list-index2
# list-insert-at!
# list-prefix?
# mangle
# mangle-global
# pack-lambda-arguments
# pair->list
# quote?
# ref?
# set!->exp
# set!->var
# set!?
# string-replace-all
# tagged-list?
# take