* symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
exactly what we want to leave in to detect substrings.
(SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
* tags.h: Fix diagrams and comments describing the S tag bit;
remove vestigial remarks about the D tag bit.
(SCM_TYP7, SCM_TYP7S): Rephrased for readability.
* strings.c: Formatting tweaks.
name conflicts with the Qt user interface toolkit.
* threads.m4 (CY_AC_WITH_THREADS): Use new library name.
* configure.in: Same.
* aclocal.m4, configure: Regenerated.
Give more details about the deleted header files, and functions.
Clarify explanation of build-guile.
Make all the syscall changes subheadings of "Changes to Scheme
functions and syntax".
* readline.c, readline.h: New files.
* init.c: #include "readline.h".
(scm_boot_guile_1): Call scm_init_readline, if we have it.
* Makefile.am (libguile_la_SOURCES): Include readline.c.
* Makefile.in: Regenerated.
* scmconfig.h.in: Regenerated, after change to ../configure.
* readline.scm: New module.
* boot-9.scm (repl-reader): New function.
(scm-style-repl): Call repl-reader, instead of doing the reading
ourselves. Remove repl-report-reset; it was never used for
anything.
(top-repl): If we've got the readline primitives, then redefine
repl-reader to use them.
If we've got the readline primitives, import the readline module.
* gh_test_c.c (c_vector_test): some improvements on the vector
routines test.
* gh.h (gh_vector): this used to exist but do the wrong thing.
Now it (almost) does the right thing, though it takes a list
instead of the individual arguments. I need to see how it could
be done right.
(gh_list_to_vector): added this function as a macro. Corresponds
to Scheme's (list->vector ...).
(gh_vector_to_list): added this function as a macro. Corresponds
to Scheme's (vector->list ...).
* gh_data.c (gh_vector_ref): renamed from gh_vref to
gh_vector_ref, so that it resembles the Scheme routines more.
(gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
resembles the Scheme routines more.
(gh_make_vector): this used to be (stupidly) called gh_vector().
This is the right name, since it does the same thing as the Scheme
(make-vector ...) procedure.
Some indentation fixes.
* objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
longer a user field; New field: class_flags.
* objets.c, objects.h: New metaclass: scm_metaclass_operator.
expect-strings to fix the => syntax under the new regex system.
(top): include regex module in define-module statement.
* (error-catching-loop): new local variable "interactive". if
#f, abort terminates the process.
(set-batch-mode?!, batch-mode?): new closures, defined in
error-catching-loop. the names are from scsh.
* boot-9.scm (struct-layout): Use `vtable-index-layout' instead of
`0'.
1997-10-02 Mikael Djurfeldt <mdj@nada.kth.se>
* boot-9.scm (struct-printer, make-struct-printer,
set-struct-printer-in-vtable!, *struct-printer*): Removed.
(record-type-vtable, make-record-type): Don't use make-struct-printer.
(record-type-vtable): User fields "prpr" (printer is no longer a
user field).
(record-type-name, record-type-fields): Decreased slot index by
one; Use `vtable-offset-user'.
* print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test. (NIMP
macros should by convention not test for NIMPness.)
(SCM_COERCE_OPORT): Adjust indentation.
* print.c (scm_valid_oport_value_p): Adjusted indentation; Added
SCM_NIMP test before SCM_PRINT_STATE_P.
* struct.c, struct.h, gc.c: Renamed:
scm_struct_i_layout --> scm_vtable_index_layout
scm_struct_i_vcell --> scm_vtable_index_vcell
scm_struct_i_vtable --> scm_vtable_index_vtable
scm_struct_i_printer --> scm_vtable_index_printer
scm_struct_i_vtable_offset --> scm_vtable_offset_user
* struct.c (scm_print_struct): Use new printer slot; Default
printing: Also output hex code of vtable so that type identity
will be indicated as well.
(scm_init_struct): Updated required_vtable_fields to "pruosrpw";
Removed struct_printer_var; Removed struct-vtable-offset;
(vtable-index-layout, vtable-index-vtable, vtable-index-printer,
vtable-offset-user): New constants.
* struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
(scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
If this slot contains a procedure, use that to print structures of
the type represented by this vtable.
* print.c (scm_iprin1): Don't print arguments of macro
transformers. (They are always: exp env.); Bugfix: Unmemoize
transformer source with correct environment.
there is now only one catch.
(cwdr_outer_body): Removed.
(cwdr_handler): New function.
(scm_internal_cwdr): New function to perform the function of cwdr
but take args that are more useful to C code. Also, the handler
is now invoked *outside* of the new dynamic root, like the docs
say. We no longer have to catch absolutely all errors, the caller
is responsible for using a handler that does not throw, if he
wants that.
(cwdr): Reimplemented in terms of scm_internal_cwdr.
* root.h (scm_internal_cwdr): New prototype.
* root.c (USE_STACKJMPBUF): New define to activate a stack-based
allocation of the jumpbuf of a root continuation. The changes
below are controlled by it. They are now deactivated.
(scm_internal_cwdr): Allocate the scm_contregs on the stack. Set
the JMPBUF of the scm_rootcont to NULL before returning.
(struct scm_print_state) [revealed]: New field.
(scm_print_state_vtable): Make visible to the outside world for
type checking purposes.
(scm_valid_oport_value_p): New prototype.
* print.c (scm_valid_oport_value_p): New function to check whether
a certain value is acceptable as a port argument.
(scm_print_state_vtable): New variable.
(scm_free_print_state): Set `revealed' field to false.
(scm_iprin1): Call user supplied closure printer with
scm_printer_apply. Print in the traditional way when there isn't
one or when it returns #f.
(scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
Accept a port/print-state pair in addition to just a port.
(scm_prin1): Don't return the print_state to the pool when it has
been `revealed'.
(scm_printer_apply): Set `revealed' field of print_state to true.
(scm_init_print): Set scm_print_state_vtable.
(print_state_fluid, print_state_fluid_num): Removed.
when they are non-NULL.
(scm_gc_mark): Likewise, mark only when non-NULL.
* gc.c (scm_done_malloc): New function.
gc.h (scm_done_malloc): New prototype.