1 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3 * feature.c (scm_init_feature): Added threads feature (needs to be
4 initialized here, since features doesn't exist when
5 scm_init_threads is called).
7 * libguile.h: Added #include "libguile/../threads/threads.h".
8 (This is a kludge to get thread support working. This should be
11 * configure.in, acconfig.h: Added flags for thread support.
13 * scmsigs.c: Define `signal' to be `pthread_signal' if using
16 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
17 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
20 * _scm.h: Added conditional #include "threads.h"
22 * __scm.h (SCM_ASYNC_TICK): Added call to macro
23 SCM_THREADS_SWITCHING_CODE.
25 * init.c (scm_start_stack): Call `scm_make_root' to dynamically
26 allocate the basic dynamic root object.
27 (scm_boot_guile): Added call to scm_init_root.
29 * * root.c, root.h: Added root smob.
30 (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
31 functions: Implements dynamic roots mostly according to spec in
32 SCM manual. Main difference is that the second argument is a
33 throw handler rather than an error "thunk".
35 * root.h: Added declaration of scm_init_root.
37 * root.c: Added #include "genio.h", #include "smob.h", #include
38 "pairs.h", #include "throw.h", #include "dynwind.h", #include
40 (scm_init_root): Added #include "root.x".
42 * throw.c: Added #include "stackchk.h"
43 (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
44 SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
45 can be used in scm_call_with_new_root; Added reenabling of stack
46 checking when catching a throw.
48 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
50 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
51 declare the char * to be const. Avoids a warning in rgx.c.
53 * ports.h: spelling fix.
55 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
58 * load.c (scm_sys_try_load_path): throw an error if file not found
59 (like it says it in NEWS).
61 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
63 * load.c (scm_sys_try_load): don't check whether value returned
64 by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
65 Change the Scheme name from %try-load to primitive-load.
67 * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
68 Can avoid passing a message, allowing it to be derived in the
69 error handler (e.g., if we want to throw to the key both from
72 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
74 * * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
75 references now have a new appearance which is more compact and
76 also gives a clue about what the target of the reference is.
77 By setting parameters in the print state, more fancy printing can
78 be achieved. This is used by the (not yet commited) backtrace
81 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
83 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
86 * print.c: Added #include "struct.h". Removed function
89 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
90 scm_iprin1. Removed prototype for scm_prlist.
92 * arbiters.c (prinarb),
93 async.c (print_async),
94 debug.c (prindebugobj, prinmemoized),
95 eval.c (prinprom, prinmacro),
96 filesys.c (scm_fd_print, scm_dir_print),
98 mallocs.c (prinmalloc),
99 numbers.c, numbers.h (scm_floprint, scm_bigprint),
100 smob.h (scm_smobfuns),
101 srcprop.c (prinsrcprops),
103 unif.c, unif.h (scm_raprin1, rapr1),
104 variable.c (prin_var): Changed argument `int writing' to
105 `scm_print_state *pstate'.
107 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
108 that it will be called before scm_init_print.
110 * print.c (scm_prin1): Print states are now allocated when calling
111 scm_prin1 and then passed around to all printing functions as an
112 argument. A cache `print_state_pool' enables reuse of print
114 (scm_make_print_state): New function.
115 (scm_iprin1): Adaption to print states.
116 (scm_iprlist): An initial "hare and tortoise" scan brings down
117 time complexity to O (depth * N). (Better time complexity will be
118 achieved when the printing code is completely rewritten.)
120 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
122 * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
123 scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
124 Lord's implementation of structs, allowing for tail arrays as
125 described in the manual. Also fixed some bugs. (Both the interface
126 and the implementation should be improved.)
128 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
130 * print.c, print.h: Closures now print like #<procedure foo (x)>.
131 People who whish to see the source can do `(print-enable 'source)'.
132 Removed #ifdef DEBUG_EXTENSIONS.
134 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
136 * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
137 integer (assuming for now accepting an integer is a good thing).
139 * error.c, fports.c: replace use of %S in lgh_error args with %s.
140 %S will be used instead for write'ing arguments.
142 * unif.c (scm_transpose_array): change arguments in the SCM_WNA
143 asserts. fix a few other asserts.
144 (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
145 scm_uniform_vector_ref, scm_array_set_x,
146 scm_dimensions_to_unform_array): change args in
147 SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
148 strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
149 scm_substring_fill_x): likewise.
150 gsubr.c (scm_gsubr_apply): likewise.
151 eval.c (SCM_APPLY): likewise.
153 * eval.c (4 places): replace scm_everr with lgh_error or
156 * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
157 scm_memory_error): new procedures.
158 * scm_everr: deleted. can use scm_wta, dropping first two args.
159 scm_error: convert NULL subr to SCM_BOOL_F.
161 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
164 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
167 * error.c, error.h: new error keys: scm_arg_type_key,
168 scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
170 scm_wta: reimplement using lgh_error instead of scm_everr.
172 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
174 * gdbint.c: scm_lread now has one more argument.
176 * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
177 scm_port_\1; Added mutator scm_set_port_filename_x (used when
178 loading source from non-file ports, which, e. g., happens when
179 using the Emacs interface).
181 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
184 * read.c: Added code for recording of positions of source code
185 expressions; New functions: recsexpr, scm_lreadrecparen;
186 _scm_make_srcprops --> scm_make_srcprops
187 (scm_flush_ws): Removed updating of positions counters. This work
188 is already done by scm_gen_getc
190 * read.h: Added prototype for scm_lreadrecparen
192 * print.c: Added #include "alist.h"
194 * eval.c: Added #include "hash.h"
196 * eq.c: Added #include "ramap.h"
198 * options.c: Documentation fixes.
200 * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
201 (scm_init_srcprop): Adjusted size of initial source-whash. Name
202 changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
203 --> scm_make_srcprops
205 * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
206 _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
207 function calls in the definition of the whash access macros.
209 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
211 * ports.h (scm_port_table): put back file_name, it will be used to
212 support debugging. Undo related changes in fports.c, ioext.c,
215 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
217 * ports.h (scm_port_table): remove file_name member for now, it seems
219 * fports.c (scm_open_file): don't set file_name in PTAB.
220 (prinfport): don't use file_name in PTAB.
221 * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
222 * ports.c (scm_add_to_port_table): don't intialize file_name.
223 (scm_port_file_name): remove for now.
224 * gc.c (scm_gc_mark): don't mark PTAB file_name.
226 * fports.h (scm_mkfile): prototype deleted.
227 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
229 * debug.c, unif.c: use scm_out_of_range instead of
230 wta for range errors (ASSERT still needs work).
232 * error.c, error.h (scm_out_of_range): new procedure.
234 * error.c, error.h (scm_out_of_range_key): new key.
236 * posix.c (scm_sync): #else was missing.
238 * error.c, error.h: append _key to names scm_num_overflow and
241 * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
242 of consing an empty list.
243 (SCM_SYSERROR etc.): move into error.c, make them procedures instead
244 of macros, saves code and string space.
245 error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
246 fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
247 lower case. Rename scm_syserror_m to scm_syserror_msg.
248 error.h: prototypes for new procedures.
250 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
252 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
254 * error.c, error.h: setup scm_num_overflow key.
256 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
257 Remove definition of SCM_OVSCM_FLOW.
259 * fports.c (scm_open_file): use SCM_SYSERROR_M.
261 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
262 explicit message and args.
264 * error.c, error.h, __scm.h: change system_error_sym to
267 * error.c (system_error_sym): remove leading %% from the Scheme name
270 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
272 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
274 * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
275 fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
276 numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
277 tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
278 renamed. (These were introduced by unsupervised name
281 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
283 * * print.c: Added code for detection of circular references during
284 printing. (init_ref_stack, grow_ref_stack): New functions. Added
285 a hook for printing of closures (accessible via print options).
286 This leads to a split of calls to scm_iprin1 into two classes:
287 elementary print operations (e. g. the code which prints a smob)
288 still use scm_iprin1 while top level calls (like scm_display) use
289 scm_prin1. scm_prin1 begins by clearing the data structure used
290 to record reference information.
292 * print.h: Added declarations of scm_prin1 and scm_prlist.
294 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
296 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
298 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
300 * error.c (err_head): scm_iprin1 --> scm_prin1
302 * debug.c: Adjusted header comment.
306 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
308 * strerror.c: Doc fix.
310 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
312 * gdbint.c (gdb_read): Now possible to run during GC.
313 (unmark_port, remark_port): New functions.
315 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
317 * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
318 of allocating a new string object. Also, increase size by
319 the factor 2 instead of 1.5.
321 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
323 * __scm.h (SCM_P): Corrected to run under traditional C.
325 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
328 * async.c: Calls to scm_sysintern corrected.
330 * async.h (scm_async_clock): Redundant declaration removed.
332 * continuations.c (scm_dynthrow): Redundant declaration removed.
334 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
335 Definition typos corrected.
337 * debug.h: Missing declarations of functions in debug.c added
340 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
341 Missing declarations to functions in eval.c added.
343 * filesys.c: Possibly uninitialized variable rv.
345 * gc.h (scm_object_addr, scm_unhash_name): Missing
346 declarations of functions defined in gc.c added.
348 * genio.c: Possible typos str_data -> wstr_data. ???
350 * genio.c: Possibly unintended shadowing of local variable
351 `int c' (gotos out of scope of inner `c'). ???
353 * init.c: Uninitialized `SCM last' may be used.
355 * ioext.h: (scm_sys_isatty_p): Typo.
357 * list.h (scm_list_head): Missing prototype for function in
360 * numbers.c (scm_two_doubles): Changed from extern to static
361 (is used only within numbers.c).
363 * numbers.h: Repeated declarations removed.
365 * ports.h (scm_close_all_ports_except): Declaration for the
366 function defined in ports.c added.
368 * posix.h: Missing declarations added.
370 * procs.h (scm_make_subr_opt): Missing declaration added.
372 * socket.h (scm_sys_gethost): Missing declaration added.
374 * socket.h: Redundant declarations removed (they are in fdsocket.h).
376 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
377 Missing declarations added.
379 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
381 * struct.c: Uninitialized variable `SCM answer' may be used.
383 * unif.c (l2ra): Declaration prototype.
385 * unif.c (scm_array_equal_p): Dummy definition removed (it is
388 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
389 Redundant declarations removed (they are in ramap.h).
391 * variable.h (scm_make_udvariable,
392 scm_make_undefined_variable): Declaration corrected to
393 correspond variable.c.
395 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
396 Missing declarations added.
398 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
400 * Makefile.in (distclean): Don't forget to delete fd.h.
402 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
404 * fd.h.in, tags.h: Trivial cleanups.
406 * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
407 marksweep.h just declared functions from gc.c.
408 * gc.h, libguile.h: Don't #include "marksweep.h".
409 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
410 marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
411 dependencies updated.
413 * libguile.h: Don't #include "files.h"; it's been deleted.
415 * files.c (scm_sys_delete_file): Moved to filesys.c.
416 File is now empty; deleted.
418 * filesys.c: scm_sys_delete_file is now here. Remove
419 #if's; they seem to rely on remnants of an old portability
420 regimen. If the problems come up again, solve them properly,
421 using autoconf. Specifically: Don't test M_SYSV, and #define
422 remove to be unlink if it's #defined; don't use remove just
423 because HAVE_STDC_HEADERS is #defined.
424 * filesys.h: Add declarations for scm_sys_delete_file.
425 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
426 files.o, files.h, files.c, and files.x.
427 * init.c: Don't #include "files.h", and don't call scm_init_files.
429 Use SCM_P instead of PROTO; the latter intrudes on the user's
431 * params.h: Deleted; definition of SCM_P moved to...
432 * __scm.h: ... here, where it replaces PROTO macro.
433 * libguile.h, smob.h: Don't #include "params.h".
434 * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
435 smob.h: Fix prototypes accordingly.
436 * Makefile.in: Update dependencies.
437 (inner_h_files): Remove params.h.
439 * gc.c: #include "gc.h"; every module should include its header,
440 to let the compiler cross-check the declarations against the
443 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
444 simpos.h: #include "libguile/__scm.h".
446 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
448 * init.c: Don't forget to #include smob.h and init.h.
449 * Makefile.in: Dependencies updated.
451 * smob.h: Use PROTO instead of #if __STDC__.
453 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
455 * __scm.h: Doc fixes.
457 * __scm.h, libguile.h: Use "quotes" in the #includes, not
458 <angles>; this allows `make depends' to work properly.
460 * libguile.h: #include smob.h and pairs.h before the others; they
461 define typedefs used by other headers.
463 C files should #include only the header files they need, not
464 libguile.h (which #includes all the header files); the pointless
465 recompilation was wasting my time.
466 * Makefile.in (all .o dependency lists): Regenerated.
467 * libguile.h: Don't try to get a definition for size_t here...
468 * __scm.h: Do it here.
469 * _scm.h: Since this is the internal libguile header, put things
470 here that all (or a majority) of the libguile files will want.
471 Don't #include <libguile.h> here; that generates dependencies on
472 way too much. Instead, get "__scm.h", "error.h", "pairs.h",
473 "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
474 "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
476 * alist.c: Get "eq.h", "list.h", "alist.h".
477 * append.c: Get "append.h", "list.h".
478 * arbiters.c: Get "arbiters.h", "smob.h".
479 * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
480 * boolean.c: Get "boolean.h".
481 * chars.c: Get "chars.h".
482 * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
484 * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
485 "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
486 "genio.h", "throw.h", "eval.h".
487 * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
488 * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
490 * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
491 * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
492 "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
493 "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
495 * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
496 * feature.c: Get "feature.h".
497 * files.c: Get "files.h".
498 * filesys.c: Get "filesys.h", "smob.h", "genio.h".
499 * fports.c: Get "fports.h", "markers.h".
500 * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
501 "genio.h", "struct.h", "stackchk.h", "stime.h".
502 * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
503 "read.h", "strports.h", "tag.h".
504 * genio.c: Get "genio.h", "chars.h".
505 * gsubr.c: Get "gsubr.h", "genio.h".
506 * hash.c: Get "hash.h", "chars.h".
507 * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
508 * init.c: Get everyone who has an scm_init_mumble function:
509 "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
510 "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
511 "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
512 "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
513 "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
514 "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
515 "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
516 "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
517 "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
518 "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
519 "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
520 "async.h", "arbiters.h", "append.h", "alist.h".
521 * ioext.c: Get "ioext.h", "fports.h".
522 * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
523 * list.c: Get "list.h", "eq.h".
524 * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
525 * mallocs.c: Get "smob.h", "genio.h".
526 * markers.c: Get "markers.h".
527 * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
529 * numbers.c: Get "unif.h", "genio.h".
530 * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
531 * options.c: Get "options.h".
532 * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
533 "markers.h", "chars.h", "genio.h".
534 * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
535 "read.h", "scmsigs.h", "genio.h", "fports.h".
536 * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
537 "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
539 * procprop.c: Get "procprop.h", "eval.h", "alist.h".
540 * procs.c: Get "procs.h".
541 * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
542 "chars.h", "smob.h", "unif.h".
543 * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
544 "eval.h", "genio.h", "chars.h".
545 * root.c: Get "root.h", "stackchk.h".
546 * scmsigs.c: Get "scmsigs.h".
547 * sequences.c: Get "sequences.h".
548 * simpos.c: Get "simpos.h", "scmsigs.h".
549 * smob.c: Get "smob.h".
550 * socket.c: Get "socket.h", "feature.h".
551 * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
553 * stackchk.c: Get "stackchk.h", "genio.h".
554 * stime.c: Get "stime.h"."libguile/continuations.h".
555 * strings.c: Get "strings.h", "chars.h".
556 * strop.c: Get "strop.h", "chars.h".
557 * strorder.c: Get "strorder.h", "chars.h".
558 * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
559 * struct.c: Get "struct.h", "chars.h".
560 * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
561 "variable.h", "eval.h", "chars.h".
562 * tag.c: Get "tag.h", "struct.h", "chars.h".
563 * throw.c: Get "throw.h", "continuations.h", "debug.h",
564 "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
565 * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
566 "smob.h", "genio.h", "eval.h", "chars.h".
567 * variable.c: Get "variable.h", "smob.h", "genio.h".
568 * vectors.c: Get "vectors.h", "eq.h".
569 * version.c: Get "version.h".
570 * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
571 * weaks.c: Get "weaks.h".
573 * stackchk.h: #include "libguile/debug.h",
575 * print.h, read.h: #include "options.h", since everyone who uses
576 either of these files will need that.
578 * smob.h: #include "ports.h", "genio.h", and "print.h", since
579 anyone who uses this file will need them to define the smob
580 printing functions. Also, get markers.h, since people will need
581 to #define the mark functions.
583 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
584 * ports.h: ... to here.
586 * ports.h (scm_port_table_size): Explicitly give type as 'int';
587 don't rely on archaic C default type rules.
589 * fports.h: #include "libguile/ports.h", since you need that in
592 * genio.h: #include "libguile/print.h", because you need that to
593 parse this; don't bother #including "ports.h", since print.h gets
596 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
598 * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
599 this; it's now a reference to an element of *scm_root.
601 * debug.h: Don't #include "options.h"; the compiler won't be able
602 to find that once the headers are installed; instead, #include
603 "libguile/options.h".
604 * gc.h: Same, with marksweep.h.
605 * mbstrings.h: Same, with symbols.h.
606 * scmhob.h: Same, with _scm.h.
607 * smob.h: Same, with params.h.
609 * Makefile.in (depends): Don't nuke scmconfig.h and the generated
610 C files; there's no need for this, and it forces recompilations
613 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
615 * error.c (scm_error): declare scm_error_callback.
617 * error.h: prototype for scm_error_callback.
619 * __scm.h: define lgh_error.
620 (SCM_SYSERROR): redefine using lgh_error.
622 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
624 * error.c (scm_error): new procedure.
626 * error.h: prototype for scm_error.
628 * Makefile.in (install): install scmconfig.h from the current
629 directory, not $(srcdir).
631 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
633 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
634 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
635 feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
636 hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
637 mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
638 posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
639 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
640 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
641 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
642 vports.h, weaks.h: #include "libguile/__scm.h", not
643 <libguile/__scm.h>. This allows 'gcc -MM' to determine which
644 dependencies are within libguile properly.
646 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
648 * Makefile.in (.c.x): Simplify; there's no need to run this rule
649 when scmconfig.h doesn't exist.
651 * load.c (scm_sys_try_load): Correct spelling.
653 * feature.c (scm_loc_features): Make this static.
655 * Makefile.in (libpath.h): Omit trailing slash from path. We
656 shouldn't require it of users, so why put it here?
658 Move code to initialize and search %load-path from ice-9 to C
659 code, so we can use the load-path to find the ice-9 boot code;
660 this makes it easier to run Guile without installing it. See
661 corresponding changes in guile/Makefile.in.
662 * feature.c: Move stuff concerned with the load path to load.c.
663 (scm_compiled_library_path): Deleted.
664 Don't #include libpath.h here.
665 * feature.h: Don't mention scm_compiled_library_path.
666 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
667 <sys/stat.h>, and <unistd.h> (if present).
668 (R_OK): #define if the system hasn't deigned to.
669 (scm_loc_load_path): New variable.
670 (scm_init_load_path, scm_sys_search_load_path,
671 scm_sys_try_load_path): New functions.
672 (scm_init_load): Initialize scm_loc_load_path to point to the
673 value cell of the Scheme %load-path variable.
674 * load.h: Add declarations for scm_sys_search_load_path,
675 scm_sys_try_load_path.
676 * init.c: Call scm_init_load_path.
677 * Makefile.in (feature.o, load.o): Dependencies updated.
679 * load.c, load.h: Rewrite using PROTO macro.
681 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
683 * gc.c (scm_cellp): New function: C predicate to determine if an
684 SCM value can be regarded as a pointer to a cell on the heap.
686 * gc.h: Added declaration of scm_cellp.
688 * gdb_interface.h: New file: The GDB interface header from the GDB
691 * gdbint.c: New file: GDB interface.
693 * gdbint.h: New file: GDB interface.
695 * libguile.h: Added #include <libguile/gdbint.h>.
697 * init.c (scm_boot_guile): Added scm_init_gdbint.
699 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
700 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
701 found if object files and source are kept separate).
703 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
705 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
707 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
709 * configure.in: Don't substitute the values of TCL_SRC_DIR and
710 TK_SRC_DIR; they're not relevant any more.
712 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
713 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
715 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
717 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
718 search path, so we can find the <libguile/MUMBLE.h> headers.
720 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
722 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
723 implicit in the .c.o rule.
724 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
727 Put the library path in a header file, instead of passing it on
728 the command line in every compilation.
729 * Makefile.in (libpath.h): New target.
730 (feature.o): Depend on libpath.h.
731 (clean): Delete libpath.h.
732 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
733 * feature.c: ... #include "libpath.h" here.
734 * .cvsignore: Ignore libpath.h.
736 * Don't install the unwashed masses of Guile header files in the
737 main #include path; put most of them in a subdirectory called
738 'libguile'. This avoids naming conflicts between Guile header
739 files and system header files (of which there were a few).
740 * Makefile.in (pkgincludedir): Deleted.
741 (innerincludedir): New variable; this and $(includedir) are enough.
742 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
743 (installed_h_files): Divide this up. Now this variable lists
744 those header files which should go into $(includedir) (i.e. appear
745 directly in the #include path), and ...
746 (inner_h_files): ... this new variable says which files appear in
747 a subdirectory, and are referred to as <libguile/mumble.h>.
748 (h_files): List them both.
749 (install): Create innerincludedir, not pkgincludedir. Put
750 the installed_h_files and inner_h_files in their proper places.
751 (uninstall): Corresponding changes.
752 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
753 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
754 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
755 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
756 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
757 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
758 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
759 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
760 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
761 vports.h, weaks.h: Find __scm.h in its new location.
762 * __scm.h: Find scmconfig.h and tags.h in their new locations
763 (they're both "inner" files).
765 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
767 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
769 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
771 * posix.c: Doc fixes.
773 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
775 * socket.c: Don't include a prototype for inet_aton; just use a
776 K&R style declaration, to avoid warnings but minimize the chance
777 of conflicts with the system.
779 On NextStep, <utime.h> doesn't define struct utime, unless we
780 #define _POSIX_SOURCE before #including it.
781 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
782 * acconfig.h: New comment text for above CPP symbol.
783 * configure.in: Call it.
784 * posix.c: #define _POSIX_SOURCE if it seems necessary.
786 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
788 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
791 * posix.c: #include <libc.h>, if it exists.
793 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
794 don't even know if the latter exists.
796 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
797 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
798 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
800 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
802 (scm_init_posix): Use them when initializing the Scheme constants
805 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
807 * Makefile.in (libdir, includedir, bindir): Use the
808 autoconf-supplied values, instead of deriving them ourselves.
809 (pkgincludedir, datadir, pkgdatadir): New variables.
810 (install, uninstall): Put the header files in a special
811 subdirectory, not in the main search path.
813 * Makefile.in (ALL_CFLAGS): Provide the proper value for
814 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
816 * Makefile.in (IMPLPATH): Deleted; never used.
818 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
819 on the Tcl/Tk source any more.
820 (INCLUDE_CFLAGS): Remove references to the above.
822 * Makefile.in (version.o): Corrected dependencies.
824 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
826 * libguile.h: #include "version.h"
828 * init.c (scm_boot_guile): Call scm_init_version.
829 * gscm.c (gscm_run_scm): Call scm_init_version.
831 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
832 GUILE_VERSION): AC_DEFINE these.
833 (acconfig.h): #undef the above symbols.
835 * Makefile.in (libobjs): Add version.o.
836 (installed_h_files): Add version.h.
837 (c_files): Add version.c.
838 (gen_c_files): Add version.x.
839 (version.o): New rule.
840 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
841 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
842 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
843 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
844 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
845 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
846 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
847 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
848 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
849 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
850 weaks.o): Add version.h to dependency lists.
851 (markers.o): Remove duplicate rule.
853 * version.h: New file.
855 * version.c: New file.
857 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
859 * symbols.c (scm_strhash): scm_downcase is now a function, not an
860 array; use it appropriately. Since GCC is quite happy to
861 subscript functions, it never warned us about this; we should use
862 -Wpointer-arith in the future. I guess we never tested
865 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
867 * socket.c: Doc and copyright fixes.
869 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
871 * debug.c: Fixed and improved gdb support.
873 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
875 * socket.c: Added declaration of inet_aton to avoid compiler
876 warning. (Hope this solution is correct.)
878 * stime.c: Added declaration of ftime. (This is missing in
881 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
883 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
885 * Makefile.in (c_files): add strerror.c.
887 * strerror.c: new file from Emacs' sysdep.c.
888 maybe configure should also check for sys_errlist.
890 * configure.in (AC_REPLACE_FUNCS): add strerror.
892 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
894 * debug.c (scm_init_debug): Added initialization for
897 * debug.h, debug.c: Various name changes.
898 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
899 "debug-options-interface". See commentary in options.c.
901 * options.h, options.c: Options now have documentation strings.
902 Also added a long explanatory commentary.
904 * eval.c, print.h, print.c, read.h, read.c: Modifications to
907 * gscm.c, init.c, root.c, throw.c: Bug fixes:
908 last_debug_info_frame is now updated in all cases.
910 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
913 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
915 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
916 Added option STACK_CHECKING.
918 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
920 * Makefile.in: Added {debug,options,srcprop}.{h,c}
922 * __scm.h: Removed symbols for debugging support.
924 * acconfig.h: Added symbols for debugging support.
926 * * configure.in: Added user option for debugging support.
927 --enable-debug will include the debugging code into libguile.a.
929 * continuations.c (scm_make_cont): Enlarged the #if 0 around
930 scm_relocate_chunk_to_heap.
932 * * debug.c: New file: low-level debugging support. It also
933 includes support for debugging with gdb. (The extensions to gdb
934 are written by Per Bothner at Cygnus.)
936 * debug.h: New file: low-level debugging support.
938 * * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
939 argument pairs. Extensive modifications to the debugging
940 evaluator. Added "SECTION:" commentaries to clarify what happens
941 when, during double compilation. Renamed EVALIMP --> EVALIM.
942 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
943 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
944 the beginning of the file. New procedure: scm_unmemocopy.
945 Added some global state variables needed by the debugging
946 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
947 check_entry, check_apply, check_exit, debug_options and
948 evaluator_traps. New acro: undefine.
950 * eval.h: Renamed EVAL --> XEVAL.
952 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
953 --> scm_make_weak_key_hash_table.
955 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
956 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
958 * libguile.h: Conditionally include debug.h
960 * * objprop.c (scm_object_properties, scm_set_object_properties_x):
961 scm_object_properties shouldn't return handle. `handle' now gets
962 initialized in scm_set_object_properties_x. scm_object_properties
963 doesn't any longer create an entry in scm_object_whash.
965 * * options.c: New file: handling of run time options.
967 * options.h: New file: handling of run time options.
969 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
971 * * print.c: New procedure: scm_print_options
973 * print.h: Defines for print options.
975 * * read.c: New procedure: scm_read_options
977 * read.h: Defines for reader options.
979 * root.h: Added scm_source_whash among scm_sys_protects.
981 * * srcprop.c: New file: source properties.
983 * srcprop.h: New file: source properties.
985 * throw.c (jbsmob): Jump buffers are now correctly allocated.
986 (Bug found by A. Green.)
988 * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
990 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
992 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
994 * libguile.h: #include "objprop.h"; I guess this was forgotten.
996 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
997 and should be called by the final client.
999 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
1001 * gc.h: Use the PROTO macro when declaring functions.
1002 * gc.c: Use the PROTO macro when declaring static functions.
1003 Remove the CPP hair around function definitions.
1005 * gc.c (scm_init_storage): Initialize scm_asyncs.
1007 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
1008 preprocessor symbol; "__scm.h" is where it might get #defined.
1009 * __scm.h: Similar: #include <scmconfig.h> before testing
1012 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
1014 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
1016 * * init.c (scm_boot_guile): Add init_func argument; call
1017 (*init_func) instead of calling scm_appinit; it's ucky to
1018 hard-code names for the user's procedures.
1019 * init.h (scm_boot_guile): Adjust declaration.
1021 * __scm.h (PROTO): New macro, for declaring functions with
1024 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
1025 eliminate all the __STDC__ conditionals.
1026 (scm_boot_guile): Add declaration.
1027 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
1028 Remove __STDC__ conditionals around function definitions; the
1029 declarations in init.h will provide the same information, more
1032 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
1033 complain about it in the error message; the error message is
1034 adequate without that note, and there's nothing the user can do
1037 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
1039 * Makefile.in (ancillary): Drop def.sed.
1041 * posix.c (scm_init_posix): Use numeric values, rather than
1042 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
1043 F_OK. The symbols aren't available on some systems, and I'm
1044 pretty sure their values are fixed by common widespread practice.
1045 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
1047 More functions unavailable on some systems.
1048 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
1049 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
1051 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
1052 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
1053 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
1054 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
1055 stub that signals an error as the #else.
1057 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
1059 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
1061 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
1063 * unif.c: include ramap.h.
1065 * read.c (endif): case_insensative_p renamed case_insensitive_p.
1067 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
1069 * ports.c: include sys/ioctl.h.
1071 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
1073 * configure.in: check for sys/ioctl.h.
1075 * ports.c: include <malloc.h> not "malloc.h".
1077 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1079 * fports.c: remove ttyname and tmpnam declarations.
1081 * posix.c: fewer ttyname declarations.
1083 * fports.c: include <string.h> not "string.h".
1085 * init.c, ioext.c: include string.h and unistd.h.
1087 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1089 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
1090 genio.c, simpos.c, vports.c: include string.h.
1092 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
1094 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
1096 (scm_addr_buffer_size): change type from scm_sizet to int.
1097 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
1098 from scm_sizet to int.
1100 * error.c: include unistd.h.
1102 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
1105 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
1107 * __scm.hd, def.sed: deleted.
1109 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
1111 Changes for NeXT, suggested by Robert Brown.
1112 * configure.in: Call AC_TYPE_MODE_T.
1113 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
1114 NeXT. Put header file list in alphabetical order.
1115 * configure, scmconfig.h.in: Regenerated.
1116 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
1118 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
1121 * acconfig.h: New file, providing documentation for the CPP
1122 symbols defined in configure.in
1123 * acconfig-1.5.h: Removed; superceded by the above.
1125 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
1127 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
1129 * * fports.c (scm_open_file): don't return #f, throw error.
1131 * * ioext.c (fileno): renamed from %fileno.
1132 (soft-fileno): deleted.
1134 * ports.c (scm_port_revealed): don't need to check for -1 from
1136 (scm_set_port_revealed_x): return unspecified, not #f.
1138 * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
1140 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
1142 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
1144 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
1146 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1148 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
1149 This is necessary on Ultrix, and doesn't hurt portability.
1151 * Makefile.in (dist-dir): New target, implementing a new dist system.
1152 (installed_h_files): Put in alphabetical order.
1153 Remove duplicate entries for markers.h and unif.h.
1154 (c_files): Remove duplicate entries for markers.c.
1155 (ancillary): Renamed from anillery; all uses changed. Remove
1156 PLUGIN; it's a directory, and needs special treatment in dist-dir.
1157 Remove all the ../doc/* files; doc/Makefile.in handles that.
1159 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
1161 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
1162 every if must have an else, or else the whole command has a
1163 non-zero exit code whenever the if's condition is false.
1165 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
1167 * posix.c: include string.h.
1169 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
1171 * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
1174 * * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
1175 Remove leading % from scheme names.
1176 Do not return error values, call SCM_SYSERROR or similar.
1178 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
1180 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
1182 * struct.c (scm_init_struct): new file.
1184 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
1186 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
1187 (scm_list_head): added list-head for rapidly chopping argument
1188 lists off of longer lists (and similar).
1190 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
1192 * objprop.c (scm_object_property): assq the cdr of the whash
1193 handle for obj, not the handle itself.
1195 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
1197 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
1198 weak hash tables last of all marking to avoid an obscure gc bug.
1199 WARNING: circular lists stored in a weak hash table will hose us.
1201 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
1203 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
1204 new functions similar to scm_substring_move_left_x and
1205 scm_substring_move_right_x.
1207 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
1209 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
1212 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
1214 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
1216 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
1218 * strports.c (scm_strprint_obj): convenience function. C for
1219 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
1221 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
1222 removed to a separate library
1224 * init.c (scm_boot_guile): copied from guile-tcl.c.
1225 Initialization specific to tcl interpreters removed.
1227 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
1229 * ports.c (scm_ports_prehistory): size malloced here doesn't
1230 matter so long as it is non-0 (got rid of "* 4").
1232 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
1234 * gscm.h: gscm_mkarray eliminated (presumably was not being used
1235 since its definition was bogus).
1237 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
1239 * mallocs.[ch]: back again (for rx at least).
1241 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
1243 * ports.c: removed functions relating to the mapping between ports
1244 and descriptors. (That stuff is unix-specific and should be collected
1245 in a separate library).
1247 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
1248 (Tom Mckay@avanticorp.com)
1250 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
1252 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
1253 handled correctly (SCM_FREEP was applied to them) -- test for
1254 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
1255 being overwritten with #f. (brown@grettir.bibliotech.com)
1257 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
1259 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
1260 for a specific symbol or for all symbols.
1262 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
1264 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
1265 keys and weak values confused).
1267 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
1269 * list.c (scm_last_pair): map '()=>'()
1271 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
1273 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
1274 Generalized assoc and hash-table functions.
1275 Factored pairs.c into multiple files.
1277 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
1279 * gscm.c (gscm_run_scm): got rid of objprop.
1281 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
1283 * genio.c (scm_getc):
1284 NOTE: fgetc may not be interruptable.
1286 * procprop.c (scm_stand_in_scm_proc):
1287 NOTE: don't use a alist here.
1288 (scm_set_procedure_properties_x): fix type checking throughout this file.
1290 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
1292 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
1293 after freeing part of the port table.
1295 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
1297 * strports.c (scm_mkstrport):
1298 * vports.c (scm_make_soft_port): allocate a port table entry
1299 (possibly triggering gc) before setting the tag of the corresponding
1302 * pairs.c (scm_delq_x): never throw an error.
1304 * vectors.c (scm_make_vector): made the default vector fill argument
1305 into '() (much more useful than the previous value, "#unspecified")
1307 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
1309 * ports.c (scm_add_to_port_table): Added fields
1310 to port table entries: file_name, line_num, col.
1311 Update these in open_file, gen_getc and gen_ungetc.
1312 Added procedures to access those fields.
1314 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
1316 * procs.c (scm_make_subr_opt): new entry point for making
1319 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
1321 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
1323 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
1325 * numbers.c (scm_exact_p): This function no longer
1326 implements "integer?".
1328 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
1330 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
1331 (scm_gc_stats): return an assoc of useful data. Replaces "room"
1332 and the stats reporting formerlly built into repl.
1334 * repl.[ch]: removed.
1335 GC statistics keeping moved to gc.c.
1336 Other statistics keeping can be done from Scheme.
1337 REPLS are now written in Scheme.
1339 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
1341 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
1342 conservatively marked objects).
1344 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
1346 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
1348 * feature.c (scm_compiled_library_path): moved here from repl.c.
1349 This file is for stuff relating specifically to Scheme libraries
1352 * eval.c (scm_m_define): don't give warning about redefinition, don't
1355 NOTE: this should throw a resumable exception with parameters --
1356 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
1358 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
1360 * error.c: scm_warn eliminated.
1362 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
1364 * repl.c, marksweep.c, gc.c (various):
1365 lose exit_report, growth_mon.
1367 * gscm.c: got rid of verbosity functions.
1369 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
1371 * throw.c (scm_ithrow): guard against the bad-throw hook changing
1372 between the call to procedurep and use.
1374 * error.c (scm_everr):
1376 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
1379 * strports.c: don't reveal the port's string to the caller
1380 because it changes size.
1382 (stputc stwrite): check/change the strings length with interrupts
1385 * objprop.c (scm_set_object_property_x &c): use the generic
1386 hashing functions and be threadsafe.
1388 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
1389 (per suggestion jaffer@gnu.ai.mit.edu).
1391 * mbstrings.c (scm_multi_byte_string): guard against argument list
1394 * strings.c (scm_make_string): loop cleanup
1396 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
1399 * weaks.c (scm_weak_vector): guard against argument list
1402 * variable.c (scm_builtin_variable): check for/make a built-in
1405 * vectors.c (scm_vector): while filling the new array,
1406 guard against a list of fill elements that grows after
1407 the vector is allocated.
1409 * hashtab.c -- new file: general hash table
1410 functions. hash, hashq, hashv, hashx.
1412 * tags.h: made wvect an option bit of vector.
1414 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
1416 * symbols.c: made the basic symbol table operations atomic.
1418 * root.c &c.: collected stack-specific global state.
1419 linum/colnum etc *should* be port-specific state.
1421 * struct.c (scm_init_struct): init the first struct type during
1422 initialization to fix a race condition.
1424 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
1425 object, not in a global.
1426 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
1428 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
1429 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
1431 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
1432 and C symbols to begin with SCM_ or scm_.
1434 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
1436 * gsubr.c (scm_gsubr_apply): statically allocate the
1437 array of arguments (bothner@cygnus.com).
1439 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
1441 * scmsigs.c: Simplified to use async rountines.
1443 * async.c: New support for interrupt handlers.
1445 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
1447 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
1448 set the multi_byte flag correctly in symbols. This is wrong.
1449 intern_obbary_soft and msymbolize should take an extra parameter.
1450 Also, weird multibyte symbols don't print correctly.
1451 The weird symbol syntax is also a bit bogus (emacs doesn't quite
1454 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
1456 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
1457 use the system symhash. == #t means create an uninterned symbol.
1459 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
1461 * strings.c (scm_make_shared_substring): build'em.
1462 It might better to keep a table of these and use one
1463 less cons-pair per shared-substring.
1465 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
1467 * strings.c (scm_string_shared_substring): create shared
1468 substrings. (Doesn't handle mb strings yet).
1470 * mbstrings.c (scm_print_mb_string): handle RO strings.
1472 * print.c (scm_iprin1): print substrings as their non-substring
1473 counterparts (dubious).
1475 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
1478 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
1480 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
1482 * eq.c (scm_equal_p): handle RO and MB strings.
1484 * symbols.c (scm_string_to_symbol):
1485 (scm_string_to_obarray_symbol):
1486 * strop.c (scm_i_index):
1488 (scm_string_null_p):
1489 (scm_string_to_list):
1490 * strings.c (scm_string_length):
1493 (scm_string_append):
1494 * simpos.c (scm_system):
1496 * fports.c (scm_open_file):
1497 * strorder.c (scm_string_equal_p):
1498 (scm_string_ci_equal_p):
1499 (scm_string_less_p):
1500 (scm_string_ci_less_p):
1501 * pairs.c (scm_obj_length):
1502 * mbstrings.c (scm_multi_byte_string_length):
1504 Use RO string macros for RO strings.
1506 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
1508 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
1510 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
1511 index/rindex. Do handle embedded \000 characters.
1513 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
1515 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
1516 Eliminate a (presumed) warning on some systems.
1518 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
1519 (Mikael Djurfeldt <mdj@nada.kth.se>)
1521 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
1523 * eval.c (scm_map): added argument type checking.
1524 (kawai@sail.t.u-tokyo.ac.jp)
1526 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
1527 for C++. (Seth Alves <alves@gryphon.com>)
1529 (gscm_cstr): uses an uninitialized local variable causing
1530 segv. (kawai@sail.t.u-tokyo.ac.jp)
1533 * lvectors.c (scm_get_lvector_hook):
1534 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
1535 It seems to me like if it is broken again in guile-iv...Here is a patch.
1536 "! || (LENGTH (keyvec) == 0))"
1537 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
1540 * gscm.c (gscm_sys_default_verbosity):
1541 incorrectly declared for non-__STDC__
1542 (Tom_Mckay@avanticorp.com)
1544 * ports.c (scm_setfileno): Tweak the macro a bit
1545 to make it easier to port to systems that use
1546 more than a single structure field to hold a descriptor.
1548 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
1549 Give a warning, not an error, for unrecognized modes.
1551 * eval.c (SCM_CEVAL):
1552 static char scm_s_for_each[];
1553 static char scm_s_map[];
1556 * strings.c (scm_string_p):
1557 static char s_string[];
1560 * struct.c (scm_sys_struct_set_x):
1561 static char s_sys_make_struct[];
1562 static char s_sys_struct_ref[];
1563 static char s_sys_struct_set_x[];
1564 Rearrange code to eliminate those forward decls for the sake of
1567 * variable.c (make_vcell_variable): static char s_make_variable[];
1570 * fports.c (scm_port_mode):
1571 chars modes[3] = "";
1575 (Tom_Mckay@avanticorp.com)
1578 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
1579 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
1580 (Tom_Mckay@avanticorp.com)
1582 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
1583 scm_num_eq_p() was scm_equal_p().
1584 (Tom_Mckay@avanticorp.com)
1586 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
1587 (Tom_Mckay@avanticorp.com)
1589 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
1591 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
1592 (Tom_Mckay@avanticorp.com)
1594 * strop.c (scm_substring_fill_x):
1595 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
1596 (Tom_Mckay@avanticorp.com)
1598 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
1599 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
1601 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
1602 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
1604 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
1605 can turn into an obscure gc bug.
1607 * chars.c (scm_char_p): fixed PROC call.
1609 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
1612 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
1614 * elisp.c (new file): dynamic scoping and other bits for
1615 elisp. Don't use this yet unless you specificly want to
1616 hack on elisp emulation.
1618 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
1619 scope created by scm_with_dynamic_bindings_operation_x, swap
1620 the bindings of that scope with the corresponding globals.
1622 * continuations.c (scm_make_cont): when a continuation is captured,
1623 relocate the continuation stack chunks registered on the wind chain
1626 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
1628 * eval.c (SCM_CEVAL): if the function position evaluates
1629 to a macro, process it accordingly. (Previously, macros were
1630 handled only if the function position was a symbol naming a
1631 variable bound to a macro).
1633 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
1635 * eval.c (scm_m_set): allow multi-variable set! like
1638 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
1640 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
1641 STREAM of ports into the port table and replaced it with a
1644 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
1646 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
1648 * mbstrings.c (new file): functions on multi-byte strings.
1650 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
1651 for multi-byte strings. Moved the string tag.
1653 * chars.h chars.c repl.c (many functions): made scm_upcase and
1654 scm_downcase functions that are safe for extended character sets.
1656 Changed the range of integer->char.
1658 Changed the type of SCM_ICHR.
1660 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
1662 * guile.c: Changed init file name from "SCM_INIT_PATH" to
1665 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
1667 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
1668 know that it's safe to pass an object to gscm_get_type?)
1669 (gscm_get_type): Fix tyop in error message.
1671 * variable.c (scm_variable_ref): fixed assertion test.
1672 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
1674 * gscm.h: fixed several prototypes, notably gscm_vref.
1675 Add gscm_is_eq and temporarily commented out gscm_eq (see
1676 the note in gscm.h near gscm_eq if this change effects your
1678 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1680 * pairs.c (scm_obj_length): see next entry.
1682 * gscm.h (gscm_obj_length): A way to get an integer
1683 length for lists, strings, symbols (treated as strings),
1684 and vectors. Returns -1 on error.
1686 * eq.c (scm_equal_p): fixed smob case.
1687 (William Gribble <grib@arlut.utexas.edu>)
1689 * Makefile.in (X_CFLAGS): defined.
1690 (William Gribble <grib@arlut.utexas.edu>)
1692 * gscm.h (gscm_2_double): provided now
1693 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1695 Tue Jun 13 01:04:09 1995 gnu