Chicken

Scheme to C compiler, inspired by Henry Baker's "Cheney on the M.T.A." paper.

http://www.call-with-current-continuation.org/chicken.html

Related: Chicken:ModuleSystem?

Implementing SRFIs: SRFI-0 SRFI-1 SRFI-2 SRFI-4 SRFI-6 SRFI-7 SRFI-8 SRFI-9 SRFI-10 SRFI-11 SRFI-12? SRFI-13 SRFI-14 SRFI-16 SRFI-17 SRFI-18 SRFI-19 SRFI-23 SRFI-25 SRFI-26 SRFI-27 SRFI-28 SRFI-29 SRFI-30 SRFI-31 SRFI-34 SRFI-37 SRFI-38 SRFI-39 SRFI-40 SRFI-41 SRFI-42 SRFI-43 SRFI-45 SRFI-47 SRFI-48 SRFI-55 SRFI-57 SRFI-58 SRFI-60 SRFI-61 SRFI-62 SRFI-63 SRFI-66 SRFI-69 SRFI-71 SRFI-72 SRFI-78 SRFI-87 SRFI-88 SRFI-89 SRFI-90 SRFI-95 SRFI-99 SRFI-101 SRFI-102?


This list is based on the document of Version 0, Build 990.

Using the Compiler

Extending the compiler

user-option-pass, user-read-pass, user-preprocessor-pass, user-pass

Using the Interpreter

Macros and procedures implemented in the interpreter

autoload, trace, untrace, &, $

Supported Language

Deviations from the standard

eval, char-ready?

Extensions to the standard

begin, open-input-file, open-output-file, with-input-from-file, with-output-to-file, call-with-input-file, call-with-output-file

Non standard read syntax

#|, #;, #,, #', #:, #<<, #<#

Non-standard macros and special forms

:optional, case-lambda, let-optionals, let-optionals*, and-let*, define-values, fluid-let, let-values, let*-values, letrec-values, parameterize, receive, set!-values, define-constant, define-id-macro, define-inline, define-integrable, define-macro, let-id-macro, let-macro, unless, when

define-record, define-record-printer, record-case

assert, cond-expand, critical-section, ensure, eval-when, include, nth-value, time

Declarations

declare

Interface to external functions and variables

define-foreign-parameter, define-foreign-type, define-foreign-variable, foreign-callback-lambda, foreign-callback-lambda*, foreign-lambda, foreign-lambda*, define-entry-point, define-external, external-pointer, foreign-callback-wrapper

Parameters

case-sensitive, command-line-arguments, error-handler, exit-handler, eval-handler, implicit-exit-handler, reset-handler

Module System

define-module, export, import, import-excluding, files, begin, unit, define-library-implementation, define-library-interface

Unit:library

add1, sub1, bitwise-and, bitwise-ior, bitwise-xor, bitwise-not, arithmetic-shift, fixnum?, fx+, fx-, fx*, fx/, fxmod, fxneg, fxmin, fxmax, fx=, fx>, fx<, fx>=, fx<=, signum

current-error-port, end-of-file, flush-output, port-name, port-position

delete-file, file-exists?, pathname-directory-separator, pathname-extension-separator, rename-file

get-output-string, open-output-string, open-input-string, print-to-string

features, register-feature!, unregister-feature!

get-keyword, keyword?, keyword->string, string->keyword

argv, char-name, current-milliseconds, current-seconds, enable-interrupts, disable-interrupts, errno, error, exit, gc, gensym, getenv, machine-type, make-parameter, port?, print, print*, reset, set-finalizer!, set-gc-report!, software-type, string->uninterned-symbol, system, vector-copy!, void

Unit:eval

eval, load, load-noisily, load-srfi-7-program

read-eval-print-loop

get-line-number, macro?, macroexpand, macroexpand-1, undefine-macro!

define-reader-ctor

Unit:debugger

break

Unit:extras

butlast, chop, compress, flatten, intersperse, tail?

call-with-input-string, call-with-output-string, with-input-from-string, with-output-to-string

fprintf, printf, sprintf

clear-hash-table!, get, hash-table?, hash-table-count, hash-table-for-each, hash-table-ref, hash-table-set!, make-hash-table, put!

list->queue, make-queue, queue?, queue->list, queue-add!, queue-empty? queue-first, queue-last, queue-remove!

merge, merge!, sort, sort!, sorted?

random, randomize

make-input-port, make-output-port, pretty-print, pretty-print-width, read-file, read-line, write-line, read-lines read-string, with-error-output-to-port, with-input-from-port with-output-to-port

string-any, string-capitalize, string-capitalize!, string-concatenate, string-filter, string-downcase, string-upcase, string-downcase!, string-upcase!, string-every, string-index, string-trim, string-left-trim, string-right-trim, string-map, string-map!, string-reverse, string-reverse!, string-split, string-translate, substring-index, substring-index-ci

constantly, complement, compose, flip

Unit:srfi-4

u8vector->byte-vector, s8vector->byte-vector, u16vector->byte-vector, s16vector->byte-vector, u32vector->byte-vector, s32vector->byte-vector, f32vector->byte-vector, f64vector->byte-vector, byte-vector->u8vector, byte-vector->s8vector, byte-vector->u16vector, byte-vector->s16vector, byte-vector->u32vector, byte-vector->s32vector, byte-vector->f32vector, byte-vector->f64vector

