Age | Commit message (Collapse) | Author | Files | Lines |
|
The current implementation of srfi-11s let-values allows later clauses
to access and modify variables bound in earlier clauses when the clause
is not a proper list.
* module/srfi/srfi-11.scm (let-values): Fix switched variable names.
* test-suite/tests/srfi-11.test (let-values): Add test checking that the
variable cannot be changed in later clauses.
|
|
* module/srfi/srfi-11.scm (let-values): In the one-clause case, avoid
going through temporary variables.
* module/language/tree-il/inline.scm (inline!): Add another case:
(call-with-values (lambda () ...) (lambda ... ...) -> let-values.
* module/language/tree-il/compile-glil.scm (flatten): Fix a bug
compiling applications in "vals" context.
* module/language/tree-il/analyze.scm (analyze-lexicals): Fix a couple
bugs with let-values and rest arguments.
|
|
* module/language/tree-il.scm (tree-il-fold): Fix for let-values case.
(make-tree-il-folder): New public macro, makes a multi-valued folder
specific to the number of seeds that the user wants.
* module/language/tree-il/optimize.scm (optimize!): Reverse the order of
inline! and fix-letrec!, as the latter might expose opportunities for
the former.
* module/srfi/srfi-11.scm (let-values): Reimplement in terms of
syntax-case, so that its expressions may reference hygienically bound
variables. See the NEWS for the rationale.
(let*-values): An empty let*-values still introduces a local `let'
binding contour.
* module/system/base/syntax.scm (record-case): Yukkkk. Reimplement in
terms of syntax-case. Ug-ly, but see the NEWS again: "Lexical bindings
introduced by hygienic macros may not be referenced by nonhygienic
macros."
|
|
(Still guile-readline to do, but that will all be GPLv3+.)
|
|
Remove #:use-module (ice-9 syncase) from lots of places, as it's no
longer needed.
|
|
* .gitignore: Add gdb-pre-inst-guile.
* configure.in: Add module/srfi/Makefile.
* module/Makefile.am: Add srfi/.
* module/srfi/: SRFI scheme files moved here, and compiled.
* srfi/Makefile.am: Remove the bits about the scheme files.
|