Marius Vollmer [Tue, 13 Feb 2001 01:09:00 +0000 (01:09 +0000)]
* eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
SCM_CEVAL when evaluating subforms of `begin' forms. SCM_CEVAL
can not deal with immediates.
Marius Vollmer [Tue, 13 Feb 2001 01:07:45 +0000 (01:07 +0000)]
* boot-9.scm (define-public): Removed spurious call to
`interaction-evironment'.
(define-public, defmacro-public): Use `export' instead of explicit
module magic.
(eval-when): New macro.
(define-module, use-modules, use-syntax, export): Use it to
restrict the use of these forms to the top level.
(define-public, defmacro-public): Only export binding when on
top-level.
(process-define-module): Call `set-current-module' with the
defined module.
(define-module): Simply call `process-define-module' without any
fuss (but only on top-level).
(named-module-use!): New function.
(top-repl): Do not use `define-module'. Use equivalent low-level
means instead.
Keisuke Nishida [Mon, 12 Feb 2001 21:45:22 +0000 (21:45 +0000)]
* list.c (scm_list_copy): Validate the first argument.
Marius Vollmer [Sun, 11 Feb 2001 18:17:56 +0000 (18:17 +0000)]
*** empty log message ***
Marius Vollmer [Sun, 11 Feb 2001 18:16:58 +0000 (18:16 +0000)]
* boot-9.scm (scm-style-repl): Use `primitive-eval' instead of
`eval'.
(define-public): Do not use `eval'.
Marius Vollmer [Sun, 11 Feb 2001 18:14:34 +0000 (18:14 +0000)]
* modules.h. modules.c (scm_current_module_lookup_closure): New
function.
Marius Vollmer [Sun, 11 Feb 2001 18:13:07 +0000 (18:13 +0000)]
* eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
evaluated at top-level and synronize lookup closure before
executing every subform.
(scm_primitve_eval_x, scm_primitive_eval): New functions.
(scm_eval_x, scm_eval): Reimplement in terms of
scm_primitive_eval_x and scm_primitive_eval, respectively.
Marius Vollmer [Sun, 11 Feb 2001 18:04:31 +0000 (18:04 +0000)]
* eval.h (scm_primitive_eval, scm_primitive_eval_x): New
prototypes.
(scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
names to better reflect their meaning.
Keisuke Nishida [Sat, 10 Feb 2001 07:09:45 +0000 (07:09 +0000)]
* dump.c (scm_store_bytes, scm_restore_bytes): Store/restore size.
Keisuke Nishida [Fri, 9 Feb 2001 22:37:10 +0000 (22:37 +0000)]
* dump.c: Use double cells for update schedule.
Marius Vollmer [Fri, 9 Feb 2001 14:38:27 +0000 (14:38 +0000)]
Docstring of port-for-each updated to new behaviour.
Marius Vollmer [Fri, 9 Feb 2001 14:37:30 +0000 (14:37 +0000)]
* macros.c (scm_macro_name, scm_macro_transformer): Use
SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
Thanks!
Marius Vollmer [Fri, 9 Feb 2001 14:36:27 +0000 (14:36 +0000)]
Blurb about new guarantee of port-for-each
Keisuke Nishida [Fri, 9 Feb 2001 07:12:05 +0000 (07:12 +0000)]
Bug fixed.
Marius Vollmer [Thu, 8 Feb 2001 18:53:48 +0000 (18:53 +0000)]
s/open/existed/ in description of port-for-each change.
Marius Vollmer [Thu, 8 Feb 2001 18:52:05 +0000 (18:52 +0000)]
*** empty log message ***
Marius Vollmer [Thu, 8 Feb 2001 18:50:50 +0000 (18:50 +0000)]
* guile-test: Use (ice-9 and-let-star) instead of (ice-9
and-let*).
Marius Vollmer [Thu, 8 Feb 2001 18:49:52 +0000 (18:49 +0000)]
* modules.h (scm_selected_module, scm_current_module): Renamed
scm_selected_module to scm_current_module to synchronize Scheme
and C names.
(scm_select_module, scm_set_current_module): Likewise. Changed
all uses.
Marius Vollmer [Thu, 8 Feb 2001 18:44:34 +0000 (18:44 +0000)]
* ports.c (scm_port_for_each): Make a snapshot of the port table
before iterating over it. The table might change while the user
code is running. With the snapshot, the user can depend on the
fact that each port that was open at teh start of the iteration is
encountered exactly once. (ice-9 popen) depends on this.
Marius Vollmer [Thu, 8 Feb 2001 18:39:08 +0000 (18:39 +0000)]
* and-let-star-compat.scm: Display the warning to the
`current-error-port'.
Dirk Herrmann [Thu, 8 Feb 2001 11:40:51 +0000 (11:40 +0000)]
* Fixed parameter checking for make-string.
* Corrected a bug introduced with the last patch.
Dirk Herrmann [Thu, 8 Feb 2001 10:48:01 +0000 (10:48 +0000)]
* Fixed parameter checking for make-vector.
Keisuke Nishida [Tue, 6 Feb 2001 02:12:10 +0000 (02:12 +0000)]
Removed redundant code.
Keisuke Nishida [Mon, 5 Feb 2001 19:14:20 +0000 (19:14 +0000)]
Minor modifications.
Keisuke Nishida [Mon, 5 Feb 2001 19:00:56 +0000 (19:00 +0000)]
*** empty log message ***
Keisuke Nishida [Mon, 5 Feb 2001 08:46:21 +0000 (08:46 +0000)]
New dump/undump scheme.
Marius Vollmer [Sun, 4 Feb 2001 18:22:18 +0000 (18:22 +0000)]
* and-let-star.scm, and-let*.scm: Renamed `and-let*.scm' to
`and-let-star.scm'. Updated module name as well.
* and-let-star-compat.scm: New file, installed as `and-let*.scm'.
* Makefile.am (ice9_sources): Replaced "and-let*.scm" with
"and-let-star.scm".
(install-data-local): Install "and-let-star-compat.scm" as
"and-let*.scm", ignoring errors.
(EXTRA_DIST): Distribute `and-let-star-compat.scm'.
Marius Vollmer [Sun, 4 Feb 2001 18:21:38 +0000 (18:21 +0000)]
*** empty log message ***
Marius Vollmer [Sun, 4 Feb 2001 17:30:00 +0000 (17:30 +0000)]
*** empty log message ***
Marius Vollmer [Sun, 4 Feb 2001 17:29:06 +0000 (17:29 +0000)]
* data-rep.texi: Use SCM_SMOB_DATA instead of SCM_CDR. Also
things like SCM_SMOB_PREDICATE and SCM_NEWSMOB. Thanks to Dale
P. Smith!
Michael Livshin [Sat, 3 Feb 2001 12:26:38 +0000 (12:26 +0000)]
SCM_DOUBLE_CELLP deprecated and made unused
Keisuke Nishida [Sat, 3 Feb 2001 05:01:07 +0000 (05:01 +0000)]
*** empty log message ***
Keisuke Nishida [Sat, 3 Feb 2001 04:59:16 +0000 (04:59 +0000)]
New files: dump.c, dump.h.
Keisuke Nishida [Fri, 2 Feb 2001 04:56:25 +0000 (04:56 +0000)]
New functions: scm_c_make_vector, scm_c_make_hash_table.
Mikael Djurfeldt [Wed, 31 Jan 2001 15:18:47 +0000 (15:18 +0000)]
* unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
Mikael Djurfeldt [Wed, 31 Jan 2001 15:14:53 +0000 (15:14 +0000)]
Added #include "libguile/rdelim.h".
Dirk Herrmann [Tue, 30 Jan 2001 14:53:20 +0000 (14:53 +0000)]
* Added docstrings by Martin Grabmueller.
Mikael Djurfeldt [Mon, 29 Jan 2001 18:23:34 +0000 (18:23 +0000)]
* eval.c (SCM_APPLY): Check that primitives which take 1 arg
really get that arg.
Marius Vollmer [Sun, 28 Jan 2001 17:56:46 +0000 (17:56 +0000)]
*** empty log message ***
Marius Vollmer [Sun, 28 Jan 2001 17:56:34 +0000 (17:56 +0000)]
* readline.scm (make-readline-port): PROMPT becomes PROMPT2 as
soon as GET-CHARACTER returns any character at all that was
previously read. This makes the continuation prompt appear
properly for partial expressions. Thanks to Neil Jerram!
Keisuke Nishida [Sat, 27 Jan 2001 00:13:55 +0000 (00:13 +0000)]
goops.c (s_scm_get_keyword): Bug fix.
Dirk Herrmann [Fri, 26 Jan 2001 18:04:32 +0000 (18:04 +0000)]
* Fix parameter error reporting and avoid redundant parameter checks.
Dirk Herrmann [Fri, 26 Jan 2001 17:30:54 +0000 (17:30 +0000)]
* Added missing includes of string.h.
Dirk Herrmann [Fri, 26 Jan 2001 16:58:48 +0000 (16:58 +0000)]
* Make readline run-time options accessible.
Dirk Herrmann [Fri, 26 Jan 2001 16:49:28 +0000 (16:49 +0000)]
* Fixed things that I had broken with the last patch :-(
Dirk Herrmann [Fri, 26 Jan 2001 13:47:53 +0000 (13:47 +0000)]
* Forgot to add the file check-guile.in with the latest commit.
Dirk Herrmann [Fri, 26 Jan 2001 13:44:57 +0000 (13:44 +0000)]
* Added Thien-Thi Nguyen's patch to support "make check".
Dirk Herrmann [Thu, 25 Jan 2001 23:34:31 +0000 (23:34 +0000)]
* On errors, show line and column information even for unnamed ports.
Dirk Herrmann [Thu, 25 Jan 2001 17:57:29 +0000 (17:57 +0000)]
* Make sure that only open file ports are used as readline ports.
Dirk Herrmann [Thu, 25 Jan 2001 17:40:50 +0000 (17:40 +0000)]
* Added a file-port? primitive.
Dirk Herrmann [Thu, 25 Jan 2001 17:18:41 +0000 (17:18 +0000)]
* Made the port implementations less tightly coupled within guile.
Dirk Herrmann [Thu, 25 Jan 2001 11:09:21 +0000 (11:09 +0000)]
* Fix handling of (set-source-property! <obj> 'copy <datum>).
Gary Houston [Wed, 24 Jan 2001 21:47:23 +0000 (21:47 +0000)]
*** empty log message ***
Gary Houston [Wed, 24 Jan 2001 21:46:04 +0000 (21:46 +0000)]
* tests/ports.test: include (ice-9 rdelim) module.
Gary Houston [Wed, 24 Jan 2001 21:45:09 +0000 (21:45 +0000)]
* boot-9.scm: don't import (ice-9 rdelim) here. it's done
in C for now.
* rdelim.scm: export the C primitives too.
* documentation.scm: use (ice-9 rdelim).
* filesys.c (scm_link): docstring fix.
* fports.h (scm_setfileno): obsolete declaration removed.
* posix.c: bogus popen declaration removed.
* rdelim.c: new file, split from ioext.c with new proc
scm_init_rdelim.
* rdelim.h: new file.
* Makefile.am: add rdelim.c and related files.
* init.c: call scm_init_rdelim. include rdelim.h.
Gary Houston [Wed, 24 Jan 2001 21:31:39 +0000 (21:31 +0000)]
*** empty log message ***
Dirk Herrmann [Wed, 24 Jan 2001 18:07:29 +0000 (18:07 +0000)]
* Make sure that parameter errors are reported correctly.
Thanks to Martin Grabmueller for sending this patch.
Dirk Herrmann [Wed, 24 Jan 2001 16:06:20 +0000 (16:06 +0000)]
* Ooops: Forgot to credit Neil for the bug report.
Dirk Herrmann [Wed, 24 Jan 2001 15:58:46 +0000 (15:58 +0000)]
* Make sure that scm_display_error validates its port argument.
Mikael Djurfeldt [Wed, 24 Jan 2001 01:26:44 +0000 (01:26 +0000)]
* eval.c (SCM_APPLY): Added # args check for application of
procedures with arity 3. (Thanks to Anders Holst.)
Dirk Herrmann [Wed, 24 Jan 2001 00:02:43 +0000 (00:02 +0000)]
* Separate the handling of OPEN flags between ports and directories.
Dirk Herrmann [Mon, 22 Jan 2001 13:32:08 +0000 (13:32 +0000)]
* Move all real functionality from scm_eval into inner_eval.
* Avoid to copy the evaluated expression twice.
Gary Houston [Sun, 21 Jan 2001 22:11:29 +0000 (22:11 +0000)]
* rdelim.scm: new file implementing module (ice-9 rdelim).
* ice-9.scm (scm-line-incrementors read-line! read-delimited!
read-delimited read-line): moved to rdelim.scm.
scm-line-incrementors is not exported.
* boot-9.scm: import (ice-9 rdelim) for backwards compatibility,
for now.
* lineio.scm: use module (ice-9 rdelim).
* Makefile.am (ice9_sources): add rdelim.scm.
Dirk Herrmann [Fri, 19 Jan 2001 17:16:52 +0000 (17:16 +0000)]
* Applied Martin Grabmueller's fix of case's handling of 'else.
Neil Jerram [Fri, 19 Jan 2001 09:00:05 +0000 (09:00 +0000)]
* Make the readline port input-only.
Gary Houston [Thu, 18 Jan 2001 22:54:54 +0000 (22:54 +0000)]
* ioext.c: further simplify scm_read_string_x_partial by defining
a macro SCM_EBLOCK.
Dirk Herrmann [Thu, 18 Jan 2001 17:24:10 +0000 (17:24 +0000)]
* Converted to real boundary testing.
Dirk Herrmann [Thu, 18 Jan 2001 15:12:51 +0000 (15:12 +0000)]
* Simplified gh_ints2scm by using SCM_FIXABLE.
Dirk Herrmann [Thu, 18 Jan 2001 13:35:45 +0000 (13:35 +0000)]
* Cleaned up some limits-definitions.
Dirk Herrmann [Wed, 17 Jan 2001 18:22:26 +0000 (18:22 +0000)]
* Added tests for bit-operations.
Dirk Herrmann [Wed, 17 Jan 2001 18:15:30 +0000 (18:15 +0000)]
* Fixed a couple of bugs with quotient, remainder, bit-extract and logand.
Dirk Herrmann [Tue, 16 Jan 2001 11:19:36 +0000 (11:19 +0000)]
* Comment fixed.
Dirk Herrmann [Mon, 15 Jan 2001 17:15:13 +0000 (17:15 +0000)]
* Return type of scm_make_smob_type is scm_bits_t now.
Michael Livshin [Thu, 11 Jan 2001 21:03:18 +0000 (21:03 +0000)]
* objects.h (SCM_SET_ENTITY_SETTER): new macro. SCM_ENTITY_SETTER
casts its result, so doesn't yield an lvalue per ANSI C.
* goops.c (s_scm_sys_set_object_setter_x): use
SCM_SET_ENTITY_SETTER.
(clear_method_cache): use SCM_SET_ENTITY_PROCEDURE.
* gc.h (SCM_GC_SET_CARD_BVEC): new macro. SCM_GC_CARD_BVEC casts
its result, so doesn't yield an lvalue per ANSI C.
(SCM_GC_SET_CARD_FLAGS): ditto for SCM_GC_GET_CARD_FLAGS.
(SCM_GC_CLR_CARD_FLAGS): redefined in terms of
SCM_GC_SET_CARD_FLAGS.
(SCM_GC_SET_CARD_FLAG, SCM_GC_CLR_CARD_FLAGS): ditto.
* gc.c (INIT_CARD): use the explicit setter macro to set the bvec.
Gary Houston [Mon, 8 Jan 2001 23:10:06 +0000 (23:10 +0000)]
* validate.h (SCM_VALIDATE_SUBSTRING_SPEC_COPY): new macro.
* ioext.c (scm_read_string_x_partial, scm_read_delimited_x),
socket.c (scm_recvfrom): use the new macro, plus minor docstring
changes.
* ioext.c (scm_read_string_x_partial): don't crash if -1 is supplied
for fdes. if current input port is used, check that it's a file
port.
Gary Houston [Sat, 6 Jan 2001 22:04:04 +0000 (22:04 +0000)]
*** empty log message ***
Gary Houston [Sat, 6 Jan 2001 22:03:07 +0000 (22:03 +0000)]
* ioext.c (scm_read_string_x_partial): new procedure, implements
read-string!/partial.
* ports.c (scm_take_from_input_buffers): new procedure used by
scm_read_string_x_partial.
(scm_drain_input): use scm_take_from_input_buffers.
Marius Vollmer [Sat, 6 Jan 2001 18:47:12 +0000 (18:47 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 6 Jan 2001 18:46:48 +0000 (18:46 +0000)]
* validate.h (SCM_VALIDATE_NUMBER): New.
Neil Jerram [Fri, 5 Jan 2001 09:29:12 +0000 (09:29 +0000)]
* Fix typos in entry about guardian semantic changes.
Michael Livshin [Thu, 4 Jan 2001 13:00:31 +0000 (13:00 +0000)]
* guardians.c (F_GREEDY, F_LISTED, F_DESTROYED, GREEDY_P,
SET_GREEDY, LISTED_P, SET_LISTED, CLR_LISTED, DESTROYED_P,
SET_DESTROYED): new defines/macros.
(GUARDIAN_LIVE, GUARDIAN_ZOMBIES, GUARDIAN_NEXT): deleted.
(add_to_live_list): takes a `guardian_t *' now, not SCM.
(guardian_print): print more info.
(guardian_apply): check if the guardian is destroyed, and throw an
error if so. take one more optional argument `throw_p'.
(scm_guard): depending on the value of `throw_p', return a boolean
result.
(scm_get_one_zombie): remove redundant property test.
(guardian_t): represent the various (currently 3, I hope nothing
more gets added) boolean fields as bit flags.
(scm_guardian_destroyed_p, scm_guardian_greedy_p): new predicates.
(scm_destroy_guardian_x): new procedure.
* guardians.h: added prototypes for `scm_guardian_greedy_p' and
`scm_guardian_destroyed_p'. changed prototype for `scm_guard'.
Gary Houston [Tue, 2 Jan 2001 00:38:41 +0000 (00:38 +0000)]
* fports.c (fport_write): bugfix: handle short writes for
unbuffered ports too. optimize the buffered case by minimizing
the number of write/flush calls.
(write_all): new helper procedure.
Michael Livshin [Sat, 30 Dec 2000 19:26:37 +0000 (19:26 +0000)]
* guardians.c (guardian_print): for sharing guardians, print that
they are sharing.
(scm_guard, scm_get_one_zombie): place the critical section
barriers more correctly.
Michael Livshin [Fri, 29 Dec 2000 22:18:06 +0000 (22:18 +0000)]
* weaks.c (scm_scan_weak_vectors): move the calculation of the
`weak_keys' and `weak_values' flags out of the inner loop.
* guardians.c: (greedily_guarded_prop): deleted.
(greedily_guarded_whash): new variable. a doubly-weak hash table
used to keep the "greedily hashed" object property. the previous
implementation (via primitive object properties) was incorrect due
to its only-the-key-is-weak semantics.
(scm_guard, get_one_zombie, scm_init_guardians): use/init
`greedily_guarded_whash'.
Dirk Herrmann [Fri, 29 Dec 2000 15:47:16 +0000 (15:47 +0000)]
* Remove calls to symbol-interned? which have always been useless, but now
have become wrong since symbols and bindings are separated.
Dirk Herrmann [Thu, 28 Dec 2000 16:49:09 +0000 (16:49 +0000)]
* Fixed the changelog entry regarding re-introduction of struct member
properties (I continuously talked of member 'documentation' instead)
* Replace calls to scm_remember with calls to scm_remember_upto_here_1.
Dirk Herrmann [Thu, 28 Dec 2000 16:06:56 +0000 (16:06 +0000)]
* Get rid of the annoying variable-gets-clobbered-by-longjmp warning.
Dirk Herrmann [Thu, 28 Dec 2000 15:09:56 +0000 (15:09 +0000)]
* Re-introduces the unused member "documentation" of struct scm_subr_entry.
Michael Livshin [Thu, 28 Dec 2000 14:26:12 +0000 (14:26 +0000)]
* guardians.c (mark_dependencies_in_tconc): new function.
(mark_dependencies): bug fix. mark the dependencies of the known
zombies, too. duh.
Michael Livshin [Sun, 24 Dec 2000 09:54:24 +0000 (09:54 +0000)]
* gc.c: (scm_gc_mark_dependencies): use SCM_EQ_P for SCMs, not
'=='. also, return after calling `scm_gc_mark'.
Michael Livshin [Sun, 24 Dec 2000 00:41:14 +0000 (00:41 +0000)]
*** empty log message ***
Michael Livshin [Sat, 23 Dec 2000 23:00:23 +0000 (23:00 +0000)]
* gc.c: (scm_gc_mark_dependencies): new function. like
`scm_gc_mark', but doesn't mark the argument itself. defined
using an arrangement similar to that in eval.c: `scm_gc_mark' and
`scm_gc_mark_dependencies' are derived from the same "template"
by ugly preprocessor magic.
* gc.h: added prototype for `scm_gc_mark_dependencies'.
* init.c (scm_init_guile_1): call the renamed
`scm_init_guardians'.
* guardians.h: changed prototypes for `scm_make_guardian' and
`scm_init_guardians'.
* guardians.c (guardian_t): added new fields `greedy_p' and
`listed_p'.
(GUARDIAN_P): predicate that says whether its argument is a
guardian.
(GUARDIAN_GREEDY_P, GUARDIAN_LISTED_P): new predicates.
(greedy_guardians, sharing_guardians): new variables. hold the
greedy and sharing live guardian lists, respectively.
(first_live_guardian, current_link_field): removed.
(greedily_guarded_prop): new variable. holds the "is greedily
guarded" object property.
(self_centered_zombies): new variable. stores guarded objects
that are parts of cycles.
(add_to_live_list): new function, introduced to decouple marking a
guardian and adding it to the live list.
(guardian_mark): call `add_to_live_list'.
(guardian_print): print whether the guardian is greedy or not.
also change "live" and "zombie" to "reachable" and "unreachable"
respectively, to be less confusing.
(scm_guard): if the guardian is greedy, test whether the object is
already greedily marked. throw an error if so.
(scm_get_one_zombie): if the guardian is greedy, remove the
"greedily guarded" property from the object.
(scm_make_guardian): add a new optional boolean argument which
says whether the guardian is greedy or sharing.
(guardian_gc_init): init the new live lists.
(mark_dependencies): new function.
(mark_and_zombify): new function.
(guardian_zombify): reworked to support the new guardian
semantics. move some logic to `mark_dependencies' and
`mark_and_zombify'.
(whine_about_self_centered_zombies): new function. installed in
the `after-gc-hook' to complain about guarded objects which are
parts of cycles.
(scm_init_guardians): init the new stuff. renamed from
`scm_init_guardian'.
Marius Vollmer [Sat, 23 Dec 2000 17:27:04 +0000 (17:27 +0000)]
Doc fixes from Martin Grabmüller.
Dirk Herrmann [Sat, 23 Dec 2000 11:38:06 +0000 (11:38 +0000)]
* Removed unused member "properties" from struct scm_subr_entry.
Dirk Herrmann [Fri, 22 Dec 2000 16:46:17 +0000 (16:46 +0000)]
* Removed unused member "documentation" from struct scm_subr_entry.
* Eliminate use of scm_intern0/scm_sysintern0 in procs.c.
Dirk Herrmann [Thu, 21 Dec 2000 17:51:55 +0000 (17:51 +0000)]
* Make sure, re-entering the dynamic scope of an eval statement will
restore the latest selected module.
Dirk Herrmann [Thu, 21 Dec 2000 17:07:38 +0000 (17:07 +0000)]
* Simplify the use of SCM_PUREGENERICP.
Gary Houston [Wed, 20 Dec 2000 22:27:09 +0000 (22:27 +0000)]
* continuations.c (continuation_apply): subtract the length of
continuation->dynenv, not the dynenv itself. I broke it last
time I changed this file. thanks to Bernard Urban.
Dirk Herrmann [Mon, 18 Dec 2000 17:36:44 +0000 (17:36 +0000)]
* Remove some redundant SCM_N?IMP tests.
Mikael Djurfeldt [Sun, 17 Dec 2000 04:00:52 +0000 (04:00 +0000)]
*** empty log message ***