*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
a343458d
JB
11999-08-20 James Blandy <jimb@mule.m17n.org>
2
3 * ports.h (enum scm_port_rw_active): New enum, containing
4 SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
5 zero). The debugger knows about enums, but doesn't know about
6 #defines.
7 (typedef scm_port): Declare rw_active member to be an enum
8 scm_port_rw_active.
9 * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
10 instead of zero.
11 * ports.c (scm_add_to_port_table): Same.
12 * strports.c (st_flush, st_end_input): Same.
13
14 * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
15 scm_must_realloc, and scm_done_malloc as appropriate.
16
dc4ddb33
MD
171999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
18
19 * sort.c (quicksort): Added condition to protect the algorithm
20 from crashing the interpreter if the less predicate is buggy.
21
d3639214
GH
221999-08-19 Gary Houston <ghouston@easynet.co.uk>
23
24 * fports.c (fport_write): fix line-buffering mode again.
25 (scm_open_file): recognise 'l' for line-buffering.
26 (scm_setvbuf): recognise _IOLBF for line-buffering.
27
3817c7ce
MD
281999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
29
266bf340
MD
30 * Makefile.am (libguile_la_LDFLAGS): Increased the version number
31 of libguile to 5.0.
32
3817c7ce
MD
33 * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
34 evaluating closures.
35
162d88ca
GH
361999-08-18 Gary Houston <ghouston@easynet.co.uk>
37
38 * fports.c (fport_write): use memcpy instead of strncpy, in case
39 the data contains NUL.
40
cce0d8d0
MD
411999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
42
59c49e10
MD
43 * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
44
cce0d8d0
MD
45 * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
46 read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
47 scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
48 scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
49 scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
50 scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
51 scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
52 scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
53 scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
54 scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
55 scm_sym_ as prefix for symbols.
56
57 * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
58
59 * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
60 scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
61 scm_sym_define, scm_sym_letrec, scm_sym_atapply,
62 scm_sym_atcall_cc): Made global.
63
8b7840b9
MD
641999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
65
66 * eval.c (scm_sym_args): Made global.
67
68 * objects.c (scm_set_object_procedure_x): Disallow setting of
69 procedures for pure generic functions.
70
c94577b4
GH
711999-08-12 Gary Houston <ghouston@easynet.co.uk>
72
73 * ports.c (scm_seek): one more: was scm_lseek. Also changed the
74 Scheme name from lseek to seek, but lseek was added recently so
75 it shouldn't be a big problem.
76 * ports.c, gdbint.c, ioext.c: changed callers.
77
affc96b5
GH
781999-08-11 Gary Houston <ghouston@easynet.co.uk>
79
80 * fports.c (fport_input_waiting): if select is used, return 1
81 instead of whatever FD_ISSET expands to. maybe it will be useful
82 to interpret the value from the input_waiting ptob procedure as a
83 lower bound on the number of bytes available.
84
85 * Mikael asked for a few names to be changed...
86
87 * ports.c (scm_make_port_type): take the write procedure as the
88 second argument instead of the flush procedure.
89 * ports.h (scm_ptob_descriptor): rename the ptob procedures:
90 fflush -> flush, read_flush -> end_input, fclose -> close,
91 fill_buffer -> fill_input, ftruncate -> truncate,
92 input_waiting_p -> input_waiting.
93
94 * ports.c (end_input_void_port): was read_flush_void_port.
95 (scm_set_port_end_input): was scm_set_port_flush_input.
96 (scm_set_port_flush): was scm_set_port_write.
97 (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
98 (scm_end_input): was scm_read_flush.
99 (scm_fill_input): was scm_fill_buffer.
100 (scm_flush): was scm_fflush.
101 * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
102 (fport_end_input): was local_read_flush.
103 (fport_flush): was local_fflush.
104 (fport_close): was local_fclose.
105 (fport_truncate): was local_ftruncate.
106 (fport_seek): was local_seek.
107 (fport_free): was local_free.
108 (fport_fill_input): was fport_fill_buffer.
109 * strports.c (st_end_input): was st_read_flush.
110 (st_truncate): was st_ftruncate.
111 * vports.c: (sf_flush): was sfflush.
112 (sf_close): was sfclose.
113 (sf_fill_input): was sf_fill_buffer.
114
115 * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
116 change callers.
117
df061ffc
MD
1181999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
119
120 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
121 forms now contain the expressions to be dispatched upon instead of
122 depending on a surrounding lambda or let; Generic function
123 dispatch has been optimized; `apply' on a generic function now
124 works a little bit strangely. It uses a trick so that the type
125 dispatch code in SCM_CEVAL can be reused.
126
127 * objects.h, objects.c (scm_apply_generic_env): Added (used by
128 apply).
129 (scm_operator_p): Added.
130 (scm_sym_atdispatch): Added.
131 (scm_set_object_procedure_x): Modified to handle the new style
132 generic functions.
133 (scm_object_procedures): New debugging procedure.
134
524da6b9
MD
1351999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
136
df061ffc
MD
137 * eval.c, eval.h (scm_sym_args): Added.
138
139 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
140
eba96884
MD
141 * feature.c, feature.h (scm_c_run_hook): Added.
142
524da6b9
MD
143 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
144 cdrxnoap and loopnoap instead of begin and loop.
145
265e6a4d
GH
1461999-08-04 Gary Houston <ghouston@easynet.co.uk>
147
148 * ports.c (scm_putc, scm_puts),
149 * unif.c (scm_uniform_array_write): use scm_lfwrite.
150 * ports.c (scm_putc): change type of first argument from int to char.
151
82cc1b11
MD
1521999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
153
154 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
155 SCM_IM_HASH_DISPATCH.
156
157 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
158 (scm_si_redfined, scm_si_hashsets): Moved.
159
160 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
161 flag which combines type and status info so that the class
162 redefinition protocol has zero cost during normal execution.
163
31703ab8
GH
1641999-08-03 Gary Houston <ghouston@easynet.co.uk>
165
166 * ports.h (scm_ptob_descriptor): include a write procedure again.
167 it's more efficient for unbuffered fports (e.g., sockets.)
168
169 * ports.c (scm_puts): use ptob->write.
170 * vports.c (scm_make_sfptob): set write proc in ptob.
171 * strports.c (scm_make_stptob): set write proc in ptob.
172 * ports.c (write_void_port): new procedure.
173 * vports.c (sf_write): new procedure.
174 * ports.c (scm_lfwrite): use ptob->write.
175 * strports.c (st_write): new procedure.
176 * fports.c (fport_write): new procedure.
177 (scm_make_fptob): set write in ptob to fport_write.
178 * ports.h: prototype for scm_set_port_write.
179 * ports.c (scm_make_port_type): initialise ptob write procedure.
180 (scm_set_port_write): new proc.
181
769f054d
JB
1821999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
183
184 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
185 until we've verified that it is actually a port. (Thanks to
186 Lorentey Karoly.)
187
5678aae0
MD
1881999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
189
9ffdde1c
MD
190 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
191 code, particularly an unnecessary test (len != size, where len ==
192 size). (Was this leftovers from debugging code, or have I missed
193 something profound?)
194
5678aae0
MD
195 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
196 size. (Thanks to James Dean Palmer.)
197
198 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
199 (Thanks to Lorentey Karoly.)
200
6e1fd264
MD
2011999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
202
203 * eval.c (scm_m_expand_body): Use scm_cons_source.
204
205 * struct.c (scm_print_struct): Use vtable name.
206
207 * print.c (scm_init_print): Set name of print state type.
208
209 * stacks.c (scm_init_stacks): Set name of stack type.
210
b09ef679
MD
2111999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
212
cb4832ae
MD
213 * eval.c (SCM_CEVAL): Removed old implementation of internal
214 define.
215
216 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
217
218 * debug.c, debug.h (scm_reverse_lookup): Added.
219 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
220 internal procedure definitions; Don't use scm_i_inner_name.
221
2a52b429
MD
222 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
223 New isym operations.
224
b09ef679
MD
225 * eval.h: Added prototypes for multi language support functions.
226
227 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
228 improper lists in the low-level representation, since that will
229 cause a begin to be prepended at macro expansion.
230
2a52b429
MD
231 * eval.c (scm_cons_source): Version of cons which copies source
232 properties from an existing cell.
6e1fd264 233 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
234
235 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
236 procedure source before calling scm_unmemocopy instead of faking
237 an environment.
238
2391998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
240
241 Ported `internal defines' fix from SCM. Original ChangeLog entry:
242
243 1998-07-09 Radey Shouman <radey@colorage.com>
244
245 * eval.c (ceval_1): Modifications to allow rewriting of interal
246 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
247 body of which it is the CAR is macro expanded by m_expand_body,
248 which rewrites internal DEFINE.
249
250 (m_expand_body): Added.
251
252 (m_macroexp1): Added argument to control error checking:
253 m_expand_body may speculatively expand forms in the wrong
254 environments. Made argument number checks conditional on
255 RECKLESS.
256
257 (m_body): Added, error checks bodies and inserts the ISYM tokens.
258
259 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
260 call m_body.
261
262 (m_cond): (m_case): (m_quote): Modified to avoid destructively
263 changing their argument forms. Since m_expand_body
264 speculatively macro expands forms the process must be
265 reversible.
266
267 (m_ident_eqp): Fixed to use proper environment.
268
269 (renamed_ident): Added DEFER_INTS_EGC.
270
271 Added prototypes for static functions.
272
273 * eval.c
274
275 (undef_cell): New.
276
277 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
278 is false, do not produce an error for unbound variables, return a
279 pointer to cell_undef instead.
280
281 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
282
283 (scm_m_body): New.
284
285 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
286 destructively changing their argument forms. Since m_expand_body
287 speculatively macro expands forms the process must be reversible.
288
289 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
290 SCM_IM_LET introduced by named lets.
291
292 (scm_m_letstar): Use scm_m_body instead of bodycheck.
293
294 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
295 scm_letrec. scm_letrec1 does not check for a null binding and
296 takes an additional argument to specify the ISYM of the body. Use
297 scm_m_body instead of bodycheck.
298
299 (scm_m_let): Use scm_m_body instead of bodycheck.
300
301 (scm_m_expand_body, scm_macroexp): New.
302
303 (unmemocopy): Account for ISYMs introduced by scm_m_body.
304
305 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
306 check=1. Throw error for internal defined that have not been
307 rewritten by scm_m_expand_body.
308
309 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
310 Removed prototype for SCM_APPLY.
311
312 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 313
a6ba4ef8
MD
3141999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
315
316 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
317
318 * lang.c: New file: Beginning of multi-language support.
319
320 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
321
322 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
323 (scm_dynamic_wind): Added argument checking for the after guard so
324 that we don't add garbage on the dynwind chain.
325 (scm_swap_bindings): Added.
326
327 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
328 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
329 (scm_isymnames): New isyms for multi-language support.
330
331 * eval.c (scm_nil, scm_t): New symbols.
332 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
333 forms for multi-language support.
334
259529f2
MD
3351999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
336
337 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
338 Added.
339 Renamed functions in the random function library interface
340 from scm_i_XXX --> scm_c_XXX.
341
1b9c3dae
GH
3421999-07-25 Gary Houston <ghouston@easynet.co.uk>
343
344 * ports.c (scm_putc): fix line-buffering.
345
544e9093
MD
3461999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
347
348 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
349 scm_set_ptob_XXX --> scm_set_port_XXX.
350
f15913d0
MD
3511999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
352
353 * ports.c, ports.h (scm_make_port_type): New interface for
354 creation of port types (replaces scm_newptob). Just as for the
355 smobs, we need to separate the internal representation of smob
356 types from the interface, so that we easily can add new fields and
357 rearrange things without caring about backward compatibility.
358 This change was forced by the need in GOOPS to create classes
359 representing port types.
360 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
361 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
362 scm_set_ptob_seek, scm_set_ptob_truncate,
363 scm_set_ptob_input_waiting_p): New setters.
364 (scm_newptob): Rewritten to use scm_make_port_type. For backward
365 compatibility.
366 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
367 (scm_prinport): Removed.
368 (scm_port_print): Added.
369 (scm_print_port_mode): Added.
370 (void_port_ptob, print_void_port, close_void_port, noop0):
371 Removed. Removed #include "genio.h" Added #include "objects.h",
372 #include "smobs.h"
373
374 * fports.c (prinfport): Moved code from ports.c.
375 (local_free): Added.
376 (scm_fptob): Removed. Instead use new interface.
377 (scm_make_fptob): Added. (Need to create basic ports in a
378 specific order in ports.c.)
379
380 * strports.c (scm_stptob, prinstpt, noop0): Removed
381 (scm_make_stptob): Added.
382
383 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
384 (scm_make_sfport): Added.
385
386 * filesys.c (scm_dir_print): Don't use the port printing code.
387 Instead provide specific directory printer.
388
389 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
390
391 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
392 scm_ptob_descriptor.
393
394 * smob.c (scm_smob_print): Handle non-existing type name nicely.
395 Removed #include "genio.h"
396
397 * objects.c (scm_make_port_classes): New function ptr.
398
69bc9ff3
GH
3991999-07-24 Gary Houston <ghouston@easynet.co.uk>
400
401 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
402
403 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
404 allow the 1st argument to be a fdes or filename as well as a
405 port (as in the filesys.c version).
406
407 * filesys.c (scm_truncate_file): removed.
408
096d0b15
MD
4091999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
410
411 * readline.c, readline.h: Removed.
412
413 * objects.c, objects.h (scm_port_class): Added.
414 (scm_class_of): Look up port class in scm_port_class.
415 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
416 SCM_INOUT_PCLASS_INDEX): Added.
417
f15913d0
MD
418
419 * Makefile.am: Removed genio.c, genio.x.
420
421 * genio.c: Removed.
422
aafe2718
MD
4231999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
424
425 * init.c: Make sure that scm_post_boot_init_modules is called only
426 once. (Important when using a dumped image.; Thanks to Bernard
427 Urban.)
428
3144e1a9
JB
4291999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
430
8e1e60f1
JB
431 * guardians.c (scm_guardian_zombify): Separate scanning for
432 zombies from marking the pairs of the free list.
433
a825bb0e
JB
434 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
435 use the macros. (Thanks to Michael Livshin.)
436
4d4c53ac
JB
437 * eval.c (scm_m_lambda): Let bodycheck check the body of the
438 lambda. Let your sins be purified by the blood of the lambda.
439 (Thanks to Eric Hanchrow.)
440
d9ad6919
JB
441 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
442 (Thanks to Valdis Kletnieks.)
443
3144e1a9 444