* eval.c (scm_ceval, scm_deval): use `SIDEVAL' instead of
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
5d6bb349
KN
12001-02-12 Keisuke Nishida <kxn30@po.cwru.edu>
2
3 * list.c (scm_list_copy): Validate the first argument.
4
ec9709f0
MV
52001-02-11 Marius Vollmer <mvo@zagadka.ping.de>
6
7 Fix evaluator so that top-level expressions are correctly
8 evaluated with respect to the module system.
9
10 * modules.h. modules.c (scm_current_module_lookup_closure): New
11 function.
12
13 * eval.h (scm_primitive_eval, scm_primitive_eval_x): New
14 prototypes.
15 (scm_i_eval, scm_i_eval_x, scm_eval, scm_eval_x): Changed argument
16 names to better reflect their meaning.
17
18 * eval.c (scm_ceval, scm_deval): Recognize when `begin' is being
19 evaluated at top-level and synronize lookup closure before
20 executing every subform.
21 (scm_primitve_eval_x, scm_primitive_eval): New functions.
22 (scm_eval_x, scm_eval): Reimplement in terms of
23 scm_primitive_eval_x and scm_primitive_eval, respectively.
24
252001-02-09 Marius Vollmer <mvo@zagadka.ping.de>
26
27 * macros.c (scm_macro_name, scm_macro_transformer): Use
28 SCM_SMOB_DATA instead of SCM_CDR. Provided by Martin Grabmueller.
29 Thanks!
30
42417394
KN
312001-02-10 Keisuke Nishida <kxn30@po.cwru.edu>
32
33 * dump.c (scm_store_bytes): Store data size before data.
34 (scm_restore_bytes): Restore data size. Takes a pointer to size.
35 * dump.h (scm_restore_bytes): Updated.
36
bf942687
KN
372001-02-09 Keisuke Nishida <kxn30@po.cwru.edu>
38
39 * dump.c: Use double cells for update schedule.
40
1be4270a
KN
412001-02-08 Keisuke Nishida <kxn30@po.cwru.edu>
42
43 * ports.c (scm_unread_char): Take an optional argument.
44
548728ea
MV
452001-02-08 Marius Vollmer <marius.vollmer@uni-dortmund.de>
46
47 * modules.h (scm_selected_module, scm_current_module): Renamed
48 scm_selected_module to scm_current_module to synchronize Scheme
49 and C names.
50 (scm_select_module, scm_set_current_module): Likewise. Changed
51 all uses.
52
53 * ports.c (scm_port_for_each): Make a snapshot of the port table
54 before iterating over it. The table might change while the user
55 code is running. With the snapshot, the user can depend on the
c5408bc3 56 fact that each port that existed at the start of the iteration is
548728ea
MV
57 encountered exactly once. (ice-9 popen) depends on this.
58
cb0d8be2
DH
592001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
60
61 * strings.h (SCM_STRING_MAX_LENGTH): New macro.
62
63 * strings.c (scm_makstr, scm_take_str, scm_make_string): Added
64 range checking for the size parameter. Thanks to Martin
65 Grabmueller for the hint.
66
67 (scm_makstr): Reordered string initialization to make interrupt
68 deferring unnecessary.
69
70 * vectors.c (scm_make_vector): Fixed range checking.
71
e382fdbe
DH
722001-02-08 Dirk Herrmann <D.Herrmann@tu-bs.de>
73
74 * vectors.h (SCM_VECTOR_MAX_LENGTH): New macro.
75
76 * vectors.c (scm_make_vector, scm_c_make_vector): Improved the
77 checking of the size parameter for type correctness and valid
78 range. Thanks to Rob Browning for reporting the problem. Instead
79 of deferring interrupts, scm_remember_upto_here_1 is used.
80
bf8f0922
KN
812001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
82
83 * dump.c (scm_store_cell_object, scm_restore_cell_object): Removed.
84 (scm_dump_cell_update): Removed.
85 (scm_dump_update): Renamed from scm_dump_object_update.
86 (scm_restore_string, scm_restore_bytes, scm_restore_word): Takes
87 a pointer instead of returning a value.
88 * keywords.c (keyword_undump): Updated.
89
914cceec
KN
902001-02-05 Keisuke Nishida <kxn30@po.cwru.edu>
91
92 * dump.c, dump.h: Modified a lot.
5f17c66f 93 (SCM_DUMP_COOKIE): Version 0.1
914cceec
KN
94 (scm_dump_mark): Removed.
95 (scm_restore_cell_object, scm_store_cell_object): New functions.
96
97 * smob.h (scm_smob_descriptor): Removed slots: dump_mark,
98 dump_dealloc, dump_store, undump_alloc, undump_restore, undump_init.
99 New slots: dump, undump.
100 * smob.c (scm_make_smob_type, scm_set_smob_dump, scm_set_smob_undump):
101 Updated.
102
103 * keywords.c (keyword_dump): Renamed from keyword_dealloc.
104 (keyword_undump): Renamed from keyword_alloc.
105 (scm_init_keywords): Set keyword_dump and keyword_undump.
106
ecf470a2
ML
1072001-02-03 Michael Livshin <mlivshin@bigfoot.com>
108
109 * gc.c (DOUBLECELL_ALIGNED_P): new macro, a better-named analog of
110 the deprecated SCM_DOUBLE_CELLP.
111
112 * tags.h (SCM_DOUBLE_CELLP): deprecated.
113
03416a99
KN
1142001-02-02 Keisuke Nishida <kxn30@po.cwru.edu>
115
116 * dump.c, dump.h: New files.
117 * Makefile.am: Added dump.c, dump.h, dump.x, dump.doc.
118 * init.c: #include "libguile/dump.h".
119 (scm_init_guile_1): Call scm_init_dump.
120 * smob.h (scm_smob_descriptor): New slots: dump_mark,
121 dump_dealloc, dump_store, undump_alloc, undump_restore,
122 undump_init.
123 * smob.c (scm_make_smob_type): Init the new slots.
124 (scm_set_smob_dump, scm_set_smob_undump): New functions.
125 * smob.h (scm_set_smob_dump, scm_set_smob_undump): Declared.
126
127 * keywords.c: #include "libguile/dump.h".
128 (keyword_dealloc, keyword_alloc): New functions.
129 (scm_init_keywords): Set smob_dump and smob_undump.
130
00ffa0e7
KN
1312001-02-01 Keisuke Nishida <kxn30@po.cwru.edu>
132
133 * vectors.c (scm_c_make_vector): New function.
134 * vectors.h (scm_c_make_vector): Declared.
135 * eval.c (scm_copy_tree), filesys.c (scm_stat2scm), fluids.c
136 (scm_make_initial_fluids, grow_fluids), gc.c (scm_init_storage),
137 gh_data.c (gh_ints2scm, gh_doubles2scm): goops.c
138 (scm_make_method_cache, scm_i_vector2list,
139 scm_compute_applicable_methods, scm_sys_method_more_specific_p),
140 init.c (start_stack), net_db.c (scm_gethost, scm_getnet,
141 scm_getproto, scm_return_entry), posix.c (scm_getgroups,
142 scm_getpwuid, scm_getgrgid, scm_uname), print.c (make_print_state,
143 grow_ref_stack), regex-posix.c (scm_regexp_exec), scmsigs.c
144 (scm_init_scmsigs), socket.c (scm_addr_vector, scm_addr_vector),
145 stime.c (scm_times, filltime), unif.c (scm_make_uve), vectors.c
146 (scm_vector, scm_make_vector): Use scm_c_make_vector.
147
148 * hashtab.c (scm_c_make_hash_table): New function.
149 * hashtab.h (scm_c_make_hash_table): Declared.
150 * environments.c (scm_make_leaf_environment,
151 scm_make_eval_environment), gc.c (scm_init_storage),
152 keywords.c (scm_init_keywords), symbols.c (scm_builtin_bindings):
153 Use scm_c_make_hash_table.
154
b8446ce8
MD
1552001-01-31 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
156
157 * unif.c (rapr1): Don't apply scm_uniform_vector_length on arrays.
158
e3239868
DH
1592001-01-29 Martin Grabmueller <mgrabmue@cs.tu-berlin.de>
160
161 * struct.c (scm_make_vtable_vtable): Removed unnecessary "" from
162 end of docstring.
163
164 * struct.c (scm_struct_set_x, scm_struct_vtable_tag,
165 scm_struct_vtable_name, scm_set_struct_vtable_name_x), weaks.c
166 (scm_make_weak_value_hash_table, scm_make_doubly_weak_hash_table,
167 scm_weak_value_hash_table_p, scm_doubly_weak_hash_table_p),
168 srcprop.c (scm_source_properties, scm_set_source_properties_x,
169 scm_source_property, scm_set_source_property_x), sort.c
170 (scm_sort_list_x, scm_restricted_vector_sort_x, scm_sorted_p,
171 scm_merge, scm_merge_x, scm_sort_x, scm_sort, scm_stable_sort_x,
172 scm_stable_sort, scm_sort_list_x, scm_sort_list): Added
173 docstrings.
174
41ee56dd
MD
1752001-01-29 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
176
177 * eval.c (SCM_APPLY): Check that primitives which take 1 arg
178 really get that arg.
179
b6311c08
KN
1802001-01-26 Keisuke Nishida <kxn30@po.cwru.edu>
181
182 * goops.c (s_scm_get_keyword): Bug fix.
183
a49af0c0
DH
1842001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
185
186 The following patch was sent by Martin Grabmueller. It makes sure
187 that in case of parameter errors the correct function name is
188 shown, and that parameter types are only checked once.
189
190 * strop.c (string_copy, string_upcase_x, string_downcase_x,
191 string_capitalize_x): New functions. Each one performs the core
192 functionality of the corresponding scm_* function.
193
194 (scm_string_copy, scm_string_upcase_x, scm_string_upcase,
195 scm_string_downcase_x, scm_string_downcase,
196 scm_string_capitalize_x, scm_string_capitalize): Reduced to
197 parameter checking wrappers of the above functions.
198
13070bd3
DH
1992001-01-26 Dirk Herrmann <D.Herrmann@tu-bs.de>
200
201 * continuations.c, dynl.c, keywords.c, load.c: Include
202 strings.h. Thanks to Bill Schottstaedt for the bug report.
203
2f2b390c
DH
2042001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
205
206 * backtrace.c (display_header): Make sure that line and column
207 information is shown independent of whether the port the code was
208 read from had an associated filename. Thanks to Martin
209 Grabmueller for providing this patch.
210
efa40607
DH
2112001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
212
213 * fports.[ch] (scm_file_port_p): New primitive.
214
a98bddfd
DH
2152001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
216
217 * tags.h (scm_tc16_fport, scm_tc16_strport, scm_tc16_sfport):
218 These are now defined in fports.c, strports.c and vports.c.
219
220 * fports.[ch] (scm_tc16_fport), strports.c (scm_tc16_strport),
221 vports.c (scm_tc16_sfport): Made variables (were macros defined in
222 tags.h).
223
224 fports.c (scm_make_fptob), strports.c (scm_make_stptob), vports.c
225 (scm_make_sfptob): Made static. These return a type code now.
226
227 fports.c (scm_init_fports), strports.c (scm_init_strports),
228 vports.c (scm_init_vports): Create the corresponding port types.
229
230 * fports.h (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP,
231 SCM_OPOUTFPORTP): Redefined in terms of scm_tc16_fport.
232
233 * init.c (scm_init_guile_1): Make sure strports are initialized
234 before gdbint.
235
236 * ports.[ch] (scm_make_port_type): Changed the return type to
237 scm_bits_t.
238
239 * ports.c (scm_ports_prehistory): Don't create any port types
240 here.
241
242 * posix.c (scm_ttyname): Use SCM_FPORTP instead of comparing
243 against scm_tc16_fport directly.
244
0419a528
DH
2452001-01-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
246
247 * srcprop.c (scm_set_source_property_x): Fix to handle
248 (set-source-property! <obj> 'copy <datum>) correctly.
249
6d36532c
GH
2502001-01-24 Gary Houston <ghouston@arglist.com>
251
252 * filesys.c (scm_link): docstring fix.
253 * fports.h (scm_setfileno): obsolete declaration removed.
254 * posix.c: bogus popen declaration removed.
255
256 * rdelim.c: new file, split from ioext.c.
257 * rdelim.h: new file, split from ioext.h
258 * Makefile.am: add rdelim.c and related files.
259 * init.c: call scm_init_rdelim. include rdelim.h.
260
3ba5a6c2
DH
2612001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
262
263 This patch was sent by Martin Grabmueller and makes sure that
264 parameter errors are reported correctly by the lexicographic
265 ordering predicates.
266
267 * strorder.c (string_less_p, string_ci_less_p): New functions.
268
269 (scm_string_less_p, scm_string_ci_less_p): Extracted the core
270 functionality into string_less_p, string_ci_less_p respectively.
271 The remaining code is just a wrapper to do the parameter
272 checking.
273
274 (scm_string_leq_p, scm_string_gr_p, scm_string_geq_p): Check the
275 parameters and call string_less_p instead of scm_string_less_p.
276
277 (scm_string_ci_leq_p, scm_string_ci_gr_p, scm_string_ci_geq_p):
278 Check the parameters and call string_less_ci_p instead of
279 scm_string_ci_less_p.
280
e40a4095
DH
2812001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
282
ed6a2db9
DH
283 This patch modifies scm_display_error to perform parameter
284 checking. Thanks to Neil Jerram for the bug report.
285
e40a4095
DH
286 * backtrace.[ch] (scm_i_display_error): New function.
287
288 * backtrace.c (scm_display_error): Added parameter check and
289 extracted the core functionality into function
290 scm_i_display_error.
291
292 * throw.c (handler_message): Call scm_i_display_error to display
293 the error message.
294
f1e06a96
MD
2952001-01-23 Mikael Djurfeldt <mdj@linnaeus.mit.edu>
296
297 * eval.c (SCM_APPLY): Added # args check for application of
298 procedures with arity 3. (Thanks to Anders Holst.)
299
30ea841d
DH
3002001-01-24 Dirk Herrmann <D.Herrmann@tu-bs.de>
301
302 * filesys.h (SCM_DIR_FLAG_OPEN, SCM_DIR_OPEN_P): Added.
303
304 (SCM_OPDIRP): Deprecated.
305
306 * filesys.c (scm_opendir): Use SCM_DIR_FLAG_OPEN instead of
307 SCM_OPN.
308
309 (scm_readdir, scm_rewinddir): Don't use SCM_VALIDATE_OPDIR.
310 Instead, give an explicit error message in case the directory is
311 closed.
312
313 (scm_closedir, scm_dir_print): Rewritten to use SCM_DIR_OPEN_P
314 instead of SCM_OPENP and SCM_CLOSEDP.
315
316 * validate.h (SCM_VALIDATE_OPDIR): Deprecated.
317
312ae976
DH
3182001-01-22 Dirk Herrmann <D.Herrmann@tu-bs.de>
319
320 * eval.c (inner_eval, scm_eval): Move all real functionality into
321 inner_eval. Avoid to copy the expression twice by inlining some
322 code from scm_i_eval.
323
4567ed78
DH
3242001-01-19 Dirk Herrmann <D.Herrmann@tu-bs.de>
325
326 * eval.c (scm_m_case): The 'else' clause of a 'case' statement
327 now has to be the last clause, as required by R5RS. Thanks to
328 Martin Grabmueller for the patch.
329
10288a09
GH
3302001-01-18 Gary Houston <ghouston@arglist.com>
331
332 * ioext.c: further simplify scm_read_string_x_partial by defining
333 a macro SCM_EBLOCK.
334
8f379a8f
DH
3352001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
336
337 * gh_data.c (gh_ints2scm): Simplified using SCM_FIXABLE.
338
5c75b29f
DH
3392001-01-18 Dirk Herrmann <D.Herrmann@tu-bs.de>
340
341 * __scm.h: Added comment about architecture and compiler
342 properties that are required by guile.
343
344 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
345 SCM_MOST_NEGATIVE_FIXNUM): Moved to numbers.h.
346
347 (SCM_CHAR_BIT, SCM_LONG_BIT): Moved here from numbers.h.
348
349 * numbers.h (SCM_CHAR_BIT, SCM_LONG_BIT): Moved to __scm.h.
350
351 (SCM_FIXNUM_BIT, SCM_MOST_POSITIVE_FIXNUM,
352 SCM_MOST_NEGATIVE_FIXNUM): Moved here from __scm.h.
353
ac0c002c
DH
3542001-01-17 Dirk Herrmann <D.Herrmann@tu-bs.de>
355
356 * __scm.h (SCM_FIXNUM_BIT): Added. The name is chosen in analogy
357 to the names in limits.h.
358
359 * numbers.c (abs_most_negative_fixnum): Added.
360
361 (scm_quotient, scm_remainder): Fixed the fixnum-min / (abs
362 fixnum-min) special case.
363
364 (scm_big_and): Fix for negative first parameter.
365
366 (scm_bit_extract): Fix for fixnum paramters.
367 Thanks to Rob Browning for the bug report.
368
369 (scm_init_numbers): Initialize abs_most_negative_fixnum.
370
debe0dc2
DH
3712001-01-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
372
373 * symbols.c (scm_symbol_bound_p): Fixed comment.
374 Thanks to Chris Cramer.
375
8a39e3fc
DH
3762001-01-15 Dirk Herrmann <D.Herrmann@tu-bs.de>
377
378 * smob.[ch] (scm_make_smob_type): Return type is scm_bits_t now.
379 Thanks to Bill Schottstaedt.
380
322ec19d
ML
3812001-01-11 Michael Livshin <mlivshin@bigfoot.com>
382
383