allow case-lambda expressions with no clauses
authorAndy Wingo <wingo@pobox.com>
Sat, 2 Mar 2013 18:04:47 +0000 (19:04 +0100)
committerAndy Wingo <wingo@pobox.com>
Sat, 9 Mar 2013 10:16:31 +0000 (11:16 +0100)
commit19113f1ca7a747de06d7b43c6c1eca4cd58d05e5
treeaf7f198811ab1457763280792f10526db6ae4129
parent9ddf06dceee3a2bf5480a3e261ec01aaa91a1f67
allow case-lambda expressions with no clauses

* module/ice-9/psyntax-pp.scm:
* module/ice-9/psyntax.scm (case-lambda, case-lambda*): Allow 0
  clauses.

* module/language/scheme/decompile-tree-il.scm (do-decompile):
  (choose-output-names):
* module/language/tree-il.scm (unparse-tree-il):
  (tree-il-fold, post-order!, pre-order!):
* module/language/tree-il/effects.scm (make-effects-analyzer):
* module/language/tree-il/cse.scm (cse):
* module/language/tree-il/debug.scm (verify-tree-il):
* module/language/tree-il/peval.scm (peval): Allow for lambda-body to be
  #f.

* libguile/memoize.c (memoize):
* module/language/tree-il/canonicalize.scm (canonicalize!): Give a body
  to empty case-lambda before evaluating it or compiling it,
  respectively.

* test-suite/tests/optargs.test ("case-lambda", "case-lambda*"): Add
  tests.
libguile/memoize.c
module/ice-9/psyntax-pp.scm
module/ice-9/psyntax.scm
module/language/scheme/decompile-tree-il.scm
module/language/tree-il.scm
module/language/tree-il/canonicalize.scm
module/language/tree-il/cse.scm
module/language/tree-il/debug.scm
module/language/tree-il/effects.scm
module/language/tree-il/peval.scm
test-suite/tests/optargs.test