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