1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 04:40:29 +02:00
Commit graph

4550 commits

Author SHA1 Message Date
Kevin Ryde
33bea692e5 * threads.c, threads.h (scm_i_misc_mutex): New SCM_GLOBAL_MUTEX.
* posix.c (scm_crypt): Use it to protect static data in crypt().
2004-07-23 23:52:55 +00:00
Kevin Ryde
50dc184000 (scm_i_misc_mutex): New SCM_GLOBAL_MUTEX. 2004-07-23 23:51:58 +00:00
Marius Vollmer
e11e83f3d9 * deprecated.h, deprecated.c, numbers.h (SCM_INUMP, SCM_NINUMP,
SCM_INUM): Deprecated by reenaming them to SCM_I_INUMP, SCM_I_NINUMP
and SCM_I_INUM, respectively and adding deprecated versions to
deprecated.h and deprecated.c.  Changed all uses to either use the
SCM_I_ variants or scm_is_*, scm_to_*, or scm_from_*, as appropriate.
2004-07-23 15:43:02 +00:00
Marius Vollmer
928e0f4210 (scm_i_dowinds): Removed unused code that would call the unexisting
scm_cross_dynwind_binding_scope for inums on the windlist.
2004-07-23 15:34:07 +00:00
Marius Vollmer
3aa13a0579 (SCM_INUMP, SCM_NINUMP, SCM_INUM): Deprecated by reenaming them to
SCM_I_INUMP, SCM_I_NINUMP and SCM_I_INUM, respectively and adding
deprecated versions to deprecated.h and deprecated.c.  Changed all
uses to either use the SCM_I_ variants or scm_is_*, scm_to_*, or
scm_from_*, as appropriate.
2004-07-23 15:29:27 +00:00
Marius Vollmer
a55c2b6809 * validate.h, deprecated.h (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY,
SCM_VALIDATE_BIGINT, SCM_VALIDATE_INUM_MIN,
SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible.  Changed all uses to scm_to_size_t
or similar.
2004-07-10 14:35:36 +00:00
Marius Vollmer
7cee5b315a (ipv6_net_to_num, scm_from_ipv6): Renamed
ipv6_net_to_num to scm_from_ipv6, for converting from an IPv&
byte-wise address to a SCM integer.  Changed all uses.
(ipv6_num_to_net, scm_to_ipv6): Renamed ipv6_num_to_net to
scm_to_ipv6 and added type and range checking, for converting from
an IPv& byte-wise address to a SCM integer.  Changed all uses.
(bignum_in_ipv6_range_p, VALIDATE_INET6): Removed, their function
is now done by scm_to_ipv6.

* validate.h, deprecated.h (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY,
SCM_VALIDATE_BIGINT, SCM_VALIDATE_INUM_MIN,
SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible.  Changed all uses to scm_to_size_t
or similar.
2004-07-10 14:34:59 +00:00
Marius Vollmer
5efd3c7d68 (scm_to_signed_integer, scm_to_unsigned_integer): dot
not accept inexact integers.

* validate.h, deprecated.h (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY,
SCM_VALIDATE_BIGINT, SCM_VALIDATE_INUM_MIN,
SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible.  Changed all uses to scm_to_size_t
or similar.
2004-07-10 13:55:04 +00:00
Marius Vollmer
8805b77dd0 (SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY, SCM_VALIDATE_BIGINT,
SCM_VALIDATE_INUM_MIN, SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible.  Changed all uses to scm_to_size_t
or similar.
2004-07-10 13:47:02 +00:00
Marius Vollmer
0f94980db9 Use scm_from_int instead of SCM_MAKINUM. 2004-07-10 13:42:18 +00:00
Marius Vollmer
a3de8e7b0f Forgot to list just what numbers are no longer hard-coded in gen-scmconfig.c 2004-07-10 00:16:34 +00:00
Kevin Ryde
052fbfd928 *** empty log message *** 2004-07-09 23:16:48 +00:00
Kevin Ryde
f8fc973725 (scm_make_regexp): Free rx on error, to avoid memory leak. 2004-07-09 23:15:28 +00:00
Kevin Ryde
48a06bd55d *** empty log message *** 2004-07-09 23:08:53 +00:00
Kevin Ryde
803d27f9d0 (scm_hashq, scm_hashv, scm_hash): Restrict to size>=1 rather
than size>=0, since 0<=hash<size cannot be satisfied for size==0, and
such a size causes divide-by-zeros in scm_hasher.
2004-07-09 22:08:43 +00:00
Marius Vollmer
93ccaef0c6 * numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to
SCM_I_MAKINUM and changed all uses.
2004-07-08 15:58:11 +00:00
Marius Vollmer
43240c9caf *** empty log message *** 2004-07-08 15:54:40 +00:00
Marius Vollmer
d956fa6f91 (scm_is_signed_integer, scm_is_unsigned_integer):
Rewritten using the same logic as scm_to_signed_integer and
scm_to_unsigned_integer, respectively, which is better(tm).  Also,
use CHAR_BIT instead of hardcoding 8.
(LLONG_MIN, LLONG_MAX, ULLONG_MAX): Removed and used
SCM_I_LLONG_MIN etc. instead.

* numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to
SCM_I_MAKINUM and changed all uses.
2004-07-08 15:54:05 +00:00
Marius Vollmer
5a572ca13c * numbers.h (SCM_MAKINUM, SCM_I_MAKINUM): Renamed SCM_MAKINUM to
SCM_I_MAKINUM and changed all uses.
* deprecated.h, deprecated.c (SCM_MAKINUM): Newly deprecated.
2004-07-08 15:41:48 +00:00
Marius Vollmer
d199059254 Instead of hard-coding the numbers, compute them by assuming
twos-complement.
2004-07-08 15:31:39 +00:00
Marius Vollmer
c9eb03bb73 *** empty log message *** 2004-07-07 15:27:21 +00:00
Marius Vollmer
22008a7804 (scm_to_short, scm_to_ushort): It's SHRT_MIN, etc, not SHORT_MIN.
(scm_to_size_t): Use SIZE_MAX instead of cooking our own.
(scm_to_long_long, scm_to_ulong_long, scm_to_int8, scm_to_uint8,
scm_to_int16, scm_to_uint16, scm_to_int32, scm_to_uint32,
scm_to_int64, scm_to_uint64, scm_to_intmax, scm_to_uintmax,
scm_from_long_long, scm_from_ulong_long, scm_from_int8,
scm_from_uint8, scm_from_int16, scm_from_uint16, scm_from_int32,
scm_from_uint32, scm_from_int64, scm_from_uint64, scm_from_intmax,
scm_from_uintmax): New.
2004-07-07 15:22:56 +00:00
Marius Vollmer
76bd98fa16 * gen-scmconfig.h.in: Added all the new SCM_I_GSC_*_LIMITS that
configure now produces.
* gen-scmconfig.c: Use them to output SCM_T_INT8_MIN, etc
definitions, giving the limits of the integer types defined by
Guile. Also, output a hard coded SCM_I_LLONG_MIN, etc since
LLONG_MIN or LONG_LONG_MIN is hard to get at.
2004-07-07 15:18:31 +00:00
Marius Vollmer
e5b8d4ddba Added all the new SCM_I_GSC_*_LIMITS that configure now produces. 2004-07-07 15:16:20 +00:00
Marius Vollmer
7888309be8 * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h".
Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and
scm_is_bool, respectively.
2004-07-06 10:59:25 +00:00
Marius Vollmer
9c293a3d2f (scm_is_eq): New. 2004-07-06 10:42:33 +00:00
Marius Vollmer
1fe56d60fd (scm_is_bool): Fix typo.
* deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h".
Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and
scm_is_bool, respectively.
2004-07-06 10:25:37 +00:00
Marius Vollmer
73e4de09b9 (scm_is_integer, scm_is_signed_integer, scm_is_unsigned_integer,
scm_to_signed_integer, scm_to_unsigned_integer, scm_to_schar,
scm_to_uchar, scm_to_char, scm_to_short, scm_to_ushort, scm_to_long,
scm_to_ulong, scm_to_size_t, scm_to_ssize_t, scm_from_schar,
scm_from_uchar, scm_from_char, scm_from_short, scm_from_ushort,
scm_from_int, scm_from_uint, scm_from_long, scm_from_ulong,
scm_from_size_t, scm_from_ssize_t, scm_is_real, scm_to_double,
scm_from_double): New.

* deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into "deprecated.h".
Replaced all uses with scm_is_false, scm_is_true, scm_from_bool, and
scm_is_bool, respectively.
2004-07-06 10:23:30 +00:00
Marius Vollmer
ede310d888 * deprecated.h, boolean.h (SCM_FALSEP, SCM_NFALSEP, SCM_BOOL,
SCM_NEGATE_BOOL, SCM_BOOLP): Deprecated by moving into
"deprecated.h".  Replaced all uses with scm_is_false, scm_is_true,
scm_from_bool, and scm_is_bool, respectively.

* boolean.h (scm_is_bool): Fix bug in prototype.
(scm_from_bool): The argument is "x" not "f", stupid.
2004-07-06 10:05:45 +00:00
Marius Vollmer
800570a6c7 *** empty log message *** 2004-07-05 17:14:23 +00:00
Marius Vollmer
3a684cc6c9 (scm_is_true, scm_is_false, scm_from_bool, scm_to_bool): New. 2004-07-05 17:13:39 +00:00
Dirk Herrmann
9fcf3cbb81 * backtrace.c (display_expression, display_frame): Call
scm_i_unmemoize_expr for unmemoizing a memoized object holding a
	single memoized expression.

	* debug.c (memoized_print): Don't try to unmemoize the memoized
	object, since we can't know whether it holds a single expression
	or a body.

	(scm_mem_to_proc): Removed check for lambda expression, since it
	was moot anyway.  Whoever uses these functions for debugging
	purposes should know what they do: Creating invalid memoized code
	will cause crashes, independent of whether this check is present
	or not.

	(scm_proc_to_mem): Take the closure's code as it is and don't
	append a SCM_IM_LAMBDA isym.  To allow easier debugging, the
	memoized code should not be modified.

	* debug.[ch] (scm_unmemoize, scm_i_unmemoize_expr): Removed
	scm_unmemoize from public use, but made scm_i_unmemoize_expr
	available as a guile internal function instead.  However,
	scm_i_unmemoize_expr will only work on memoized objects that hold
	a single memoized expression.  It won't work with bodies.

	* debug.c (scm_procedure_source), macros.c (macro_print), print.c
	(scm_iprin1): Call scm_i_unmemocopy_body for unmemoizing a body,
	i. e. a list of expressions.

	* eval.c (unmemoize_exprs): Drop internal body markers from the
	output during unmemoization.

	* eval.[ch] (scm_unmemocopy, scm_i_unmemocopy_expr,
	scm_i_unmemocopy_body): Removed scm_unmemocopy from public use,
	but made scm_i_unmemocopy_expr and scm_i_unmemocopy_body available
	as guile internal functions instead.  scm_i_unmemoize_expr will
	only work on a single memoized expression, while
	scm_i_unmemocopy_body will only work on bodies.
2004-06-27 12:34:54 +00:00
Dirk Herrmann
90df793f67 * eval.c (unmemoize_exprs): Handle semi-memoized code.
(scm_cons_source, scm_primitive_eval): Prefer higher level
	predicate SCM_FALSEP over SCM_IMP.
2004-06-21 20:40:36 +00:00
Rob Browning
8048c00b4f *** empty log message *** 2004-06-16 04:10:37 +00:00
Rob Browning
537abaae4d update ifdefery for macosx.
(scm_get_stack_base): separate result initialization from
declaration to slience warnings with macosx and hp-ux using gcc
3.3.  Thanks to Andreas Vögele.
2004-06-16 04:09:52 +00:00
Rob Browning
17c22047f8 (scm_shell_usage): minor phrasing change. 2004-06-16 04:08:25 +00:00
Han-Wen Nienhuys
d93294d451 (unmemoize_exprs): use SCM_CONSP for the loop condition. 2004-06-12 22:22:56 +00:00
Dirk Herrmann
212e58ede8 * list.[ch] (scm_i_finite_list_copy): New internal function to
copy lists that are known to be finite (though not necessarily
	proper).

	* debug.c (scm_procedure_source): Don't have scm_unmemocopy treat
	a closure's argument list like an expression of a body.

	* eval.c (unmemoize_expression, unmemoize_exprs, unmemoize_and,
	unmemoize_begin, unmemoize_case, unmemoize_cond, unmemoize_delay,
	unmemoize_do, unmemoize_if, unmemoize_lambda, unmemoize_let,
	unmemoize_letrec, unmemoize_letstar, unmemoize_or,
	unmemoize_set_x, unmemoize_apply, unmemoize_atcall_cc,
	unmemoize_at_call_with_values, unmemoize_future, sym_atslot_ref,
	unmemoize_atslot_ref, sym_atslot_set_x, unmemoize_atslot_set_x,
	unmemoize_builtin_macro): New static functions and symbols.

	(scm_unmemocopy): Rewritten in terms of the above.  scm_unmemocopy
	now has a slightly different meaning: The memoized form that is
	receives as its argument is now interpreted as a sequence of
	expressions from a body.

	(unmemocar, scm_unmemocar): Since the whole functionality of
	unmemocar and scm_unmemocar is not needed any more, scm_unmemocar
	has its old content back and is deprecated, while unmemocar has
	been removed.

	(SCM_BIT7): Removed.

	(CEVAL): For unmemoizing a single expression, call
	unmemoize_expression instead of scm_unmemocopy, which now expects
	a sequence of body expressions.  Eliminated unnecessary empty
	environment frame when executing let* forms.  Eliminated
	unmemoization step from evaluator.
2004-06-06 07:46:18 +00:00
Marius Vollmer
9ccea37043 *** empty log message *** 2004-06-02 09:44:55 +00:00
Marius Vollmer
2b189e65c4 (scm_macroexp, macroexp): Renamed scm_macroexp to
macroexp and made static.  Added new version of scm_macroexp that
emits a deprecation warning and then calls macroexp.
(scm_m_undefine): Issue deprecation warning.
2004-06-02 09:37:48 +00:00
Dirk Herrmann
57d23e259a * eval.c (lookup_global_symbol, literal_p, try_macro_lookup):
Modified to make set! work on symbols that represent syntactic
	keywords.
2004-05-30 07:01:27 +00:00
Han-Wen Nienhuys
141521ad8b (SCM_CELL_OBJECT_LOC): use SCM_GC_CELL_OBJECT to prevent
compound expression as lvalue errors.
2004-05-26 21:15:30 +00:00
Marius Vollmer
7c2f56a4de *** empty log message *** 2004-05-24 21:29:26 +00:00
Marius Vollmer
78addfa35e (winder_mark): Use SCM_PACK to correctly convert the WINDER_DATA to a
SCM.
2004-05-24 21:14:59 +00:00
Dirk Herrmann
366ecaec7a * goops.c (compute_getters_n_setters, create_standard_classes,
scm_add_slot): Compute closures by calling scm_i_eval_x on a
	lambda expression rather than creating them with scm_closure.
2004-05-24 04:15:49 +00:00
Dirk Herrmann
26ecfa393d * eval.c (s_macro_keyword, scm_m_set_x): Remove checking for
misplaced syntactic keywords.  This will not work unless guile's
	defmacro feature is deprecated.

	(scm_m_case): Fixed a bug that caused the list of labels to grow
	with every case form.
2004-05-22 06:51:36 +00:00
Kevin Ryde
f865229a61 *** empty log message *** 2004-05-19 00:06:42 +00:00
Kevin Ryde
659998043d (scm_threads_mark_stacks) [SCM_STACK_GROWS_UP]: Correction
to stack marking call, two parameters and no cast on t->base.
2004-05-19 00:04:16 +00:00
Kevin Ryde
faff1f2fda (trunc): Remove #define to scm_truncate when the C library
doesn't provide trunc.  This was for when `truncate' was done as a
scm_tc7_dsubr, no longer required.
2004-05-18 23:45:34 +00:00
Kevin Ryde
bae30667b0 (scm_round_number): For inum and big, just return x. For
real, use scm_round for 2^54-1 etc problems covered there.
2004-05-18 23:43:28 +00:00