*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
0113293e
TP
11997-11-22 Tim Pierce <twp@twp.tezcat.com>
2
3 * dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
4 yesterday's underscore patch. (Thanks to Marius Vollmer for
5 spotting this.)
6
2a0d7176
TP
71997-11-21 Tim Pierce <twp@twp.tezcat.com>
8
9 * dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
0113293e 10 DLSYM_ADDS_USCORE is not defined.
2a0d7176 11
80b991c3
MD
121997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>
13
14 * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
15 of 0; size_t --> scm_size_t. Thanks to Bernard Urban.
16
fdc03614
MD
171997-10-26 Mikael Djurfeldt <mdj@nada.kth.se>
18
19 * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
20 configure.in was changed).
21
3fa5bb75
JB
22Sun Oct 26 02:20:11 1997 Jim Blandy <jimb@totoro.red-bean.com>
23
24 * Makefile.am (modinclude_HEADERS): Include readline.h here.
25 * Makefile.in: Regenerated.
26
e5edf9b7
MV
271997-10-25 Marius Vollmer <mvo@zagadka.ping.de>
28
29 * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
30 OPORT is an `open' port, not an output port.
31
32 * filesys.c (scm_close, set_element, get_element, scm_chown,
33 scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
34 SCM_COERCE_OUTPORT to cope with the printstate/port magic.
35 * ports.c (scm_port_revealed, scm_set_port_revealed_x,
36 scm_close_port, scm_port_line, scm_set_port_line_x,
37 scm_port_column, scm_set_port_column_x, scm_port_filename,
38 scm_set_port_filename_x, scm_port_mode,
39 scm_close_all_ports_except, scm_set_current_output_port,
40 scm_set_current_error_port): Likewise
41 * ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
42 scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
43 Likewise
44 * posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
45 * backtrace.c (display_backtrace_body): Likewise
46 * fports (scm_setvbuf): Likewise
47 * socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
48 scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
49 scm_getpeername, scm_send, scm_sendto): Likewise
50 * unif.c (scm_uniform_array_write): Likewise
51
83531e61
JB
52Sat Oct 25 02:52:58 1997 Jim Blandy <jimb@totoro.red-bean.com>
53
54 Minor problems with substring-related tag changes.
55 * symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
56 exactly what we want to leave in to detect substrings.
57 (SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
58 * tags.h: Fix diagrams and comments describing the S tag bit;
59 remove vestigial remarks about the D tag bit.
60 (SCM_TYP7, SCM_TYP7S): Rephrased for readability.
61 * strings.c: Formatting tweaks.
62
63 * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
64 variable first; then SCHEME_LOAD_PATH, with a warning message.
65 (scm_parse_path): New function.
66 * script.c: Doc fixes.
67
2e368582
JB
68Thu Oct 23 01:02:03 1997 Jim Blandy <jimb@totoro.red-bean.com>
69
70 Readline support, from Daniel Risacher.
71 * readline.c, readline.h: New files.
72 * init.c: #include "readline.h".
73 (scm_boot_guile_1): Call scm_init_readline, if we have it.
74 * Makefile.am (libguile_la_SOURCES): Include readline.c.
75 * Makefile.in: Regenerated.
76 * scmconfig.h.in: Regenerated, after change to ../configure.
77
956328d2
MG
781997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
79
80 * gh.h: gh_vector_set -> gh_vector_set_x
81
821997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
83
84 * gh_data.c (gh_vector_set_x): changed name to make it consistent
85 with the ! -> _x mapping when going from Scheme to C.
86
7fee59bd
MG
871997-10-19 Mark Galassi <rosalia@cygnus.com>
88
89 * gh.h (gh_reverse):
90 (gh_list_tail):
91 (gh_list_ref):
92 (gh_memq):
93 (gh_memv):
94 (gh_member):
95 (gh_assq):
96 (gh_assv):
97 (gh_assoc): added these gh_ functions implemented as macros.
98
99 * gh_predicates.c (gh_null_p):
100 (gh_string_equal_p): added these two missing predicates.
101
102 * gh_list.c (gh_append):
103 (gh_append2):
104 (gh_append3):
105 (gh_append4):
106 (gh_set_car_x):
107 (gh_set_cdr_x): added these routines as I go through and try to
108 complete the picture R4RS functions that should be mirrored in the
109 gh_ interface.
110
527da704
MD
111Sat Oct 18 01:52:51 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
112
113 * tags.h (scm_tc7_substring): Changed the comment and code to
114 conform with the changes below. Folks! We have suddenly two new
115 free tc7 codes!!! Jummy, jummy!
116
b7f3516f
TT
117Tue Oct 14 22:03:06 1997 Tom Tromey <tromey@cygnus.com>
118
119 * Makefile.in: Rebuilt.
120 * Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
121 mbstrings.c.
122 (modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
123 * unif.c (scm_vector_set_length_x): Don't handle multibyte
124 strings.
125 * tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
126 (scm_tag): Don't handle multibyte strings.
127 * read.c: Don't include mbstrings.h.
128 (scm_lreadr): Don't handle multibyte ports.
129 * kw.c: Don't include mbstrings.h.
130 * init.c: Don't include mbstrings.h.
131 (scm_boot_guile_1): Don't init mbstrings module.
132 * hash.c (scm_hasher): Don't handle mbstrings.
133 * gscm.c (gscm_run_scm): Don't init mbstrings module.
134 * gc.c (scm_gc_mark): Don't handle mbstrings.
135 (scm_gc_sweep): Likewise.
136 * eval.c (SCM_CEVAL): Don't handle mbstrings.
137 * eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
138 * tags.h (SCM_TYP7SD): Removed.
139 (SCM_TYP7D): Removed.
140 (scm_tc7_mb_string): Removed.
141 (scm_tc7_mb_substring): Removed.
142 * print.c (scm_iprin1): Handle char printing directly. Don't
143 handle mbstrings.
144 Don't include "mbstrings.h".
145 * symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
146 scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
147 multi-byte flag.
148 Don't include "mbstrings.h".
149 * symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
150 (SCM_SYMBOL_SLOTS): Define as 4.
151 (SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
152 * arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
153 gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
154 print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
155 struct.c, threads.c, throw.c, unif.c, variable.c: Use new
156 ("gen"-less) I/O function names.
157 * ports.c (scm_add_to_port_table): Don't set port's
158 representation.
159 * ports.h (scm_port_representation_type): Removed.
160 (scm_string_representation_type): Removed.
161 (struct scm_port_table ): Removed representation field.
162 (SCM_PORT_REPRESENTATION): Removed.
163 (SCM_SET_PORT_REPRESENTATION): Removed.
164 * genio.h: Use new function names.
165 * genio.c: Don't include "extchrs.h".
166 (scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
167 Removed.
168 (scm_putc, scm_puts, scm_lfwrite): No longer static.
169 (scm_getc): No longer static; handle line and column changes.
170 (scm_ungetc): Renamed from scm_gen_ungetc.
171 (scm_do_read_line): Renamed from scm_gen_read_line.
172 * libguile.h: Don't include "extchrs.h" or "mbstrings.h"
173 * extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
174
e5eece74
MG
1751997-10-12 Mark Galassi <rosalia@cygnus.com>
176
177 * gh_test_repl.c (c_vector_test): same as gh_test_c.c
178
179 * gh_test_c.c (c_vector_test): some improvements on the vector
180 routines test.
181
182 * gh.h (gh_vector): this used to exist but do the wrong thing.
183 Now it (almost) does the right thing, though it takes a list
184 instead of the individual arguments. I need to see how it could
185 be done right.
186 (gh_list_to_vector): added this function as a macro. Corresponds
187 to Scheme's (list->vector ...).
188 (gh_vector_to_list): added this function as a macro. Corresponds
189 to Scheme's (vector->list ...).
190
191 * gh_data.c (gh_vector_ref): renamed from gh_vref to
192 gh_vector_ref, so that it resembles the Scheme routines more.
193 (gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
194 resembles the Scheme routines more.
195 (gh_make_vector): this used to be (stupidly) called gh_vector().
196 This is the right name, since it does the same thing as the Scheme
197 (make-vector ...) procedure.
198
da7f71d7
MD
199Sun Oct 12 14:41:39 1997 Mikael Djurfeldt <mdj@kenneth>
200
201 * ports.h: #include "libguile/print.h"
202
203 * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
204 Some indentation fixes.
205
206 * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
207 longer a user field; New field: class_flags.
208
209 * objets.c, objects.h: New metaclass: scm_metaclass_operator.
210
dbb3005d
MG
211Tue Oct 7 09:37:24 1997 Mark Galassi <rosalia@cygnus.com>
212
213 * gh_data.c (gh_bool2scm): new function which replaces
214 gh_int2scmb(), which is now tagged as obsolete.
215
4bfdf158
MD
2161997-10-03 Mikael Djurfeldt <mdj@nada.kth.se>
217
218 * print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test. (NIMP
219 macros should by convention not test for NIMPness.)
220 (SCM_COERCE_OPORT): Adjust indentation.
221
222 * print.c (scm_valid_oport_value_p): Adjusted indentation; Added
223 SCM_NIMP test before SCM_PRINT_STATE_P.
224
225 * struct.c, struct.h, gc.c: Renamed:
226 scm_struct_i_layout --> scm_vtable_index_layout
227 scm_struct_i_vcell --> scm_vtable_index_vcell
228 scm_struct_i_vtable --> scm_vtable_index_vtable
229 scm_struct_i_printer --> scm_vtable_index_printer
230 scm_struct_i_vtable_offset --> scm_vtable_offset_user
231
232 * struct.c (scm_print_struct): Use new printer slot; Default
233 printing: Also output hex code of vtable so that type identity
234 will be indicated as well.
235 (scm_init_struct): Updated required_vtable_fields to "pruosrpw";
236 Removed struct_printer_var; Removed struct-vtable-offset;
237 (vtable-index-layout, vtable-index-vtable, vtable-index-printer,
238 vtable-offset-user): New constants.
239
240 * struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
241 (scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
242 If this slot contains a procedure, use that to print structures of
243 the type represented by this vtable.
ba031394
MD
244
245 * print.c (scm_iprin1): Don't print arguments of macro
246 transformers. (They are always: exp env.); Bugfix: Unmemoize
247 transformer source with correct environment.
248
20cb8b8c
MV
2491997-10-02 Marius Vollmer <mvo@zagadka.ping.de>
250
251 Streamlining of call-with-dynamic-root:
252
253 * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
254 there is now only one catch.
255 (cwdr_outer_body): Removed.
256 (cwdr_handler): New function.
257 (scm_internal_cwdr): New function to perform the function of cwdr
258 but take args that are more useful to C code. Also, the handler
259 is now invoked *outside* of the new dynamic root, like the docs
260 say. We no longer have to catch absolutely all errors, the caller
261 is responsible for using a handler that does not throw, if he
262 wants that.
263 (cwdr): Reimplemented in terms of scm_internal_cwdr.
264 * root.h (scm_internal_cwdr): New prototype.
265
266 Even more but risky streamlining:
267
268 * root.c (USE_STACKJMPBUF): New define to activate a stack-based
269 allocation of the jumpbuf of a root continuation. The changes
270 below are controlled by it. They are now deactivated.
271 (scm_internal_cwdr): Allocate the scm_contregs on the stack. Set
272 the JMPBUF of the scm_rootcont to NULL before returning.
273
274 * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
275 when they are non-NULL.
276 (scm_gc_mark): Likewise, mark only when non-NULL.
277
278 Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
279 * dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
280
281 * gc.c (scm_done_malloc): New function.
282 gc.h (scm_done_malloc): New prototype.
283
284 * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
285 (struct scm_print_state) [revealed]: New field.
286 (scm_print_state_vtable): Make visible to the outside world for
287 type checking purposes.
288 (scm_valid_oport_value_p): New prototype.
289
290 * print.c (scm_valid_oport_value_p): New function to check whether
291 a certain value is acceptable as a port argument.
292 (scm_print_state_vtable): New variable.
293 (scm_free_print_state): Set `revealed' field to false.
294 (scm_iprin1): Call user supplied closure printer with
295 scm_printer_apply. Print in the traditional way when there isn't
296 one or when it returns #f.
297 (scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
298 Accept a port/print-state pair in addition to just a port.
299 (scm_prin1): Don't return the print_state to the pool when it has
300 been `revealed'.
301 (scm_printer_apply): Set `revealed' field of print_state to true.
302 (scm_init_print): Set scm_print_state_vtable.
303 (print_state_fluid, print_state_fluid_num): Removed.
304
305 * throw.h (scm_handle_by_proc_catching_all): New prototype
306 throw.c (scm_handle_by_proc_catching_all): New function
307
5aa28c1e
JB
308Mon Sep 29 23:54:09 1997 Jim Blandy <jimb@totoro.red-bean.com>
309
310 * Makefile.in: Regenerated with automake 1.2c.
311
de59897a
RS
312Sun Sep 28 21:35:42 1997 Radey Shouman <shouman@zianet.com>
313
314 * ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
315 was looping endlessly.
316
f6a29123
JB
317Sun Sep 28 00:04:29 1997 Jim Blandy <jimb@totoro.red-bean.com>
318
319 * strports.c (scm_eval_string): Don't close the port.
320
321 * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
322 former returns a nice normal integer. (Thanks to Daniel
323 Risacher.)
324
8a01e754
JB
325Sat Sep 27 20:19:34 1997 Jim Blandy <jimb@totoro.red-bean.com>
326
327 * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
328 makefile variable as a build parameter called LIBS. The
329 build-guile program will use this, for the time being.
330 * Makefile.in: Regenerated.
331
332 Thanks to Shiro Kawai:
333 * gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
334 * ports.h (scm_ptobfuns): The fgets method returns a char *, not
335 an SCM.
336
337 * Makefile.in: Regenerated with automake 1.2a.
338
339 * script.c (scm_compile_shell_switches): If we hit the -c or --
340 arguments, don't set the car of (command-line) to scm_usage_name,
341 the prettified name of the guile executable; give it the full
342 path, the way shells usually handle $0.
343
bdf8afff
MD
344Wed Sep 24 22:09:52 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
345
7e790400
MD
346 * ramap.c (scm_array_map): Renamed to scm_array_map_x. Removed
347 Scheme-level name `array-map' and renamed `serial-array-map' to
348 `serial-array-map!'.
349
bdf8afff
MD
350 * backtrace.c: Introduced exception handlers which now enclose
351 `display-error' and `display-backtrace' so that error reporting
352 won't get into infinite loops if an error occurs during displaying
353 of the error. This can very easily happen with user supplied
354 print call-back routines.
355
830613a0
MD
356Tue Sep 23 12:43:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
357
358 * ramap.c: Added alias `array-map!' for `array-map'. (Probably,
359 the names `serial-array-map' and `array-map' should be removed.)
360
0c32d76c
MD
361Mon Sep 22 01:21:54 1997 Mikael Djurfeldt <mdj@kenneth>
362
363 * init.c (scm_boot_guile_1): Added scm_init_objects ().
364 Added #include "objects.h"
365
366 * eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
367 Add #include "feature.h".
368
369 * Makefile.am (libguile_la_SOURCES): Added objects.c.
370 (modinclude_HEADERS): Added objects.h.
371
372 * ports.h (SCM_EOF_OBJECT_P): New macro predicate.
373 This test is needed at many places in the code and should be
374 abstracted. (Motivated by the need of this test in libguiletk.)
375
376 * ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
377 (scm_eval_string), load.c (scm_primitive_load,
378 scm_read_and_eval_x), gh_eval.c (gh_eval_str):
379 Use SCM_EOF_OBJECT_P.
25eaf21a
MD
380
381 * eval.c (scm_init_eval): Add feature `delay'.
382
51916da6
MD
383Tue Sep 16 02:12:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
384
385 * scmhob.h: Removed.
386
92396c0a
MD
387Mon Sep 15 20:42:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
388
389 * list.h (SCM_LISTn): New macros. Make list creation in C code
390 prettier. The idea comes from STk.
391
392 * sequences.h, sequences.c, append.h, append.c: Removed. These
393 files implemented non-R4RS operations which would encourage
394 non-portable programming style and less easy-to-read code.
395
396 * Makefile.am (sequences.h, sequences.c, append.h, append.c):
397 Removed.
398
399 * libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
400 sequences.h, #include append.h.
401
402 * init.c (scm_boot_guile_1): Removed calls to scm_init_append and
403 scm_init_sequences.
404
405 * gh.h, gh_list.c: Renamed gh_list_length --> gh_length.
406
407 * list.h, list.c: Renamed scm_list_length --> scm_length, scm
408
409 * stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
410
411Sat Sep 13 00:21:41 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
412
413 * eval.c: Added #include "objects.h"
414
415 * tags.h (scm_tc16_object, scm_tc16_entity): Smobtags for objects
416 and entities.
417
418 * smob.c (scm_smob_prehistory): Create two objectsmobs with
419 adjacent smob numbers.
420
80ea260c
MD
421Thu Sep 11 00:59:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
422
423 * procprop.h: Added declaration of scm_i_inner_name.
424
425 * gsubr.c: New global symbol scm_i_inner_name.
426
427 * debug.c (scm_procedure_name): Try procedure property
428 `inner-name' if `name' fails.
429
430 * print.c (scm_iprin1): Use scm_macro_name.
431
432 * eval.c (scm_m_define): Give names to macros as well; Only the
433 first top-level definition gives a procedure/macro a name.
434 Otherwise confusing names can turn up in backtraces.
435 (SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
436 `name'; Give names to macros as well.
437
438 * procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
439 (scm_macro_transformer): Use SCM_CLOSUREP instead of
440 scm_closure_p.
441
7332df66
MD
442Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
443
444* * eval.c (macro?, macro-type, macro-name, macro-transfomer): New
445 procedures;
446 (prinmacro): Removed. The code has been moved/merged into print.c
447 in order to decrease code redundancy. We want macros to print in
448 a way equivalent to procedures, and it would be silly to duplicate
449 the required code. (We don't want to maintain two places.)
450 (macrosmob): Print field is now a NULL pointer.
451
452 * eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
453 scm_macro_transformer): New prototypes.
454 (scm_tc16_macro): Declared.
455
456* * print.c (scm_iprin1): Added code for printing of macros. Macros
457 are now printed in a way equivalent to procedures.
458
459Sat Sep 6 12:20:42 1997 Mikael Djurfeldt <mdj@kenneth>
460
461 * procs.h (scm_closure_p): Added declaration.
462
463Fri Sep 5 13:36:14 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
464
465 * gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
466 Shouldn't pass "heap" as the subr name.
467
614590c5
JB
468Tue Sep 2 18:14:30 1997 Jim Blandy <jimb@totoro.red-bean.com>
469
470 * gh_predicates.c (gh_boolean_p, gh_symbol_p, gh_char_p,
471 gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
472 gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
473 gh_equal_p): Use SCM_NFALSEP, instead of testing against
474 SCM_BOOL_T. Any non-false value is true.
475
1ff4df7a
MD
476Tue Sep 2 00:27:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
477
478 * symbols.h (scm_builtin_bindings, scm_builtin_weak_bindings,
479 scm_gensym): Added prototypes.
480
481 * symbols.c (scm_gensym): New function. This will speed up
482 certain types of applications (such as macro systems) which
483 generate lots of symbols.
484
d28da049
MD
485Mon Sep 1 22:30:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
486
487 * numbers.c (logand, logior, logxor): Handle 0 or 1 arguments.
488
20a54673
GH
489Sat Aug 30 18:56:19 1997 Gary Houston <ghouston@actrix.gen.nz>
490
491 * unif.c (scm_shap2ra): tighten the checking of the array dimension
492 specifier, since (2) or (2 . 3) would cause SEGV.
493 (scm_transpose_array): more argument checking fixes.
494
614590c5
JB
495Thu Aug 28 23:48:53 1997 Jim Blandy <jimb@totoro.red-bean.com>
496
497 * Makefile.in: Regenerated.
498
34695603
JB
499Wed Aug 27 17:44:44 1997 Jim Blandy <jimb@totoro.red-bean.com>
500
501 * Makefile.in: Regenerated, so it uses "tar", not "gtar".
502
88482b31
MD
503Mon Aug 25 13:47:25 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
504
505 * error.c, error.h (scm_error_callback): Removed (see NEWS).
506
95f5b0f5
MD
507Sun Aug 24 01:25:35 1997 Mikael Djurfeldt <mdj@kenneth>
508
a46d5ff2
MD
509 * regex-posix.c: If <regex.h> can't be found, try <rxposix.h> or
510 <rx/rxposix.h>. (This is in order to accomodate for the GNU Rx
511 library.)
512
95f5b0f5
MD
513 * ramap.c (scm_ra_matchp, scm_array_fill_int, racp, ramap_1,
514 ramap_2o, scm_array_index_map_x, raeql_1, scm_array_equal_p),
515 unif.c (scm_vector_set_length_x, scm_uniform_vector_length,
516 scm_array_p, scm_array_rank, scm_array_dimensions,
517 scm_enclose_array, scm_array_in_bounds_p, scm_uniform_vector_ref,
518 scm_cvref, scm_array_set_x, scm_array_contents, scm_array_to_list,
519 scm_array_prototype): Added case scm_tc7_wvect.
520
efb997f5
GH
521Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
522
523 * errno.h: prototype for scm_strerror.
524 * error.c (scm_strerror): new procedure.
525
1a0e096c
MD
526Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
527
528 * list.c (scm_list_append_x): Allow non-pair as last argument.
529 This is consistent with the R4RS append and is probably the
530 correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
531
6afcd3b2
GH
532Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
533
534 * stime.h: prototype for scm_times.
535 * stime.c (scm_times): new procedure.
536 * ioext.c (scm_fseek): if the first argument is a file descriptor
537 call lseek.
538 (scm_ftell): if the first argument is a file descriptor call lseek
539 (sic).
540 * filesys.h: prototypes for scm_open_fdes, scm_fsync.
541 * filesys.c (scm_chmod): if the first argument is a file descriptor,
542 call fchmod.
543 (scm_chown): if the first argument is a port or file descriptor,
544 call fchown.
545 (scm_truncate_file): new procedure.
546 Add DEFER/ALLOW INTS to a few other procedures.
547 (scm_fsync): new procedure.
548 (scm_open_fdes): new procedure.
549 (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
550 now be used.
551 (scm_fcntl): the first argument can now be a file descriptor. The
552 third argument is now optional.
553
554 * posix.c (scm_execl, scm_execlp): make the filename argument
555 compulsory, since omitting it causes SEGV.
556 (scm_sync): return unspecified instead of #f.
557 (scm_execle): new procedure.
558 (environ_list_to_c): new procedure.
559 (scm_environ): use environ_list_to_c. disable interrupts.
560 (scm_convert_exec_args): take pos and subr arguments and
561 improve error checking.
562
0824b524
MD
5631997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
564
565 * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
566 (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
567 argument to SCM_ASSERT. Furthermore, the name of the function
568 should be passed as first argument when signalling
569 SCM_WNA. (Thanks to Thomas Morgan)
570
571 * gsubr.c (scm_gsubr_apply): From Radey Shouman
572 <shouman@zianet.com>: "The switch in scm_gsubr_apply that
573 dispatches on the number of actual args has a default case
574 reporting an internal error. This is a vestige from a version
575 that mallocated a SCM vector to hold the arguments. In the
576 current version this check is too late: if it ever happens we will
577 have already overstepped the bounds of the array.
578
579 Also, the patch [...] adds a check for too many actual arguments."
580
581 mdj: Removed check for "internal programming error".
582
4ed948d4
MD
583Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
584
f2ae0a19 585 * gh_io.c (gh_write): New function.
4ed948d4 586
f2ae0a19 587 * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
4ed948d4
MD
588 throw.c (scm_internal_stack_catch): New sibling to the other catch
589 functions. Code moved from gh_eval.c.
590 throw.h: Added header.
591 gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
592 scm_internal_stack_catch.
593
7a6f1ffa
GH
594Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
595
596 * ioext.h: fix up prototypes.
597 * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
598 Scheme name is now dup->fdes.
599 (scm_dup_to_fdes): make the second argument optional and
600 fold in the functionality of scm_primitive_dup.
601 (scm_primitive_dup): deleted.
602
603Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
604
605 * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
606 * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
607 ultrix are defined. Use setvbuf instead of setbuf.
608 (scm_setvbuf): new procedure.
609 (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
610 (scm_setfileno): moved from ioext.c.
611 (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
612 (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
613
a0cb6cb0
MV
614Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
615
616 * fluids.c (scm_fluid_p): New function.
617 * fluids.h (scm_fluid_p): New prototype.
618
619Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
620
621 * print.c (scm_iprin1): Enter printed structures into the print
622 state as nested data while they are printed.
623 (print_state_fluid, print_state_fluid_num): New variables.
624 (scm_init_print): Initialize them.
625 (scm_iprin): If print_state_fluid carries a print_state, use that
626 instead of creating a new one.
627 (scm_printer_apply, apply_stub, struct apply_data): New
628 definitions to help with calling printer functions written in
629 Scheme.
630 * print.h (scm_printer_apply): New prototype.
631
632 * struct.c (scm_print_struct): Use scm_printer_apply to call the
633 user defined struct printer.
634
635 * dynwind.c (scm_dowinds): Handle fluids on the wind list.
636 * fluids.h (scm_internal_with_fluids, scm_with_fluids,
637 scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
638 * fluids.c (scm_internal_with_fluids, scm_with_fluids,
639 scm_swap_fluids, scm_swap_fluids_reverse): New functions.
640
641Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
642
643 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
644 SCM_ASSERT: arg comes before pos.
645
269861c7
MD
646Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
647
648 * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
649 to a list of length zero correctly.
650
3cb988bd
TP
651Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
652
653 Supply an `fgets' method for port objects to do fast line i/o.
654 * ioext.c (scm_read_line): New function.
655 * genio.c (scm_gen_read_line): New function.
656 * fports.c (scm_fgets): New function.
657 (scm_fptob, scm_pipob): Add scm_fgets method.
658 * ports.c (fgets_void_port, scm_generic_fgets): New functions.
659 (void_port_ptob): Add void fgets method.
660 (scm_newptob): Initialize fgets method from ptob struct.
661 * ports.h (scm_ptobfuns): Add fgets method.
662 * vports.c (scm_sfptob): Supply generic fgets method.
663 * strports.c (scm_stptob): Supply generic fgets method.
664
e38303a2
GH
665Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
666
667 * ioext.h: removed scm_duplicate_port prototype.
668
669 * ioext.c (scm_primitive_dup2): return the new file descriptor
670 instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
671 is convenient.
672 (scm_fdopen): bug fix: don't try to make port unbuffered until its
673 stream has been set.
674 (scm_duplicate_port): deleted, there's now an implementation in
675 boot-9.scm.
676 (scm_primitive_dup2): do nothing if newfd == oldfd.
677
eadd48de
GH
678Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
679
a9488d12
GH
680 * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
681 argument.
682
683 * ioext.h: new prototypes.
684 * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
685
eadd48de
GH
686 * fluids.c (next_fluid_num): don't do
687 SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
688
689 * ports.h: prototypes too.
690 * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
691
692 * fports.h: prototype too.
693 * fports.c (scm_evict_ports): moved from ioext.c.
694
9c29ac66
GH
695Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
696
eadd48de
GH
697 * ports.c (scm_close_port): return a boolean instead of unspecified.
698 throw an error if an error other than EBADF occurs.
699
700 * filesys.h: scm_close prototype.
701 * filesys.c (scm_close): new procedure, can close file descriptors
702 and ports (scsh compatible).
703
9c29ac66
GH
704 * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
705 optional argument.
706
7f47d2d8
MV
707Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
708
709 * fluids.c, fluid.h: New files.
710 * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
711 (modinclude_HEADERS): Added "fluids.h"
712
713 * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
714 scm_init_fluids to initialize the fluid machine.
715 (scm_start_stack): Initialize the fluids of the first root with
716 scm_make_initial_fluids.
717
718 * root.h: Added "fluids" member to scm_root_state.
719 * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
720 (scm_make_root): Call scm_copy_fluids to make fluid bindings
721 unique for the new root when it has a parent.
722
723 * smob.h: Include "libguile/print.h" to make scm_print_state
724 visible.
725
726 * dynl.c (free_dynl_obj): New function to free the dynamic object
727 data. (dynl_smob): Use it.
728 * dynl.c (scm_dynamic_link): Moved allocating of the memory for
729 the dynamic object data below the linking of the object to avoid
730 memory leak when the linking code throws an error. Now the code
731 leaks a whole dynamically linked library when must_malloc throws,
732 but that should be much less likely.
733
32552d73
JB
734Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
735
736 Changes to compile under gnu-win32, from Marcus Daniels:
737 * stime.c (tzset): If tzset isn't provided, make it a NOP.
738 (scm_localtime): Change SCM_EOF to SCM_EOL.
739 (scm_mktime): Likewise.
740 * socket.c: Don't include sys/un.h unless autoconf tells
741 us Unix domain sockets are available.
742 (scm_fill_sockaddr): Ignore Unix domain code.
743 (scm_addr_vector): Likewise.
744 (scm_init_addr_buffer): Likewise.
745 (scm_socketpair): Don't include unless socketpair was
746 found during autoconf.
747 * simpos.c (SYSTNAME): Treat cygwin like Unix.
748 * scmsigs.c (scm_pause): Don't include unless pause was found
749 during autoconf.
750 * posix.c (scm_getgroups): Don't include unless support function
751 was found during autoconf (in this case, getgroups).
752 (scm_setpwent): For setpwent.
753 (scm_setegid): For setegid.
754 * net_db.c (scm_inet_netof): Don't include unless support
755 function was found during autoconf (in this case, inet_netof).
756 (scm_lnaof): For inet_lnaof.
757 (scm_inet_makeaddr): For inet_makeaddr.
758 (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
759 (scm_getproto): For getprotoent.
760 (scm_getserv): For getservent.
761 (scm_sethost): For sethostent, endhostent.
762 (scm_setnet): For setnetent, endnetent.
763 (scm_setproto): For setprotoent, endprotoent.
764 (scm_setserv): For setservent, endservent.
765 * scmconfig.h.in: Regenerated.
766
8cedfb2e
JB
767Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
768
769 * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
770 scm_misc_error, not SCM_EOF.
771
772 * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
773 arguments for formatting the error message, not SCM_BOOL_F. I
774 think this is left over from the (eq? '() #f) days.
775
776 * read.c (recsexpr): Give this a dummy definition if
777 DEBUG_EXTENSIONS isn't #defined.
778
517591cd
MV
779Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
780
781 * coop-threads.c (scm_wait_condition_variable): Lock mutex again
782 after waiting.
783
3f094ddf
MV
784Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
785
786 * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
787 scm_internal_catch.
788
4a5fa91c
TP
789Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
790
791 * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
792 alloca.lo will be included in @LIBLOBJS@. Something better than
793 this should be possible.
794 * Makefile.in: Regenerated.
795
7ad3c1e7
GH
796Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
797
798 * simpos.h: prototype for scm_primitive_exit.
799 * simpos.c (scm_primitive_exit): new procedure, terminates the
800 process without unwinding the stack.
801
5d4774bc
TP
802Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
803
804 * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
805 argument and logior its components together, so the user doesn't
806 have to do this explicitly. Also, if regexp/basic is supplied, then
807 turn off REG_EXTENDED.
808 (scm_init_regex_posix): New regexp/basic symbol.
809 (REG_BASIC): #define this if it is not already present.
810
ad6b30a0
TP
811Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
812
813 * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
814 (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
815 (CLEANFILES): New target, clean versiondat.h, libpath.h.
816 (DISTCLEANFILES): New target, clean *.x.
9159ebec 817 * Makefile.in: Regenerated.
ad6b30a0 818
db561408
JB
819Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
820
9230ac78
JB
821 * script.c (scm_compile_shell_switches): Add 1997 to copyright
822 years in usage message.
823
9572c0d0
JB
824 * Makefile.am (libguile_la_LDFLAGS): Bump library version.
825 * Makefile.in: Regenerated.
826
fcff2c5c
JB
827 * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
828 flag; I don't think we support it.
9572c0d0
JB
829 (scm_make_regexp): Make sure the user doesn't pass the
830 regexp/nosub flag.
fcff2c5c
JB
831
832 * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
db561408
JB
833 FLAGS arguments.
834 (scm_init_regex_posix): Define constants for the REG_mumble flags;
835 name them according to the SCSH convention: regexp/mumble.
fcff2c5c 836
db561408
JB
837 * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
838
2409cdfa
JB
839Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
840
841 * Makefile.am (libpath.h): Include the values of all the standard
842 Makefile directory variables. Print a message, but don't print
843 all the commands.
844 (versiondat.h): Print a message, but don't print all the commands.
845 * load.c: #include "alist.h".
846 (init_build_info): New function.
847 (scm_init_load): Call it.
848 * Makefile.in: Regenerated.
849
eb1e924e
JB
850Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
851
d94c6eeb
JB
852 * root.c: Establish a reliable catch-all handler for the new root.
853 After all the Scheme handler function might signal an error too,
854 and we don't want to lose that.
855 (cwdr_inner_body): Renamed from cwdr_body.
856 (cwdr_outer_body): New function, to establish the user's handler,
857 and pass control to cwdr_inner_body.
858 (cwdr): Establish the reliable catch-all handler here, and pass
859 control to cwdr_outer_body.
860 (struct cwdr_body_data): New field, handler, to allow cwdr to pass
861 the user's handler through to cwdr_outer_body.
862 * throw.c (scm_handle_by_message): Move guts into....
863 (handler_message): New static function.
864 (scm_handle_by_message_noexit): New function.
865 * throw.h (scm_handle_by_message_noexit): New prototype.
866
eb1e924e
JB
867 * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
868 across this. Only works on GCC. Otherwise, we hope for the best.
869 (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
870 the feeling that real thread systems will not need this...
871
0dc48630
JB
872Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
873
91b28bb5
JB
874 Try to detect when people are using one version of libguile and a
875 different version of ice-9. People have been skewing things and
876 sending in bug reports.
877 * Makefile.am (versiondat.h): New file to generate.
878 * version.c: #include "versiondat.h", to get version info.
879 (scm_libguile_config_stamp): New function.
880 * script.c: #include "version.h".
881 (scm_compile_switches): Call scm_version to get version number.
882 * scmconfig.h.in, Makefile.in: Regenerated.
883 * Makefile.in: Regenerated.
884
885 * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
886 primitive definitions under their Scheme names.
887
888 * Makefile.am (libguile_la_LDFLAGS): Update library version to
889 1:2. Helps avoid confusion between installed and uninstalled libs.
890
0dc48630
JB
891 * scmconfig.h.in: Regenerated. (Needed after June 3 change to
892 ../configure.in.)
893
894 * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
895 backslash from definition; this should be used like: GDB_INTERFACE;
896
c85e73d3
GH
897Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
898
899 * ioext.c (scm_duplicate_port): bug fix: don't try to make the
900 new port unbuffered until its stream has been set.
901
89ea5b7c
GH
902Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
903
904 * ports.h: new prototype.
905 * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
906
91529b1d
JB
907Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
908
909 Make things compile neatly under Sun's C compiler.
910 * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
911 * extchrs.c (xmbtowc): Make the second arg a normal char, not
912 unsigned, because that's what the ANSI function takes.
913 * extchrs.h (xmbtowc): Corresponding change to prototype.
914 * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
915 uchars here.
916 * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
917 argument plain char *.
918 * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
919 char.
920 * tag.c (scm_tag): Remove unreachable statement.
921 * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
922 top of the word, it should be unsigned.
923
924 * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
925 is defined, to avoid warnings; it's only used in the
926 conflict-checking code. Which might go away anyway.
927 (SCM_CEVAL): All goto's targeting the `dispatch' label are in
928 conditionals; put the label definition in an #if too, to stifle
929 warnings.
930
931 * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
932 ChangeLog-threads in the distribution.
933 * Makefile.in: Regenerated.
934
bee14491
TP
935Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
936
937 * guile-snarf.in: Changed regexp to support CPPs that insert
938 whitespace between lexical tokens (which munges the `%%%' snarf
939 cookie).
940
55407879
TP
941Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
942
fcff2c5c 943 * load.c (scm_init_load_path): Append $(datadir)/guile to
55407879
TP
944 %load-path, so modules do not have to be installed in Guile's
945 current version directory.
946
e5f8e12f
MV
947Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
948
949 * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
950 function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
951 (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
952 call the sysdep functions with deferred ints.
953 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
954 sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
955 deferred interrupts and insert SCM_ALLOW_INTS before throwing an
956 error.
957
958 * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
959 SCM_UNSPECIFIED.
960
cc0b3312
GH
961Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
962
963 * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
964
3688473b
JB
965Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
966
967 * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
968 ../configure.in.
969
58932e4a
MV
970Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
971
972 * eval.c (scm_lookupcar1): New procedure to cope with a race
973 condition during lookup (when using threads).
974 (scm_lookupcar): Implement in terms of scm_lookupcar1.
975 (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
976 place.
977
95d59d10
JB
978Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
979
980 * regex-posix.c (scm_regexp_exec): Use the `start' argument if
981 supplied. (Change from Tim Pierce.)
982
0b46857f
MV
983Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
984
985 * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
986 23:47:01 1997" changelog: Slots are now initialized with `#f' by
987 default and not `()'. `#f' is the canonical non-value in Scheme,
988 right?
989
5dade857
MV
990Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
991
992 * struct.c (struct_printer): New variable that holds a handle on
993 the Scheme variable *struct-printer*. This variable can be set by
994 Scheme code to override the printing of structures.
995 (scm_print_struct): If struct_printer is set, call it. If it is
996 not set, or returns #f, print the structure in the old fashion.
997 Include "eval.h" for scm_apply.
998
7507aba1
MV
999Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
1000
1001 * struct.c (scm_struct_ref, scm_struct_set_x): Use
1002 scm_struct_i_n_words to get the number of fields, not
1003 -scm_struct_n_extra_words.
1004
1005 On the route to fancier struct printing:
1006 * struct.c (scm_print_struct): New function to print a structure.
1007 Include "genio.h" to support it. This function doesn't do
1008 anything interesting right now, but I think it should be here
1009 anyway.
1010 * struct.h: Include "print.h" and add prototype for
1011 scm_print_struct.
1012 * print.c (scm_iprin1): Call scm_print_struct instead of trying to
1013 print structures ourself.
1014
2ad6b1a5
GH
1015Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
1016
1017 * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
1018 before applying the handler in case it doesn't return.
1019
e1a191a8
GH
1020Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
1021
1022 * scmsigs.h, async.h: updated.
1023
1024 * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
1025 loop.
1026
1027 * posix.c (scm_uname): interpret only negative values as an error.
1028 Solaris normally returns a positive value.
1029
1030 * script.c (scm_compile_shell_switches): if we are not going into
1031 an interactive repl, set scm_mask_ints to zero so that asyncs can
1032 run.
1033
1034 * simpos.c (scm_system): don't ignore/unignore signals around
1035 the "system" call.
1036
1037 * posix.c (scm_open_pipe): don't ignore/unignore signals around
1038 the "popen" call.
1039
1040 * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
1041 done in boot-9.scm instead.
1042
1043 * scmsigs.c, async.c: Major rewriting of signal handling code.
1044 (scm_sigaction): new procedure.
1045 (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
1046 timing.
1047 (scm_raise): return unspecified, throw error on failure.
1048
0e165281
JB
1049Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
1050
1051 * regex-posix.c (scm_init_regex_posix): Register the "regex"
1052 feature, to help boot-9.scm decide whether to import the regex
1053 module.
1054
4885ba0e 1055Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
1e5afba0 1056
4885ba0e
JB
1057 * eval.c: Include scmconfig.h at the beginning of the file so that
1058 HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
1059 pointing this out.
1e5afba0
JB
1060
1061 * regex-posix.c: #include "_scm.h" before conditionally #including
1062 <regex.h>; the former defines HAVE_REGCOMP.
1063
4885ba0e
JB
1064 * regex-posix.c: #include <regex.h> conditionally, so the file is
1065 CPP'able (for dependency scanning) even on systems that don't have
1066 a <regex.h> header.
1067
5aefdd40
JB
1068Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
1069
1070 Add new R4RS-compliant syntax for keywords.
1071 * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
1072 regardless of the setting of the `keywords' read option.
1073 * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
1074 can be re-read no matter what the setting of the `keywords' read
1075 option.
1076
737c9113
JB
1077Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
1078
1079 Add support for POSIX regular expressions.
1080
1081 * regex-posix.c, regex-posix.h: New files. (Some code
1082 is taken liberally from rx/rgx.c in the old Guile dist.)
1083
1084 * init.c: Include regex-posix.h.
1085 (scm_boot_guile_1): Call scm_init_regex_posix.
1086
1087 * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
1088 Add regex-posix.[ch] sources.
1089 * Makefile.in: Regenerated.
1090
1091 * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
1092 to do this automatically? It didn't for me, bleh.)
1093
06de7963
JB
1094Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
1095
33623b5e
JB
1096 * fports.c (print_pipe_port): New function.
1097 (scm_fptob): Use print_pipe_port instead of scm_prinport; the
1098 latter doesn't even take the right arguments.
1099
1100 * Makefile.am: Increment shared lib revision number. I think
1101 sometimes the uninstalled Guile finds the installed shared lib;
1102 Gord says doing this might help. As things turned out, I can't
1103 say whether it does.
1104 * Makefile.in: Regenerated.
1105
06de7963
JB
1106 * gh_init.c (gh_enter): Cast c_main_prog to a void * before
1107 passing it as the closure argument to scm_boot_guile. (Bill
1108 Janssen)
1109
1110 * ports.c (print_void_port, putc_void_port, puts_void_port,
1111 write_void_port, flush_void_port, getc_void_port, close_void_port,
1112 noop0): Use ANSI prototypes instead of K&R declarations, so the
1113 initialization of void_port_ptob gets aggressively type-checked.
1114 Fix arguments of print_void_port and write_void_port. (Bill
1115 Janssen)
82892bed
JB
1116
1117 * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
1118 appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
1119 backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
1120 continuations.c, continuations.h, coop-defs.h, coop-threads.c,
1121 coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
1122 coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
1123 dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
1124 error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
1125 filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
1126 gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
1127 gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
1128 gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
1129 gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
1130 init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
1131 list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
1132 markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
1133 mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
1134 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
1135 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
1136 procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
1137 read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
1138 script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
1139 smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
1140 stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
1141 strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
1142 strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
1143 tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
1144 unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
1145 version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
1146 address for FSF.
1147
3f4c654d
JB
1148Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
1149
1150 * script.c (scm_find_executable): Use prototype-style definition
1151 here; apparently it's not quite right to have const in a prototype
1152 and then use a K&R declaration. I wonder if stuff like this will
1153 go away if we compile with -Wrequire-prototypes, or whatever that
a00c28cd 1154 is... (Bernard URBAN)
3f4c654d
JB
1155
1156 * scmhob.h: New text from Bernard URBAN.
1157
1158Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
1159
1160 * script.c: Don't #define const on hpux. Configure takes care of
1161 this. (Thanks to Larry Schwimmer.)
1162
1163 * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
1164 decide whether to #include <unistd.h>, instead of listing a bunch
1165 of systems. Don't #include stdio twice. Removed dyked-out
1166 definition of scm_find_impl_file.
1167
eeb56f3c
JB
1168Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
1169
adb98aa9
JB
1170 * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
1171 library version info to 1:0.
1172 * Makefile.in: Regenerated.
1173
142ad3d9
JB
1174 * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
1175 gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
1176 gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
1177 init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
1178 script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
1179 throw.c: Update copyright years; these files have been worked on
1180 significantly in 1997, but only had copyright years for 1996.
1181 Also, change name of copyright holder on some from Mikael
1182 Djurfeldt to Free Software Foundation; he has signed papers
1183 assigning the changes to the FSF.
1184
eeb56f3c
JB
1185 * script.c (scm_shell_usage): Pass FATAL to exit. There's no
1186 reason not to give the user the option.
190b072d
JB
1187
1188 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
1189 Return #f on end-of-file when scanning table (i.e. when called
1190 with no arguments). Try to catch errors, when we can.
095936d2
JB
1191 * posix.c (scm_getgrgid, scm_getpwuid): Same.
1192
1193 * script.h (scm_shell_usage, scm_compile_shell_switches): New
190b072d
JB
1194 external declarations. These are useful.
1195
a48a89bc
GH
1196Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
1197
1198 * posix.c: don't include <sys/select.h> or define macros for
1199 select, since they were not used in this file.
1200
095936d2 1201 * filesys.c (scm_select): make the fifth parameter microseconds,
a48a89bc
GH
1202 not milliseconds. let the fourth parameter be either a real value
1203 or an integer or #f. The first, second and third arguments can
1204 now be vectors: the type of the corresponding return set will be
1205 the same.
1206 (set_element, get_element): new static procedures.
1207
f3b1485f
JB
1208Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
1209
223be5f0
JB
1210 * strports.c (scm_eval_string): New function.
1211 (scm_eval_0str): Trivially re-implemented in terms of
1212 scm_eval_string.
1213 * strports.h (scm_eval_string): New extern decl.
1214
e1cd56f9
JB
1215 * net_db.c (h_errno): Add extern decl for this.
1216
f3b1485f
JB
1217 * fports.c (local_pclose): New function.
1218 (scm_pipob): Use it in the initializer here.
1219
1220 From Tim Pierce:
1221 * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
1222 Use a meaningful error message when signalling an error. For
1223 this, scm_gethost must check h_errno rather than errno.
1224
9b01064c
JB
1225Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
1226
1227 * Makefile.in: Regenerated, using automake-1.1p.
1228
08fea088
GH
1229Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
1230
0267051b
GH
1231 * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
1232 not SCM_UNSPECIFIED.
1233
08fea088
GH
1234 * script.c (scm_compile_shell_switches): don't append (quit) if
1235 interactive.
1236 (scm_shell): call scm_exit_status and exit on the result of the
1237 evaluation.
1238
821eb64e
JB
1239Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
1240
1241 Ensure that shared substrings are handled properly when passed to
1242 a system call or other foreign function. Many thanks to Tim
1243 Pierce!
1244 * symbols.h (SCM_COERCE_SUBSTR): new macro.
1245 * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
1246 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
1247 scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
1248 scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
1249 scm_strftime), vports.c (scm_make_soft_port), backtrace.c
1250 (scm_display_error_message): use RO macros when strings may be RO.
1251 * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
1252 scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
1253 scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
1254 (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
1255 (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
1256 (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
1257 scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
1258 scm_strftime), vports.c (scm_make_soft_port): use
1259 SCM_COERCE_SUBSTR to make sure shared substrings are
1260 null-terminated.
1261
1262Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
1263
1264 * error.c (scm_error): Add newline to error message.
1265
1266 * init.c (scm_init_standard_ports): Doc fix.
1267
8e6f33db
MV
1268Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
1269
1270 * dynl-shl.c: Completely replaced with new code from Bernard
1271 URBAN.
1272
1273 * script.c (scm_ice_9_already_loaded): New variable.
1274 (scm_compile_shell_switches): Use it.
1275
4edc089c
GH
1276Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
1277
1278 * filesys.c (scm_input_waiting_p): add missing third argument to
1279 scm_misc_error.
1280
1281 * stime.c (scm_localtime): copy the result of localtime before
1282 calling gmtime in case they share a buffer.
1283 (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
1284 nor HAVE_TZNAME.
1285
554878da
GH
1286Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
1287
1288 * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
4edc089c 1289
914155ca
JB
1290Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
1291
1292 * Makefile.am (check-local): New target, which causes 'make check'
1293 to run gh_test_c and gh_test_repl, with some trivial input.
1294 * Makefile.in: Rgnrtd.
1295
6fa9bcd0
MV
1296Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
1297
1298 * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
1299 been unlinked.
1300
9ea54cc6
GH
1301Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
1302
1303 * async.c (scm_sys_tick_async_thunk): commented out. I'm not
1304 sure how this was supposed to work.
1305 (scm_async_click): don't send SCM_TICK_SIGNAL.
1306 (scm_init_async): don't initialize %tick-thunk.
1307
1308 * the following change doesn't affect the Scheme interface:
1309 gc-thunk is called at the end of garbage collection. however it's
1310 no longer implemented by pretending it's a signal.
1311
1312 * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
1313 system async corresponding to scm_gc_thunk.
1314 * async.h: declare scm_gc_async.
1315 * async.c (scm_sys_gc_async_thunk): apply the thunk named by
1316 gc-thunk directly, instead of going through a signal handler.
1317 (scm_gc_async): new variable, points to the GC system-async.
1318 (scm_init_async): save the GC async as scm_gc_async instead
1319 of using system_signal_asyncs.
1320 (scm_gc_vcell): new variable, stores the gc-thunk vcell.
1321
10830232
JB
1322Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
1323
1324 * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
1325 Don't screw up if we're interrupted.
1326 * Makefile.in: Regeneradet.
1327
28c682fa
JB
1328Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
1329
1330 * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
1331
1332 * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
1333 we're not using AM_INIT_GUILE_MODULE any more.
1334 * Makefile.in: Reneregated.
1335
20108301
JB
1336Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
1337
4616e355 1338