4ef6907851
Instead of passing around references to the environment, just treat it as a global. The old way was just the remains of an idea to make the environment immutable and keep the interpreter from manipulating any global state. By making everything global and mutable, we will have less impedance mismatch with POSIX going forward. The following changelog is only a sketch, since nearly every function has changed. * geesh/environment.scm: Replace this module with one that treats the environment as a global resource. * tests/environment.scm: Delete file. * Makefile.am: Remove it from the list of tests. * geesh/shell.scm, geesh/eval.scm, geesh/repl.scm, geesh/word.scm, geesh/built-ins/break.scm, geesh/built-ins/continue.scm, geesh/built-ins/echo.scm, geesh/built-ins/export.scm, geesh/built-ins/false.scm, geesh/built-ins/read.scm, geesh/built-ins/readonly.scm, geesh/built-ins/set.scm, geesh/built-ins/true.scm, geesh/built-ins/unset.scm: Remove 'env' parameters and use the new environment module. * .dir-locals.el: Update indentation of functions that no longer take an 'env' parameter and add with-arguments, with-environ, and with-variables from the new environment module. * tests/shell.scm, tests/word.scm: Update environment creation and manipulation in tests. |
||
---|---|---|
build-aux | ||
doc | ||
geesh | ||
scripts | ||
tests | ||
tools | ||
.dir-locals.el | ||
.gitignore | ||
COPYING | ||
Makefile.am | ||
README | ||
bootstrap | ||
configure.ac | ||
guix.scm | ||
pre-inst-env.in |
README
Geesh is a shell interpreter written in Guile Scheme.