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.
Mikael Djurfeldt [Fri, 30 Oct 1998 08:22:50 +0000 (08:22 +0000)]
* ports.h (SCM_CLRDY, SCM_CUNGET, SCM_CGETUN): Rewritten.
(SCM_TRY_CLRDY): New macro: Only clear the first unread
character. (SCM_CLRDY clears all.)
(SCM_N_READY_CHARS): New macro: Returns number of unread
characters in a port. Returns wrong answer if SCM_CRDYP is false.
(struct scm_port_table): New fields: `entry' contains port table
index, `cp' points to last unread char, `cbuf' is the buffer for
unread chars, `cbufend' points after end of the character buffer.
* ports.h, ports.c (scm_unread_string): New procedure.
(scm_grow_port_cbuf): New function.
Mikael Djurfeldt [Fri, 30 Oct 1998 06:30:00 +0000 (06:30 +0000)]
* readline.scm (make-readline-port): Bugfixed last change...
Mikael Djurfeldt [Wed, 28 Oct 1998 20:01:49 +0000 (20:01 +0000)]
Hrmmph..
Mikael Djurfeldt [Wed, 28 Oct 1998 20:00:37 +0000 (20:00 +0000)]
* readline.scm (make-readline-port): Don't set prompt to "... " if
read line was empty.
Mikael Djurfeldt [Wed, 28 Oct 1998 10:32:03 +0000 (10:32 +0000)]
* threads.h (scm_thread_sleep, scm_thread_usleep): Fixed
declarations. (Thanks to Russ McManus.)
Jim Blandy [Tue, 27 Oct 1998 12:06:50 +0000 (12:06 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 26 Oct 1998 07:46:54 +0000 (07:46 +0000)]
* numbers.c (num2long): As a software archeologist, I'm proud of
this finding! :) Preliminary dating suggests an almost 4 year old
remnant from the SCM ancestor. The sample has been removed from
the finding site and is now safely stored in the repository.
* numbers.h: Removed prototype for num2long.
* unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
* gh_data.c (gh_scm2doubles): Make it possible to pass result
array as second arg.
(gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
* gh.h: Updated and added prototypes.
* gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
Jim Blandy [Sat, 24 Oct 1998 20:56:42 +0000 (20:56 +0000)]
* gc.h: Remove all uses of SCM_P. (Thanks to Richard Polton.)
Jim Blandy [Sat, 24 Oct 1998 20:56:13 +0000 (20:56 +0000)]
*** empty log message ***
Jim Blandy [Sat, 24 Oct 1998 20:55:23 +0000 (20:55 +0000)]
Bug reports from Russ McManus:
* guile-snarf.in: If the CPP environment variable is set, use that
as the C preprocessor, instead of the preprocessor autoconf
found.
* snarf.h (SCM_PROC): Cast the function pointer passed to
scm_make_gsubr, to satisfy C++.
Jim Blandy [Sat, 24 Oct 1998 20:55:15 +0000 (20:55 +0000)]
* guile-snarf.in: Never generate an empty file. (Thanks to
Richard Polton.)
Bug reports from Russ McManus:
* guile-snarf.in: If the CPP environment variable is set, use that
as the C preprocessor, instead of the preprocessor autoconf
found.
* snarf.h (SCM_PROC): Cast the function pointer passed to
scm_make_gsubr, to satisfy C++.
Jim Blandy [Sat, 24 Oct 1998 20:54:57 +0000 (20:54 +0000)]
* gh_eval.c (gh_eval_str_with_catch, gh_eval_file_with_catch):
Use the handler passed, instead of ignoring it and using
gh_standard_handler. (Thanks to Etienne Bernard.)
Jim Blandy [Sat, 24 Oct 1998 20:54:21 +0000 (20:54 +0000)]
* gh.h (gh_enter, gh_new_procedure0_0, gh_new_procedure0_1,
gh_new_procedure0_2, gh_new_procedure1_0, gh_new_procedure1_1,
gh_new_procedure1_2, gh_new_procedure2_0, gh_new_procedure2_1,
gh_new_procedure2_2, gh_new_procedure3_0, gh_new_procedure4_0,
gh_new_procedure5_0): Specify argument types, to appease C++
compilers. (Thanks to Brad Bowman.)
Jim Blandy [Sat, 24 Oct 1998 20:53:50 +0000 (20:53 +0000)]
* configure.in: Call AM_PROG_CC_STDC, to see what flags we should
pass the compiler to make it support ANSI. (Thanks to Bernard
Urban.)
* aclocal.m4, configure: Regenerated.
Jim Blandy [Tue, 20 Oct 1998 15:20:35 +0000 (15:20 +0000)]
*** empty log message ***
Jim Blandy [Tue, 20 Oct 1998 15:19:14 +0000 (15:19 +0000)]
* ports.h: Put text after #endif in comment. (Thanks to Nicolas
Neuss.)
Jim Blandy [Mon, 19 Oct 1998 22:45:55 +0000 (22:45 +0000)]
*** empty log message ***
Jim Blandy [Mon, 19 Oct 1998 22:29:14 +0000 (22:29 +0000)]
*** empty log message ***
Jim Blandy [Mon, 19 Oct 1998 22:04:01 +0000 (22:04 +0000)]
*** empty log message ***