*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
index 5a3369a..8c897f4 100644 (file)
@@ -1,3 +1,168 @@
+2004-04-28  Kevin Ryde  <user42@zip.com.au>
+
+       * backtrace.c (display_frame_expr), numbers.c (XDIGIT2UINT,
+       mem2uinteger, mem2decimal_from_point, mem2ureal): Cast char to int for
+       ctype.h tests, to avoid warnings from gcc on HP-UX about char as array
+       subscript.  Reported by Andreas Vögele.
+       Also cast through unsigned char to avoid passing negatives to those
+       macros if input contains 8-bit values.
+
+       * num2integral.i.c (NUM2INTEGRAL): Under non-BIGMPZ_FITSP case,
+       corrections to range check for signed numbers.  Remove
+       scm_remember_upto_here_1(num) from these checks, since num is used
+       subsequently anyway.
+
+       * num2integral.i.c (NUM2INTEGRAL): Test BIGMPZ_FITSP with "!= 0" to
+       avoid warning from gcc 3.4.  Reported by Hyperdivision.
+       
+       * numbers.c (scm_bit_extract): Use min instead of MIN.
+       (MIN): Remove, this conflicts with similar macro defined by limits.h
+       on HP-UX.  Reported by Andreas Vögele.
+
+       * stime.c (_POSIX_C_SOURCE): Define to 199506L to get gmtime_r (in
+       particular on HP-UX).  Reported by Andreas Vögele.
+
+       * threads.c (scm_threads_mark_stacks): Correction sizet -> size_t.
+       Reported by Andreas Vögele.
+
+       * threads-plugin.h (SCM_MUTEX_MAXSIZE): Increase to 25*sizeof(long),
+       for the benefit of hpux11 where pthread_mutex_t is 88 bytes.  Reported
+       by Andreas Vögele.
+
+2004-04-22  Dirk Herrmann  <dirk@dirk-herrmanns-seiten.de>
+
+       * eval.c (s_macro_keyword): New static identifier.
+
+       (scm_m_define): Change order to first create binding and
+       evaluating the expression afterwards.
+
+       (scm_m_set_x): Memoize complete set! expression.  Only leave
+       symbols if no binding exists at memoization time.  Throw error if
+       assigning to a syntactic keyword.
+
+       (lazy_memoize_variable): New function.
+
+       (CEVAL): When execution set!, perform lazy memoization if
+       unmemoized symbol is detected.
+
+       * modules.c (module_variable): Return variables with unbound
+       value.
+
+       * tags.h: Fix comment.
+
+2004-04-25  Kevin Ryde  <user42@zip.com.au>
+
+       * chars.c (scm_char_upcase, scm_char_downcase, scm_c_upcase,
+       scm_c_downcase): Use ctype.h toupper and tolower.  This will be useful
+       in 8-bit locales, and ensures consistency with char-upper-case? and
+       char-lower-case? which already use ctype.h.
+       (scm_c_upcase_table, scm_c_downcase_table, scm_lowers, scm_uppers):
+       Remove.
+       * chars.c, chars.h, init.c (scm_tables_prehistory): Remove.
+
+       * socket.c (VALIDATE_INET6): Correction to bignum_in_ipv6_range_p
+       call.  Reported by Hyperdivision.
+
+       * threads.c (scm_yield): Correction, actually call scm_thread_yield.
+       Reported by Hyperdivision.
+
+       * unif.c (s_scm_make_uve): Remove unused local variable.  Reported by
+       Hyperdivision.
+
+2004-04-22  Dirk Herrmann  <dirk@dirk-herrmanns-seiten.de>
+
+       Hide the implementation of ilocs and isyms in eval.c.
+
+       * deprecated.h (SCM_IFRINC, SCM_ICDR, SCM_IFRAME, SCM_IDIST,
+       SCM_ICDRP), eval.c (SCM_IFRINC, SCM_ICDR, SCM_IFRAME, SCM_IDIST,
+       SCM_ICDRP), eval.h (SCM_ICDR, SCM_IFRINC, SCM_IFRAME, SCM_IDIST,
+       SCM_ICDRP): Deprecated and added to deprecated.h.  Moved from
+       eval.h to eval.c.
+
+       * deprecated.c (scm_isymnames), deprecated.h (scm_isymnames,
+       SCM_ISYMNUM, SCM_ISYMCHARS), eval.c (SCM_ISYMNUM, isymnames,
+       scm_unmemocopy, CEVAL), print.c (scm_isymnames), tags.h
+       (SCM_ISYMNUM, scm_isymnames, SCM_ISYMCHARS): Deprecated
+       scm_isymnames, SCM_ISYMNUM and SCM_ISYMCHARS and added to
+       deprecated.[hc].  Moved scm_isymnames from print.c to eval.c and
+       renamed to isymnames.  Moved SCM_ISYMNUM from tags.h to eval.c and
+       renamed to ISYMNUM.
+
+       * eval.c (scm_i_print_iloc, scm_i_print_isym), eval.h
+       (scm_i_print_iloc, scm_i_print_isym), print.c (scm_iprin1):
+       Extracted printing of ilocs and isyms to guile internal functions
+       scm_i_print_iloc, scm_i_print_isym of eval.c.
+
+2004-04-22  Kevin Ryde  <user42@zip.com.au>
+
+       * numbers.c (scm_bit_extract): Use SCM_SRS for signed right shift.
+
+       * numbers.c (scm_round): Test for x already an integer, to avoid bad
+       rounding in x+0.5 when x is a big value already an integer.  In
+       certain hardware rounding cases x+0.5 can give an adjacent integer,
+       leading to that as the result, when we really just wanted x itself.
+       
+2004-04-19  Dirk Herrmann  <dirk@dirk-herrmanns-seiten.de>
+
+       * eval.c (scm_unmemocopy): Fixed unmemoization of let*.
+
+       (deval_args, CEVAL): Minor improvements: Reduced variable scopes,
+       added const qualifiers, cast intentionally unused expressions to
+       void for emphasis, improved comment.
+
+2004-04-18  Dirk Herrmann  <dirk@dirk-herrmanns-seiten.de>
+
+       * tags.h (scm_tags, scm_tc8_tags, scm_tc9_flag, scm_tc8_flag,
+       scm_tc8_isym): Renamed scm_tags to scm_tc8_tags.  Renamed
+       scm_tc9_flag to scm_tc8_flag.  Introduced new identifier
+       scm_tc8_isym.  Defined tc8-tags relative to scm_tc3_imm24.
+       Defined the tc8-tag for flags to be 0x04, which will mean that
+       SCM_BOOL_F will also have the value 0x04 instead of 0x013c.  Due
+       to the reduced number of bits and the simpler bit pattern for
+       SCM_BOOL_F, certain machines may be able to use more efficient
+       processor instructions to deal with SCM_BOOL_F.
+
+       (SCM_ITAG9, SCM_MAKE_ITAG9, SCM_ITAG9_DATA): Removed.  These have
+       never been defined in a released version, thus no need to
+       deprecate them.
+
+       (SCM_IFLAGP, SCM_MAKIFLAG, SCM_IFLAGNUM): Flags now use tc8
+       instead of tc9 tags.
+
+       (SCM_ISYMP, SCM_MAKISYM, SCM_ISYMNUM): Isyms now use tc8 instead
+       of tc9 tags.
+
+       (SCM_MAKSPCSYM): Removed.  It is almost impossible that user code
+       could have used this definition.
+
+       (SCM_IM_AND, SCM_IM_BEGIN, SCM_IM_CASE, SCM_IM_COND, SCM_IM_DO,
+       SCM_IM_IF, SCM_IM_LAMBDA, SCM_IM_LET, SCM_IM_LETSTAR,
+       SCM_IM_LETREC, SCM_IM_OR, SCM_IM_QUOTE, SCM_IM_SET_X): Now encoded
+       as isyms, as special isyms don't exist any more.
+
+2004-04-18  Kevin Ryde  <user42@zip.com.au>
+
+       * filesys.c (scm_readdir): Use readdir_r when available, for thread
+       safety.
+
+       * numbers.c (scm_max, scm_min): For big/real, use SCM_SWAP rather than
+       explicit swapping code.
+
+2004-04-15  Kevin Ryde  <user42@zip.com.au>
+
+       * cpp_sig_symbols.in: Add SIGSYS.
+       
+       * list.c (scm_append_x): Use iterative style, to avoid non-tail
+       recursion.
+
+       * numbers.c (scm_max, scm_min): For inum/frac, frac/inum, big/frac,
+       frac/big and frac/frac, use scm_less_p for exact comparison.
+
+       * numbers.c (scm_gcd): For inum/big, use mpz_gcd_ui by sharing code
+       with big/inum.
+
+       * numbers.c (xisinf): Add a comment about solaris 7 lacking isinf.
+
 2004-04-06  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
        * inline.h (scm_cell): use SCM_GC_CELL_WORD for checking tag.
 
        (copy_tree): Corrected typo in comment.
 
->>>>>>> 1.2042
 2004-03-28  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
        * eval.c (s_scm_copy_tree): idem.