*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
9a26d6f9
MD
11999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
2
3 * numbers.c (scm_lcm): Bugfix: BIGDIG --> SCM_BIGDIG;
4 Account for the case when second argument is unbound.
5
6 * strorder.c (scm_string_less_p, scm_string_ci_less_p): Bugfix.
7 (Thanks to Karoly Lorentey.)
8
9 * gh_data.c, ports.c, strop.c: Alternatively use bcopy if memmove
10 isn't present. (Thanks to suzukis@file.phys.tohoku.ac.jp.)
11
12 * ports.c: Use ANSI C prototypes in definitions. (Thanks to
13 Bernard Urban.)
14
15 * filesys.c (scm_stat2scm): Conditionally use S_ISLNK.
16
17 * dynl-dl.c (RTLD_GLOBAL): Define if non-existent. (Thanks to
18 Bernard Urban and Ian Grant.)
19
20 * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version
21 again. (1.3.4 will be binary incompatible with 1.3.2 because of a
22 change in the representation of entities and operators.)
23
6e2e75db
GH
241999-08-29 Gary Houston <ghouston@easynet.co.uk>
25
26 * ports.c (scm_ungetc): bugfix: if putback_buf is NULL
5c4fe34f 27 don't allocate zero bytes (thanks to Bill Schottstaedt).
6e2e75db 28
c5b738b5
MD
291999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
30
a48a7629
MD
31 * procs.c (scm_setter): Converted to use generic dispatch.
32
33 * eval.c, eval.h: Bugfix: scm_sym_apply was not initialized
34 correctly.
35
36 * load.c (scm_search_path): Don't try extensions which already are
37 present at the end of the filename.
38 (scm_init_load): Check .scm first. (Thanks to Keisuke Nishida.)
39
40 * stacks.c (scm_sym_apply): Removed. (Thanks to Ken Raeburn.)
41
c5b738b5
MD
42 Cleanup and simplification of generic method dispatch.
43 Also, the quadruple representation of entity and operator
44 procedures has been replaced with single.
45
46 * tags.h (SCM_IM_HASH_DISPATCH): Removed.
47
48 * print.c (scm_isymnames): Removed #@hash-dispatch.
49
50 * objects.c, objects.h (scm_mcache_lookup_cmethod): Moved here
51 from eval.c; Support 0 arity methods.
52 (scm_set_object_procedure_x): Removed scm_sym_atdispatch;
53 (scm_apply_generic_env): Removed.
54 Replaced slots proc0-3 with procedure.
55
56 * objects.h (SCM_OPERATOR_PROC_0, SCM_OPERATOR_PROC_1,
57 SCM_OPERATOR_PROC_2, SCM_OPERATOR_PROC_3): Replaced by
58 SCM_OPERATOR_PROCEDURE.
59 (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_1, SCM_ENTITY_PROC_2,
60 SCM_ENTITY_PROC_3): Replaced by SCM_ENTITY_PROCEDURE.
61
62 * struct.c, struct.h: Replace 4 procedure slots with one.
63 (scm_struct_i_procedure): Replaces scm_struct_i_procedure.
64
65 * gc.c (scm_gc_mark): Mark 1 procedure slot in entities instead of
66 4.
67
68 * eval.c (scm_sym_args): Removed.
69 (SCM_CEVAL): Simplified entity application.
70 Moved dispatch code to objects.c.
71
72 * procprop.c (scm_i_procedure_arity): Bugfix: Handle generics.
73
375c11a3
MD
741999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
75
76 * sort.c (closureless): Use scm_eval_body.
77
78 * eval.c (SCM_APPLY): Fixed serious evaluator bug: If a closure
79 with a symbol as last form was first called normally and then via
80 `map' or some other mechanism using primitive apply, an ILOC was
81 returned.
82
9de33deb
MD
831999-08-26 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
84
85 This change extends the representation of primitive procedures
86 with more data fields, e.g. a place for documentation and true
87 procedure properties.
88
89 * procs.c, procs.h (scm_subr_entry): New type: Stores data
90 associated with subrs.
91 (SCM_SUBRNUM, SCM_SUBR_ENTRY, SCM_SUBR_GENERIC, SCM_SUBR_PROPS,
92 SCM_SUBR_DOC): New macros.
93 (scm_subr_table): New variable.
94 (scm_mark_subr_table): New function.
95
96 * init.c (scm_boot_guile_1): Call scm_init_subr_table.
97
98 * gc.c (scm_gc_mark): Don't mark subr names here.
99 (scm_igc): Call scm_mark_subr_table.
100
101
102 This change implements a scheme for letting a generic work as a
103 shadow for a primitive procedure. If the primitive procedure
104 can't dispatch on its arguments, control is left over to the
105 generic. Normal wrong type arg errors will be generated until the
106 user has hung the first method on the primitive.
107
108 * snarf.h (SCM_GPROC, SCM_GPROC1): New macros.
109
110 * procs.c, procs.h (scm_subr_p): New function (used internally).
111
112 * gsubr.c, gsubr.h (scm_make_gsubr_with_generic): New function.
113
114 * objects.c, objects.h (scm_primitive_generic): New class.
115
116 * objects.h (SCM_CMETHOD_CODE, SCM_CMETHOD_ENV): New macros.
117
118 * print.c (scm_iprin1): Print primitive-generics.
119
120 * __scm.h (SCM_WTA_DISPATCH_1, SCM_GASSERT1,
121 SCM_WTA_DISPATCH_2, SCM_GASSERT2): New macros.
122
123 * eval.c (SCM_CEVAL, SCM_APPLY): Replace scm_wta -->
124 SCM_WTA_DISPATCH_1 for scm_cxr's (unary floating point
125 primitives). NOTE: This means that it is now *required* to use
126 SCM_GPROC1 when creating float scm_cxr's (float scm_cxr's is an
127 obscured representation that will be removed in the future anyway,
128 so backward compatibility is no problem here).
129
130 * numbers.c: Converted most numeric primitives (all but bit
131 comparison operations and bit operations) to dispatch on generic
132 if args don't match.
133
134
135 Better support for applying generic functions.
136
137 * eval.c, eval.h (scm_eval_body): New function.
138
139 * objects.c (scm_call_generic_0, scm_call_generic_1,
140 scm_call_generic_2, scm_call_generic_3, scm_apply_generic): New
141 functions.
142
143
144 Optimization of the generic function dispatch mechanism.
145
146 * eval.c (SCM_CEVAL): Apply the cmethod directly after having
147 called scm_memoize_method instead of doing a second lookup.
148
149 * objects.h (scm_memoize_method): Now returns the memoized cmethod.
150
151
152 Bugfix
153
154 * procs.c (scm_make_subr_opt): Use scm_sysintern0 instead of
155 scm_sysintern so that the binding connected with the subr name
156 isn't cleared when we give set = 0.
157
158
07910014
MD
1591999-08-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
160
9de33deb
MD
161 More transparent handling of ports with print states.
162
07910014
MD
163 * print.h (SCM_PORT_WITH_PS_P, SCM_PORT_WITH_PS_PORT,
164 SCM_PORT_WITH_PS_PS): Represent ports with print states as a smob
165 instead of a pair of a port and a print state. We'll need to cons
166 once extra in scm_printer_apply but the type system will be
167 cleaner, it will mix better with GOOPS, and, it will be even more
168 transparent to the user.
169
170 * print.c (scm_get_print_state): New procedure: Given an output
171 port, return the print state associated to it in the current print
172 chain, if one exists;
173 (scm_port_with_print_state): New procedure: Associate a
174 print-state with a port.
175 (scm_valid_oport_value_p): Use SCM_PORT_WITH_PS_P;
176 (scm_printer_apply): Wrap port and pstate as a smob;
177 (print_state_printer): Removed.
178
179 * objects.c (scm_class_of): Treat scm_tc16_port_with_ps as ports.
180
181 * eval.c (scm_init_eval): Use scm_make_smob_type instead of
182 scm_newsmob.
183
184 * ports.c (scm_output_port_p): Bugfix: Coerce output port before
185 testing (otherwise the port-print-state trick won't be transparent
186 to the user; one example where this caused problems was in the
187 (ice-9 format) module).
188
e2e470cf
MD
1891999-08-23 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
190
191 * eval.c (SCM_CEVAL): Let the SCM_IM_SLOT_SET_X form return
192 SCM_UNSPECIFIED instead of the set value.
193
a343458d
JB
1941999-08-20 James Blandy <jimb@mule.m17n.org>
195
f8c9d497
JB
196 * load.c (scm_init_load_path): Remove support for SCHEME_LOAD_PATH.
197
a343458d
JB
198 * ports.h (enum scm_port_rw_active): New enum, containing
199 SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
200 zero). The debugger knows about enums, but doesn't know about
201 #defines.
202 (typedef scm_port): Declare rw_active member to be an enum
203 scm_port_rw_active.
204 * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
205 instead of zero.
206 * ports.c (scm_add_to_port_table): Same.
207 * strports.c (st_flush, st_end_input): Same.
208
209 * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
210 scm_must_realloc, and scm_done_malloc as appropriate.
211
dc4ddb33
MD
2121999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
213
214 * sort.c (quicksort): Added condition to protect the algorithm
215 from crashing the interpreter if the less predicate is buggy.
216
d3639214
GH
2171999-08-19 Gary Houston <ghouston@easynet.co.uk>
218
219 * fports.c (fport_write): fix line-buffering mode again.
220 (scm_open_file): recognise 'l' for line-buffering.
221 (scm_setvbuf): recognise _IOLBF for line-buffering.
222
3817c7ce
MD
2231999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
224
266bf340
MD
225 * Makefile.am (libguile_la_LDFLAGS): Increased the version number
226 of libguile to 5.0.
227
3817c7ce
MD
228 * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
229 evaluating closures.
230
162d88ca
GH
2311999-08-18 Gary Houston <ghouston@easynet.co.uk>
232
233 * fports.c (fport_write): use memcpy instead of strncpy, in case
234 the data contains NUL.
235
cce0d8d0
MD
2361999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
237
59c49e10
MD
238 * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
239
cce0d8d0
MD
240 * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
241 read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
242 scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
243 scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
244 scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
245 scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
246 scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
247 scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
248 scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
249 scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
250 scm_sym_ as prefix for symbols.
251
252 * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
253
254 * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
255 scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
256 scm_sym_define, scm_sym_letrec, scm_sym_atapply,
257 scm_sym_atcall_cc): Made global.
258
8b7840b9
MD
2591999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
260
261 * eval.c (scm_sym_args): Made global.
262
263 * objects.c (scm_set_object_procedure_x): Disallow setting of
264 procedures for pure generic functions.
265
c94577b4
GH
2661999-08-12 Gary Houston <ghouston@easynet.co.uk>
267
268 * ports.c (scm_seek): one more: was scm_lseek. Also changed the
269 Scheme name from lseek to seek, but lseek was added recently so
270 it shouldn't be a big problem.
271 * ports.c, gdbint.c, ioext.c: changed callers.
272
affc96b5
GH
2731999-08-11 Gary Houston <ghouston@easynet.co.uk>
274
275 * fports.c (fport_input_waiting): if select is used, return 1
276 instead of whatever FD_ISSET expands to. maybe it will be useful
277 to interpret the value from the input_waiting ptob procedure as a
278 lower bound on the number of bytes available.
279
280 * Mikael asked for a few names to be changed...
281
282 * ports.c (scm_make_port_type): take the write procedure as the
283 second argument instead of the flush procedure.
284 * ports.h (scm_ptob_descriptor): rename the ptob procedures:
285 fflush -> flush, read_flush -> end_input, fclose -> close,
286 fill_buffer -> fill_input, ftruncate -> truncate,
287 input_waiting_p -> input_waiting.
288
289 * ports.c (end_input_void_port): was read_flush_void_port.
290 (scm_set_port_end_input): was scm_set_port_flush_input.
291 (scm_set_port_flush): was scm_set_port_write.
292 (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
293 (scm_end_input): was scm_read_flush.
294 (scm_fill_input): was scm_fill_buffer.
295 (scm_flush): was scm_fflush.
296 * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
297 (fport_end_input): was local_read_flush.
298 (fport_flush): was local_fflush.
299 (fport_close): was local_fclose.
300 (fport_truncate): was local_ftruncate.
301 (fport_seek): was local_seek.
302 (fport_free): was local_free.
303 (fport_fill_input): was fport_fill_buffer.
304 * strports.c (st_end_input): was st_read_flush.
305 (st_truncate): was st_ftruncate.
306 * vports.c: (sf_flush): was sfflush.
307 (sf_close): was sfclose.
308 (sf_fill_input): was sf_fill_buffer.
309
310 * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
311 change callers.
312
df061ffc
MD
3131999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
314
315 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
316 forms now contain the expressions to be dispatched upon instead of
317 depending on a surrounding lambda or let; Generic function
318 dispatch has been optimized; `apply' on a generic function now
319 works a little bit strangely. It uses a trick so that the type
320 dispatch code in SCM_CEVAL can be reused.
321
322 * objects.h, objects.c (scm_apply_generic_env): Added (used by
323 apply).
324 (scm_operator_p): Added.
325 (scm_sym_atdispatch): Added.
326 (scm_set_object_procedure_x): Modified to handle the new style
327 generic functions.
328 (scm_object_procedures): New debugging procedure.
329
524da6b9
MD
3301999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
331
df061ffc
MD
332 * eval.c, eval.h (scm_sym_args): Added.
333
334 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
335
eba96884
MD
336 * feature.c, feature.h (scm_c_run_hook): Added.
337
524da6b9
MD
338 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
339 cdrxnoap and loopnoap instead of begin and loop.
340
265e6a4d
GH
3411999-08-04 Gary Houston <ghouston@easynet.co.uk>
342
343 * ports.c (scm_putc, scm_puts),
344 * unif.c (scm_uniform_array_write): use scm_lfwrite.
345 * ports.c (scm_putc): change type of first argument from int to char.
346
82cc1b11
MD
3471999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
348
349 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
350 SCM_IM_HASH_DISPATCH.
351
352 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
353 (scm_si_redfined, scm_si_hashsets): Moved.
354
355 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
356 flag which combines type and status info so that the class
357 redefinition protocol has zero cost during normal execution.
358
31703ab8
GH
3591999-08-03 Gary Houston <ghouston@easynet.co.uk>
360
361 * ports.h (scm_ptob_descriptor): include a write procedure again.
362 it's more efficient for unbuffered fports (e.g., sockets.)
363
364 * ports.c (scm_puts): use ptob->write.
365 * vports.c (scm_make_sfptob): set write proc in ptob.
366 * strports.c (scm_make_stptob): set write proc in ptob.
367 * ports.c (write_void_port): new procedure.
368 * vports.c (sf_write): new procedure.
369 * ports.c (scm_lfwrite): use ptob->write.
370 * strports.c (st_write): new procedure.
371 * fports.c (fport_write): new procedure.
372 (scm_make_fptob): set write in ptob to fport_write.
373 * ports.h: prototype for scm_set_port_write.
374 * ports.c (scm_make_port_type): initialise ptob write procedure.
375 (scm_set_port_write): new proc.
376
769f054d
JB
3771999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
378
379 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
380 until we've verified that it is actually a port. (Thanks to
381 Lorentey Karoly.)
382
5678aae0
MD
3831999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
384
9ffdde1c
MD
385 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
386 code, particularly an unnecessary test (len != size, where len ==
387 size). (Was this leftovers from debugging code, or have I missed
388 something profound?)
389
5678aae0
MD
390 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
391 size. (Thanks to James Dean Palmer.)
392
393 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
394 (Thanks to Lorentey Karoly.)
395
6e1fd264
MD
3961999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
397
398 * eval.c (scm_m_expand_body): Use scm_cons_source.
399
400 * struct.c (scm_print_struct): Use vtable name.
401
402 * print.c (scm_init_print): Set name of print state type.
403
404 * stacks.c (scm_init_stacks): Set name of stack type.
405
b09ef679
MD
4061999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
407
cb4832ae
MD
408 * eval.c (SCM_CEVAL): Removed old implementation of internal
409 define.
410
411 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
412
413 * debug.c, debug.h (scm_reverse_lookup): Added.
414 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
415 internal procedure definitions; Don't use scm_i_inner_name.
416
2a52b429
MD
417 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
418 New isym operations.
419
b09ef679
MD
420 * eval.h: Added prototypes for multi language support functions.
421
422 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
423 improper lists in the low-level representation, since that will
424 cause a begin to be prepended at macro expansion.
425
2a52b429
MD
426 * eval.c (scm_cons_source): Version of cons which copies source
427 properties from an existing cell.
6e1fd264 428 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
429
430 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
431 procedure source before calling scm_unmemocopy instead of faking
432 an environment.
433
4341998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
435
436 Ported `internal defines' fix from SCM. Original ChangeLog entry:
437
438 1998-07-09 Radey Shouman <radey@colorage.com>
439
440 * eval.c (ceval_1): Modifications to allow rewriting of interal
441 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
442 body of which it is the CAR is macro expanded by m_expand_body,
443 which rewrites internal DEFINE.
444
445 (m_expand_body): Added.
446
447 (m_macroexp1): Added argument to control error checking:
448 m_expand_body may speculatively expand forms in the wrong
449 environments. Made argument number checks conditional on
450 RECKLESS.
451
452 (m_body): Added, error checks bodies and inserts the ISYM tokens.
453
454 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
455 call m_body.
456
457 (m_cond): (m_case): (m_quote): Modified to avoid destructively
458 changing their argument forms. Since m_expand_body
459 speculatively macro expands forms the process must be
460 reversible.
461
462 (m_ident_eqp): Fixed to use proper environment.
463
464 (renamed_ident): Added DEFER_INTS_EGC.
465
466 Added prototypes for static functions.
467
468 * eval.c
469
470 (undef_cell): New.
471
472 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
473 is false, do not produce an error for unbound variables, return a
474 pointer to cell_undef instead.
475
476 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
477
478 (scm_m_body): New.
479
480 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
481 destructively changing their argument forms. Since m_expand_body
482 speculatively macro expands forms the process must be reversible.
483
484 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
485 SCM_IM_LET introduced by named lets.
486
487 (scm_m_letstar): Use scm_m_body instead of bodycheck.
488
489 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
490 scm_letrec. scm_letrec1 does not check for a null binding and
491 takes an additional argument to specify the ISYM of the body. Use
492 scm_m_body instead of bodycheck.
493
494 (scm_m_let): Use scm_m_body instead of bodycheck.
495
496 (scm_m_expand_body, scm_macroexp): New.
497
498 (unmemocopy): Account for ISYMs introduced by scm_m_body.
499
500 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
501 check=1. Throw error for internal defined that have not been
502 rewritten by scm_m_expand_body.
503
504 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
505 Removed prototype for SCM_APPLY.
506
507 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 508
a6ba4ef8
MD
5091999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
510
511 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
512
513 * lang.c: New file: Beginning of multi-language support.
514
515 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
516
517 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
518 (scm_dynamic_wind): Added argument checking for the after guard so
519 that we don't add garbage on the dynwind chain.
520 (scm_swap_bindings): Added.
521
522 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
523 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
524 (scm_isymnames): New isyms for multi-language support.
525
526 * eval.c (scm_nil, scm_t): New symbols.
527 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
528 forms for multi-language support.
529
259529f2
MD
5301999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
531
532 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
533 Added.
534 Renamed functions in the random function library interface
535 from scm_i_XXX --> scm_c_XXX.
536
1b9c3dae
GH
5371999-07-25 Gary Houston <ghouston@easynet.co.uk>
538
539 * ports.c (scm_putc): fix line-buffering.
540
544e9093
MD
5411999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
542
543 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
544 scm_set_ptob_XXX --> scm_set_port_XXX.
545
f15913d0
MD
5461999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
547
548 * ports.c, ports.h (scm_make_port_type): New interface for
549 creation of port types (replaces scm_newptob). Just as for the
550 smobs, we need to separate the internal representation of smob
551 types from the interface, so that we easily can add new fields and
552 rearrange things without caring about backward compatibility.
553 This change was forced by the need in GOOPS to create classes
554 representing port types.
555 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
556 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
557 scm_set_ptob_seek, scm_set_ptob_truncate,
558 scm_set_ptob_input_waiting_p): New setters.
559 (scm_newptob): Rewritten to use scm_make_port_type. For backward
560 compatibility.
561 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
562 (scm_prinport): Removed.
563 (scm_port_print): Added.
564 (scm_print_port_mode): Added.
565 (void_port_ptob, print_void_port, close_void_port, noop0):
566 Removed. Removed #include "genio.h" Added #include "objects.h",
567 #include "smobs.h"
568
569 * fports.c (prinfport): Moved code from ports.c.
570 (local_free): Added.
571 (scm_fptob): Removed. Instead use new interface.
572 (scm_make_fptob): Added. (Need to create basic ports in a
573 specific order in ports.c.)
574
575 * strports.c (scm_stptob, prinstpt, noop0): Removed
576 (scm_make_stptob): Added.
577
578 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
579 (scm_make_sfport): Added.
580
581 * filesys.c (scm_dir_print): Don't use the port printing code.
582 Instead provide specific directory printer.
583
584 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
585
586 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
587 scm_ptob_descriptor.
588
589 * smob.c (scm_smob_print): Handle non-existing type name nicely.
590 Removed #include "genio.h"
591
592 * objects.c (scm_make_port_classes): New function ptr.
593
69bc9ff3
GH
5941999-07-24 Gary Houston <ghouston@easynet.co.uk>
595
596 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
597
598 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
599 allow the 1st argument to be a fdes or filename as well as a
600 port (as in the filesys.c version).
601
602 * filesys.c (scm_truncate_file): removed.
603
096d0b15
MD
6041999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
605
606 * readline.c, readline.h: Removed.
607
608 * objects.c, objects.h (scm_port_class): Added.
609 (scm_class_of): Look up port class in scm_port_class.
610 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
611 SCM_INOUT_PCLASS_INDEX): Added.
612
f15913d0
MD
613
614 * Makefile.am: Removed genio.c, genio.x.
615
616 * genio.c: Removed.
617
aafe2718
MD
6181999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
619
620 * init.c: Make sure that scm_post_boot_init_modules is called only
621 once. (Important when using a dumped image.; Thanks to Bernard
622 Urban.)
623
3144e1a9
JB
6241999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
625
8e1e60f1
JB
626 * guardians.c (scm_guardian_zombify): Separate scanning for
627 zombies from marking the pairs of the free list.
628
a825bb0e
JB
629 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
630 use the macros. (Thanks to Michael Livshin.)
631
4d4c53ac
JB
632 * eval.c (scm_m_lambda): Let bodycheck check the body of the
633 lambda. Let your sins be purified by the blood of the lambda.
634 (Thanks to Eric Hanchrow.)
635
d9ad6919
JB
636 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
637 (Thanks to Valdis Kletnieks.)
638
3144e1a9 639