Mikael Djurfeldt [Tue, 5 Jan 1999 09:40:49 +0000 (09:40 +0000)]
Correction of mistake (should have committed onto a branch...)
Mikael Djurfeldt [Tue, 5 Jan 1999 09:25:59 +0000 (09:25 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 23 Dec 1998 06:38:06 +0000 (06:38 +0000)]
* guardians.c, guardians.h (scm_make_guardian,
scm_guardian_gc_init, scm_guardian_zombify, scm_guard,
scm_get_one_zombie, scm_init_guardian): This is an implementation
of guardians as described in R. Kent Dybvig, Carl Bruggeman, and
David Eby (1993) "Guardians in a Generation-Based Garbage
Collector" ACM SIGPLAN Conference on Programming Language Design
and Implementation, June 1993 ftp://ftp.cs.indiana.edu
/pub/scheme-repository/doc/pubs/guardians.ps.gz
Author: Michael N. Livshin.
Mikael Djurfeldt [Wed, 23 Dec 1998 05:57:33 +0000 (05:57 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 23 Dec 1998 05:55:15 +0000 (05:55 +0000)]
* init.c (scm_boot_guile_1): Call scm_init_guardian.
Mikael Djurfeldt [Wed, 23 Dec 1998 05:55:01 +0000 (05:55 +0000)]
* gc.h (SCM_MARKEDP, SCM_NMARKEDP): New macros.
Mikael Djurfeldt [Wed, 23 Dec 1998 05:54:47 +0000 (05:54 +0000)]
* gc.c (scm_igc): Call scm_guardian_gc_init and
scm_guardian_zombify.
Mikael Djurfeldt [Wed, 23 Dec 1998 05:54:24 +0000 (05:54 +0000)]
* Makefile.am: New files: guardians.c, guardians.x, guardians.h
Mikael Djurfeldt [Wed, 23 Dec 1998 05:53:18 +0000 (05:53 +0000)]
*** empty log message ***
Jim Blandy [Mon, 21 Dec 1998 20:18:44 +0000 (20:18 +0000)]
*** empty log message ***
Jim Blandy [Sun, 20 Dec 1998 12:08:43 +0000 (12:08 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 19 Dec 1998 03:36:50 +0000 (03:36 +0000)]
*** empty log message ***
Mikael Djurfeldt [Sat, 19 Dec 1998 03:35:51 +0000 (03:35 +0000)]
* macros.c (scm_makacro, scm_makmacro, scm_makmmacro): Added
argument checking.
Mikael Djurfeldt [Wed, 16 Dec 1998 08:13:41 +0000 (08:13 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 16 Dec 1998 08:08:07 +0000 (08:08 +0000)]
Move the procedure slots of entities to invisible slots (so that
we can have operator class objects which themselves are entities).
* struct.h (scm_struct_i_proc, scm_struct_i_flags,
SCM_STRUCTF_ENTITY): New constants.
* struct.c, struct.h (scm_alloc_struct): Renamed from alloc_struct
and made global.
(scm_struct_init): Renamed from init_struct and made global.
Mikael Djurfeldt [Wed, 16 Dec 1998 08:07:36 +0000 (08:07 +0000)]
* struct.c (scm_make_struct): Allocate "invisible" room for
procedures if SCM_STRUCTF_ENTITY is set in vtable.
* struct.c, struct.h (scm_alloc_struct): Renamed from alloc_struct
and made global.
(scm_struct_init): Renamed from init_struct and made global.
Mikael Djurfeldt [Wed, 16 Dec 1998 08:06:50 +0000 (08:06 +0000)]
* objects.h (SCM_ENTITY, scm_entity): Removed.
(SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0,
SCM_ENTITY_PROC_3): Adjusted for new location of procedure slots.
Mikael Djurfeldt [Wed, 16 Dec 1998 08:06:11 +0000 (08:06 +0000)]
* gc.c (scm_gc_mark): Mark entity procedures.
Jim Blandy [Tue, 15 Dec 1998 05:51:11 +0000 (05:51 +0000)]
*** empty log message ***
Maciej Stachowiak [Mon, 14 Dec 1998 15:19:59 +0000 (15:19 +0000)]
* snarf.h (SCM_SYNTAX): New macro to allow convenient declaration of
syntactic forms, similar to SCM_PROC.
* debug.c, eval.c, evalext.c: use SCM_SYNTAX to declare all special
forms, and SCM_SYMBOL or SCM_GLOBAL_SYMBOL to delcare C variables for
the name symbols when needed.
Jim Blandy [Mon, 14 Dec 1998 10:06:05 +0000 (10:06 +0000)]
* Makefile.in: Regenerated.
Jim Blandy [Mon, 14 Dec 1998 10:06:04 +0000 (10:06 +0000)]
*** empty log message ***
Jim Blandy [Mon, 14 Dec 1998 10:04:48 +0000 (10:04 +0000)]
* configure.in: Check for tgoto in ncurses, then termcap.
S.u.S.E. Linux doesn't have a termcap. (Thanks to Karl
Eichwalder.)
* configure: Regenerated.
Mikael Djurfeldt [Mon, 14 Dec 1998 07:53:32 +0000 (07:53 +0000)]
* boot-9.scm (process-define-module): Reverted the change of
1998-11-23 which caused loading of object code if :use-module was
applied to the module itself.
Mikael Djurfeldt [Fri, 11 Dec 1998 05:07:18 +0000 (05:07 +0000)]
Fix
Mikael Djurfeldt [Fri, 11 Dec 1998 05:05:43 +0000 (05:05 +0000)]
* boot-9.scm (environment->module): New procedure.
Mikael Djurfeldt [Thu, 10 Dec 1998 17:06:24 +0000 (17:06 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 10 Dec 1998 17:06:01 +0000 (17:06 +0000)]
* Makefile.am: Removed setf.scm.
Mikael Djurfeldt [Thu, 10 Dec 1998 17:05:47 +0000 (17:05 +0000)]
* setf.scm: Removed. 1. It was buggy. 2. It was unschemey.
(These shortcomings were my fault.)
Jim Blandy [Wed, 9 Dec 1998 09:28:47 +0000 (09:28 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 9 Dec 1998 03:50:49 +0000 (03:50 +0000)]
Formatting
Mikael Djurfeldt [Mon, 7 Dec 1998 16:50:33 +0000 (16:50 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 7 Dec 1998 16:48:56 +0000 (16:48 +0000)]
* ramap.c (array-copy-in-order!, array-map-in-order): New names.
Replaces old names serial-array-copy! and serial-array-map!.
Mikael Djurfeldt [Mon, 7 Dec 1998 16:48:35 +0000 (16:48 +0000)]
* evalext.c (map-in-order): New name. Replaces serial-map.
Mikael Djurfeldt [Mon, 7 Dec 1998 02:56:00 +0000 (02:56 +0000)]
*** empty log message ***
Mikael Djurfeldt [Mon, 7 Dec 1998 02:53:33 +0000 (02:53 +0000)]
* setf.scm: New file. Adds the new forms `setf!' and `setter'
which implements generalized references a la Common LISP.
Mikael Djurfeldt [Mon, 7 Dec 1998 02:52:28 +0000 (02:52 +0000)]
Updated
Mikael Djurfeldt [Mon, 7 Dec 1998 02:52:07 +0000 (02:52 +0000)]
* Makefile.am: Added setf.scm.
Jim Blandy [Sat, 5 Dec 1998 18:52:15 +0000 (18:52 +0000)]
* pairs.h (SCM_NEWCELL): When DEBUG_FREELIST is defined, don't
take the address of _into; it might be a register. Just have
scm_debug_newcell return the new cell.
* gc.c (scm_debug_newcell): Just return the new cell, instead of
taking the address of a place to store it as an argument.
* gc.h (scm_debug_newcell): Change declaration.
(Thanks to Greg Harvey.)
Jim Blandy [Sat, 5 Dec 1998 18:07:41 +0000 (18:07 +0000)]
Remove list of things to do for 1.3 release.
Jim Blandy [Sat, 5 Dec 1998 16:55:41 +0000 (16:55 +0000)]
*** empty log message ***
Jim Blandy [Sat, 5 Dec 1998 16:52:34 +0000 (16:52 +0000)]
* smob.c (freeprint): New function.
(freecell): Use it to print freed objects, for slightly easier
debugging.
Mikael Djurfeldt [Fri, 4 Dec 1998 11:41:18 +0000 (11:41 +0000)]
*** empty log message ***
Mikael Djurfeldt [Fri, 4 Dec 1998 11:41:03 +0000 (11:41 +0000)]
* backtrace.c (display_frame): Made more robust. Doesn't throw an
error if no source properties can be found for a frame. (Thanks
to Christian Lynbech.)
Jim Blandy [Wed, 2 Dec 1998 14:31:21 +0000 (14:31 +0000)]
*** empty log message ***
Jim Blandy [Wed, 2 Dec 1998 11:55:00 +0000 (11:55 +0000)]
*** empty log message ***
Mikael Djurfeldt [Tue, 1 Dec 1998 17:06:34 +0000 (17:06 +0000)]
* boot-9.scm (process-define-module): Added new specifier
:autoload MODULENAME BINDINGS to the define-module form.
The autoload specifier tells the module system to load the module
MODULENAME at the first occasion that any variable with its name
among BINDINGS is referenced.
(make-autoload-interface): New procedure: Constructs a stand-in
for the public interface for the module to be autoloaded.
Mikael Djurfeldt [Tue, 1 Dec 1998 11:28:24 +0000 (11:28 +0000)]
* boot-9.scm (*suppress-old-style-hook-warning*): Set this to #t
if you don't want the old style hook warnings.
Mikael Djurfeldt [Tue, 1 Dec 1998 07:35:00 +0000 (07:35 +0000)]
* boot-9.scm (try-using-libtool-name): Fix check on dlname to make
sure that it isn't empty, as it is when we are only buidling
static libraries.
Mikael Djurfeldt [Thu, 26 Nov 1998 18:05:20 +0000 (18:05 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 26 Nov 1998 18:04:46 +0000 (18:04 +0000)]
* session.scm (arity): New procedure.
Mikael Djurfeldt [Thu, 26 Nov 1998 18:04:33 +0000 (18:04 +0000)]
* objects.h: Removed slots direct_supers and direct_slots from the
definitions of the rudimentary classes described by objects.h.
* objects.c, objects.h (scm_entity_p): New procedure. Together
with the predicates scm_procedure_p and scm_struct_p, this
predicate makes it possible to differ between structs, entities
and operators.
Mikael Djurfeldt [Thu, 26 Nov 1998 18:03:02 +0000 (18:03 +0000)]
* objects.c, objects.h (scm_entity_p): New procedure. Together
with the predicates scm_procedure_p and scm_struct_p, this
predicate makes it possible to differ between structs, entities
and operators.
Mikael Djurfeldt [Thu, 26 Nov 1998 17:59:15 +0000 (17:59 +0000)]
* modules.c, modules.h (scm_resolve_module): New function.
Mikael Djurfeldt [Thu, 26 Nov 1998 17:56:36 +0000 (17:56 +0000)]
Warn that resolve-module is used by modules.c
Mikael Djurfeldt [Thu, 26 Nov 1998 08:42:27 +0000 (08:42 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 26 Nov 1998 08:41:56 +0000 (08:41 +0000)]
Just synchronizing to my copy...
Mikael Djurfeldt [Thu, 26 Nov 1998 08:36:23 +0000 (08:36 +0000)]
Updated
Mikael Djurfeldt [Thu, 26 Nov 1998 08:33:49 +0000 (08:33 +0000)]
* procprop.c (scm_i_procedure_arity): Bugfix: Return correct value
for asubrs, rpsubrs, lsubrs and lsubr_2s.
Mikael Djurfeldt [Thu, 26 Nov 1998 08:33:38 +0000 (08:33 +0000)]
fix
Mikael Djurfeldt [Thu, 26 Nov 1998 08:31:02 +0000 (08:31 +0000)]
* boot-9.scm: Use run-hook instead of run-hooks everywhere.
Mikael Djurfeldt [Thu, 26 Nov 1998 07:58:53 +0000 (07:58 +0000)]
*** empty log message ***
Mikael Djurfeldt [Thu, 26 Nov 1998 07:44:53 +0000 (07:44 +0000)]
* procprop.h (scm_i_procedure_arity): Added declaration.
Mikael Djurfeldt [Thu, 26 Nov 1998 07:44:35 +0000 (07:44 +0000)]
* procprop.c (scm_i_procedure_arity): Made global; New code to
handle operators and entities.
(scm_procedure_property): No need to call scm_procedure_p since
scm_i_procedure_arity now does all necessary type checking.
Added #include "objects.h".
Mikael Djurfeldt [Thu, 26 Nov 1998 07:44:22 +0000 (07:44 +0000)]
* feature.c, feature.h (scm_reset_hook_x): New procedure.
(scm_make_hook): Optional argument defines number of arguments to
the hook.
(scm_make_named_hook): Take number of args as second arg.
(scm_run_hook): Renamed from scm_run_hooks (old name kept for a
while); First arg is the hook. The rest are arguments passed on
to the hook procedures.
Mikael Djurfeldt [Thu, 26 Nov 1998 07:44:09 +0000 (07:44 +0000)]
* feature.c (scm_remove_hook_x): Bugfix: Changed reference to
s_add_hook_x --> s_remove_hook_x.
(scm_add_hook_x, scm_remove_hook_x): Hooks now takes arguments.
Added #include "procprop.h"
* feature.c, feature.h (scm_reset_hook_x): New procedure.
(scm_make_hook): Optional argument defines number of arguments to
the hook.
(scm_make_named_hook): Take number of args as second arg.
(scm_run_hook): Renamed from scm_run_hooks (old name kept for a
while); First arg is the hook. The rest are arguments passed on
to the hook procedures.
Mikael Djurfeldt [Wed, 25 Nov 1998 15:17:41 +0000 (15:17 +0000)]
*** empty log message ***
Mikael Djurfeldt [Wed, 25 Nov 1998 15:17:12 +0000 (15:17 +0000)]
* boot-9.scm (run-hooks, add-hook!, remove-hook!): Added temporary
code for backward compatibility until people have had time to
adapt to the new hooks.
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.