Commit | Line | Data |
---|---|---|
d93294d4 HWN |
1 | 2004-06-13 Han-Wen Nienhuys <hanwen@xs4all.nl> |
2 | ||
3 | * eval.c (unmemoize_exprs): use SCM_CONSP for the loop condition. | |
4 | ||
212e58ed DH |
5 | 2004-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 |
41 | 2004-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 |
48 | 2004-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 |
54 | 2004-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 |
59 | 2004-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 |
64 | 2004-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 |
70 | 2004-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 |
79 | 2004-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 |
91 | 2004-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 |
97 | 2004-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 |
113 | 2004-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 |
123 | 2004-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 |
133 | 2004-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 |
138 | 2004-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 |
146 | 2004-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 |
151 | 2004-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 |
169 | 2004-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 |
174 | 2004-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 |
206 | 2004-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 |