Kevin Ryde [Sat, 10 May 2003 00:23:50 +0000 (00:23 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 10 May 2003 00:23:00 +0000 (00:23 +0000)]
(gcd): Exercise bignum/inum with a bignum not
fitting a ulong.
Kevin Ryde [Sat, 10 May 2003 00:20:05 +0000 (00:20 +0000)]
(scm_gcd): In bignum/inum, don't pass yy==0 to mpz_gcd_ui
since we're only using the ulong return value, and x might not fit.
Kevin Ryde [Sat, 10 May 2003 00:10:40 +0000 (00:10 +0000)]
(integer-length): Exercise some negatives, in
particular -2^n which is ...11100..00.
Kevin Ryde [Sat, 10 May 2003 00:07:34 +0000 (00:07 +0000)]
(=, <): Add tests involving NaNs.
Kevin Ryde [Sat, 10 May 2003 00:05:51 +0000 (00:05 +0000)]
(scm_integer_length): On negative bignums, adjust
mpz_sizeinbase to account for it looking at absolute value where we
want ones-complement.
Kevin Ryde [Fri, 9 May 2003 23:20:03 +0000 (23:20 +0000)]
*** empty log message ***
Kevin Ryde [Fri, 9 May 2003 23:14:35 +0000 (23:14 +0000)]
(scm_num_eq_p, scm_less_p): Don't pass NaN to mpz_cmp_d.
Kevin Ryde [Fri, 9 May 2003 23:09:30 +0000 (23:09 +0000)]
*** empty log message ***
Kevin Ryde [Fri, 9 May 2003 23:08:57 +0000 (23:08 +0000)]
(Handling Errors): Revise C support section to
get index entries, and clarify parameters. Remove scm_regex_error, no
longer exists and wasn't available to applications.
Kevin Ryde [Fri, 9 May 2003 22:43:00 +0000 (22:43 +0000)]
*** empty log message ***
Kevin Ryde [Fri, 9 May 2003 22:42:00 +0000 (22:42 +0000)]
* tests/srfi-1.test: New file, exercising take and drop.
* Makefile.am (SCM_TESTS): Add it.
Kevin Ryde [Fri, 9 May 2003 22:41:06 +0000 (22:41 +0000)]
New file, exercising take and drop.
Kevin Ryde [Fri, 9 May 2003 22:38:54 +0000 (22:38 +0000)]
(take): Make this an alias for list-head.
(drop): Make this an alias for list-tail.
Kevin Ryde [Thu, 8 May 2003 01:06:59 +0000 (01:06 +0000)]
*** empty log message ***
Kevin Ryde [Thu, 8 May 2003 01:03:51 +0000 (01:03 +0000)]
*** empty log message ***
Kevin Ryde [Thu, 8 May 2003 01:03:25 +0000 (01:03 +0000)]
(Bitwise Operations): Fix lognot to ones-complement.
Kevin Ryde [Thu, 8 May 2003 00:44:27 +0000 (00:44 +0000)]
*** empty log message ***
Kevin Ryde [Thu, 8 May 2003 00:41:16 +0000 (00:41 +0000)]
* slib.texi (JACAL): Fix @ref title.
Add index entries, use @file and @code variously.
Dirk Herrmann [Tue, 6 May 2003 20:17:26 +0000 (20:17 +0000)]
* eval.c, eval.h, read.c, read.h (scm_sym_dot): Moved from eval to
read. This will allow to make the definition in read.c static.
Dirk Herrmann [Tue, 6 May 2003 20:05:04 +0000 (20:05 +0000)]
* eval.c, eval.h, evalext.c, evalext.h (scm_m_undefine): Moved
from evalext to eval. This will allow to make some of the
definitions in eval.c static.
Kevin Ryde [Tue, 6 May 2003 00:37:57 +0000 (00:37 +0000)]
*** empty log message ***
Kevin Ryde [Tue, 6 May 2003 00:30:38 +0000 (00:30 +0000)]
*** empty log message ***
Kevin Ryde [Mon, 5 May 2003 23:09:48 +0000 (23:09 +0000)]
(C level thread interface): Use @deftypefn
not @deftypefun, to get function names (not types) indexed.
Kevin Ryde [Mon, 5 May 2003 23:04:02 +0000 (23:04 +0000)]
(logcount): New tests, exercising some negatives.
Kevin Ryde [Mon, 5 May 2003 23:01:30 +0000 (23:01 +0000)]
(scm_logcount): Use mpz_com, not mpz_neg.
Kevin Ryde [Mon, 5 May 2003 22:59:03 +0000 (22:59 +0000)]
(-): Add test for negative inum subtract bignum.
Kevin Ryde [Mon, 5 May 2003 22:55:46 +0000 (22:55 +0000)]
(scm_difference): In inum - bignum, handle negative inum.
Kevin Ryde [Mon, 5 May 2003 22:52:04 +0000 (22:52 +0000)]
* scheme-options.texi (Build Config): Add index entries for
%guile-build-info keys.
Dirk Herrmann [Sun, 4 May 2003 08:36:56 +0000 (08:36 +0000)]
The purpose of this patch is to make guile's internal memoizers
distinguishable from memoizing macros created on the scheme level
or from user provided primitive memoizing macros. The reason is,
that the internal memoizers are the only ones that are allowed to
transform their scheme input into memoizer byte code, while all
other memoizing macros may only transform scheme code into new
scheme code.
To achieve this, a new macro type 'builtin-macro!' is introduced.
Currently, 'builtin-macro!'s are handled as memoizing macros, but
this will change when the memoizer and executor are separated.
* macros.[ch] (scm_i_makbimacro): New.
* macros.h (SCM_BUILTIN_MACRO_P): New.
* macros.c (macro_print, scm_macro_type): Support builtin-macro!s.
* eval.c, goops.c: All of guile's primitive memoizing macros are
primitive builtin-macros now.
* eval.c (scm_macroexp, SCM_CEVAL): Make sure the primitive
builtin-macros are handled equally to memoizing macros.
Kevin Ryde [Sun, 4 May 2003 01:37:21 +0000 (01:37 +0000)]
*** empty log message ***
Kevin Ryde [Sun, 4 May 2003 00:40:13 +0000 (00:40 +0000)]
(Writing): Add write, revise display.
Marius Vollmer [Sat, 3 May 2003 23:20:21 +0000 (23:20 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 23:19:51 +0000 (23:19 +0000)]
Doc fix for the usage of num2intergral.
Marius Vollmer [Sat, 3 May 2003 23:18:51 +0000 (23:18 +0000)]
When checking whether readline clears SA_RESTART, let readline read
from "/dev/null". Otherwise, it might be stopped when run in the
background with job control, say. Thanks to Michael Talbot-Wilson!
Kevin Ryde [Sat, 3 May 2003 23:10:11 +0000 (23:10 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 3 May 2003 23:00:53 +0000 (23:00 +0000)]
(Reading): In read-char and peek-char, fix typos "?"
in @rnindex. In port-column, use @: after i.e.
(Writing): In get-print-state, two spaces after full stop.
Kevin Ryde [Sat, 3 May 2003 22:48:47 +0000 (22:48 +0000)]
*** empty log message ***
Kevin Ryde [Sat, 3 May 2003 22:45:49 +0000 (22:45 +0000)]
(Integer Operations): Describe how quotient,
remainder and modulo round their results.
Kevin Ryde [Sat, 3 May 2003 22:39:08 +0000 (22:39 +0000)]
In reduce-right, use @code on "reduce".
Kevin Ryde [Sat, 3 May 2003 22:36:36 +0000 (22:36 +0000)]
(SRFI-1 Fold and Map): Fix typo "... variant of fold", add "f" to fold
call shown.
Kevin Ryde [Sat, 3 May 2003 22:27:14 +0000 (22:27 +0000)]
(SRFI-1 Length Append etc): Add count.
Kevin Ryde [Sat, 3 May 2003 22:24:36 +0000 (22:24 +0000)]
(Processes): Fix typo "hhhh".
Kevin Ryde [Sat, 3 May 2003 22:22:51 +0000 (22:22 +0000)]
Add spaces after some @defun names.
Marius Vollmer [Sat, 3 May 2003 22:10:05 +0000 (22:10 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 22:09:20 +0000 (22:09 +0000)]
(scm_ithrow): Remove "asm volatile" hack. It used to work around a
bug in GCC 2.95.2 but is now a bug in itself.
Marius Vollmer [Sat, 3 May 2003 21:34:49 +0000 (21:34 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 21:34:33 +0000 (21:34 +0000)]
(point++n!, point+-n!): Use substring-move! instead of
substring-move-left! or substring-move-right!. Thanks to Kevin Ryde.
Marius Vollmer [Sat, 3 May 2003 21:34:23 +0000 (21:34 +0000)]
(substring-move-left!, substring-move-right!): New.
Marius Vollmer [Sat, 3 May 2003 20:57:40 +0000 (20:57 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 20:52:53 +0000 (20:52 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 20:52:31 +0000 (20:52 +0000)]
(display-usage-report): Use keyword->symbol instead of keyword-symbol,
which doesn't exist. Thanks to Kevon Ryde.
Marius Vollmer [Sat, 3 May 2003 20:41:49 +0000 (20:41 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 20:41:30 +0000 (20:41 +0000)]
(hashq-cons-get-handle): Pass only the expected four arguments to
hashx-get-handle. Thanks to Kevin Ryde!
Marius Vollmer [Sat, 3 May 2003 20:24:37 +0000 (20:24 +0000)]
*** empty log message ***
Marius Vollmer [Sat, 3 May 2003 20:24:22 +0000 (20:24 +0000)]
(make-line-buffering-input-port) Pass 0 as second argument to
string-ref. Thanks to Kevin Ryde!
Marius Vollmer [Sat, 3 May 2003 19:58:55 +0000 (19:58 +0000)]
New. Thanks to Dale P. Smith for pointing us to these tests.
Marius Vollmer [Thu, 1 May 2003 23:14:02 +0000 (23:14 +0000)]
*** empty log message ***
Marius Vollmer [Thu, 1 May 2003 23:11:51 +0000 (23:11 +0000)]
(scm_rstate, scm_rng, SCM_SLOPPY_CONSP, SCM_SLOPPY_NCONSP,
scm_tc7_ssymbol, scm_tc7_msymbol, scm_tcs_symbols): New.
Neil Jerram [Wed, 30 Apr 2003 23:44:07 +0000 (23:44 +0000)]
Indexing improvements in posix.texi.
Marius Vollmer [Wed, 30 Apr 2003 14:51:01 +0000 (14:51 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 30 Apr 2003 14:50:53 +0000 (14:50 +0000)]
(scm_protect_object, scm_unprotect_object, SCM_SETAND_CAR,
SCM_SETOR_CAR, SCM_SET_AND_CDR, SCM_SET_OR_CDR, SCM_FREEP, SCM_NFREEP,
SCM_GC8MARKP, SCM_SETGC8MARK, SCM_CLRGC8MARK, SCM_GCTYP16, SCM_GCCDR,
scm_remember, scm_the_root_module, scm_make_module,
scm_ensure_user_module, scm_load_scheme_module, scm_port,
scm_ptob_descriptor, scm_port_rw_active, scm_close_all_ports_except):
New.
Marius Vollmer [Wed, 30 Apr 2003 14:45:10 +0000 (14:45 +0000)]
*** empty log message ***
Marius Vollmer [Wed, 30 Apr 2003 14:43:10 +0000 (14:43 +0000)]
(scm_c_port_for_each): Added.
Marius Vollmer [Wed, 30 Apr 2003 14:38:53 +0000 (14:38 +0000)]
* ports.c (scm_c_port_for_each): New function, mostly copied from
scm_port_for_each.
(scm_port_for_each): Reimplemented using scm_c_port_for_each.
* ports.h (scm_c_port_for_each): New prototype.
Neil Jerram [Wed, 30 Apr 2003 00:06:33 +0000 (00:06 +0000)]
SRFI 34
Mikael Djurfeldt [Mon, 28 Apr 2003 12:43:45 +0000 (12:43 +0000)]
* eval.c (scm_m_atdispatch): Removed until actually needed. (This
macro was introduced in anticipation of GOOPS method compilation
code.)
* goops.c: Removed binding of @dispatch.
Dirk Herrmann [Mon, 28 Apr 2003 06:05:10 +0000 (06:05 +0000)]
* eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the
instructions that bind the macros on the scheme level back to
goops.c in order to make sure again that the bindings go into the
(oop goops) module and are not visible from the outside.
Dirk Herrmann [Sun, 27 Apr 2003 12:06:48 +0000 (12:06 +0000)]
* eval.c: Non functional change: Separated R5RS and non-R5RS
macros into different sections of the file and ordered the
memoizers alphabetically.
Dirk Herrmann [Sun, 27 Apr 2003 11:06:14 +0000 (11:06 +0000)]
* eval.c (scm_ilookup): Rewritten to improve readability.
Dirk Herrmann [Sun, 27 Apr 2003 10:44:08 +0000 (10:44 +0000)]
* eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
Partially reverted patch from 2003-04-23 in oder to find a better
compromise between readability and debuggability.
Neil Jerram [Sat, 26 Apr 2003 15:30:59 +0000 (15:30 +0000)]
Document scm_str2symbol and scm_mem2symbol.
Neil Jerram [Sat, 26 Apr 2003 15:09:18 +0000 (15:09 +0000)]
Doc clarification from tomas@fabula.de.
Neil Jerram [Sat, 26 Apr 2003 15:02:56 +0000 (15:02 +0000)]
scm_sysmissing doc fix from Kevin Ryde.
Mikael Djurfeldt [Fri, 25 Apr 2003 19:49:15 +0000 (19:49 +0000)]
* serialize.scm: New file.
Mikael Djurfeldt [Fri, 25 Apr 2003 19:48:33 +0000 (19:48 +0000)]
Comment fix
Dirk Herrmann [Fri, 25 Apr 2003 16:22:47 +0000 (16:22 +0000)]
* eval.c, eval.h, goops.c, goops.h (scm_m_atslot_ref,
scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
definitions of the special goops memoizers from goops.[ch] to
eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
throughout guile.
Mikael Djurfeldt [Thu, 24 Apr 2003 16:02:04 +0000 (16:02 +0000)]
* ports.c, ports.h (scm_i_port_table_mutex): New mutex.
* fports.c (scm_evict_ports): Lock/unlock scm_i_port_table_mutex.
* ports.c (scm_close_port, scm_flush_all_ports): Ditto.
* ioext.c (scm_fdes_to_ports): Ditto.
* vports.c (scm_make_soft_port): Changed SCM_DEFER/ALLOW_INTS into
lock/unlock scm_i_port_table_mutex.
* strports.c (scm_mkstrport): Ditto.
* ports.c (scm_void_port, scm_port_for_each): Ditto.
* fports.c (scm_fdes_to_port): Ditto.
Mikael Djurfeldt [Thu, 24 Apr 2003 10:44:06 +0000 (10:44 +0000)]
* threads.scm (n-for-each-par-map): New procedure.
Dirk Herrmann [Wed, 23 Apr 2003 19:04:00 +0000 (19:04 +0000)]
* tests/syntax.test: Modified some tests to use eval when
providing bad syntax. Otherwise, the memoizer will report an
error immediately after reading the form, without even the chance
to get the pass-if-exception mechanism started.
Dirk Herrmann [Wed, 23 Apr 2003 18:47:54 +0000 (18:47 +0000)]
* tests/guardians.test: Added some more elaborate and
sophisticated tests for the guardian functionality.
Dirk Herrmann [Wed, 23 Apr 2003 18:27:37 +0000 (18:27 +0000)]
This set of patches contains no functional changes, only debatable
minor stylistic ones. Still, in order to prepare a patch between
my local copy and the CVS version, I decided to submit the changes
below. Then, the patch will hopefully only contain relevant
modifications :-)
* eval.c (iqq): Added const specifier.
* eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
Use NULL instead of 0 to indicate that a pointer is returned.
Removed some misleading 'fall through' comments.
* eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
Split up long expressions into smaller ones to be more debugging
friendly.
Dirk Herrmann [Wed, 23 Apr 2003 17:20:26 +0000 (17:20 +0000)]
* eval.h (SCM_ENTER_FRAME_HDLR, SCM_APPLY_FRAME_HDLR,
SCM_EXIT_FRAME_HDLR): Use SCM_PACK to convert data to a SCM value
rather than casting to SCM.
Dirk Herrmann [Wed, 23 Apr 2003 16:49:30 +0000 (16:49 +0000)]
* sort.c, pairs.h: Removed unnecessary includes.
Dirk Herrmann [Tue, 22 Apr 2003 23:32:40 +0000 (23:32 +0000)]
* test-suite/tests/sort.test: Added. Both tests in that file did
fail (one even with a segfault) with CVS guile before the recent
changes to libguile/sort.c.
* libguile/sort.c: Replaced hand-made trampline code by the new
official mechanism from eval.c. This fixes a segfault in the new
test file test-suite/tests/sort.test.
(quicksort, compare_function, scm_restricted_vector_sort_x,
scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
eval.c.
(subr2less, lsubrless, closureless, applyless, scm_cmp_function,
cmp_fun_t): Removed.
(compare_function): Added.
* libguile/sort.c (quicksort, SWAP, stack_node): Replaced pointer
arithmetics with index arithmetics. Changed quicksort to work on
an array of SCM values instead of an array of characters. Avoid
bytewise copying of SCM elements. Avoid allocating memory on the
stack with alloca. Fixed some comments.
Marius Vollmer [Tue, 22 Apr 2003 22:41:39 +0000 (22:41 +0000)]
*** empty log message ***
Marius Vollmer [Tue, 22 Apr 2003 22:41:19 +0000 (22:41 +0000)]
Removed stray "o" from exports list.
Dirk Herrmann [Mon, 21 Apr 2003 19:20:13 +0000 (19:20 +0000)]
* eval.c (EXTEND_ENV): Eliminated.
(unmemocopy, SCM_CEVAL, SCM_APPLY): Use SCM_EXTEND_ENV instead of
EXTEND_ENV.
Dirk Herrmann [Mon, 21 Apr 2003 14:39:37 +0000 (14:39 +0000)]
* __scm.h (SCM_DEBUG_DEBUGGER_SUPPORT): New compile-time option.
* gc.card.c (scm_gc_marked_p): Fixed compiler warning when
compiling with SCM_DEBUG==1 by moving definition behind prototype.
* gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
functions such that they check if the object is a non-immediate.
Further, renamed identifiers to use the scm_dbg_ prefix and made
their inclusion into the lib dependent of the
SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
Dirk Herrmann [Mon, 21 Apr 2003 13:33:48 +0000 (13:33 +0000)]
* __scm.h: Fixed comment about the SCM_DEBUG_TYPING_STRICTNESS
debug option.
Dirk Herrmann [Mon, 21 Apr 2003 01:59:57 +0000 (01:59 +0000)]
* srfi/srfi-1.c (srfi1_ilength), libguile/list.c (scm_ilength,
scm_last_pair), libguile/unif.c (l2ra): Prefer !SCM_CONSP over
SCM_NCONSP.
* libguile/unif.c (l2ra): Eliminate redundant check.
Now, guile itself does not include any calls to SCM_NCONSP any
more.
Dirk Herrmann [Mon, 21 Apr 2003 01:35:33 +0000 (01:35 +0000)]
* list.c (scm_cons_star), ramap.c (scm_ra_sum, scm_ra_product,
scm_array_map_x), unif.c (l2ra): Prefer !SCM_NULLP over
SCM_NNULLP. Now, guile itself does not include any calls to
SCM_NNULLP any more.
Dirk Herrmann [Mon, 21 Apr 2003 01:07:09 +0000 (01:07 +0000)]
* eval.c (unmemocopy, SCM_APPLY, scm_map, scm_for_each,
scm_copy_tree): Place assignment expressions which are part of
other expressions into an expression of their own.
Dirk Herrmann [Sun, 20 Apr 2003 23:38:18 +0000 (23:38 +0000)]
* goops.c (TEST_CHANGE_CLASS, scm_sys_initialize_object): Don't
compare SCM values with !=.
Dirk Herrmann [Sun, 20 Apr 2003 19:18:43 +0000 (19:18 +0000)]
* eval.c, eval.h, evalext.c, evalext.h (scm_sym_setter,
scm_m_generalized_set_x, scm_init_evalext): Move the declaration
and definition of the memoizer for the generalized set! macro from
evalext.[ch] to eval.[ch]. Use the SCM_SYNTAX snarfer macro to
define the macro object.
* eval.c, eval.h (s_set_x, scm_s_set_x, scm_m_set_x,
scm_m_generalized_set_x): Since now scm_s_set_x is only used in
eval.c, it is made static and renamed to s_set_x.
* evalext.c (scm_defined_p, scm_m_undefine): Prefer !SCM_<foo>
over SCM_N<foo>.
Dirk Herrmann [Sun, 20 Apr 2003 18:08:07 +0000 (18:08 +0000)]
* eval.c, root.h (scm_undefineds, SCM_NUM_PROTECTS, undefineds,
scm_init_eval): Made scm_undefineds static in eval.c, renamed it
to undefineds and registered the object as a permanent object.
* eval.c, eval.h (scm_f_apply, scm_init_eval): Made scm_f_apply
static in eval.c, renamed it to f_apply and registered the object
as a permanent object.
Mikael Djurfeldt [Sun, 20 Apr 2003 17:35:41 +0000 (17:35 +0000)]
* goops.scm (compute-getters-n-setters): Allow for primitive
procedure thunks. (Thanks to Neil W. Van Dyke.)
Mikael Djurfeldt [Sun, 20 Apr 2003 11:44:12 +0000 (11:44 +0000)]
*** empty log message ***
Dirk Herrmann [Sun, 20 Apr 2003 11:01:33 +0000 (11:01 +0000)]
* eval.c (SCM_BIT8, SCM_BIT8, unmemocopy, SCM_CEVAL): Renamed
file-local macro SCM_BIT8 to SCM_BIT7, which is more appropriate.
Dirk Herrmann [Sun, 20 Apr 2003 08:55:50 +0000 (08:55 +0000)]
* numbers.c (scm_logtest): Fixed argument bug in the call to
mpz_and, which showed up when compiling with SCM_DEBUG defined.