Generalize "scheme-pointer" foreign type to allow giving a type for the generated pointer variable holding the argument.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Add full lambda list support for define-values and set!-values

Previously, the macro transformers for define-values and set!-values
only allowed proper lists as formals. This adds full lambda list
support, so that symbols and improper lists can be used as well.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Update manual to mention basic lambda list syntax for define-values, set!-values.

Make the naming of the expressions consistent with receive, and point
out the similarity of the forms.
Add full lambda list support for define-values forms in internal definitions

Since ##sys#canonicalize-body does its own rewriting of internal
definitions (including define-values), this factors the logic for
expanding multi-valued assignments out of the set!-values transformer
and into a dedicated procedure that both can use for binding variables.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Add full lambda list support for letrec-values bindings

Use the logic for multi-value assignment expansion already shared by
set!-values and ##sys#canonicalize-body for letrec-values, too.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Clarify that let[(*|rec)]-values can use dotted tail notation (a
little tricky to make a BNF-like production for this)
Allow functor-arguments to be optional and having defaults, and use the correct export-lists when matching functor arguments.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Add a few more tests for define-values: internal bindings should "shadow" toplevel ones
Enforce consistent official spelling of CHICKEN to be all-caps in code, manual and README (#362)

Signed-off-by: felix <felix@call-with-current-continuation.org>
Merge remote-tracking branch 'origin/master'
Merge branch 'master' into cmake-build