Jim Blandy [Mon, 23 Nov 1998 10:27:27 +0000 (10:27 +0000)]
*** empty log message ***
Jim Blandy [Mon, 23 Nov 1998 10:24:35 +0000 (10:24 +0000)]
* numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest,
scm_logbit_p): Do the computation in ulongs. This is not as nice
as doing it in bignums, but at least it's good enough for
manipulating flags in 32-bit words. (Thanks to Jim Wilson.)
Jim Blandy [Mon, 23 Nov 1998 10:24:09 +0000 (10:24 +0000)]
* regex-posix.c (scm_regexp_exec): Reliably mark unmatched
subexpressions. (Thanks to Charbel Jacquin.)
Mikael Djurfeldt [Mon, 23 Nov 1998 03:05:57 +0000 (03:05 +0000)]
Fix
Mikael Djurfeldt [Mon, 23 Nov 1998 02:39:47 +0000 (02:39 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 23 Nov 1998 02:36:43 +0000 (02:36 +0000)]
* boot-9.scm (beautify-user-module!): Beautify also if public
interface is set to the module itself. In this way we can use
beautify-user-module! to beautify a module prepared for object
code.
(process-define-module): Special case: Try to load object code as
well if a module does :use-module on itself.
* boot-9.scm: Bugfix: Since boot-9.scm is now loaded from
invoke_main_func, we can no longer be sure that all modules have
been registered when boot-9.scm is loaded.
(register-modules): New function: Register and tag modules
registered by scm_register_module_xxx since last call to this
function. Modules are tagged with the dynamic object passed as
argument. (Already linked modules should be tagged with #f.)
(init-dynamic-module, link-dynamic-module): Call register-modules
first to register linked modules.
* boot-9.scm (init-dynamic-module): Remove module from
registered-modules as soon as possible in case we are recursively
invoked; Set public interface before doing the dynamic-call.
* boot-9.scm (map-in-order): Removed (replaced by scm_serial_map).
(abort-hook, before-error-hook, after-error-hook,
before-backtrace-hook, after-backtrace-hook, before-read-hook,
after-read-hook, exit-hook): Make hooks with `make-hook'.
* boot-9.scm: Make hooks first class citizens and make them easier
to use from C:
(make-hook, add-hook!, remove-hook!, run-hooks): Moved to
libguile/feature.c.
* boot-9.scm: Added warnings about bindings used in
libguile/modules.c: the-module, set-current-module,
make-modules-in, beautify-user-module!, module-eval-closure.
Mikael Djurfeldt [Mon, 23 Nov 1998 02:35:11 +0000 (02:35 +0000)]
* modules.c (scm_make_module): Beautify the module.
Mikael Djurfeldt [Mon, 23 Nov 1998 02:34:49 +0000 (02:34 +0000)]
* feature.c, feature.h (scm_make_hook, scm_add_hook_x,
scm_remove_hook_x, scm_run_hooks): Moved from ice-9/boot-9.scm.
(scm_make_named_hook): New function.
* feature.c: Added #include "eval.h".
Mikael Djurfeldt [Sun, 22 Nov 1998 12:06:41 +0000 (12:06 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sun, 22 Nov 1998 12:05:35 +0000 (12:05 +0000)]
Updated
Mikael Djurfeldt [Sun, 22 Nov 1998 12:05:14 +0000 (12:05 +0000)]
* modules.c, modules.h: New files: C interface to modules. (This
is necessary in order to interface the object system to Guile
properly. The guts of these modules will be replaced by the new
module system in the future.)
Mikael Djurfeldt [Sun, 22 Nov 1998 12:04:27 +0000 (12:04 +0000)]
* init.c: Added #include "modules.h"
(scm_boot_guile_1): Call scm_init_modules.
(invoke_main_func): Call scm_post_boot_init_modules.
Mikael Djurfeldt [Sun, 22 Nov 1998 12:04:00 +0000 (12:04 +0000)]
* Makefile.am: Added modules.c, modules.x, modules.h.
Mikael Djurfeldt [Sun, 22 Nov 1998 12:03:34 +0000 (12:03 +0000)]
* boot-9.scm: Added warnings about bindings used in
libguile/modules.c: the-module, set-current-module,
make-modules-in, module-eval-closure.
Jim Blandy [Sat, 21 Nov 1998 19:19:15 +0000 (19:19 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 21 Nov 1998 17:02:36 +0000 (17:02 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 21 Nov 1998 17:01:48 +0000 (17:01 +0000)]
* procs.c: #include "objects.h"
(scm_procedure_p): Return #t also on structs which are operators.
Mikael Djurfeldt [Sat, 21 Nov 1998 17:01:33 +0000 (17:01 +0000)]
* objects.c (scm_init_objects): Renamed <standard-metaclass>,
<operator-metaclass> and <entity-class> to <standard-class>,
<operator-class> and <entity> in order to conform with STKlos
naming conventions.
Mikael Djurfeldt [Sat, 21 Nov 1998 17:00:44 +0000 (17:00 +0000)]
* eval.c (SCM_CEVAL): Jump to badfun if trying to apply a struct
which isn't an operator.
(SCM_APPLY): Ditto, but jump to badproc.
Mikael Djurfeldt [Fri, 20 Nov 1998 17:14:41 +0000 (17:14 +0000)]
* evalext.c (scm_definedp): Removed check for isyms; Added a
second optional argument: It is now possible to supply an
evaluation environment in which to look for the symbol.
Mikael Djurfeldt [Fri, 20 Nov 1998 17:14:07 +0000 (17:14 +0000)]
* eval.c (SCM_CEVAL): Allow structs implanted in code.
Previously, structs implanted in code were interpreted as forms
the operator of which was a gloc. We solve this by checking for
the zero in the emulated vcell in the struct vtable. Since
implanted structs always will look like forms with a gloc
operator, execution will only be slowed down by maximally one
extra test-and-branch per application.
Mikael Djurfeldt [Fri, 20 Nov 1998 17:12:45 +0000 (17:12 +0000)]
* boot-9.scm (the-environment): New special form: Returns an
object representing the current local evaluation environment.
This object can be used in `local-eval' and `defined?'.
Mikael Djurfeldt [Thu, 19 Nov 1998 08:15:22 +0000 (08:15 +0000)]
* coop.c (coop_condition_variable_wait): Removed
(coop_condition_variable_wait_mutex): Folded logic of
coop_mutex_unlock into coop_condition_variable_wait_mutex to
prevent condvar signal lossage. Previously, another thread could
start to run after unlocking the mutex but before putting the
current thread on the wait queue. If that thread then would
signal the first, the signal would be lost. (Thanks to Christian
Lynbech.)
Mikael Djurfeldt [Thu, 19 Nov 1998 04:48:50 +0000 (04:48 +0000)]
* readline.c (scm_init_readline): Set
rl_basic_word_break_characters. (Thanks to Ian Grant.)
Mikael Djurfeldt [Tue, 17 Nov 1998 08:03:18 +0000 (08:03 +0000)]
* eval.c (SCM_CEVAL): Added missing case for cclo. (Thanks to
Christian Lynbech.)
Mikael Djurfeldt [Sun, 15 Nov 1998 16:16:06 +0000 (16:16 +0000)]
* objects.c (scm_i_make_class_object): Renamed from
make_class_object; exported; error checking moved to
scm_make_class_object and scm_make_subclass_object.
(scm_make_class_object, scm_make_subclass_object): Use
scm_i_make_class_object.
(scm_make_subclass_object): Let the subclass have same metaclass
as the superclass.
Mikael Djurfeldt [Fri, 13 Nov 1998 15:58:00 +0000 (15:58 +0000)]
* debug.c (scm_debug_options): Bugfix: Set the value of
scm_stack_checking_enabled_p after setting debug options;
#include "stackchk.h". (Thanks to Richard Polton.)
Radey Shouman [Thu, 12 Nov 1998 22:52:45 +0000 (22:52 +0000)]
*** empty log message ***
Radey Shouman [Thu, 12 Nov 1998 22:47:18 +0000 (22:47 +0000)]
(scm_array_contents): removed unnecessary test for 0 base.
Mikael Djurfeldt [Thu, 12 Nov 1998 16:05:57 +0000 (16:05 +0000)]
Renamed sequence->list --> collect
Mikael Djurfeldt [Thu, 12 Nov 1998 16:03:11 +0000 (16:03 +0000)]
* boot-9.scm (collect): New syntax. Similar to begin but returns
a list of the results of all forms in the sequence instead of the
result of the last form.
Mikael Djurfeldt [Thu, 12 Nov 1998 16:00:41 +0000 (16:00 +0000)]
* evalext.c, evalext.h (scm_m_sequence_to_list): Removed.
Replaced by macro `collect' in boot-9.scm.
Jim Blandy [Wed, 11 Nov 1998 09:00:39 +0000 (09:00 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 10 Nov 1998 14:42:04 +0000 (14:42 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 10 Nov 1998 14:41:40 +0000 (14:41 +0000)]
* syncase.scm (values, call-with-values): Moved to boot-9.scm.
Mikael Djurfeldt [Tue, 10 Nov 1998 14:40:28 +0000 (14:40 +0000)]
* boot-9.scm (values, call-with-values): Moved here from
syncase.scm.
Mikael Djurfeldt [Tue, 10 Nov 1998 14:18:42 +0000 (14:18 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 10 Nov 1998 14:17:24 +0000 (14:17 +0000)]
* eval.c (scm_copy_tree): Copy source properties if existent.
Mikael Djurfeldt [Tue, 10 Nov 1998 14:16:55 +0000 (14:16 +0000)]
* debug.c (scm_start_stack): Copy source when evaluating. (If we
don't, we may end up passing memoized source to a transformer.)
Mikael Djurfeldt [Tue, 10 Nov 1998 07:58:32 +0000 (07:58 +0000)]
Removed last change. (Replaced by a better change.)
Mikael Djurfeldt [Tue, 10 Nov 1998 07:57:51 +0000 (07:57 +0000)]
* stacks.c (read_frame): Bugfix: Removed lingering `else'
statement.
(read_frames): Use SCM_MACROEXPP.
Mikael Djurfeldt [Tue, 10 Nov 1998 07:41:35 +0000 (07:41 +0000)]
* backtrace.c (get_applybody): Help function which lookups the
first body form of the apply closure.
(display_error_body): Prevent the source of the first form of the
apply closure from being printed in error messages.
Mikael Djurfeldt [Tue, 10 Nov 1998 06:12:12 +0000 (06:12 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 10 Nov 1998 06:10:33 +0000 (06:10 +0000)]
* stacks.c (read_frame): Bugfix: Removed lingering `else'
statement.
(read_frames): Use SCM_MACROEXPP.
Mikael Djurfeldt [Tue, 10 Nov 1998 06:10:11 +0000 (06:10 +0000)]
* eval.c (SCM_CEVAL): Use SCM_SET/CLEAR_MACROEXP.
Mikael Djurfeldt [Tue, 10 Nov 1998 06:09:55 +0000 (06:09 +0000)]
* debug.h (SCM_SET_MACROEXP, SCM_CLEAR_MACROEXP, SCM_MACROEXPP):
Replaces SCM_MACROFRAME, SCM_MACROFRAMEP.
Mikael Djurfeldt [Mon, 9 Nov 1998 16:46:08 +0000 (16:46 +0000)]
* stacks.c (read_frames): Skip gsubr frames in backtraces. (They
don't contain interesting information since all arguments are
present in the frame which applies the compiled closure anyway.);
Skip the transformer application frames.
Mikael Djurfeldt [Mon, 9 Nov 1998 15:52:29 +0000 (15:52 +0000)]
* print.c (scm_iprin1): Print gsubrs as primitives.
Mikael Djurfeldt [Mon, 9 Nov 1998 15:51:30 +0000 (15:51 +0000)]
* readline.scm (readline-port): Use readline-options-interface.
Mikael Djurfeldt [Mon, 9 Nov 1998 14:32:17 +0000 (14:32 +0000)]
Updated
Mikael Djurfeldt [Mon, 9 Nov 1998 14:26:47 +0000 (14:26 +0000)]
* boot-9.scm (readline-options, readline-enable, readline.disable,
readline-set!: New options interface.
Mikael Djurfeldt [Mon, 9 Nov 1998 14:16:21 +0000 (14:16 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 9 Nov 1998 14:15:30 +0000 (14:15 +0000)]
* readline.c, readline.h (scm_readline_options,
scm_readline_opts): Moved readline options here.
Mikael Djurfeldt [Mon, 9 Nov 1998 14:14:49 +0000 (14:14 +0000)]
* read.c, read.h (scm_read_options, scm_read_opts): Removed
readline options. They should reside in their own options array.
Mikael Djurfeldt [Mon, 9 Nov 1998 14:13:31 +0000 (14:13 +0000)]
* eval.c (SCM_CEVAL): Mark macro frames at `handle_a_macro' so
that we can identify these in a backtrace. (This change doesn't
introduce any significant speed penalty.)
* eval.c: Added note about `serial-map' using scm_map.
Mikael Djurfeldt [Mon, 9 Nov 1998 14:13:06 +0000 (14:13 +0000)]
* debug.h (SCM_MACROFRAME, SCM_MACROFRAMEP): New frame type.
Jim Blandy [Sat, 7 Nov 1998 14:41:05 +0000 (14:41 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 6 Nov 1998 18:16:45 +0000 (18:16 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 6 Nov 1998 18:15:40 +0000 (18:15 +0000)]
* readline.c (scm_read_history, scm_write_history): Bugfix: Use
SCM_ROCHARS instead of SCM_CHARS.
Mikael Djurfeldt [Fri, 6 Nov 1998 18:15:12 +0000 (18:15 +0000)]
* ports.c (scm_unread_string): Bugfixes: Check for SCM_STRINGP,
not SCM_ROSTRINGP; use SCM_ROUCHARS instead of SCM_UCHARS.
Mikael Djurfeldt [Thu, 5 Nov 1998 16:02:55 +0000 (16:02 +0000)]
* ports.h (SCM_CUC): #define as ~SCM_CRDY instead of 0x001fffffL.
This is quite important since the latter clears the
FPORT_READ_SAFE and FPORT_WRITE_SAFE flags causing flushes at
every single character read...
Mikael Djurfeldt [Thu, 5 Nov 1998 15:06:30 +0000 (15:06 +0000)]
Removed lingering declaration of removed function sloppy_mem_check.
Mikael Djurfeldt [Thu, 5 Nov 1998 14:44:08 +0000 (14:44 +0000)]
* boot-9.scm: Set the repl start module in `top-repl' instead of
at the end of boot-9.scm.
Mikael Djurfeldt [Tue, 3 Nov 1998 16:17:29 +0000 (16:17 +0000)]
Updated
Mikael Djurfeldt [Tue, 3 Nov 1998 16:11:33 +0000 (16:11 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 3 Nov 1998 16:09:29 +0000 (16:09 +0000)]
* print.c (scm_iprin1): Removed suspect looking (and indeed
malevolent) semicolon after test for user supplied closure print
procedure. (Thanks to Telford Tendys.)
Mikael Djurfeldt [Tue, 3 Nov 1998 16:09:11 +0000 (16:09 +0000)]
* options.c (scm_options, scm_init_options): GC-protect option
values of type SCM. (Thanks to Telford Tendys.)
Mikael Djurfeldt [Tue, 3 Nov 1998 16:08:53 +0000 (16:08 +0000)]
* list.c, list.h (scm_delq1_x, scm_delv1_x, scm_delete1_x): New
procedures: Same as scm_delq_x et al, but delete maximally one
element.
Mikael Djurfeldt [Tue, 3 Nov 1998 16:08:28 +0000 (16:08 +0000)]
* list.c (scm_sloppy_memq): Removed sloppy_mem_check.
(scm_memq, scm_memv, scm_member): Do argument checking *before*
starting to search the list. Removed call to sloppy_mem_check.
* list.c, list.h (scm_delq1_x, scm_delv1_x, scm_delete1_x): New
procedures: Same as scm_delq_x et al, but delete maximally one
element.
Mikael Djurfeldt [Sun, 1 Nov 1998 16:57:40 +0000 (16:57 +0000)]
Removed some #if 0 which slipped through in previous change
Mikael Djurfeldt [Sun, 1 Nov 1998 04:53:34 +0000 (04:53 +0000)]
Added Thien-Thi Nguyen
Mikael Djurfeldt [Sun, 1 Nov 1998 04:52:58 +0000 (04:52 +0000)]
* emacs.scm (format): Bugfix: Handle multiple arguments
correctly. (Thanks to Thien-Thi Nguyen.)
Mikael Djurfeldt [Sun, 1 Nov 1998 04:40:33 +0000 (04:40 +0000)]
* eval.c: Don't #define scm_lookupcar to scm_lookupcar1. Instead
make sure that there always is a "real" scm_lookupcar.
Mikael Djurfeldt [Sun, 1 Nov 1998 04:16:40 +0000 (04:16 +0000)]
Updated
Mikael Djurfeldt [Sat, 31 Oct 1998 16:50:24 +0000 (16:50 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 31 Oct 1998 16:46:55 +0000 (16:46 +0000)]
* boot-9.scm (exit-hook): New hook: Is run at the very end of an
interactive session.
Mikael Djurfeldt [Sat, 31 Oct 1998 16:45:51 +0000 (16:45 +0000)]
* readline.scm (readline-port): Maybe read history; Maybe write
history at exit (add to exit-hook).
Mikael Djurfeldt [Sat, 31 Oct 1998 16:42:33 +0000 (16:42 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 31 Oct 1998 16:40:46 +0000 (16:40 +0000)]
* readline.c (read-history, write-history): New procedures.
Mikael Djurfeldt [Sat, 31 Oct 1998 16:40:15 +0000 (16:40 +0000)]
* read.c, read.h (history-length, history-file): New read options.
(scm_read_options): Stifle history to history length.
Mikael Djurfeldt [Sat, 31 Oct 1998 14:18:07 +0000 (14:18 +0000)]
* evalext.c (sequence->list): Fix
Mikael Djurfeldt [Sat, 31 Oct 1998 13:59:23 +0000 (13:59 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 31 Oct 1998 13:57:13 +0000 (13:57 +0000)]
* debug.c, print.c: Added #include "macros.h".
Mikael Djurfeldt [Sat, 31 Oct 1998 13:32:21 +0000 (13:32 +0000)]
* macros.c, macros.h: New files.
(procedure->syntax, procedure->macro, procedure->memoizing-macro,
macro?, macro-type, macro-name, macro-transformer): Moved from
eval.c
(scm_make_synt): Moved from eval.c
* Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:31:25 +0000 (13:31 +0000)]
* evalext.c, evalext.h: New files. Contain non-R5RS things
having to do with evaluation.
* evalext.c (serial-map): New procedure: Version of `map' which
guarantees that the procedure is applied to the lists in serial
order.
(sequence->list): New syntax: Version of `begin' which returns a
list of the results of the body forms instead of the result of the
last body form.
(scm_definedp, scm_m_undefine): Moved from eval.c
* evalext.h (scm_m_sequence_to_list): Added declaration.
* Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:29:25 +0000 (13:29 +0000)]
Documented serial-map and sequence->list.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:09:27 +0000 (13:09 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 31 Oct 1998 13:07:55 +0000 (13:07 +0000)]
* Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:07:16 +0000 (13:07 +0000)]
* procs.c, procs.h (procedure-documentation): Moved from eval.c.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:06:08 +0000 (13:06 +0000)]
* init.c (scm_boot_guile_1): Added calls to scm_init_macros and
scm_init_evalext.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:05:43 +0000 (13:05 +0000)]
* eval.h (scm_macro_eval_x): Removed declaration.
* eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
(SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:05:07 +0000 (13:05 +0000)]
* eval.c (scm_s_expression, scm_s_test, scm_s_body,
scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals):
Renamed and made global.
* eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
(SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
* evalext.c (serial-map): New procedure: Version of `map' which
guarantees that the procedure is applied to the lists in serial
order.
(sequence->list): New syntax: Version of `begin' which returns a
list of the results of the body forms instead of the result of the
last body form.
(scm_definedp, scm_m_undefine): Moved from eval.c
* macros.c, macros.h: New files.
(procedure->syntax, procedure->macro, procedure->memoizing-macro,
macro?, macro-type, macro-name, macro-transformer): Moved from
eval.c
(scm_make_synt): Moved from eval.c
* procs.c, procs.h (procedure-documentation): Moved from eval.c.
Mikael Djurfeldt [Sat, 31 Oct 1998 13:04:12 +0000 (13:04 +0000)]
Added #include "macros.h"
Mikael Djurfeldt [Fri, 30 Oct 1998 08:58:55 +0000 (08:58 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 30 Oct 1998 08:25:05 +0000 (08:25 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 30 Oct 1998 08:24:23 +0000 (08:24 +0000)]
* ioext.c (scm_ftell): Use SCM_N_READY_CHARS to correct position.
Mikael Djurfeldt [Fri, 30 Oct 1998 08:24:07 +0000 (08:24 +0000)]
* ports.c (scm_add_to_port_table, scm_remove_from_port_table):
Handle new fields.
(scm_generic_fgets), fports.c (local_fgets): Use a loop
to read unread characters. Use SCM_TRY_CLRDY instead of
SCM_CLRDY.
Mikael Djurfeldt [Fri, 30 Oct 1998 08:23:52 +0000 (08:23 +0000)]
* genio.c (scm_getc): Use SCM_TRY_CLRDY instead of SCM_CLRDY.
* genio.c, genio.h (scm_ungets): New function.
* genio.c (scm_puts): Removed mysterious TRANSCRIPT_SUPPORT code
sections.
Mikael Djurfeldt [Fri, 30 Oct 1998 08:23:33 +0000 (08:23 +0000)]
* genio.c, genio.h (scm_ungets): New function.
Mikael Djurfeldt [Fri, 30 Oct 1998 08:23:13 +0000 (08:23 +0000)]
* ports.h, ports.c (scm_unread_string): New procedure.
(scm_grow_port_cbuf): New function.
* ports.c (scm_add_to_port_table, scm_remove_from_port_table):
Handle new fields.
(scm_generic_fgets), fports.c (local_fgets): Use a loop
to read unread characters. Use SCM_TRY_CLRDY instead of
SCM_CLRDY.