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