Unit:match

match, match-lambda, match-lambda*, match-let, match-let*, match-letrec, match-define' define-structure, define-const-structure' match-error-control

Unit:regex

grep, pattern->regexp, string-match, string-match-positions, string-search, string-search-positions, string-split-fields, string-substitute

Unit:syntax-case

syntax-case, syntax-rules

Unit:srfi-18

thread-quantum, thread-quantum-set!

Unit:format

format

Unit:unistd

create-temporary-file, absolute-pathname?, decompose-pathname, make-pathname, make-absolute-pathname, pathname-directory, pathname-file, pathname-extension, pathname-strip-directory, pathname-strip-extension

change-directory, current-directory, create-directory, delete-directory, directory, directory?, glob

call-with-input-pipe, call-with-output-pipe, close-input-pipe, close-output-pipe, create-pipe, open-input-pipe, open-output-pipe, pipe/buf, with-input-from-pipe, with-output-to-pipe

create-fifo, fifo?

duplicate-fileno, file-close, file-open, file-read, file-select, file-write, fileno/stdin, fileno/stdout, fileno/stderr, open/rdonly, open/wronly, open/rdwr, open/read, open/write, open/creat, open/append, open/excl, open/noctty, open/nonblock, open/trunc, open/sync, open-input-file*, open-output-file*, port->fileno

file-modification-time, file-position, file-size, set-file-position!

current-process-id, parent-process-id, process-execute, process-fork, process-run, process-signal, process-wait

create-symbolic-link, read-symbolic-link,

file-owner, file-permissions, file-read-access?, file-write-access?, file-execute-access?, change-file-mode, change-file-owner, current-user-id, current-group-id, current-effective-user-id, current-effective-group-id, perm/irusr, perm/iwusr,perm/ixusr, perm/irgrp, perm/iwgrp, perm/ixgrp, perm/iroth, perm/iwoth, perm/ixoth, perm/irwxu, perm/irwxg, perm/irwxo, perm/isvtx, perm/isuid, perm/isgid, set-user-id!

file-lock, file-test-lock, file-unlock

set-alarm!, set-signal-handler!, set-signal-mask!, signal/term, signal/kill, signal/int, signal/hup, signal/fpe, signal/ill, signal/segv, signal/abrt, signal/trap, signal/quit, signal/alrm, signal/vtalrm, signal/prof, signal/io, signal/urg, signal/chld, signal/cont, signal/stop, signal/tstp, signal/pipe, signal/xcpu, signal/xfsz, signal/usr1, signal/usr2, signal/winch

current-environment, setenv, unsetenv

map-file-to-memory, unmap-file-from-memory

seconds->local-time, seconds->string, seconds->utc-time, time->string

_exit

errno/perm, errno/noent, errno/srch, errno/intr, errno/io, errno/noexec, errno/badf, errno/child, errno/nomem, errno/acces, errno/fault, errno/busy, errno/notdir, errno/isdir, errno/inval, errno/mfile, errno/nospc, errno/spipe, errno/pipe, errno/again, errno/rofs

file-truncate, get-host-name, set-buffering-mode!, terminal-name, terminal-port?, system-information, user-information

Unit:lolevel

address->pointer, null-pointer, null-pointer?, pointer?, pointer->address

deserialize, serialize

extend-procedure, extended-procedure?, procedure-data, set-procedure-data!

byte-vector, byte-vector?, byte-vector-fill!, byte-vector->list, byte-vector-length, byte-vector-ref, byte-vector-set!, executable-byte-vector->procedure, list->byte-vector, make-byte-vector, make-executable-byte-vector, make-static-byte-vector, static-byte-vector->pointer,

block-ref, block-set!, copy, evict, evicted?, move-memory!, number-of-slots, release

Unit:tinyclos

define-class?, define-generic?, define-method?, add-method?, instance??, make?, make-class?, make-generic?, make-method?, slot-ref?, slot-set!?

class-cpl?, class-direct-slots?, class-direct-supers?, class-of, class-name?, class-slots?, generic-methods?, method-specializers?, method-procedure?, subclass??

allocate-instance?, compute-apply-generic?, compute-apply-methods?, compute-methods?, compute-cpl?, compute-getter-and-setter?, compute-method-more-specific??, compute-slots?, initialize?

describe-object?, print-object?, initialize-slots?

<top>?, <object>?, <class>?, <procedure-class>?, <procedure>?, <entity-class>?, <generic>?, <primitive-class>?, <primitive>?, <void>?, <boolean>?, <symbol>?, <char>?, <vector>?. <pair>?, <number>?, <exact>?, <inexact>?, <string>?, <port>?, <input-port>?, <output-port>?, <byte-vector>?, <u8vector>?, <s8vector>?, <u16vector>?, <s16vector>?, <u32vector>?, <s32vector>?, <f32vector>?, <f64vector>?, <structure>?, <environment>?, <hash-table>?, <queue>?, <time>?, <lock>?, <mmap>?, <condition>?, <end-of-file>?

Additional files

describe, dump, process, report