- This now runs "(setf (readtable-case *readtable*) :invert)",
which enables nice symbol input and output in lowercase.
The "invert" mechanism is kind of a hack in Common Lisp, but it
gets nice results and is completely standard.
- The "appende" function should have (append x y) as the normal case,
so change to that. In practice, these have been optimized out,
so the bug cannot appear in practice, but may as well be clean.
- Determine if guile can handle cond...else. This is standard Scheme,
and chicken Scheme complains if you use cond...#t. Sadly,
guile 1.6 doesn't support it. So we'll try to use it; if it fails,
we will set PATCH_COND_ELSE to a program that fixes it
(patch_cond_else). Normally PATCH_COND_ELSE will be ":", which is a no-op.
This fixes the following error arising on Mac OS X machines:
> sweet-run something.sscp
usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
mktemp [-d] [-q] [-u] -t prefix
/usr/local/bin/sweet-run: line 20: : No such file or directory
chmod: fts_open: No such file or directory
/usr/local/bin/sweet-run: line 30: ./: is a directory
The meat of the solution is by "krinkle" [on Stack Overflow.][1]
[1]: <http://unix.stackexchange.com/a/84980> "Fix or alternative
for mktemp in OS X"
Signed-off-by: elliottcable <me@ell.io>
- Add as delimiters #\' and #\` and #\. These are not required
to be delimiters in Scheme, but they can be, and doing so
means that we can detect syntax errors of very dodgy constructs.
This means that x'y will be considered an error, not a 3-char symbol.
We can already express that as |x'y|, and (x 'y) or x('y) work
for making a list.
- Add type annotations in chicken format. Original version provided
by Joerg F. Wittenberger on Sun, 17 Nov 2013 21:31:34 +0100.
These verify in "chicken -strict-types" mode.
David A. Wheeler had to massage things so guile would skip the annotations.
- Change all final "otherwise" cond clauses, so that instead of using #t
they use "else". Either is legal Scheme, but chicken Scheme emits
warnings on each. Doing it this way removes the warnings.
Reported and patched by Jörg F. Wittenberger, original patch submitted
on Tuesday, 2013-11-12 12:47:33 +0100
- Fix bug in handling EOF during the symbol-reading of internal procedures
read-symbol-elements and read-literal-symbol. Reported by
by Jörg F. Wittenberger on Tuesday, 2013-11-12 12:47:33 +0100
- Fix bug in Scheme set-read-mode; its [no-]fold-case tests
accidentally omitted the "mode" parameter. This was reported
by Jörg F. Wittenberger on Tuesday, 2013-11-12 12:47:33 +0100
- With this change, "local" (build directory) script embeds the
build directory and sets CL_SOURCE_REGISTRY to it.
That way, you can always always run the script and will use the
correct (NOT installed) library.