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