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