update ifdefery for macosx.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
d93294d4
HWN
12004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
2
3 * eval.c (unmemoize_exprs): use SCM_CONSP for the loop condition.
4
212e58ed
DH
52004-06-06 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
6
7 * list.[ch] (scm_i_finite_list_copy): New internal function to
8 copy lists that are known to be finite (though not necessarily
9 proper).
10
11 * debug.c (scm_procedure_source): Don't have scm_unmemocopy treat
12 a closure's argument list like an expression of a body.
13
14 * eval.c (unmemoize_expression, unmemoize_exprs, unmemoize_and,
15 unmemoize_begin, unmemoize_case, unmemoize_cond, unmemoize_delay,
16 unmemoize_do, unmemoize_if, unmemoize_lambda, unmemoize_let,
17 unmemoize_letrec, unmemoize_letstar, unmemoize_or,
18 unmemoize_set_x, unmemoize_apply, unmemoize_atcall_cc,
19 unmemoize_at_call_with_values, unmemoize_future, sym_atslot_ref,
20 unmemoize_atslot_ref, sym_atslot_set_x, unmemoize_atslot_set_x,
21 unmemoize_builtin_macro): New static functions and symbols.
22
23 (scm_unmemocopy): Rewritten in terms of the above. scm_unmemocopy
24 now has a slightly different meaning: The memoized form that is
25 receives as its argument is now interpreted as a sequence of
26 expressions from a body.
27
28 (unmemocar, scm_unmemocar): Since the whole functionality of
29 unmemocar and scm_unmemocar is not needed any more, scm_unmemocar
30 has its old content back and is deprecated, while unmemocar has
31 been removed.
32
33 (SCM_BIT7): Removed.
34
35 (CEVAL): For unmemoizing a single expression, call
36 unmemoize_expression instead of scm_unmemocopy, which now expects
37 a sequence of body expressions. Eliminated unnecessary empty
38 environment frame when executing let* forms. Eliminated
39 unmemoization step from evaluator.
40
9ccea370
MV
412004-06-02 Marius Vollmer <marius.vollmer@uni-dortmund.de>
42
43 * eval.c (scm_macroexp, macroexp): Renamed scm_macroexp to
44 macroexp and made static. Added new version of scm_macroexp that
45 emits a deprecation warning and then calls macroexp.
46 (scm_m_undefine): Issue deprecation warning.
47
57d23e25
DH
482004-05-30 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
49
50 * eval.c (lookup_global_symbol, literal_p, try_macro_lookup):
51 Modified to make set! work on symbols that represent syntactic
52 keywords.
53
141521ad
HWN
542004-05-26 Han-Wen Nienhuys <hanwen@xs4all.nl>
55
56 * gc.h (SCM_CELL_OBJECT_LOC): use SCM_GC_CELL_OBJECT to prevent
57 compound expression as lvalue errors.
58
7c2f56a4
MV
592004-05-24 Marius Vollmer <mvo@zagadka.de>
60
61 * dynwind.c (winder_mark): Use SCM_PACK to correctly convert the
62 WINDER_DATA to a SCM.
63
366ecaec
DH
642004-05-24 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
65
66 * goops.c (compute_getters_n_setters, create_standard_classes,
67 scm_add_slot): Compute closures by calling scm_i_eval_x on a
68 lambda expression rather than creating them with scm_closure.
69
26ecfa39
DH
702004-05-22 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
71
72 * eval.c (s_macro_keyword, scm_m_set_x): Remove checking for
73 misplaced syntactic keywords. This will not work unless guile's
74 defmacro feature is deprecated.
75
76 (scm_m_case): Fixed a bug that caused the list of labels to grow
77 with every case form.
78
f865229a
KR
792004-05-19 Kevin Ryde <user42@zip.com.au>
80
81 * numbers.c (scm_round_number): For inum and big, just return x. For
82 real, use scm_round for 2^54-1 etc problems covered there.
83
84 * numbers.c (trunc): Remove #define to scm_truncate when the C library
85 doesn't provide trunc. This was for when `truncate' was done as a
86 scm_tc7_dsubr, no longer required.
87
88 * threads.c (scm_threads_mark_stacks) [SCM_STACK_GROWS_UP]: Correction
89 to stack marking call, two parameters and no cast on t->base.
90
63947c7a
MV
912004-05-18 Marius Vollmer <mvo@zagadka.de>
92
93 * hashtab.c (rehash_after_gc): Bug fix: properly link the
94 processed hashtables back into the weak_hashtables list. Thanks
95 to Bill Schottstaedt!
96
e7313a9d
DH
972004-05-16 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
98
99 * eval.c (unmemoize_quote): New static function.
100
101 (scm_m_quote, scm_m_atslot_ref, SCM_CEVAL): Changed the byte code
102 representation of 'quote' and '@slot-ref' to an improper list.
103 This reduces execution time, the number of cells used to hold the
104 memoized code, and thus also reduces garbage collection time.
105
106 (scm_unmemocopy): Use unmemoize_quote for quote expressions.
107
108 (SCM_CEVAL): Changed macro handling to also work with macros that
109 return improper lists. Added an assertion, that the code returned
110 by a macro transformer will not lead to cycles in the memoized
111 code.
112
e5156567
DH
1132004-05-15 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
114
115 No functional change, just rearrangements of functions within the
116 file.
117
118 * eval.c (scm_ilookup, scm_unbound_variable_key,
119 error_unbound_variable, scm_lookupcar1, scm_lookupcar): Moved to
120 the definitions used for execution, since that's where they will
121 belong to later.
122
651f07f8
DH
1232004-05-15 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
124
125 * numbers.h (SCM_SLOPPY_FRACTIONP): Removed. It was not used
126 throughout guile, has not been part of an official release yet,
127 and the concept of sloppy predicates has never been a good idea.
128
129 (SCM_FRACTION_NUMERATOR, SCM_FRACTION_DENOMINATOR,
130 SCM_FRACTION_SET_NUMERATOR, SCM_FRACTION_SET_DENOMINATOR):
131 Simplified.
132
770e048f
DH
1332004-05-15 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
134
135 * throw.c (SETJBJMPBUF, SCM_SETJBDFRAME): Add cast to scm_t_bits
136 to make explicit what happens.
137
2ff08405
DH
1382004-05-15 Dirk Herrmann <dirk@dirk-herrmanns-seiten.de>
139
140 * dynl.c (SET_DYNL_HANDLE): Add cast to scm_t_bits to make
141 explicit what happens.
142
143 * guardians.c (TCONC_IN): Use SCM_SET_CELL_OBJECT_x rather than
144 SCM_SET_CELL_WORD_x when writing scheme objets to cell elements.
145
89afb9cd
MV
1462004-05-11 Marius Vollmer <mvo@zagadka.de>
147
148 * scmsigs.c (scm_sigaction_for_thread): Validate that the handler
149 is indeed a procedure when it isn't a number.
150
3d5ebfa9
MV
1512004-05-10 Marius Vollmer <mvo@zagadka.de>
152
153 Convert floating point numbers into strings with an arbitrary
154 radix. Thanks to Richard Todd!
155
156 * numbers.c (FLOBUFLEN): Increase so that radix 2 strings will
157 fit.
158 (fx): Removed.
159 (scm_dblprec, fx_per_radix, init_dblprec, init_fx_radix,
160 number_chars): New, to support variable radices.
161 (idbl2str): Use above instead of the old base-10 only tables.
162 (iflo2str): Pass on new RADIX argument to idbl2str.
163 (scm_number_to_string): Pass radix to iflo2str.
164 (scm_print_real, scm_print_complex): Explicitly pass radix 10 to
165 iflo2str.
166 (scm_init_numbers): Call init_dblprec and init_fx_radix for all
167 possible radices.
168
3ae69bb4
KR
1692004-05-10 Kevin Ryde <user42@zip.com.au>
170
171 * numbers.c (scm_logbit_p): Correction to test above the end of an
172 inum. Reported by Jan Konecny.
173
27968825
MV
1742004-05-06 Marius Vollmer <marius.vollmer@uni-dortmund.de>
175
176 * gc.h (scm_t_cell): Fields are now of type SCM instead of
177 scm_t_bits. Updated all users.
178 (SCM_GC_CARD_SIZE_MASK): Use SCM_GC_SIZEOF_CARD instead of
179 duplicating the code.
180 (SCM_CELL_OBJECT_LOC): New.
181 (SCM_CARLOC, SCM_CDRLOC): Use it instead of SCM_CELL_WORD_LOC.
182 (SCM_CELL_WORD_LOC): Moved to "deprecated.h".
183
184 * smob.h (SCM_SMOB_DATA_2, SCM_SMOB_DATA_3, SCM_SMOB_FLAGS,
185 SCM_SET_SMOB_DATA_2, SCM_SET_SMOB_DATA_3, SCM_SET_SMOB_FLAGS,
186 SCM_SMOB_OBJECT, SCM_SMOB_OBJECT_2, SCM_SMOB_OBJECT_3,
187 SCM_SET_SMOB_OBJECT, SCM_SET_SMOB_OBJECT_2, SCM_SET_SMOB_OBJECT_3,
188 SCM_SMOB_OBJECT_LOC, SCM_SMOB_OBJECT_2_LOC,
189 SCM_SMOB_OBJECT_3_LOC): New.
190 * smob.c (scm_i_set_smob_flags): New function.
191
192 * dynl.c, dynwind.c, eval.h, fluids.h, futures.h, hashtab.h,
193 hooks.h, keywords.h, macros.h, macros.c, mallocs.c, mallocs.h,
194 random.h, regex-posix.h, root.h, srcprop.h, srcprop.c, threads.h:
195 Use SCM_SMOB_* instead of SCM_CELL_* as appropriate. Use
196 SCM_SMOB_FLAGS and SCM_SET_SMOB_FLAGS instead of accessing the
197 zeroth word directly. Use SCM_SMOB_PREDICATE as appropriate.
198
199 * numbers.h (SCM_I_BIG_MPZ): Use SCM_CELL_OBJECT_LOC instead of
200 taking the address of SCM_CELL_WORD_1, the latter being no longer
201 an lvalue.
202
203 * variable.h (SCM_VARIABLE_LOC): Use SCM_CELL_OBJECT_LOC instead
204 of casting SCM_CELL_WORD_LOC.
205
3cf17ef0
KR
2062004-05-02 Kevin Ryde <user42@zip.com.au>
207
37026925
KR
208 * eval.c (scm_macroexp): Add prototype, since it's not in eval.h under
209