The guile-2.0.9 compiler doesn't preserve the distinctness of mutable
objects that are referenced in code via the read-eval (#.) facility.
(I'm not mutating the code itself, only quoted objects.) The interpreter,
and for comparison guile-1.8, do preserve object identity, allowing
read-eval to be u
"guild list" is meant to list the available subcommands within guild.
It actually shows an empty list:
$ GUILE=/usr/bin/guile-2.0 guild list
Usage: guild COMMAND [ARGS]
Run command-line scripts provided by GNU Guile and related programs.
Commands:
For help on a specific command, try "guild help
The automatic cache of compiled versions of scripts in guile-2.0.9
identifies scripts mainly by name, and partially by mtime. This is not
actually sufficient: it is easily misled by a pathname that refers to
different files at different times. Test case:
$ echo '(display "aaa\n")' >t13
$ echo '(
When guile is constructing error messages that display offending objects,
in version 2.0.9 it never abbreviates long or deep structures. This can
easily lead to pathologically-long messages that take stupid amounts of
time and memory to construct and to display. By contrast, guile-1.8
applies abb
In guile 2.0.9, if an error is signalled in the interpreter, and the
stack contains in a certain position an object whose unabbreviated print
representation is very large, then the process of displaying the stack
trace will take a huge amount of time and memory, pausing in the middle
of output, eve
The "Integers" node of the guile info document contains this gem (source
in doc/ref/api-data.texi):
(integer? +inf.0)
=> #t
Actual guile-2.0.9 behaviour:
scheme@(guile-user)> (integer? +inf.0)
$16 = #f
The doc example matches the behaviour of guile-1.8, which classifies
+inf
"guild help COMMAND" crashes for most existing guild subcommands.
For example:
$ GUILE=/usr/bin/guile-2.0 guild help frisk
Usage: guild frisk OPTION...
Show dependency information for a module.
Backtrace:
In ice-9/boot-9.scm:
157: 8 [catch #t # ...]
In unknown file:
?: 7 [apply-smob/1 #]
In i
Commit 5e7918077a4015768a352ab19e4a8e94531bc8aa says
A note on the rationale for (* 0 +inf.0) being a NaN and not exact 0:
The R6RS requires that (/ 0 0.0) return a NaN value, and that (/ 0.0)
return +inf.0. We would like (/ x y) to be the same as (* x (/ y)),
This identity doe
Guile 2.0.9 has a facility to automatically cache a compiled version
of any Scheme source file that it loads, and it wants the world to
know about it! If auto-compilation is enabled, which it is by default,
then when guile loads a file (that was not already compiled) it emits a
banner describing t
guile-2.0.9's compiler has some inconvenient restrictions, relative to
its interpreter. Where the compiler is automatically applied to scripts,
the restrictions aren't a serious problem, because if compilation fails
then guile falls back to interpreting the script. But in an interactive
REPL sess
10 matches
Mail list logo