arguments, don't set the car of (command-line) to scm_usage_name,
the prettified name of the guile executable; give it the full
path, the way shells usually handle $0.
makefile variable as a build parameter called LIBS. The
build-guile program will use this, for the time being.
* Makefile.in: Regenerated.
* Makefile.in: Regenerated with automake 1.2a.
separate-fields-after-char, separate-fields-before-char): Call
continuation function, RET, as advertised: with each separated
field a separate argument.
* Makefile.in: Regenerated with automake 1.2a.
`display-error' and `display-backtrace' so that error reporting
won't get into infinite loops if an error occurs during displaying
of the error. This can very easily happen with user supplied
print call-back routines.
Added #include "objects.h"
* eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
Add #include "feature.h".
* ports.h (SCM_EOF_OBJECT_P): New macro predicate.
This test is needed at many places in the code and should be
abstracted. (Motivated by the need of this test in libguiletk.)
* ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
(scm_eval_string), load.c (scm_primitive_load,
scm_read_and_eval_x), gh_eval.c (gh_eval_str):
Use SCM_EOF_OBJECT_P.
* eval.c (scm_init_eval): Add feature `delay'.
registered.
(try-module-dynamic-link): Removed the first test which
corresponds to a call to `try-module-linked'.
(resolve-module): Resolve modules in this order: 1. Already
registered modules (for example those which have been statically
linked), 2. Try to autoload an .scm-file, 3. Try to dynamically
link a .so-file.
length --> string-length. (Thanks to Aleksandar Bakic.)
(separate-fields-discarding-char, separate-fields-after-char,
separate-fields-before-char): Bugfix from Maciej Stachowiak
<mstachow@mit.edu>. Thanks!
* gsubr.c: New global symbol scm_i_inner_name.
* debug.c (scm_procedure_name): Try procedure property
`inner-name' if `name' fails.
* print.c (scm_iprin1): Use scm_macro_name.
* eval.c (scm_m_define): Give names to macros as well; Only the
first top-level definition gives a procedure/macro a name.
Otherwise confusing names can turn up in backtraces.
(SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
`name'; Give names to macros as well.
* procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
(scm_macro_transformer): Use SCM_CLOSUREP instead of
scm_closure_p.
Should be used inside the (ice-9 syncase) module with (use-syntax
syncase) and with the current directory containing the psyntax.ss
source.
Added hack to transfer syntactic information from the builtin
variable `define' to the slib version if module (ice-9 slib) has
been loaded.
* slib.scm: Added hack which transfers syntactic information from
the builtin variable `define' to the slib version if module (ice-9
syncase) has been loaded. This is necessary to get correct
expansion inside the slib module.
* psyntax.ss (build-let, build-named-let): New output
constructors.
(build-lexical-var): Seed gensym with symbolic name.
(self-evaluating?): Add keywords among self-evaluating types.
(let): New core form.
(if): Removed from core language.
(or, and, let, cond): Removed syntactic definitions.
(sc-expand3): New procedure: Expander which takes optional mode
and eval-syntactic-expanders-when arguments.
* syncase.scm (psyncomp): New procedure: Recompiles psyntax.pp.
Should be used inside the (ice-9 syncase) module with (use-syntax
syncase) and with the current directory containing the psyntax.ss
source.
Added hack to transfer syntactic information from the builtin
variable `define' to the slib version if module (ice-9 slib) has
been loaded.
procedures;
(prinmacro): Removed. The code has been moved/merged into print.c
in order to decrease code redundancy. We want macros to print in
a way equivalent to procedures, and it would be silly to duplicate
the required code. (We don't want to maintain two places.)
(macrosmob): Print field is now a NULL pointer.
* eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
scm_macro_transformer): New prototypes.
(scm_tc16_macro): Declared.
* * print.c (scm_iprin1): Added code for printing of macros. Macros
are now printed in a way equivalent to procedures.
* syncase.scm (putprop, getprop): Modified to use the object
properties of the variable object corresponding to the symbol;
This way we can ride on the mechanisms of the module system.
Changed `builtin-variable' calls to `define-public' calls.
Setup the hooks sc-expand and sc-interface.
* boot-9.scm (sc-interface, sc-expand): New builtin variables.
(set-current-module): Switch to and from sc-expand as
scm:eval-transformer when going into and out of modules using
syncase macros.
(module-use!): Set scm:eval-transformer to sc-expand when adding
the syncase interface.
gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
gh_equal_p): Use SCM_NFALSEP, instead of testing against
SCM_BOOL_T. Any non-false value is true.
scm_gensym): Added prototypes.
* symbols.c (scm_gensym): New function. This will speed up
certain types of applications (such as macro systems) which
generate lots of symbols.