Jim Blandy [Thu, 23 Jul 1998 04:47:56 +0000 (04:47 +0000)]
Simplify smob and port marking; set the mark bit in the generic
marking code, and make marker routines only responsible for
turning up outgoing pointers.
* gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
before calling the marking function. Don't call the marking
function if it's zero.
* markers.c (scm_mark0): Just return #f. This function isn't
necessary at all now, but it's harmless to call it. We'll leave
it in so other folks' code doesn't croak at link time.
(scm_markcdr): Don't call SCM_SETGC8MARK.
* async.c (mark_async): Don't call SCM_SETGC8MARK.
* dynl.c (mark_dynl_obj): Same.
* root.c (mark_root): Same.
* srcprop.c (marksrcprops): Same.
* unif.c (markra): Same.
* variable.c (scm_markvar): Same.
* ports.c (scm_markstream): Same.
(void_port_ptob): Specify zero for our marking function.
* debug.c (debugobjsmob): Same.
* dynwind.c (guardsmob): Same.
* filesys.c (dir_smob): Same.
* fluids.c (fluid_smob): Same.
* fports.c (scm_fptob, scm_pipob): Same.
* mallocs.c (mallocsmob): Same.
* regex-posix.c (regex_t_smob): Same.
* smob.c (freecell, flob, bigob): Same.
* threads.c (thread_smob, mutex_smob, condvar_smob): Same.
* throw.c (jbsmob, lazy_catch_funs): Same.
Mikael Djurfeldt [Tue, 21 Jul 1998 14:15:46 +0000 (14:15 +0000)]
* readline.scm (make-readline-port): Set prompt string to "... "
after first read line. (Thanks to Richard Polton.)
Mikael Djurfeldt [Tue, 21 Jul 1998 14:15:06 +0000 (14:15 +0000)]
Added Richard Polton
Jim Blandy [Sun, 19 Jul 1998 04:29:29 +0000 (04:29 +0000)]
*** empty log message ***
Jim Blandy [Sun, 19 Jul 1998 04:29:08 +0000 (04:29 +0000)]
* lineio.scm (make-line-buffering-input-port): Don't use
ungetc-char-ready?, since we don't provide that function any
more. The unread-string function doesn't interact properly with
any of the standard I/O functions anyway. (Thanks to Andrew
Archibald.)
Jim Blandy [Sun, 19 Jul 1998 04:28:51 +0000 (04:28 +0000)]
* hcons.scm (hashq-cons-assoc): Don't assume the empty list is
false. Return false when we cannot find a matching entry in the
list. (Thanks to Andrew Archibald.)
Mikael Djurfeldt [Thu, 16 Jul 1998 23:15:57 +0000 (23:15 +0000)]
* eval.c (scm_copy_tree): Reverted last change: `eval' uses
scm_copy_tree on code in order not to let memoized code to leak
out. Thus, scm_copy_tree needs to copy vectors as well since
quasiquote can introduce evaluated code also inside vector
constants.
Mikael Djurfeldt [Thu, 16 Jul 1998 22:51:18 +0000 (22:51 +0000)]
Updated
Mikael Djurfeldt [Thu, 16 Jul 1998 22:38:36 +0000 (22:38 +0000)]
* eval.c (scm_copy_tree): Removed ability to copy vectors.
Mikael Djurfeldt [Thu, 16 Jul 1998 22:31:59 +0000 (22:31 +0000)]
* gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
gh_doubles2dvect.)
Mikael Djurfeldt [Thu, 16 Jul 1998 22:21:06 +0000 (22:21 +0000)]
* unif.c: Say that ivect and uvect are of type signed and unsigned
long instead of int in commentary so that it correctly describes
the implementation.
Mikael Djurfeldt [Wed, 15 Jul 1998 23:29:41 +0000 (23:29 +0000)]
Updated
Mikael Djurfeldt [Wed, 15 Jul 1998 23:01:45 +0000 (23:01 +0000)]
* boot-9.scm (export, export-syntax): New special forms: Export
bindings from a module. `(export name1 name2 ...)' can be used at
the top of a module (after `define-module') to specify which names
should be exported. It can be used as an alternative to
`define-public'. `export-syntax' works equivalently to `export'
but is intended for export of syntactic keywords.
(Thanks to Thien-Thi Nguyen.)
Mikael Djurfeldt [Wed, 15 Jul 1998 19:32:13 +0000 (19:32 +0000)]
* boot-9.scm: Renamed module `(guile-repl)' --> `(guile-user)'.
Mikael Djurfeldt [Tue, 14 Jul 1998 22:48:00 +0000 (22:48 +0000)]
* boot-9.scm: Let the user start in module `(guile-repl)' instead
of module `(guile)'. Also make sure that `(guile-repl)' uses
suitable modules. This change improves Guile stability
substantially since bindings will only be copied from the root
module: If the user redefines builtins in `(guile-repl)' it won't
affect the internal operation of Guile itself.
Mikael Djurfeldt [Tue, 14 Jul 1998 10:23:40 +0000 (10:23 +0000)]
* boot-9.scm: Let the user start in module `(user)' instead of
module `(guile)'. Also make sure that `(user)' uses suitable
modules. This change improves Guile stability substantially since
bindings will only be copied from the root module: If the user
redefines builtins in `(user)' it won't affect the internal
operation of Guile itself.
Mikael Djurfeldt [Sun, 12 Jul 1998 13:29:34 +0000 (13:29 +0000)]
Updated
Mikael Djurfeldt [Sun, 12 Jul 1998 13:26:17 +0000 (13:26 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sun, 12 Jul 1998 13:24:40 +0000 (13:24 +0000)]
* stime.h: Renamed TIMEH --> STIMEH
Mikael Djurfeldt [Sun, 12 Jul 1998 13:24:17 +0000 (13:24 +0000)]
* stime.c: Removed declaration of strptime. (It should be
declared by the system headers. If it turns out that some systems
don't, we'll handle that then.) (Thanks to Greg Troxel.)
Mikael Djurfeldt [Sun, 12 Jul 1998 13:23:50 +0000 (13:23 +0000)]
* iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
portability.
(finalize_fd_sets): Added empty statement after last case label.
(Thanks to Nicolas Neuss.)
Mikael Djurfeldt [Sun, 12 Jul 1998 13:23:21 +0000 (13:23 +0000)]
* gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
Nicolas Neuss.)
Mikael Djurfeldt [Sun, 12 Jul 1998 13:22:51 +0000 (13:22 +0000)]
* backtrace.c (scm_display_error, scm_display_backtrace): In order
to increase portability, don't use structure assignment.
(Thanks to Nicolas Neuss.)
Mikael Djurfeldt [Sun, 12 Jul 1998 13:21:07 +0000 (13:21 +0000)]
* configure.in: Changed variable HOSTNAME --> PROG_HOSTNAME in
totoro kludge.
Mikael Djurfeldt [Sun, 12 Jul 1998 13:20:41 +0000 (13:20 +0000)]
Updated
Mikael Djurfeldt [Sun, 12 Jul 1998 02:30:01 +0000 (02:30 +0000)]
Updated
Mikael Djurfeldt [Sun, 12 Jul 1998 02:28:33 +0000 (02:28 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sun, 12 Jul 1998 02:28:16 +0000 (02:28 +0000)]
* init.c, readline.c: OK, I won't have these readline.x bug
reports anymore. We've had them since April. The current reason
is a completely unintelligible failure of totoro.red-bean.com to
do the test for rl_getc_function in libreadline correctly. This
kludge overrides the test if we're on totoro so that the snapshot
generation process can work.
* readline.c: Define a strdup replacement if not existent on system.
Mikael Djurfeldt [Sun, 12 Jul 1998 02:27:02 +0000 (02:27 +0000)]
* acconfig.h, configure.in: Define TOTORO if configuring on
totoro.red-bean.com.
* configure.in: Check for strdup.
Mikael Djurfeldt [Sun, 12 Jul 1998 00:13:07 +0000 (00:13 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sun, 12 Jul 1998 00:10:02 +0000 (00:10 +0000)]
* eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
argument in call to scm_make_vector.
Mikael Djurfeldt [Sun, 12 Jul 1998 00:07:53 +0000 (00:07 +0000)]
* vectors.c, vectors.h (scm_make_vector): Removed third argument.
This change makes scm_make_vector R5RS compatible. We cannot keep
the third argument since people want to be able to deduce the form
of the C function call only by looking at R5RS. (At the same time
we have removed some unnecessary complexity!)
* eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
argument in call to scm_make_vector.
Mikael Djurfeldt [Thu, 2 Jul 1998 16:39:44 +0000 (16:39 +0000)]
* numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
This macro is useful in applications.
Mikael Djurfeldt [Mon, 22 Jun 1998 11:14:26 +0000 (11:14 +0000)]
Update
Mikael Djurfeldt [Mon, 22 Jun 1998 09:23:01 +0000 (09:23 +0000)]
* load.c (scm_internal_parse_path): Renamed from scm_parse_path.
(scm_parse_path, scm_search_path): New Scheme level procedures.
Mikael Djurfeldt [Mon, 22 Jun 1998 09:22:38 +0000 (09:22 +0000)]
* load.h (scm_internal_parse_path, scm_parse_path,
scm_search_path): Declared.
Mikael Djurfeldt [Thu, 18 Jun 1998 23:59:24 +0000 (23:59 +0000)]
* boot-9.scm (load-module): When loading files from within files
themselves being loaded: Use the directory path of the file being
loaded as root for relative filenames. (After suggestion by
Steven G. Johnson.)
Mikael Djurfeldt [Thu, 18 Jun 1998 21:54:44 +0000 (21:54 +0000)]
Updated
Mikael Djurfeldt [Thu, 18 Jun 1998 21:54:14 +0000 (21:54 +0000)]
* root.h (scm_root_state): Added scm_cur_loadp.
* root.c (mark_root): Added comment about cur_loadp.
Mikael Djurfeldt [Thu, 18 Jun 1998 21:54:00 +0000 (21:54 +0000)]
* ports.c (current-load-port): New procedure.
Mikael Djurfeldt [Thu, 18 Jun 1998 21:53:45 +0000 (21:53 +0000)]
* load.c: #include "dynwind.h";
(scm_primitive_load): Use scm_inner_dynamic_wind to update
scm_cur_loadp.
Mikael Djurfeldt [Thu, 18 Jun 1998 21:53:32 +0000 (21:53 +0000)]
* init.c (scm_boot_guile_1): Removed condition around
scm_init_options.
* init.c (scm_init_standard_ports): Initialize scm_def_loadp.
Mikael Djurfeldt [Thu, 18 Jun 1998 21:53:16 +0000 (21:53 +0000)]
* filesys.c (dirname, basename): New procedures.
Mikael Djurfeldt [Thu, 18 Jun 1998 21:53:00 +0000 (21:53 +0000)]
* dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
new data type (guards) for representation of C level guards and
data on the wind chain.
(scm_internal_dynamic_wind): New function.
* dynwind.h: Declare scm_internal_dynamic_wind.
* load.c: #include "dynwind.h";
(scm_primitive_load): Use scm_inner_dynamic_wind to update
scm_cur_loadp.
Mikael Djurfeldt [Mon, 15 Jun 1998 13:00:35 +0000 (13:00 +0000)]
* emacs.scm (emacs-load): New feature: Eval in specified module.
Mikael Djurfeldt [Sun, 14 Jun 1998 15:07:51 +0000 (15:07 +0000)]
* readline.scm: Typo in regex module name.
Mikael Djurfeldt [Sat, 13 Jun 1998 18:08:25 +0000 (18:08 +0000)]
* readline.scm (apropos-completion-function): regexp-quote text to
be completed.
Mikael Djurfeldt [Thu, 11 Jun 1998 13:26:43 +0000 (13:26 +0000)]
* emacs.scm: Bugfix: Treat `the-last-stack' as a fluid.
Mikael Djurfeldt [Tue, 9 Jun 1998 21:57:26 +0000 (21:57 +0000)]
* ioext.c (scm_isatty_p): Accept any kind of data as argument. If
not a tty, return #f.
Mikael Djurfeldt [Tue, 9 Jun 1998 21:56:51 +0000 (21:56 +0000)]
* boot-9.scm: Check that (current-input-port) is a tty before
enabling readline. (Thanks to Michael N. Livshin.)
Mikael Djurfeldt [Tue, 9 Jun 1998 21:56:37 +0000 (21:56 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 9 Jun 1998 21:56:23 +0000 (21:56 +0000)]
Updated
Mikael Djurfeldt [Tue, 9 Jun 1998 20:28:13 +0000 (20:28 +0000)]
Updated
Mikael Djurfeldt [Tue, 9 Jun 1998 20:27:35 +0000 (20:27 +0000)]
* regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
to Julian Satchell and Roland Kaufmann.)
Mikael Djurfeldt [Tue, 9 Jun 1998 20:27:23 +0000 (20:27 +0000)]
* gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
(gh_write): Added declaration. (Thanks to Eiichi Takamori.)
Mikael Djurfeldt [Sun, 7 Jun 1998 10:29:40 +0000 (10:29 +0000)]
* boot-9.scm (use-syntax): Turned into a macro inorder to be
similar in use to `use-modules'.
Example: (use-syntax (ice-9 syncase)) will 1. load the module
(ice-9 syncase), and, 2. install the procedure `syncase' as eval
transformer.
(internal-use-syntax): New procedure.
(process-define-module): Use `internal-use-syntax'.
Mikael Djurfeldt [Sun, 7 Jun 1998 02:14:42 +0000 (02:14 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sun, 7 Jun 1998 02:11:58 +0000 (02:11 +0000)]
* debug.h, debug.c (scm_start_stack): New function. Implements
the guts of old scm_m_start_stack.
Mikael Djurfeldt [Sun, 7 Jun 1998 02:11:28 +0000 (02:11 +0000)]
* debug.h, debug.c (scm_start_stack): New function. Implements
the guts of old scm_m_start_stack.
* debug.c (scm_m_start_stack): Use scm_start_stack.
Mikael Djurfeldt [Sun, 7 Jun 1998 02:10:41 +0000 (02:10 +0000)]
* init.c (scm_start_stack, scm_restart_stack): Renamed to
start_stack and restart_stack. (These have static scope.)
Mikael Djurfeldt [Tue, 19 May 1998 20:44:05 +0000 (20:44 +0000)]
Updated
Mikael Djurfeldt [Tue, 19 May 1998 20:43:42 +0000 (20:43 +0000)]
* readline.c (rl_cleanup_after_signals, rl_free_line_state): New
readline functions to come in release 2.3. (Thanks to Chet
Ramey.)
(handle_errors): Use the above functions.
Mikael Djurfeldt [Tue, 19 May 1998 20:42:59 +0000 (20:42 +0000)]
Added Chet Ramey
Mikael Djurfeldt [Tue, 19 May 1998 20:42:39 +0000 (20:42 +0000)]
* configure.in: Check for rl_cleanup_after_signal.
Mikael Djurfeldt [Tue, 19 May 1998 19:48:11 +0000 (19:48 +0000)]
* Makefile.am (ice9_sources): Add emacs.scm.
Mikael Djurfeldt [Wed, 13 May 1998 00:34:36 +0000 (00:34 +0000)]
Fixed.
Mikael Djurfeldt [Wed, 13 May 1998 00:27:23 +0000 (00:27 +0000)]
Updated
Mikael Djurfeldt [Wed, 13 May 1998 00:01:04 +0000 (00:01 +0000)]
Some further fixes.
Mikael Djurfeldt [Wed, 13 May 1998 00:00:19 +0000 (00:00 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 13 May 1998 00:00:02 +0000 (00:00 +0000)]
* readline.scm: Use the new readline facilities: Add the
possibility to control input and output ports; Add apropos
completion.
Mikael Djurfeldt [Tue, 12 May 1998 23:59:21 +0000 (23:59 +0000)]
* boot-9.scm: Antirevert Jim's readline code which he reverted
19971027 and adapt it to the current readline interface.
* boot-9.scm (top-repl): Only enable readline if not using the
Emacs interface; Only use repl prompt when using the readline port
from repl-read. (We don't want to see it when calling `read'.)
* boot-9.scm (remove-hook!): Parenthesis bug.
Mikael Djurfeldt [Tue, 12 May 1998 21:41:44 +0000 (21:41 +0000)]
Bugfixes for yesterdays revision.
Mikael Djurfeldt [Tue, 12 May 1998 00:52:31 +0000 (00:52 +0000)]
* readline.c: Improvements for readline support: Handle errors
better; Implement before-read-hook.
Mikael Djurfeldt [Tue, 12 May 1998 00:49:26 +0000 (00:49 +0000)]
Updated
Mikael Djurfeldt [Tue, 12 May 1998 00:48:58 +0000 (00:48 +0000)]
* init.c (scm_boot_guile_1), readline.c: Test for
HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
assure that we have version >= 2.1.)
Mikael Djurfeldt [Tue, 12 May 1998 00:48:38 +0000 (00:48 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 12 May 1998 00:48:15 +0000 (00:48 +0000)]
* configure.in: Added test for rl_getc_function. Warn if
libreadline is found but not this function.
Mikael Djurfeldt [Mon, 11 May 1998 01:18:41 +0000 (01:18 +0000)]
* throw.c, throw.h (scm_handle_by_throw): New function: This
handler throws errors to next handler on the dynwind chain.
Mikael Djurfeldt [Mon, 11 May 1998 01:17:10 +0000 (01:17 +0000)]
scm_usleep: Don't define j if not used.
Mikael Djurfeldt [Mon, 11 May 1998 01:16:15 +0000 (01:16 +0000)]
* readline.c (scm_add_history): Bugfix: Do strdup before giving
away the string to add_history.
(completion_function): Do completion for readline.
(scm_filename_completion_function): New procedure: Filename
completer.
(current_input_getc): New function. Use this one instead of
standard getc from readline.
Mikael Djurfeldt [Mon, 11 May 1998 01:15:26 +0000 (01:15 +0000)]
* boot-9.scm: Load readline module if readline is present.
* readline.scm (apropos-completion-function): New procedure:
Symbolic completion. (Thanks to Andrew Archibald!)
Mikael Djurfeldt [Mon, 11 May 1998 01:14:23 +0000 (01:14 +0000)]
Added Andrew Archibald
Mikael Djurfeldt [Wed, 6 May 1998 14:45:11 +0000 (14:45 +0000)]
* configure.in: Replaced some AC_CHECK_FUNC --> AC_CHECK_FUNCS so
that suitable HAVE_<function name> symbols get defined.
Mikael Djurfeldt [Mon, 4 May 1998 12:05:37 +0000 (12:05 +0000)]
Fix
Mikael Djurfeldt [Mon, 4 May 1998 11:44:13 +0000 (11:44 +0000)]
* boot-9.scm (process-define-module): Added keyword use-syntax.
Mikael Djurfeldt [Mon, 4 May 1998 11:33:35 +0000 (11:33 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 4 May 1998 11:33:14 +0000 (11:33 +0000)]
* procprop.h (scm_sym_arity): New symbol.
Mikael Djurfeldt [Mon, 4 May 1998 11:32:58 +0000 (11:32 +0000)]
* procprop.c (scm_i_procedure_arity): New function. Returns arity
of procedure.
(scm_procedure_properties): Modified to return arity together with
other properties.
(scm_procedure_property): Added the read-only property `arity'.
(scm_set_procedure_property_x): It is an error to set the `arity'
property.
Mikael Djurfeldt [Mon, 4 May 1998 11:32:44 +0000 (11:32 +0000)]
* objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
Made procedure slots read-only.
Mikael Djurfeldt [Mon, 4 May 1998 11:32:30 +0000 (11:32 +0000)]
* objects.c (scm_set_object_procedure_x): New procedure: Use this
to set the dispatch procedure of an operator or entity object.
Mikael Djurfeldt [Mon, 4 May 1998 11:32:05 +0000 (11:32 +0000)]
* gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
Mikael Djurfeldt [Mon, 4 May 1998 11:31:45 +0000 (11:31 +0000)]
* eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
scm_tcs_cons_gloc case in zero args switch; Fixed args
construction for operators in scm_tcs_cons_gloc case in two args
switch.
Mikael Djurfeldt [Sat, 2 May 1998 22:27:11 +0000 (22:27 +0000)]
Updated
Mikael Djurfeldt [Sat, 2 May 1998 22:26:44 +0000 (22:26 +0000)]
* fluids.c: Removed use of assert.h (in order to avoid
__eprintf).
* Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
* dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
Mikael Djurfeldt [Sat, 2 May 1998 16:26:21 +0000 (16:26 +0000)]
* eval.c (SCM_CEVAL): Do more thorough argument checking. This
change makes the evaluator safer at the cost of evaluation speed.
It handles the case when the user has added a non-immediate
improper end of the application form, e.g., `(+ 0 . x)'.
(Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
minimize the extra cost as much as possible. The new code is
enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
problem with structs planted directly in the code (e.g. by a
macro). This no longer causes segmentation fault. (Thanks to
Eric Hanchrow.)
* eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
arg `proc' in order to be able to throw errors; New argument
checking code.
Mikael Djurfeldt [Sat, 2 May 1998 16:25:31 +0000 (16:25 +0000)]
Updated
Mikael Djurfeldt [Fri, 24 Apr 1998 23:51:34 +0000 (23:51 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 24 Apr 1998 23:36:04 +0000 (23:36 +0000)]
* scmsigs.c: Declare usleep as returning void on some systems.
(scm_usleep): Return SCM_INUM0 on those systems.
* coop.c (usleep): Return void on some systems.
* configure.in: Define USLEEP_RETURNS_VOID on some systems.
Mikael Djurfeldt [Mon, 20 Apr 1998 00:40:43 +0000 (00:40 +0000)]
* Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
Mikael Djurfeldt [Mon, 20 Apr 1998 00:40:09 +0000 (00:40 +0000)]
* scmsigs.c (scm_usleep): New procedure; Declare usleep if it
isn't found in the OS.