(display_backtrace_body): Don't print "Backtrace:".
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
e1f20ec6
JB
11999-09-11 Jim Blandy <jimb@savonarola.red-bean.com>
2
3 * version.c (scm_libguile_config_stamp): Deleted. See
4 corresponding change to ../ice-9/boot-9.scm.
5 * version.h: Delete prototype.
6 * Makefile.in: Regenerated.
7
77242ff9
GH
81999-09-11 Gary Houston <ghouston@easynet.co.uk>
9
10 * filesys.c (scm_directory_p): new procedure "directory?" Returns
11 a boolean indicating whether its argument is a directory
12 port as returned by opendir (thanks to Dirk Herrmann for the
13 suggestion.)
14
08cc62c7
MD
151999-09-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
16
17 * backtrace.c (display_frame_expr): Don't print a newline.
18 (display_frame): Print the newline here instead.
19
bc848f7f
MD
201999-09-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
21
d37e6569
MD
22 * procs.c (scm_setter): Signal WTA if handed an entity or operator
23 lacking a setter.
24
bc848f7f
MD
25 * feature.c, feature.h: (scm_hook_p, scm_hook_empty_p): New
26 primitives. (Thanks to Greg Badros);
27 (scm_hook_to_list): New primitive; Hooks are now smobs.
28
55a7fc62
GH
291999-09-08 Gary Houston <ghouston@easynet.co.uk>
30
31 * stime.c (bdtime2c): rewrite the ASSERTs. Accept a value
32 of #f for the 10th vector element to avoid an exception
33 seen by Bernard Urban.
34 (scm_mktime): unneeded ASSERT removed.
35
4f93d84c
MD
361999-09-07 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
37
38 * eval.c (scm_map, scm_for_each): Converted to dispatch on generic
39 if args don't match.
40
41 * __scm.h (SCM_WTA_DISPATCH_n, SCM_GASSERTn): New macros.
42
7e6e146e
MD
431999-09-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
44
6065fed8
MD
45 * numbers.c: Converted comparison operations to dispatch on
46 generic if args don't match.
47
7e6e146e
MD
48 * Makefile.am (ETAGS_ARGS): Added support for GPROC and GPROC1.
49
548c5135
JB
501999-09-06 James Blandy <jimb@mule.m17n.org>
51
52 * guile-snarf.c: Deleted. Snarfing should respect CPP
53 conditionals, so it needs to actually run CPP. Bleah.
54
2a94fc36
JB
551999-09-05 James Blandy <jimb@mule.m17n.org>
56
f9dbe074
JB
57 Handle errors properly in guile-snarf. (Thanks to Han-Wen Nienhuys.)
58 * guile-snarf.in: Be sure to exit with an error if CPP does.
59 * Makefile.am (.c.x): Delete the .x file and exit with an error
60 status if guile-snarf exits with an error status.
61 * Makefile.in: Regenerated.
62
9d743bfb
JB
63 * snarf.h (SCM_GLOBAL_KEYWORD): Call scm_c_make_keyword, not
64 scm_makekey, which doesn't exist any more. Guess nobody's using
65 this.
66
2a94fc36
JB
67 * guile-snarf.c: New implementation of guile-snarf, meant to be
68 more robust than the shell script. I think it's complete, but I
69 haven't tested it at all, and I haven't changed the build process
70 to actually use it. We should compare its output against that of
71 the existing shell script, for all source files.
72
9918cf63
JB
73 * guile-snarf.c (parse_args): Abort if we haven't handled some
74 character type.
75
afbbb69c
JB
761999-09-03 James Blandy <jimb@mule.m17n.org>
77
78 * load.c (scm_search_path): If the filename has any extension at
79 all, ignore the entire list of extensions. Also, don't check whether
80 the file is accessible. If the file exists, accessible or not, we
81 should return it. Inaccessible files should cause an error later.
82 (Thanks to Keisuke Nishida for the suggestions.)
83
655f19ab
MD
841999-09-02 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
85
86 * gc.c (cleanup, scm_init_storage): Use on_exit if present and
87 atexit not available. (sunos4.1.4 needs it.)
88
b074884f 891999-09-01 James Blandy <jimb@mule.m17n.org>
94b4c096 90
b074884f
JB
91 I take it all back --- bcopy does handle overlapping source and
92 destination areas correctly. At least on every system I could
93 find. But it is better to use AC_REPLACE_FUNCS than to introduce
94 new CPP conditionals.
95 * memmove.c: New file, implementing memmove in terms of bcopy.
96 * scmconfig.h.in: Regenerated.
a4ea22c3
JB
97
98 Allocators should use the `void *' type for generic pointers.
99 * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Change
100 argument and return types.
101 * gc.h: Corresponding changes to prototypes.
102 (Thanks to Forcer.)
103
b074884f
JB
1041999-08-31 James Blandy <jimb@mule.m17n.org>
105
106 * numbers.c (scm_init_numbers): Claim to support the `complex'
107 feature, as expected by (ice-9 format). (Thanks to Ceri Storey.)
108
dd67f90b
JB
109 * Makefile.am (check-local): Set GUILE_LOAD_PATH so the tests can
110 find (ice-9 boot-9) when Guile was compiled in a separate
111 directory from the source. (Thanks to Rodney Brown.)
112 * Makefile.in: Regenerated.
113
94b4c096
JB
114 * procs.c (scm_make_subr_opt): Fix typo. Remember to multiply
115 table lengths by the size of a single element when growing the
dd67f90b 116 table. (Thanks to Bill Schottstaedt.)
94b4c096 117
fa941d9e
MD
1181999-08-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
119
120 * eval.c (SCM_CEVAL): Duplicated the method dispatch code at the
121 SCM_IM_DISPATCH form instead of calling scm_mcache_lookup_cmethod
122 since that cuts down the time for type dispatch by 50%.
123
ebc4e6cc
JB
1241999-08-30 James Blandy <jimb@mule.m17n.org>
125
126 * gh_data.c (gh_set_substr): Revert change of 1999-08-29; bcopy is
127 not a correct substitute for memmove, because it doesn't handle
128 overlapping source and destination areas on many platforms.
129 Overlaps are the primary reason to use memmove in the first place.
130 * ports.c (scm_ungetc): Same.
131 * strop.c (scm_substring_move_x): Same.
132
a7098335
MD
1331999-08-30 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
134
135 * gc.c (scm_init_storage): Skip registration of cleanup on systems
136 which lack atexit. (Is it important that cleanup is made
137 properly? Maybe we should replace all `exit' with `scm_exit' and
138 call cleanup there?)
139
140 * struct.c, struct.h (scm_struct_free_0, scm_struct_free_light,
141 scm_struct_free_standard, scm_struct_free_entity): Declared to
142 return scm_sizet instead of size_t.
143
144 * gdbint.c, strports.c: #include <unistd.h>. (SEEK_SET is defined
145 there on sunos4.1.4.)
146
9a26d6f9
MD
1471999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
148
149 * numbers.c (scm_lcm): Bugfix: BIGDIG --> SCM_BIGDIG;
150 Account for the case when second argument is unbound.
151
152 * strorder.c (scm_string_less_p, scm_string_ci_less_p): Bugfix.
153 (Thanks to Karoly Lorentey.)
154
155 * gh_data.c, ports.c, strop.c: Alternatively use bcopy if memmove
b074884f 156 isn't present. (Thanks to Suzuki Toshiya.)
9a26d6f9
MD
157
158 * ports.c: Use ANSI C prototypes in definitions. (Thanks to
159 Bernard Urban.)
160
747117b0
MD
161 * filesys.c (scm_stat2scm): Conditionally use S_ISLNK. (Thanks to
162 Bernard Urban.)
9a26d6f9
MD
163
164 * dynl-dl.c (RTLD_GLOBAL): Define if non-existent. (Thanks to
165 Bernard Urban and Ian Grant.)
166
167 * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version
168 again. (1.3.4 will be binary incompatible with 1.3.2 because of a
169 change in the representation of entities and operators.)
170
6e2e75db
GH
1711999-08-29 Gary Houston <ghouston@easynet.co.uk>
172
173 * ports.c (scm_ungetc): bugfix: if putback_buf is NULL
5c4fe34f 174 don't allocate zero bytes (thanks to Bill Schottstaedt).
6e2e75db 175
c5b738b5
MD
1761999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
177
a48a7629
MD
178 * procs.c (scm_setter): Converted to use generic dispatch.
179
180 * eval.c, eval.h: Bugfix: scm_sym_apply was not initialized
181 correctly.
182
183 * load.c (scm_search_path): Don't try extensions which already are
184 present at the end of the filename.
185 (scm_init_load): Check .scm first. (Thanks to Keisuke Nishida.)
186
187 * stacks.c (scm_sym_apply): Removed. (Thanks to Ken Raeburn.)
188
c5b738b5
MD
189 Cleanup and simplification of generic method dispatch.
190 Also, the quadruple representation of entity and operator
191 procedures has been replaced with single.
192
193 * tags.h (SCM_IM_HASH_DISPATCH): Removed.
194
195 * print.c (scm_isymnames): Removed #@hash-dispatch.
196
197 * objects.c, objects.h (scm_mcache_lookup_cmethod): Moved here
198 from eval.c; Support 0 arity methods.
199 (scm_set_object_procedure_x): Removed scm_sym_atdispatch;
200 (scm_apply_generic_env): Removed.
201 Replaced slots proc0-3 with procedure.
202
203 * objects.h (SCM_OPERATOR_PROC_0, SCM_OPERATOR_PROC_1,
204 SCM_OPERATOR_PROC_2, SCM_OPERATOR_PROC_3): Replaced by
205 SCM_OPERATOR_PROCEDURE.
206 (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_1, SCM_ENTITY_PROC_2,
207 SCM_ENTITY_PROC_3): Replaced by SCM_ENTITY_PROCEDURE.
208
209 * struct.c, struct.h: Replace 4 procedure slots with one.
210 (scm_struct_i_procedure): Replaces scm_struct_i_procedure.
211
212 * gc.c (scm_gc_mark): Mark 1 procedure slot in entities instead of
213 4.
214
215 * eval.c (scm_sym_args): Removed.
216 (SCM_CEVAL): Simplified entity application.
217 Moved dispatch code to objects.c.
218
219 * procprop.c (scm_i_procedure_arity): Bugfix: Handle generics.
220
375c11a3
MD
2211999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
222
223 * sort.c (closureless): Use scm_eval_body.
224
225 * eval.c (SCM_APPLY): Fixed serious evaluator bug: If a closure
226 with a symbol as last form was first called normally and then via
227 `map' or some other mechanism using primitive apply, an ILOC was
228 returned.
229
9de33deb
MD
2301999-08-26 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
231
232 This change extends the representation of primitive procedures
233 with more data fields, e.g. a place for documentation and true
234 procedure properties.
235
236 * procs.c, procs.h (scm_subr_entry): New type: Stores data
237 associated with subrs.
238 (SCM_SUBRNUM, SCM_SUBR_ENTRY, SCM_SUBR_GENERIC, SCM_SUBR_PROPS,
239 SCM_SUBR_DOC): New macros.
240 (scm_subr_table): New variable.
241 (scm_mark_subr_table): New function.
242
243 * init.c (scm_boot_guile_1): Call scm_init_subr_table.
244
245 * gc.c (scm_gc_mark): Don't mark subr names here.
246 (scm_igc): Call scm_mark_subr_table.
247
248
249 This change implements a scheme for letting a generic work as a
250 shadow for a primitive procedure. If the primitive procedure
251 can't dispatch on its arguments, control is left over to the
252 generic. Normal wrong type arg errors will be generated until the
253 user has hung the first method on the primitive.
254
255 * snarf.h (SCM_GPROC, SCM_GPROC1): New macros.
256
257 * procs.c, procs.h (scm_subr_p): New function (used internally).
258
259 * gsubr.c, gsubr.h (scm_make_gsubr_with_generic): New function.
260
261 * objects.c, objects.h (scm_primitive_generic): New class.
262
263 * objects.h (SCM_CMETHOD_CODE, SCM_CMETHOD_ENV): New macros.
264
265 * print.c (scm_iprin1): Print primitive-generics.
266
267 * __scm.h (SCM_WTA_DISPATCH_1, SCM_GASSERT1,
268 SCM_WTA_DISPATCH_2, SCM_GASSERT2): New macros.
269
270 * eval.c (SCM_CEVAL, SCM_APPLY): Replace scm_wta -->
271 SCM_WTA_DISPATCH_1 for scm_cxr's (unary floating point
272 primitives). NOTE: This means that it is now *required* to use
273 SCM_GPROC1 when creating float scm_cxr's (float scm_cxr's is an
274 obscured representation that will be removed in the future anyway,
275 so backward compatibility is no problem here).
276
277 * numbers.c: Converted most numeric primitives (all but bit
278 comparison operations and bit operations) to dispatch on generic
279 if args don't match.
280
281
282 Better support for applying generic functions.
283
284 * eval.c, eval.h (scm_eval_body): New function.
285
286 * objects.c (scm_call_generic_0, scm_call_generic_1,
287 scm_call_generic_2, scm_call_generic_3, scm_apply_generic): New
288 functions.
289
290
291 Optimization of the generic function dispatch mechanism.
292
293 * eval.c (SCM_CEVAL): Apply the cmethod directly after having
294 called scm_memoize_method instead of doing a second lookup.
295
296 * objects.h (scm_memoize_method): Now returns the memoized cmethod.
297
298
299 Bugfix
300
301 * procs.c (scm_make_subr_opt): Use scm_sysintern0 instead of
302 scm_sysintern so that the binding connected with the subr name
303 isn't cleared when we give set = 0.
304
305
07910014
MD
3061999-08-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
307
9de33deb
MD
308 More transparent handling of ports with print states.
309
07910014
MD
310 * print.h (SCM_PORT_WITH_PS_P, SCM_PORT_WITH_PS_PORT,
311 SCM_PORT_WITH_PS_PS): Represent ports with print states as a smob
312 instead of a pair of a port and a print state. We'll need to cons
313 once extra in scm_printer_apply but the type system will be
314 cleaner, it will mix better with GOOPS, and, it will be even more
315 transparent to the user.
316
317 * print.c (scm_get_print_state): New procedure: Given an output
318 port, return the print state associated to it in the current print
319 chain, if one exists;
320 (scm_port_with_print_state): New procedure: Associate a
321 print-state with a port.
322 (scm_valid_oport_value_p): Use SCM_PORT_WITH_PS_P;
323 (scm_printer_apply): Wrap port and pstate as a smob;
324 (print_state_printer): Removed.
325
326 * objects.c (scm_class_of): Treat scm_tc16_port_with_ps as ports.
327
328 * eval.c (scm_init_eval): Use scm_make_smob_type instead of
329 scm_newsmob.
330
331 * ports.c (scm_output_port_p): Bugfix: Coerce output port before
332 testing (otherwise the port-print-state trick won't be transparent
333 to the user; one example where this caused problems was in the
334 (ice-9 format) module).
335
e2e470cf
MD
3361999-08-23 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
337
338 * eval.c (SCM_CEVAL): Let the SCM_IM_SLOT_SET_X form return
339 SCM_UNSPECIFIED instead of the set value.
340
a343458d
JB
3411999-08-20 James Blandy <jimb@mule.m17n.org>
342
f8c9d497
JB
343 * load.c (scm_init_load_path): Remove support for SCHEME_LOAD_PATH.
344
a343458d
JB
345 * ports.h (enum scm_port_rw_active): New enum, containing
346 SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
347 zero). The debugger knows about enums, but doesn't know about
348 #defines.
349 (typedef scm_port): Declare rw_active member to be an enum
350 scm_port_rw_active.
351 * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
352 instead of zero.
353 * ports.c (scm_add_to_port_table): Same.
354 * strports.c (st_flush, st_end_input): Same.
355
356 * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
357 scm_must_realloc, and scm_done_malloc as appropriate.
358
dc4ddb33
MD
3591999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
360
361 * sort.c (quicksort): Added condition to protect the algorithm
362 from crashing the interpreter if the less predicate is buggy.
363
d3639214
GH
3641999-08-19 Gary Houston <ghouston@easynet.co.uk>
365
366 * fports.c (fport_write): fix line-buffering mode again.
367 (scm_open_file): recognise 'l' for line-buffering.
368 (scm_setvbuf): recognise _IOLBF for line-buffering.
369
3817c7ce
MD
3701999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
371
266bf340
MD
372 * Makefile.am (libguile_la_LDFLAGS): Increased the version number
373 of libguile to 5.0.
374
3817c7ce
MD
375 * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
376 evaluating closures.
377
162d88ca
GH
3781999-08-18 Gary Houston <ghouston@easynet.co.uk>
379
380 * fports.c (fport_write): use memcpy instead of strncpy, in case
381 the data contains NUL.
382
cce0d8d0
MD
3831999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
384
59c49e10
MD
385 * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
386
cce0d8d0
MD
387 * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
388 read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
389 scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
390 scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
391 scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
392 scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
393 scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
394 scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
395 scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
396 scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
397 scm_sym_ as prefix for symbols.
398
399 * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
400
401 * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
402 scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
403 scm_sym_define, scm_sym_letrec, scm_sym_atapply,
404 scm_sym_atcall_cc): Made global.
405
8b7840b9
MD
4061999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
407
408 * eval.c (scm_sym_args): Made global.
409
410 * objects.c (scm_set_object_procedure_x): Disallow setting of
411 procedures for pure generic functions.
412
c94577b4
GH
4131999-08-12 Gary Houston <ghouston@easynet.co.uk>
414
415 * ports.c (scm_seek): one more: was scm_lseek. Also changed the
416 Scheme name from lseek to seek, but lseek was added recently so
417 it shouldn't be a big problem.
418 * ports.c, gdbint.c, ioext.c: changed callers.
419
affc96b5
GH
4201999-08-11 Gary Houston <ghouston@easynet.co.uk>
421
422 * fports.c (fport_input_waiting): if select is used, return 1
423 instead of whatever FD_ISSET expands to. maybe it will be useful
424 to interpret the value from the input_waiting ptob procedure as a
425 lower bound on the number of bytes available.
426
427 * Mikael asked for a few names to be changed...
428
429 * ports.c (scm_make_port_type): take the write procedure as the
430 second argument instead of the flush procedure.
431 * ports.h (scm_ptob_descriptor): rename the ptob procedures:
432 fflush -> flush, read_flush -> end_input, fclose -> close,
433 fill_buffer -> fill_input, ftruncate -> truncate,
434 input_waiting_p -> input_waiting.
435
436 * ports.c (end_input_void_port): was read_flush_void_port.
437 (scm_set_port_end_input): was scm_set_port_flush_input.
438 (scm_set_port_flush): was scm_set_port_write.
439 (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
440 (scm_end_input): was scm_read_flush.
441 (scm_fill_input): was scm_fill_buffer.
442 (scm_flush): was scm_fflush.
443 * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
444 (fport_end_input): was local_read_flush.
445 (fport_flush): was local_fflush.
446 (fport_close): was local_fclose.
447 (fport_truncate): was local_ftruncate.
448 (fport_seek): was local_seek.
449 (fport_free): was local_free.
450 (fport_fill_input): was fport_fill_buffer.
451 * strports.c (st_end_input): was st_read_flush.
452 (st_truncate): was st_ftruncate.
453 * vports.c: (sf_flush): was sfflush.
454 (sf_close): was sfclose.
455 (sf_fill_input): was sf_fill_buffer.
456
457 * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
458 change callers.
459
df061ffc
MD
4601999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
461
462 * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
463 forms now contain the expressions to be dispatched upon instead of
464 depending on a surrounding lambda or let; Generic function
465 dispatch has been optimized; `apply' on a generic function now
466 works a little bit strangely. It uses a trick so that the type
467 dispatch code in SCM_CEVAL can be reused.
468
469 * objects.h, objects.c (scm_apply_generic_env): Added (used by
470 apply).
471 (scm_operator_p): Added.
472 (scm_sym_atdispatch): Added.
473 (scm_set_object_procedure_x): Modified to handle the new style
474 generic functions.
475 (scm_object_procedures): New debugging procedure.
476
524da6b9
MD
4771999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
478
df061ffc
MD
479 * eval.c, eval.h (scm_sym_args): Added.
480
481 * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
482
eba96884
MD
483 * feature.c, feature.h (scm_c_run_hook): Added.
484
524da6b9
MD
485 * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
486 cdrxnoap and loopnoap instead of begin and loop.
487
265e6a4d
GH
4881999-08-04 Gary Houston <ghouston@easynet.co.uk>
489
490 * ports.c (scm_putc, scm_puts),
491 * unif.c (scm_uniform_array_write): use scm_lfwrite.
492 * ports.c (scm_putc): change type of first argument from int to char.
493
82cc1b11
MD
4941999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
495
496 * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
497 SCM_IM_HASH_DISPATCH.
498
499 * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
500 (scm_si_redfined, scm_si_hashsets): Moved.
501
502 * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
503 flag which combines type and status info so that the class
504 redefinition protocol has zero cost during normal execution.
505
31703ab8
GH
5061999-08-03 Gary Houston <ghouston@easynet.co.uk>
507
508 * ports.h (scm_ptob_descriptor): include a write procedure again.
509 it's more efficient for unbuffered fports (e.g., sockets.)
510
511 * ports.c (scm_puts): use ptob->write.
512 * vports.c (scm_make_sfptob): set write proc in ptob.
513 * strports.c (scm_make_stptob): set write proc in ptob.
514 * ports.c (write_void_port): new procedure.
515 * vports.c (sf_write): new procedure.
516 * ports.c (scm_lfwrite): use ptob->write.
517 * strports.c (st_write): new procedure.
518 * fports.c (fport_write): new procedure.
519 (scm_make_fptob): set write in ptob to fport_write.
520 * ports.h: prototype for scm_set_port_write.
521 * ports.c (scm_make_port_type): initialise ptob write procedure.
522 (scm_set_port_write): new proc.
523
769f054d
JB
5241999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
525
526 * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
527 until we've verified that it is actually a port. (Thanks to
528 Lorentey Karoly.)
529
5678aae0
MD
5301999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
531
9ffdde1c
MD
532 * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
533 code, particularly an unnecessary test (len != size, where len ==
534 size). (Was this leftovers from debugging code, or have I missed
535 something profound?)
536
5678aae0
MD
537 * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
538 size. (Thanks to James Dean Palmer.)
539
540 * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
541 (Thanks to Lorentey Karoly.)
542
6e1fd264
MD
5431999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
544
545 * eval.c (scm_m_expand_body): Use scm_cons_source.
546
547 * struct.c (scm_print_struct): Use vtable name.
548
549 * print.c (scm_init_print): Set name of print state type.
550
551 * stacks.c (scm_init_stacks): Set name of stack type.
552
b09ef679
MD
5531999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
554
cb4832ae
MD
555 * eval.c (SCM_CEVAL): Removed old implementation of internal
556 define.
557
558 * gsubr.c, procprop.h (scm_i_inner_name): Removed.
559
560 * debug.c, debug.h (scm_reverse_lookup): Added.
561 (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
562 internal procedure definitions; Don't use scm_i_inner_name.
563
2a52b429
MD
564 * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
565 New isym operations.
566
b09ef679
MD
567 * eval.h: Added prototypes for multi language support functions.
568
569 * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
570 improper lists in the low-level representation, since that will
571 cause a begin to be prepended at macro expansion.
572
2a52b429
MD
573 * eval.c (scm_cons_source): Version of cons which copies source
574 properties from an existing cell.
6e1fd264 575 (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
2a52b429
MD
576
577 * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
578 procedure source before calling scm_unmemocopy instead of faking
579 an environment.
580
5811998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
582
583 Ported `internal defines' fix from SCM. Original ChangeLog entry:
584
585 1998-07-09 Radey Shouman <radey@colorage.com>
586
587 * eval.c (ceval_1): Modifications to allow rewriting of interal
588 DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
589 body of which it is the CAR is macro expanded by m_expand_body,
590 which rewrites internal DEFINE.
591
592 (m_expand_body): Added.
593
594 (m_macroexp1): Added argument to control error checking:
595 m_expand_body may speculatively expand forms in the wrong
596 environments. Made argument number checks conditional on
597 RECKLESS.
598
599 (m_body): Added, error checks bodies and inserts the ISYM tokens.
600
601 (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
602 call m_body.
603
604 (m_cond): (m_case): (m_quote): Modified to avoid destructively
605 changing their argument forms. Since m_expand_body
606 speculatively macro expands forms the process must be
607 reversible.
608
609 (m_ident_eqp): Fixed to use proper environment.
610
611 (renamed_ident): Added DEFER_INTS_EGC.
612
613 Added prototypes for static functions.
614
615 * eval.c
616
617 (undef_cell): New.
618
619 (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
620 is false, do not produce an error for unbound variables, return a
621 pointer to cell_undef instead.
622
623 (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
624
625 (scm_m_body): New.
626
627 (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
628 destructively changing their argument forms. Since m_expand_body
629 speculatively macro expands forms the process must be reversible.
630
631 (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
632 SCM_IM_LET introduced by named lets.
633
634 (scm_m_letstar): Use scm_m_body instead of bodycheck.
635
636 (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
637 scm_letrec. scm_letrec1 does not check for a null binding and
638 takes an additional argument to specify the ISYM of the body. Use
639 scm_m_body instead of bodycheck.
640
641 (scm_m_let): Use scm_m_body instead of bodycheck.
642
643 (scm_m_expand_body, scm_macroexp): New.
644
645 (unmemocopy): Account for ISYMs introduced by scm_m_body.
646
647 (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
648 check=1. Throw error for internal defined that have not been
649 rewritten by scm_m_expand_body.
650
651 * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
652 Removed prototype for SCM_APPLY.
653
654 * tags.h: Added extern declaration of scm_isymnames.
b09ef679 655
a6ba4ef8
MD
6561999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
657
658 * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
659
660 * lang.c: New file: Beginning of multi-language support.
661
662 * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
663
664 * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
665 (scm_dynamic_wind): Added argument checking for the after guard so
666 that we don't add garbage on the dynwind chain.
667 (scm_swap_bindings): Added.
668
669 * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
670 SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
671 (scm_isymnames): New isyms for multi-language support.
672
673 * eval.c (scm_nil, scm_t): New symbols.
674 (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
675 forms for multi-language support.
676
259529f2
MD
6771999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
678
679 * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
680 Added.
681 Renamed functions in the random function library interface
682 from scm_i_XXX --> scm_c_XXX.
683
1b9c3dae
GH
6841999-07-25 Gary Houston <ghouston@easynet.co.uk>
685
686 * ports.c (scm_putc): fix line-buffering.
687
544e9093
MD
6881999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
689
690 * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
691 scm_set_ptob_XXX --> scm_set_port_XXX.
692
f15913d0
MD
6931999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
694
695 * ports.c, ports.h (scm_make_port_type): New interface for
696 creation of port types (replaces scm_newptob). Just as for the
697 smobs, we need to separate the internal representation of smob
698 types from the interface, so that we easily can add new fields and
699 rearrange things without caring about backward compatibility.
700 This change was forced by the need in GOOPS to create classes
701 representing port types.
702 (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
703 scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
704 scm_set_ptob_seek, scm_set_ptob_truncate,
705 scm_set_ptob_input_waiting_p): New setters.
706 (scm_newptob): Rewritten to use scm_make_port_type. For backward
707 compatibility.
708 (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
709 (scm_prinport): Removed.
710 (scm_port_print): Added.
711 (scm_print_port_mode): Added.
712 (void_port_ptob, print_void_port, close_void_port, noop0):
713 Removed. Removed #include "genio.h" Added #include "objects.h",
714 #include "smobs.h"
715
716 * fports.c (prinfport): Moved code from ports.c.
717 (local_free): Added.
718 (scm_fptob): Removed. Instead use new interface.
719 (scm_make_fptob): Added. (Need to create basic ports in a
720 specific order in ports.c.)
721
722 * strports.c (scm_stptob, prinstpt, noop0): Removed
723 (scm_make_stptob): Added.
724
725 * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
726 (scm_make_sfport): Added.
727
728 * filesys.c (scm_dir_print): Don't use the port printing code.
729 Instead provide specific directory printer.
730
731 * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
732
733 * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
734 scm_ptob_descriptor.
735
736 * smob.c (scm_smob_print): Handle non-existing type name nicely.
737 Removed #include "genio.h"
738
739 * objects.c (scm_make_port_classes): New function ptr.
740
69bc9ff3
GH
7411999-07-24 Gary Houston <ghouston@easynet.co.uk>
742
743 * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
744
745 * ports.c (scm_truncate_file): renamed from scm_ftruncate.
746 allow the 1st argument to be a fdes or filename as well as a
747 port (as in the filesys.c version).
748
749 * filesys.c (scm_truncate_file): removed.
750
096d0b15
MD
7511999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
752
753 * readline.c, readline.h: Removed.
754
755 * objects.c, objects.h (scm_port_class): Added.
756 (scm_class_of): Look up port class in scm_port_class.
757 (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
758 SCM_INOUT_PCLASS_INDEX): Added.
759
f15913d0
MD
760
761 * Makefile.am: Removed genio.c, genio.x.
762
763 * genio.c: Removed.
764
aafe2718
MD
7651999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
766
767 * init.c: Make sure that scm_post_boot_init_modules is called only
768 once. (Important when using a dumped image.; Thanks to Bernard
769 Urban.)
770
3144e1a9
JB
7711999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
772
8e1e60f1
JB
773 * guardians.c (scm_guardian_zombify): Separate scanning for
774 zombies from marking the pairs of the free list.
775
a825bb0e
JB
776 * guardians.c (scm_guardian_zombify): Don't set marks manually ---
777 use the macros. (Thanks to Michael Livshin.)
778
4d4c53ac
JB
779 * eval.c (scm_m_lambda): Let bodycheck check the body of the
780 lambda. Let your sins be purified by the blood of the lambda.
781 (Thanks to Eric Hanchrow.)
782
d9ad6919
JB
783 * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
784 (Thanks to Valdis Kletnieks.)
785
3144e1a9 786