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