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