X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/5d7d39ff5d54f9c2191d19bff64bb4ab8d458228..2a6f7afe04884f562b343a82033c381fe859bd03:/libguile/ChangeLog diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 082272c4d..90dec9bb1 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,199 @@ +2003-10-11 Dirk Herrmann + + * tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes. + + * print.c (scm_isymnames): Add names for the new memoizer codes. + + * eval.c (s_missing_clauses, s_bad_case_clause, + s_extra_case_clause, s_bad_case_labels, s_duplicate_case_label, + literal_p): New static identifiers. + + (scm_m_case): Use ASSERT_SYNTAX to signal syntax errors. Be more + specific about the kind of error that was detected. Check for + duplicate case labels. Handle bound 'else. Avoid unnecessary + consing when creating the memoized code. + + (scm_m_case, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize + the syntactic keyword 'else. + +2003-10-10 Dirk Herrmann + + * eval.c (s_bad_expression, syntax_error_key, syntax_error, + ASSERT_SYNTAX, ASSERT_SYNTAX_2): New static identifiers. + + (scm_m_and): Use ASSERT_SYNTAX to signal syntax errors. Avoid + unnecessary consing when creating the memoized code. + +2003-10-09 Kevin Ryde + + * numbers.c (scm_inexact_to_exact): Don't depend on what double->long + cast gives for values bigger than a long, or for nan or inf. + +2003-10-08 Dirk Herrmann + + * smob.h (scm_make_smob_type): Made the declaration match the + definition. + +2003-10-07 Marius Vollmer + + * goops.c, objects.h, smob.c, smob.h: Make type names char + const * instead of char *. Thanks to Paul Jarc! + +2003-10-02 Kevin Ryde + + * strports.c (scm_call_with_output_string): scm_get_output_string + rather than scm_strport_to_string, so as to guard against the port + having been closed by the called procedure. Reported by Nic Ferrier. + +2003-09-18 Dirk Herrmann + + * numbers.h (SCM_INEXACTP): Removed uses of SCM_TYP16S. + + * tags.h, deprecated.h (SCM_TYP16S): Deprecated and moved from + tags.h to deprecated.h. + +2003-09-18 Dirk Herrmann + + This set of patches introduces a new tc7 code scm_tc7_number for + numbers. Bignums, reals and complex numbers are turned from smobs + into subtypes of scm_tc7_number. + + * tags.h (scm_tc7_number): New. + + * eq.c (scm_equal_p), eval.c (SCM_CEVAL), evalext.c + (scm_self_evaluating_p), gc-card.c (scm_i_sweep_card), gc-mark.c + (scm_gc_mark_dependencies), goops.c (create_smob_classes), hash.c + (scm_hasher), numbers.c, numbers.h (SCM_NUMP), objects.c + (scm_class_of), print.c (scm_iprin1), smob.c + (scm_smob_prehistory): Don't handle bignums, reals and complex + numbers as subtypes of scm_tc7_smob any more. + + * numbers.h, tags.h (scm_tc16_big, scm_tc16_real, + scm_tc16_complex): Moved definitions from tags.h to numbers.h. + +2003-09-18 Dirk Herrmann + + * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use + sizeof (scm_t_complex) to determine the memory size of the + malloc'd area for complex numbers. + +2003-09-17 Dirk Herrmann + + * numbers.c (scm_bigequal): Fixed. + +2003-09-16 Marius Vollmer + + * stime.c (scm_current_time): 'time' does not set errno so don't + use SCM_SYSERROR for reporting errors. + +2003-09-16 Dirk Herrmann + + This set of patches eliminates the dependency between the + implementation of evaluator specific memoization codes and special + constants like #f, '() etc. ('flags'), which are not evaluator + specific. The goal is to remove definitions of evaluator + memoization codes completely from the public interface. This will + make it possible to experiment more freely with optimizations of + guile's internal representation of memoized code. + + * objects.c (scm_class_of): Eliminate dependency on SCM_ISYMNUM. + + * print.c (iflagnames): New array, holding the printed names of + guile's special constants ('flags'). + + (scm_isymnames): Now holds only the printed names of the + memoization codes. + + (scm_iprin1): Separate the handling of memoization codes and + guile's special constants. + + * tags.h (scm_tc9_flag, SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA, + SCM_IFLAGNUM): new + + (scm_tc8_char, scm_tc8_iloc, SCM_BOOL_F, SCM_BOOL_T, + SCM_UNDEFINED, SCM_EOF_VAL, SCM_EOL, SCM_UNSPECIFIED, SCM_UNBOUND, + SCM_ELISP_NIL, SCM_IM_DISPATCH, SCM_IM_SLOT_REF, + SCM_IM_SLOT_SET_X, SCM_IM_DELAY, SCM_IM_FUTURE, + SCM_IM_CALL_WITH_VALUES, SCM_IM_NIL_COND, SCM_IM_BIND): Changed + values. + + (SCM_IFLAGP): SCM_IFLAGP now only tests for flags. + + (SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Generalized to use the + tc9 macros and scm_tc9_flag. + +2003-09-15 Marius Vollmer + + * posix.c (scm_setgroups): Check that the gid list is not too + long. Thanks to Paul Jarc! + +2003-09-14 Dirk Herrmann + + * tags.h: Reduced the number of short instructions from 14 to 13. + The typecode of the former 14th short instruction is now used to + represent long instructions. Changed some comments to reflect + this fact. + + (SCM_MAKISYM): ISYMs get a new tc7 code, namely the one that was + previously used by SCM_IM_DEFINE. + + (SCM_IM_DEFINE): Turned into a long instruction. + + * eval.c (unmemocopy, SCM_CEVAL): Treat SCM_IM_DEFINE as a long + instruction. + + * eval.c (SCM_CEVAL): Since characters and iflags have now a tc7 + code that is separate from all instructions, one level of dispatch + for long instructions can be eliminated. + + * print.c (scm_isymnames): Removed some commented code. + +2003-09-12 Marius Vollmer + + * __scm.h (SCM_FENCE): Use __memory_barrier with the Intel + compiler on IA64. + + * hashtab.h (scm_tc16_hashtable): Added "extern" declaration. + + * modules.c (scm_module_reverse_lookup): Check that the obarray + really is a hashtable and do nothing if not. + + * inline.h: Use "extern inline" only with GCC. Use "static + inline" else. + +2003-09-06 Dirk Herrmann + + * numbers.h (SCM_INEXACTP, SCM_REALP, SCM_COMPLEXP): Removed uses + of SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP. + + * numbers.h, deprecated.h (SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP, + SCM_SLOPPY_COMPLEXP): Deprecated and moved from numbers.h to + deprecated.h. + +2003-09-06 Dirk Herrmann + + * eq.c (scm_eqv_p, scm_equal_p): Removed uses of + SCM_SLOPPY_INEXACTP, SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP. + + * eq.c (scm_eqv_p, scm_equal_p): Reordered comparisons from + 0.0==some_expression to some_expression==0.0. The latter is + better readable. The former is preferred by some people, since it + leads to a compiler error when confusing == with =. However, when + using gcc, a warning will be issued if in an if-statement an + assigment appears. Since many Guile developers are using gcc, + such errors will not remain unnoticed anyway. We can therefore + focus on better readability. + +2003-09-04 Dirk Herrmann + + * tags.h: Added description of Guile's type system. Removed some + old and misleading comments. + +2003-09-04 Dirk Herrmann + + * unit.c (scm_cvref): Eliminate unnecessary uses of SCM_NIMP, + SCM_SLOPPY_REALP and SCM_SLOPPY_COMPLEXP. + 2003-09-04 Dirk Herrmann * numbers.h (SCM_MAKINUM): Define in terms of scm_tc2_int. @@ -443,7 +639,6 @@ yyset_debug, yylex_destroy): Added prototypes (otherwise we'll get a compilation error if error-on-warning is enabled). ->>>>>>> 1.1883 2003-05-17 Marius Vollmer * c-tokenize.lex: Gobble up complete lines after a '#'. This