* boot-9.scm (read-path-list-notation,
read-path-list-notation-warning): Deleted.
Don't register read-path-list-notation-warning as a reader for
objects starting with '#/'.
system. Here's a simple version for the old module system:
* boot-9.scm (module-observers, module-weak-observers,
module-observer-id, set-module-observers!,
set-module-observer-id!): New accessors.
(module-type): Added slots `observers', `weak-observers' and
`observer-id'.
(module-observe, module-observe-weak, module-unobserve,
module-modified!): New procedures.
(module-make-local-var!, module-add!, module-remove!,
module-clear!, module-define!, module-use!): Call module-modified!.
support.
* guile-readline: New directory, see ChangeLog there.
* configure.in: Cause configure to descend into guile-readline
dir.
* Makefile.am: Likewise for make.
* NEWS: Explain how to activate the readline support.
* configure, Makefile.in, aclocal.m4: Regenerated.
at multiple calls to read.
(promtp2): Variable for continued-lines prompt.
(make-readline-port): Use prompt2.
(set-readline-prompt!): New optional arg which sets
continued-lines prompt.
that was introduced to fix the $ problem:
* expect.scm (expect): call the match proc an extra time at end
of file and set the eof? argument appropriately. call
expect-eof-proc only if the last call didn't match.
* expect.scm (expect-strings): change port to eof? in match proc.
* expect.scm (expect-regexec): take an eof indicator as an argument
instead of a port.
know why it was missing. also don't peek for end of lines
unless expect-strings-exec-flags contains regexp/noteol.
(expect-strings-exec-flags): initialise to regexp/noteol.
* Makefile.in: Regenerated.
* popen.scm: applied fixes from Greg Harvey. use a guardian
and a gc-thunk so that cleanup is done if a pipe is garbage
collected or closed with close-port. use a weak hash-table instead of
an alist.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.
(expect-strings): use peek-char to get the next char. this has
the advantage of getting the handling of $ "correct", but the
disadvantage of needing to get (and maybe block for) an extra character
from the port when it may not be needed. hence:
* (expect-strings-exec-flags): new variable/parameter, supplies
flags for regexp-exec. if this includes regexp/noteol, then
automatic regexp/noteol handling (requiring an extra peeked char)
is enabled. default is regexp/noteol.
* (expect-strings-compile-flags): new variable/parameter, supplies
flags for make-regexp. default is regexp/newline.
* * expect.scm (expect): call the match proc with an extra char,
peeked from the stream.
(expect-strings): build a match proc which takes the extra char.
(expect-regexec): take an extra arg "eof-next?" and use it
to decide whether the regexp/noteol flag should be added.
(error-catching-loop): likewise.
* boot-9.scm (scm-style-repl): -read: don't call
consume-trailing-whitespace if val is eof object. Allows
exiting repl with single control-D.
* boot-9.scm (error-catching-loop): don't force output within
error catching loop after quit received.
(top-repl): flush all ports when the repl terminates.
* boot-9.scm (error-catching-loop): flush all ports before
primitive exit if non-interactive.
force-output on current-error-port if interactive.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.
(which could be dynamically linked in the future anyway).
* Makefile.am (ice9_sources): Don't list string-case.scm.
* Makefile.in: Regenerated.
* format.scm: Don't bother importing (ice-9 string-case).
changes:
(format:format): If the first argument is the format string, stick
a #f on the front of it, so it is now a valid CL format argument
list. This is easier than changing everyplace else (like the
error formatter) that expects it to be in CL form. The other
clause which explicitly tests for this case is now dead code.
(format:format-work): Allow `@' and `:' in either order, as per
modern CL behavior.
(format:num->cardinal): Don't assume that an elseless if returns
'() when the condition is false.