* errno.h: prototype for scm_strerror.
[bpt/guile.git] / libguile / ChangeLog
CommitLineData
efb997f5
GH
1Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
2
3 * errno.h: prototype for scm_strerror.
4 * error.c (scm_strerror): new procedure.
5
1a0e096c
MD
6Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
7
8 * list.c (scm_list_append_x): Allow non-pair as last argument.
9 This is consistent with the R4RS append and is probably the
10 correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
11
6afcd3b2
GH
12Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
13
14 * stime.h: prototype for scm_times.
15 * stime.c (scm_times): new procedure.
16 * ioext.c (scm_fseek): if the first argument is a file descriptor
17 call lseek.
18 (scm_ftell): if the first argument is a file descriptor call lseek
19 (sic).
20 * filesys.h: prototypes for scm_open_fdes, scm_fsync.
21 * filesys.c (scm_chmod): if the first argument is a file descriptor,
22 call fchmod.
23 (scm_chown): if the first argument is a port or file descriptor,
24 call fchown.
25 (scm_truncate_file): new procedure.
26 Add DEFER/ALLOW INTS to a few other procedures.
27 (scm_fsync): new procedure.
28 (scm_open_fdes): new procedure.
29 (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
30 now be used.
31 (scm_fcntl): the first argument can now be a file descriptor. The
32 third argument is now optional.
33
34 * posix.c (scm_execl, scm_execlp): make the filename argument
35 compulsory, since omitting it causes SEGV.
36 (scm_sync): return unspecified instead of #f.
37 (scm_execle): new procedure.
38 (environ_list_to_c): new procedure.
39 (scm_environ): use environ_list_to_c. disable interrupts.
40 (scm_convert_exec_args): take pos and subr arguments and
41 improve error checking.
42
0824b524
MD
431997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
44
45 * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
46 (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
47 argument to SCM_ASSERT. Furthermore, the name of the function
48 should be passed as first argument when signalling
49 SCM_WNA. (Thanks to Thomas Morgan)
50
51 * gsubr.c (scm_gsubr_apply): From Radey Shouman
52 <shouman@zianet.com>: "The switch in scm_gsubr_apply that
53 dispatches on the number of actual args has a default case
54 reporting an internal error. This is a vestige from a version
55 that mallocated a SCM vector to hold the arguments. In the
56 current version this check is too late: if it ever happens we will
57 have already overstepped the bounds of the array.
58
59 Also, the patch [...] adds a check for too many actual arguments."
60
61 mdj: Removed check for "internal programming error".
62
4ed948d4
MD
63Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
64
65* * gh_io.c (gh_write): New function.
66
67* * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
68 throw.c (scm_internal_stack_catch): New sibling to the other catch
69 functions. Code moved from gh_eval.c.
70 throw.h: Added header.
71 gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
72 scm_internal_stack_catch.
73
7a6f1ffa
GH
74Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
75
76 * ioext.h: fix up prototypes.
77 * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
78 Scheme name is now dup->fdes.
79 (scm_dup_to_fdes): make the second argument optional and
80 fold in the functionality of scm_primitive_dup.
81 (scm_primitive_dup): deleted.
82
83Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
84
85 * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
86 * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
87 ultrix are defined. Use setvbuf instead of setbuf.
88 (scm_setvbuf): new procedure.
89 (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
90 (scm_setfileno): moved from ioext.c.
91 (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
92 (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
93
a0cb6cb0
MV
94Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
95
96 * fluids.c (scm_fluid_p): New function.
97 * fluids.h (scm_fluid_p): New prototype.
98
99Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
100
101 * print.c (scm_iprin1): Enter printed structures into the print
102 state as nested data while they are printed.
103 (print_state_fluid, print_state_fluid_num): New variables.
104 (scm_init_print): Initialize them.
105 (scm_iprin): If print_state_fluid carries a print_state, use that
106 instead of creating a new one.
107 (scm_printer_apply, apply_stub, struct apply_data): New
108 definitions to help with calling printer functions written in
109 Scheme.
110 * print.h (scm_printer_apply): New prototype.
111
112 * struct.c (scm_print_struct): Use scm_printer_apply to call the
113 user defined struct printer.
114
115 * dynwind.c (scm_dowinds): Handle fluids on the wind list.
116 * fluids.h (scm_internal_with_fluids, scm_with_fluids,
117 scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
118 * fluids.c (scm_internal_with_fluids, scm_with_fluids,
119 scm_swap_fluids, scm_swap_fluids_reverse): New functions.
120
121Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
122
123 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
124 SCM_ASSERT: arg comes before pos.
125
269861c7
MD
126Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
127
128 * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
129 to a list of length zero correctly.
130
3cb988bd
TP
131Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
132
133 Supply an `fgets' method for port objects to do fast line i/o.
134 * ioext.c (scm_read_line): New function.
135 * genio.c (scm_gen_read_line): New function.
136 * fports.c (scm_fgets): New function.
137 (scm_fptob, scm_pipob): Add scm_fgets method.
138 * ports.c (fgets_void_port, scm_generic_fgets): New functions.
139 (void_port_ptob): Add void fgets method.
140 (scm_newptob): Initialize fgets method from ptob struct.
141 * ports.h (scm_ptobfuns): Add fgets method.
142 * vports.c (scm_sfptob): Supply generic fgets method.
143 * strports.c (scm_stptob): Supply generic fgets method.
144
e38303a2
GH
145Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
146
147 * ioext.h: removed scm_duplicate_port prototype.
148
149 * ioext.c (scm_primitive_dup2): return the new file descriptor
150 instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
151 is convenient.
152 (scm_fdopen): bug fix: don't try to make port unbuffered until its
153 stream has been set.
154 (scm_duplicate_port): deleted, there's now an implementation in
155 boot-9.scm.
156 (scm_primitive_dup2): do nothing if newfd == oldfd.
157
eadd48de
GH
158Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
159
a9488d12
GH
160 * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
161 argument.
162
163 * ioext.h: new prototypes.
164 * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
165
eadd48de
GH
166 * fluids.c (next_fluid_num): don't do
167 SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
168
169 * ports.h: prototypes too.
170 * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
171
172 * fports.h: prototype too.
173 * fports.c (scm_evict_ports): moved from ioext.c.
174
9c29ac66
GH
175Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
176
eadd48de
GH
177 * ports.c (scm_close_port): return a boolean instead of unspecified.
178 throw an error if an error other than EBADF occurs.
179
180 * filesys.h: scm_close prototype.
181 * filesys.c (scm_close): new procedure, can close file descriptors
182 and ports (scsh compatible).
183
9c29ac66
GH
184 * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
185 optional argument.
186
7f47d2d8
MV
187Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
188
189 * fluids.c, fluid.h: New files.
190 * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
191 (modinclude_HEADERS): Added "fluids.h"
192
193 * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
194 scm_init_fluids to initialize the fluid machine.
195 (scm_start_stack): Initialize the fluids of the first root with
196 scm_make_initial_fluids.
197
198 * root.h: Added "fluids" member to scm_root_state.
199 * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
200 (scm_make_root): Call scm_copy_fluids to make fluid bindings
201 unique for the new root when it has a parent.
202
203 * smob.h: Include "libguile/print.h" to make scm_print_state
204 visible.
205
206 * dynl.c (free_dynl_obj): New function to free the dynamic object
207 data. (dynl_smob): Use it.
208 * dynl.c (scm_dynamic_link): Moved allocating of the memory for
209 the dynamic object data below the linking of the object to avoid
210 memory leak when the linking code throws an error. Now the code
211 leaks a whole dynamically linked library when must_malloc throws,
212 but that should be much less likely.
213
32552d73
JB
214Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
215
216 Changes to compile under gnu-win32, from Marcus Daniels:
217 * stime.c (tzset): If tzset isn't provided, make it a NOP.
218 (scm_localtime): Change SCM_EOF to SCM_EOL.
219 (scm_mktime): Likewise.
220 * socket.c: Don't include sys/un.h unless autoconf tells
221 us Unix domain sockets are available.
222 (scm_fill_sockaddr): Ignore Unix domain code.
223 (scm_addr_vector): Likewise.
224 (scm_init_addr_buffer): Likewise.
225 (scm_socketpair): Don't include unless socketpair was
226 found during autoconf.
227 * simpos.c (SYSTNAME): Treat cygwin like Unix.
228 * scmsigs.c (scm_pause): Don't include unless pause was found
229 during autoconf.
230 * posix.c (scm_getgroups): Don't include unless support function
231 was found during autoconf (in this case, getgroups).
232 (scm_setpwent): For setpwent.
233 (scm_setegid): For setegid.
234 * net_db.c (scm_inet_netof): Don't include unless support
235 function was found during autoconf (in this case, inet_netof).
236 (scm_lnaof): For inet_lnaof.
237 (scm_inet_makeaddr): For inet_makeaddr.
238 (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
239 (scm_getproto): For getprotoent.
240 (scm_getserv): For getservent.
241 (scm_sethost): For sethostent, endhostent.
242 (scm_setnet): For setnetent, endnetent.
243 (scm_setproto): For setprotoent, endprotoent.
244 (scm_setserv): For setservent, endservent.
245 * scmconfig.h.in: Regenerated.
246
8cedfb2e
JB
247Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
248
249 * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
250 scm_misc_error, not SCM_EOF.
251
252 * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
253 arguments for formatting the error message, not SCM_BOOL_F. I
254 think this is left over from the (eq? '() #f) days.
255
256 * read.c (recsexpr): Give this a dummy definition if
257 DEBUG_EXTENSIONS isn't #defined.
258
517591cd
MV
259Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
260
261 * coop-threads.c (scm_wait_condition_variable): Lock mutex again
262 after waiting.
263
3f094ddf
MV
264Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
265
266 * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
267 scm_internal_catch.
268
4a5fa91c
TP
269Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
270
271 * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
272 alloca.lo will be included in @LIBLOBJS@. Something better than
273 this should be possible.
274 * Makefile.in: Regenerated.
275
7ad3c1e7
GH
276Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
277
278 * simpos.h: prototype for scm_primitive_exit.
279 * simpos.c (scm_primitive_exit): new procedure, terminates the
280 process without unwinding the stack.
281
5d4774bc
TP
282Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
283
284 * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
285 argument and logior its components together, so the user doesn't
286 have to do this explicitly. Also, if regexp/basic is supplied, then
287 turn off REG_EXTENDED.
288 (scm_init_regex_posix): New regexp/basic symbol.
289 (REG_BASIC): #define this if it is not already present.
290
ad6b30a0
TP
291Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
292
293 * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
294 (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
295 (CLEANFILES): New target, clean versiondat.h, libpath.h.
296 (DISTCLEANFILES): New target, clean *.x.
9159ebec 297 * Makefile.in: Regenerated.
ad6b30a0 298
db561408
JB
299Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
300
9230ac78
JB
301 * script.c (scm_compile_shell_switches): Add 1997 to copyright
302 years in usage message.
303
9572c0d0
JB
304 * Makefile.am (libguile_la_LDFLAGS): Bump library version.
305 * Makefile.in: Regenerated.
306
fcff2c5c
JB
307 * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
308 flag; I don't think we support it.
9572c0d0
JB
309 (scm_make_regexp): Make sure the user doesn't pass the
310 regexp/nosub flag.
fcff2c5c
JB
311
312 * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
db561408
JB
313 FLAGS arguments.
314 (scm_init_regex_posix): Define constants for the REG_mumble flags;
315 name them according to the SCSH convention: regexp/mumble.
fcff2c5c 316
db561408
JB
317 * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
318
2409cdfa
JB
319Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
320
321 * Makefile.am (libpath.h): Include the values of all the standard
322 Makefile directory variables. Print a message, but don't print
323 all the commands.
324 (versiondat.h): Print a message, but don't print all the commands.
325 * load.c: #include "alist.h".
326 (init_build_info): New function.
327 (scm_init_load): Call it.
328 * Makefile.in: Regenerated.
329
eb1e924e
JB
330Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
331
d94c6eeb
JB
332 * root.c: Establish a reliable catch-all handler for the new root.
333 After all the Scheme handler function might signal an error too,
334 and we don't want to lose that.
335 (cwdr_inner_body): Renamed from cwdr_body.
336 (cwdr_outer_body): New function, to establish the user's handler,
337 and pass control to cwdr_inner_body.
338 (cwdr): Establish the reliable catch-all handler here, and pass
339 control to cwdr_outer_body.
340 (struct cwdr_body_data): New field, handler, to allow cwdr to pass
341 the user's handler through to cwdr_outer_body.
342 * throw.c (scm_handle_by_message): Move guts into....
343 (handler_message): New static function.
344 (scm_handle_by_message_noexit): New function.
345 * throw.h (scm_handle_by_message_noexit): New prototype.
346
eb1e924e
JB
347 * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
348 across this. Only works on GCC. Otherwise, we hope for the best.
349 (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
350 the feeling that real thread systems will not need this...
351
0dc48630
JB
352Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
353
91b28bb5
JB
354 Try to detect when people are using one version of libguile and a
355 different version of ice-9. People have been skewing things and
356 sending in bug reports.
357 * Makefile.am (versiondat.h): New file to generate.
358 * version.c: #include "versiondat.h", to get version info.
359 (scm_libguile_config_stamp): New function.
360 * script.c: #include "version.h".
361 (scm_compile_switches): Call scm_version to get version number.
362 * scmconfig.h.in, Makefile.in: Regenerated.
363 * Makefile.in: Regenerated.
364
365 * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
366 primitive definitions under their Scheme names.
367
368 * Makefile.am (libguile_la_LDFLAGS): Update library version to
369 1:2. Helps avoid confusion between installed and uninstalled libs.
370
0dc48630
JB
371 * scmconfig.h.in: Regenerated. (Needed after June 3 change to
372 ../configure.in.)
373
374 * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
375 backslash from definition; this should be used like: GDB_INTERFACE;
376
c85e73d3
GH
377Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
378
379 * ioext.c (scm_duplicate_port): bug fix: don't try to make the
380 new port unbuffered until its stream has been set.
381
89ea5b7c
GH
382Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
383
384 * ports.h: new prototype.
385 * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
386
91529b1d
JB
387Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
388
389 Make things compile neatly under Sun's C compiler.
390 * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
391 * extchrs.c (xmbtowc): Make the second arg a normal char, not
392 unsigned, because that's what the ANSI function takes.
393 * extchrs.h (xmbtowc): Corresponding change to prototype.
394 * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
395 uchars here.
396 * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
397 argument plain char *.
398 * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
399 char.
400 * tag.c (scm_tag): Remove unreachable statement.
401 * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
402 top of the word, it should be unsigned.
403
404 * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
405 is defined, to avoid warnings; it's only used in the
406 conflict-checking code. Which might go away anyway.
407 (SCM_CEVAL): All goto's targeting the `dispatch' label are in
408 conditionals; put the label definition in an #if too, to stifle
409 warnings.
410
411 * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
412 ChangeLog-threads in the distribution.
413 * Makefile.in: Regenerated.
414
bee14491
TP
415Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
416
417 * guile-snarf.in: Changed regexp to support CPPs that insert
418 whitespace between lexical tokens (which munges the `%%%' snarf
419 cookie).
420
55407879
TP
421Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
422
fcff2c5c 423 * load.c (scm_init_load_path): Append $(datadir)/guile to
55407879
TP
424 %load-path, so modules do not have to be installed in Guile's
425 current version directory.
426
e5f8e12f
MV
427Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
428
429 * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
430 function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
431 (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
432 call the sysdep functions with deferred ints.
433 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
434 sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
435 deferred interrupts and insert SCM_ALLOW_INTS before throwing an
436 error.
437
438 * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
439 SCM_UNSPECIFIED.
440
cc0b3312
GH
441Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
442
443 * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
444
3688473b
JB
445Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
446
447 * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
448 ../configure.in.
449
58932e4a
MV
450Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
451
452 * eval.c (scm_lookupcar1): New procedure to cope with a race
453 condition during lookup (when using threads).
454 (scm_lookupcar): Implement in terms of scm_lookupcar1.
455 (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
456 place.
457
95d59d10
JB
458Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
459
460 * regex-posix.c (scm_regexp_exec): Use the `start' argument if
461 supplied. (Change from Tim Pierce.)
462
0b46857f
MV
463Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
464
465 * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
466 23:47:01 1997" changelog: Slots are now initialized with `#f' by
467 default and not `()'. `#f' is the canonical non-value in Scheme,
468 right?
469
5dade857
MV
470Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
471
472 * struct.c (struct_printer): New variable that holds a handle on
473 the Scheme variable *struct-printer*. This variable can be set by
474 Scheme code to override the printing of structures.
475 (scm_print_struct): If struct_printer is set, call it. If it is
476 not set, or returns #f, print the structure in the old fashion.
477 Include "eval.h" for scm_apply.
478
7507aba1
MV
479Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
480
481 * struct.c (scm_struct_ref, scm_struct_set_x): Use
482 scm_struct_i_n_words to get the number of fields, not
483 -scm_struct_n_extra_words.
484
485 On the route to fancier struct printing:
486 * struct.c (scm_print_struct): New function to print a structure.
487 Include "genio.h" to support it. This function doesn't do
488 anything interesting right now, but I think it should be here
489 anyway.
490 * struct.h: Include "print.h" and add prototype for
491 scm_print_struct.
492 * print.c (scm_iprin1): Call scm_print_struct instead of trying to
493 print structures ourself.
494
2ad6b1a5
GH
495Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
496
497 * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
498 before applying the handler in case it doesn't return.
499
e1a191a8
GH
500Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
501
502 * scmsigs.h, async.h: updated.
503
504 * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
505 loop.
506
507 * posix.c (scm_uname): interpret only negative values as an error.
508 Solaris normally returns a positive value.
509
510 * script.c (scm_compile_shell_switches): if we are not going into
511 an interactive repl, set scm_mask_ints to zero so that asyncs can
512 run.
513
514 * simpos.c (scm_system): don't ignore/unignore signals around
515 the "system" call.
516
517 * posix.c (scm_open_pipe): don't ignore/unignore signals around
518 the "popen" call.
519
520 * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
521 done in boot-9.scm instead.
522
523 * scmsigs.c, async.c: Major rewriting of signal handling code.
524 (scm_sigaction): new procedure.
525 (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
526 timing.
527 (scm_raise): return unspecified, throw error on failure.
528
0e165281
JB
529Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
530
531 * regex-posix.c (scm_init_regex_posix): Register the "regex"
532 feature, to help boot-9.scm decide whether to import the regex
533 module.
534
4885ba0e 535Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
1e5afba0 536
4885ba0e
JB
537 * eval.c: Include scmconfig.h at the beginning of the file so that
538 HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
539 pointing this out.
1e5afba0
JB
540
541 * regex-posix.c: #include "_scm.h" before conditionally #including
542 <regex.h>; the former defines HAVE_REGCOMP.
543
4885ba0e
JB
544 * regex-posix.c: #include <regex.h> conditionally, so the file is
545 CPP'able (for dependency scanning) even on systems that don't have
546 a <regex.h> header.
547
5aefdd40
JB
548Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
549
550 Add new R4RS-compliant syntax for keywords.
551 * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
552 regardless of the setting of the `keywords' read option.
553 * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
554 can be re-read no matter what the setting of the `keywords' read
555 option.
556
737c9113
JB
557Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
558
559 Add support for POSIX regular expressions.
560
561 * regex-posix.c, regex-posix.h: New files. (Some code
562 is taken liberally from rx/rgx.c in the old Guile dist.)
563
564 * init.c: Include regex-posix.h.
565 (scm_boot_guile_1): Call scm_init_regex_posix.
566
567 * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
568 Add regex-posix.[ch] sources.
569 * Makefile.in: Regenerated.
570
571 * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
572 to do this automatically? It didn't for me, bleh.)
573
06de7963
JB
574Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
575
33623b5e
JB
576 * fports.c (print_pipe_port): New function.
577 (scm_fptob): Use print_pipe_port instead of scm_prinport; the
578 latter doesn't even take the right arguments.
579
580 * Makefile.am: Increment shared lib revision number. I think
581 sometimes the uninstalled Guile finds the installed shared lib;
582 Gord says doing this might help. As things turned out, I can't
583 say whether it does.
584 * Makefile.in: Regenerated.
585
06de7963
JB
586 * gh_init.c (gh_enter): Cast c_main_prog to a void * before
587 passing it as the closure argument to scm_boot_guile. (Bill
588 Janssen)
589
590 * ports.c (print_void_port, putc_void_port, puts_void_port,
591 write_void_port, flush_void_port, getc_void_port, close_void_port,
592 noop0): Use ANSI prototypes instead of K&R declarations, so the
593 initialization of void_port_ptob gets aggressively type-checked.
594 Fix arguments of print_void_port and write_void_port. (Bill
595 Janssen)
82892bed
JB
596
597 * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
598 appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
599 backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
600 continuations.c, continuations.h, coop-defs.h, coop-threads.c,
601 coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
602 coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
603 dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
604 error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
605 filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
606 gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
607 gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
608 gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
609 gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
610 init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
611 list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
612 markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
613 mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
614 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
615 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
616 procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
617 read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
618 script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
619 smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
620 stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
621 strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
622 strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
623 tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
624 unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
625 version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
626 address for FSF.
627
3f4c654d
JB
628Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
629
630 * script.c (scm_find_executable): Use prototype-style definition
631 here; apparently it's not quite right to have const in a prototype
632 and then use a K&R declaration. I wonder if stuff like this will
633 go away if we compile with -Wrequire-prototypes, or whatever that
a00c28cd 634 is... (Bernard URBAN)
3f4c654d
JB
635
636 * scmhob.h: New text from Bernard URBAN.
637
638Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
639
640 * script.c: Don't #define const on hpux. Configure takes care of
641 this. (Thanks to Larry Schwimmer.)
642
643 * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
644 decide whether to #include <unistd.h>, instead of listing a bunch
645 of systems. Don't #include stdio twice. Removed dyked-out
646 definition of scm_find_impl_file.
647
eeb56f3c
JB
648Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
649
adb98aa9
JB
650 * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
651 library version info to 1:0.
652 * Makefile.in: Regenerated.
653
142ad3d9
JB
654 * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
655 gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
656 gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
657 init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
658 script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
659 throw.c: Update copyright years; these files have been worked on
660 significantly in 1997, but only had copyright years for 1996.
661 Also, change name of copyright holder on some from Mikael
662 Djurfeldt to Free Software Foundation; he has signed papers
663 assigning the changes to the FSF.
664
eeb56f3c
JB
665 * script.c (scm_shell_usage): Pass FATAL to exit. There's no
666 reason not to give the user the option.
190b072d
JB
667
668 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
669 Return #f on end-of-file when scanning table (i.e. when called
670 with no arguments). Try to catch errors, when we can.
095936d2
JB
671 * posix.c (scm_getgrgid, scm_getpwuid): Same.
672
673 * script.h (scm_shell_usage, scm_compile_shell_switches): New
190b072d
JB
674 external declarations. These are useful.
675
a48a89bc
GH
676Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
677
678 * posix.c: don't include <sys/select.h> or define macros for
679 select, since they were not used in this file.
680
095936d2 681 * filesys.c (scm_select): make the fifth parameter microseconds,
a48a89bc
GH
682 not milliseconds. let the fourth parameter be either a real value
683 or an integer or #f. The first, second and third arguments can
684 now be vectors: the type of the corresponding return set will be
685 the same.
686 (set_element, get_element): new static procedures.
687
f3b1485f
JB
688Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
689
223be5f0
JB
690 * strports.c (scm_eval_string): New function.
691 (scm_eval_0str): Trivially re-implemented in terms of
692 scm_eval_string.
693 * strports.h (scm_eval_string): New extern decl.
694
e1cd56f9
JB
695 * net_db.c (h_errno): Add extern decl for this.
696
f3b1485f
JB
697 * fports.c (local_pclose): New function.
698 (scm_pipob): Use it in the initializer here.
699
700 From Tim Pierce:
701 * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
702 Use a meaningful error message when signalling an error. For
703 this, scm_gethost must check h_errno rather than errno.
704
9b01064c
JB
705Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
706
707 * Makefile.in: Regenerated, using automake-1.1p.
708
08fea088
GH
709Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
710
0267051b
GH
711 * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
712 not SCM_UNSPECIFIED.
713
08fea088
GH
714 * script.c (scm_compile_shell_switches): don't append (quit) if
715 interactive.
716 (scm_shell): call scm_exit_status and exit on the result of the
717 evaluation.
718
821eb64e
JB
719Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
720
721 Ensure that shared substrings are handled properly when passed to
722 a system call or other foreign function. Many thanks to Tim
723 Pierce!
724 * symbols.h (SCM_COERCE_SUBSTR): new macro.
725 * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
726 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
727 scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
728 scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
729 scm_strftime), vports.c (scm_make_soft_port), backtrace.c
730 (scm_display_error_message): use RO macros when strings may be RO.
731 * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
732 scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
733 scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
734 (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
735 (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
736 (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
737 scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
738 scm_strftime), vports.c (scm_make_soft_port): use
739 SCM_COERCE_SUBSTR to make sure shared substrings are
740 null-terminated.
741
742Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
743
744 * error.c (scm_error): Add newline to error message.
745
746 * init.c (scm_init_standard_ports): Doc fix.
747
8e6f33db
MV
748Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
749
750 * dynl-shl.c: Completely replaced with new code from Bernard
751 URBAN.
752
753 * script.c (scm_ice_9_already_loaded): New variable.
754 (scm_compile_shell_switches): Use it.
755
4edc089c
GH
756Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
757
758 * filesys.c (scm_input_waiting_p): add missing third argument to
759 scm_misc_error.
760
761 * stime.c (scm_localtime): copy the result of localtime before
762 calling gmtime in case they share a buffer.
763 (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
764 nor HAVE_TZNAME.
765
554878da
GH
766Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
767
768 * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
4edc089c 769
914155ca
JB
770Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
771
772 * Makefile.am (check-local): New target, which causes 'make check'
773 to run gh_test_c and gh_test_repl, with some trivial input.
774 * Makefile.in: Rgnrtd.
775
6fa9bcd0
MV
776Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
777
778 * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
779 been unlinked.
780
9ea54cc6
GH
781Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
782
783 * async.c (scm_sys_tick_async_thunk): commented out. I'm not
784 sure how this was supposed to work.
785 (scm_async_click): don't send SCM_TICK_SIGNAL.
786 (scm_init_async): don't initialize %tick-thunk.
787
788 * the following change doesn't affect the Scheme interface:
789 gc-thunk is called at the end of garbage collection. however it's
790 no longer implemented by pretending it's a signal.
791
792 * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
793 system async corresponding to scm_gc_thunk.
794 * async.h: declare scm_gc_async.
795 * async.c (scm_sys_gc_async_thunk): apply the thunk named by
796 gc-thunk directly, instead of going through a signal handler.
797 (scm_gc_async): new variable, points to the GC system-async.
798 (scm_init_async): save the GC async as scm_gc_async instead
799 of using system_signal_asyncs.
800 (scm_gc_vcell): new variable, stores the gc-thunk vcell.
801
10830232
JB
802Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
803
804 * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
805 Don't screw up if we're interrupted.
806 * Makefile.in: Regeneradet.
807
28c682fa
JB
808Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
809
810 * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
811
812 * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
813 we're not using AM_INIT_GUILE_MODULE any more.
814 * Makefile.in: Reneregated.
815
20108301
JB
816Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
817
4616e355 818