The cl-cont Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-cont Reference Manual

This is the cl-cont Reference Manual, version 0.3.8, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 03:11:06 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

1.1 cl-cont

Maintainer

Leslie P. Polzer <polzer@gnu.org>

Author

Slava Akhmechet, Stephen Compall <s11@member.fsf.org>

License

LLGPL

Description

A library that implements continuations by
transforming Common Lisp code to continuation passing style.

Version

0.3.8

Dependencies
Source

cl-cont.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

2 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

2.1 cl-cont/src

Parent

cl-cont (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 cl-cont.asd

Location

cl-cont.asd

Systems

cl-cont (system)

Packages

cl-cont-asd


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 cl-cont/src/cont.lisp

Parent

src (module)

Location

src/cont.lisp

Packages

cl-cont

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 cl-cont/src/special-transformers.lisp

Dependency

cont.lisp (file)

Parent

src (module)

Location

src/special-transformers.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 cl-cont/src/helper-transformers.lisp

Dependencies
Parent

src (module)

Location

src/helper-transformers.lisp

Exported Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.5 cl-cont/src/walker.lisp

Dependencies
Parent

src (module)

Location

src/walker.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 cl-cont-asd

Source

cl-cont.asd

Use List

Previous: , Up: Packages   [Contents][Index]

4.2 cl-cont

A library that implements continuations by transforming Common Lisp code to continuation passing style.

Source

cont.lisp (file)

Nickname

cont

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: defcpstransformer NAME LAMBDA-LIST &body BODY

A macro that allows defining special case CPS transformers.

Package

cl-cont

Source

cont.lisp (file)

Macro: defun/cc NAME ARGLIST &body BODY

A helper macro to define a function that supports CALL/CC.

Package

cl-cont

Source

helper-transformers.lisp (file)

Macro: lambda/cc ARGS-LIST &body BODY

A helper macro that wraps LAMBDA definitions with WITH-CALL/CC.

Package

cl-cont

Source

special-transformers.lisp (file)

Macro: let/cc K &body BODY

A shortcut for CALL/CC.

Package

cl-cont

Source

special-transformers.lisp (file)

Macro: with-call/cc &body BODY

Gives access to CALL/CC by transforming BODY to continuation passing style.

Package

cl-cont

Source

walker.lisp (file)

Macro: without-call/cc &body BODY

A macro that allows writing macros to produce non-CPS code uniformly within and without with-call/cc.

Package

cl-cont

Source

helper-transformers.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Functions

Function: call/cc CC

Implements delimited continuations.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: copy-transformation-context CTX

Copies transformation context. This is used for cases when the context has to be ’frozen’ in time and used at a later transformation stage.

Package

cl-cont

Source

cont.lisp (file)

Function: cpstransformer NAME

Returns a CPS transformer named by a given NAME.

Package

cl-cont

Source

cont.lisp (file)

Function: expr->cps EXPR K-EXPR ENV

Transforms expression to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: expr-sequence->cps EXPR-LIST K-EXPR ENV

Converts a list of expressions to be evaluated in order to CPS style.

Package

cl-cont

Source

special-transformers.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *special-form-transformers*

A hashtable that maps symbols to functions. Each function acts as a transformer of a special form and must accept three arguments: an s-expression to transform to CPS-style, an an s-expression to continue to, and an environment object.

Package

cl-cont

Source

cont.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: apply/cc FDESIGNATOR K &rest ARGS

Implements FUNCALL for a CPS converter.

Package

cl-cont

Source

special-transformers.lisp (file)

Macro: expand-form FORM

A helper macro that expands forms by considering local macros.

Package

cl-cont

Source

cont.lisp (file)

Macro: funcall/cc FDESIGNATOR K &rest ARGS

Implements FUNCALL for a CPS converter.

Package

cl-cont

Source

special-transformers.lisp (file)

Macro: transform-forms-in-env FORMS K-EXPR TRANSF-ENV

Macroexpands code within a form that sets up a lexical environment and runs a CPS code walker on it.

Package

cl-cont

Source

special-transformers.lisp (file)

Macro: with-local-function-names NAMES &body BODY

Runs BODY within a transformation environment in which functions named by NAMES are declared as local.

Package

cl-cont

Source

special-transformers.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: accum-mc-sequence->cps EXPR-LIST FN K-EXPR ARGS ENV

Converts a list of expressions to be evaluated in order to CPS style and collects their results (including multiple values).

Package

cl-cont

Source

special-transformers.lisp (file)

Function: application->cps APP-SYM CONS K-EXPR ARGS ENV

Transforms a function application to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: apply->cps CONS K-EXPR ARGS ENV

Transforms APPLY to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: atom->cps ATOM K-EXPR

Transforms an atom to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: call/cc-context-p OBJECT
Package

cl-cont

Source

cont.lisp (file)

Function: cons->cps CONS K-EXPR ENV

Transforms a cons to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: copy-call/cc-context INSTANCE
Package

cl-cont

Source

cont.lisp (file)

Function: copy-hash-table HT

Shallow hashtable copy.

Package

cl-cont

Source

cont.lisp (file)

Function: ctx-block-tags INSTANCE
Function: (setf ctx-block-tags) VALUE INSTANCE
Package

cl-cont

Source

cont.lisp (file)

Function: ctx-go-tags INSTANCE
Function: (setf ctx-go-tags) VALUE INSTANCE
Package

cl-cont

Source

cont.lisp (file)

Function: ctx-local-functions INSTANCE
Function: (setf ctx-local-functions) VALUE INSTANCE
Package

cl-cont

Source

cont.lisp (file)

Function: declare-function-names-local NAMES

Declares function names local in a transformation environment.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: duplicates-p SEQUENCE &key KEY TEST

Returns true if there are duplicate elements in the sequence, false otherwise.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: extract-declarations EXPR-LIST

Returns a list of declarations extracted from the EXPR-LIST.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: fdesignator-to-function/cc FDESIGNATOR

Converts a function designator to a function/cc.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: funcall->cps CONS K-EXPR ARGS ENV

Transforms FUNCALL to CPS style.

Package

cl-cont

Source

walker.lisp (file)

Function: group-tagbody-forms EXPR-LIST

Groups TAGBODY forms into a list where each item is a list with CAR being the go-tag name (or nil for default first tag), and CDR is a list of expressions for the tag.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: lambda-expr->cps CONS K-EXPR ENV

Converts a LAMBDA expression to CPS style.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: let*-varlist->cps VARLIST LET-BODY K-EXPR ENV

Converts a list of variables from a LET* expression to CPS style.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: let-varlist->cons-pairs VARLIST

Converts a list of LET vars into name/value cons pairs.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: make-call/cc-context &key (BLOCK-TAGS BLOCK-TAGS) (GO-TAGS GO-TAGS) (LOCAL-FUNCTIONS LOCAL-FUNCTIONS)
Package

cl-cont

Source

cont.lisp (file)

Function: make-funcallable FUNCTION

Creates an instance of FUNCALLABLE/CC.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: named-tb-forms>cps FORMS K-EXPR ENV

Takes a list of named TAGBODY forms and converts CAR form to CPS.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: remove-declarations EXPR-LIST

Removes declarations from the EXPR-LIST.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: setq->cps SETQ-PAIRS K-EXPR ENV

Converts a list of SETQ pairs to CPS style.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: transform-local-function FN ENV IN-ENV-P

Transforms a local (FLET or LABELS) function to CPS style.

Package

cl-cont

Source

special-transformers.lisp (file)

Function: undeclare-function-names-local NAMES

Undeclares function names local in a transformation environment.

Package

cl-cont

Source

special-transformers.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: f/cc-function OBJECT
Generic Function: (setf f/cc-function) NEW-VALUE OBJECT
Package

cl-cont

Methods
Method: f/cc-function (FUNCALLABLE/CC funcallable/cc)
Method: (setf f/cc-function) NEW-VALUE (FUNCALLABLE/CC funcallable/cc)

A function object that accepts a continuation argument.

Source

special-transformers.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Structures

Structure: call/cc-context ()

A structure that represents a context used during call/cc transformation.

Package

cl-cont

Source

cont.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: block-tags
Initform

(make-hash-table)

Readers

ctx-block-tags (function)

Writers

(setf ctx-block-tags) (function)

Slot: go-tags
Initform

(make-hash-table)

Readers

ctx-go-tags (function)

Writers

(setf ctx-go-tags) (function)

Slot: local-functions
Readers

ctx-local-functions (function)

Writers

(setf ctx-local-functions) (function)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.6 Classes

Class: funcallable/cc ()

A structure that represents a funcallable object

Package

cl-cont

Source

special-transformers.lisp (file)

Direct superclasses

funcallable-standard-object (class)

Direct methods
  • describe-object (method)
  • documentation (method)
  • documentation (method)
  • f/cc-function (method)
  • f/cc-function (method)
Direct slots
Slot: function

A function object that accepts a continuation argument.

Initargs

:function

Readers

f/cc-function (generic function)

Writers

(setf f/cc-function) (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L   M  
Index Entry  Section

C
cl-cont.asd: The cl-cont<dot>asd file
cl-cont/src: The cl-cont/src module
cl-cont/src/cont.lisp: The cl-cont/src/cont<dot>lisp file
cl-cont/src/helper-transformers.lisp: The cl-cont/src/helper-transformers<dot>lisp file
cl-cont/src/special-transformers.lisp: The cl-cont/src/special-transformers<dot>lisp file
cl-cont/src/walker.lisp: The cl-cont/src/walker<dot>lisp file

F
File, Lisp, cl-cont.asd: The cl-cont<dot>asd file
File, Lisp, cl-cont/src/cont.lisp: The cl-cont/src/cont<dot>lisp file
File, Lisp, cl-cont/src/helper-transformers.lisp: The cl-cont/src/helper-transformers<dot>lisp file
File, Lisp, cl-cont/src/special-transformers.lisp: The cl-cont/src/special-transformers<dot>lisp file
File, Lisp, cl-cont/src/walker.lisp: The cl-cont/src/walker<dot>lisp file

L
Lisp File, cl-cont.asd: The cl-cont<dot>asd file
Lisp File, cl-cont/src/cont.lisp: The cl-cont/src/cont<dot>lisp file
Lisp File, cl-cont/src/helper-transformers.lisp: The cl-cont/src/helper-transformers<dot>lisp file
Lisp File, cl-cont/src/special-transformers.lisp: The cl-cont/src/special-transformers<dot>lisp file
Lisp File, cl-cont/src/walker.lisp: The cl-cont/src/walker<dot>lisp file

M
Module, cl-cont/src: The cl-cont/src module

Jump to:   C   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   C   D   E   F   G   L   M   N   R   S   T   U   W  
Index Entry  Section

(
(setf ctx-block-tags): Internal functions
(setf ctx-go-tags): Internal functions
(setf ctx-local-functions): Internal functions
(setf f/cc-function): Internal generic functions
(setf f/cc-function): Internal generic functions

A
accum-mc-sequence->cps: Internal functions
application->cps: Internal functions
apply->cps: Internal functions
apply/cc: Internal macros
atom->cps: Internal functions

C
call/cc: Exported functions
call/cc-context-p: Internal functions
cons->cps: Internal functions
copy-call/cc-context: Internal functions
copy-hash-table: Internal functions
copy-transformation-context: Exported functions
cpstransformer: Exported functions
ctx-block-tags: Internal functions
ctx-go-tags: Internal functions
ctx-local-functions: Internal functions

D
declare-function-names-local: Internal functions
defcpstransformer: Exported macros
defun/cc: Exported macros
duplicates-p: Internal functions

E
expand-form: Internal macros
expr->cps: Exported functions
expr-sequence->cps: Exported functions
extract-declarations: Internal functions

F
f/cc-function: Internal generic functions
f/cc-function: Internal generic functions
fdesignator-to-function/cc: Internal functions
funcall->cps: Internal functions
funcall/cc: Internal macros
Function, (setf ctx-block-tags): Internal functions
Function, (setf ctx-go-tags): Internal functions
Function, (setf ctx-local-functions): Internal functions
Function, accum-mc-sequence->cps: Internal functions
Function, application->cps: Internal functions
Function, apply->cps: Internal functions
Function, atom->cps: Internal functions
Function, call/cc: Exported functions
Function, call/cc-context-p: Internal functions
Function, cons->cps: Internal functions
Function, copy-call/cc-context: Internal functions
Function, copy-hash-table: Internal functions
Function, copy-transformation-context: Exported functions
Function, cpstransformer: Exported functions
Function, ctx-block-tags: Internal functions
Function, ctx-go-tags: Internal functions
Function, ctx-local-functions: Internal functions
Function, declare-function-names-local: Internal functions
Function, duplicates-p: Internal functions
Function, expr->cps: Exported functions
Function, expr-sequence->cps: Exported functions
Function, extract-declarations: Internal functions
Function, fdesignator-to-function/cc: Internal functions
Function, funcall->cps: Internal functions
Function, group-tagbody-forms: Internal functions
Function, lambda-expr->cps: Internal functions
Function, let*-varlist->cps: Internal functions
Function, let-varlist->cons-pairs: Internal functions
Function, make-call/cc-context: Internal functions
Function, make-funcallable: Internal functions
Function, named-tb-forms>cps: Internal functions
Function, remove-declarations: Internal functions
Function, setq->cps: Internal functions
Function, transform-local-function: Internal functions
Function, undeclare-function-names-local: Internal functions

G
Generic Function, (setf f/cc-function): Internal generic functions
Generic Function, f/cc-function: Internal generic functions
group-tagbody-forms: Internal functions

L
lambda-expr->cps: Internal functions
lambda/cc: Exported macros
let*-varlist->cps: Internal functions
let-varlist->cons-pairs: Internal functions
let/cc: Exported macros

M
Macro, apply/cc: Internal macros
Macro, defcpstransformer: Exported macros
Macro, defun/cc: Exported macros
Macro, expand-form: Internal macros
Macro, funcall/cc: Internal macros
Macro, lambda/cc: Exported macros
Macro, let/cc: Exported macros
Macro, transform-forms-in-env: Internal macros
Macro, with-call/cc: Exported macros
Macro, with-local-function-names: Internal macros
Macro, without-call/cc: Exported macros
make-call/cc-context: Internal functions
make-funcallable: Internal functions
Method, (setf f/cc-function): Internal generic functions
Method, f/cc-function: Internal generic functions

N
named-tb-forms>cps: Internal functions

R
remove-declarations: Internal functions

S
setq->cps: Internal functions

T
transform-forms-in-env: Internal macros
transform-local-function: Internal functions

U
undeclare-function-names-local: Internal functions

W
with-call/cc: Exported macros
with-local-function-names: Internal macros
without-call/cc: Exported macros

Jump to:   (  
A   C   D   E   F   G   L   M   N   R   S   T   U   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *  
B   F   G   L   S  
Index Entry  Section

*
*special-form-transformers*: Internal special variables

B
block-tags: Internal structures

F
function: Internal classes

G
go-tags: Internal structures

L
local-functions: Internal structures

S
Slot, block-tags: Internal structures
Slot, function: Internal classes
Slot, go-tags: Internal structures
Slot, local-functions: Internal structures
Special Variable, *special-form-transformers*: Internal special variables

Jump to:   *  
B   F   G   L   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   F   P   S  
Index Entry  Section

C
call/cc-context: Internal structures
cl-cont: The cl-cont system
cl-cont: The cl-cont package
cl-cont-asd: The cl-cont-asd package
Class, funcallable/cc: Internal classes

F
funcallable/cc: Internal classes

P
Package, cl-cont: The cl-cont package
Package, cl-cont-asd: The cl-cont-asd package

S
Structure, call/cc-context: Internal structures
System, cl-cont: The cl-cont system

Jump to:   C   F   P   S