1 Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
3 * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
4 arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
5 chars.c, chars.h, continuations.c, continuations.h, debug.c,
6 debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
7 eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
8 filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
9 gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
10 hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
11 kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
12 markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
13 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
14 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
15 procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
16 root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
17 simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
18 stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
19 strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
20 struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
21 unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
22 version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
23 declare functions with prototypes. (Patch thanks to Marius
26 More prototype-related changes from Marius Vollmer:
27 * gdb_interface.h: Wrapped header file in #ifdef/#endif
28 * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
29 * ports.h (ptobfuns): Added prototypes. This means some casting in
31 * fports.c: Added casts for initializations, since the functions
32 are defined to take FILE * as their stream argument, not SCM.
33 * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
34 * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
35 to `char *str_data' to conform to prototype.
37 Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
39 * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
41 * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
43 * stime.c, stime.h: use SCM_P method.
45 Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
47 * eval.c (scm_nconc2last): Don't accept an empty list; apply must
48 be given at least two arguments. Insist that lst's last element
49 be a list, but don't make any requirements of its predecessors.
51 Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
53 * eval.c (scm_nconc2last): Revert last change; there seems to be
54 other stuff going on here.
56 Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
58 * eval.c (scm_nconc2last): Make sure that each element of lst
59 (which is a list of argument lists, except for the tail) is a
60 proper list, i.e., finite and terminated by '().
62 Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
64 * unif.c (scm_ra_set_contp): Localize `inc' declaration.
67 * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
68 symbolic name for the tag, scm_tc3_cons_gloc, instead of just
71 * vectors.c (scm_make_vector): Fill vectors with the undefined
72 value, to help make Guile Scheme code more portable to other
75 * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
76 * symbols.h, tags.h: Doc fixes.
78 Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
80 * async.c (scm_take_signal): Doc fixes.
82 Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
84 * numbers.c (scm_divbigint): When the remainder is zero, we don't
85 want to subtract it from the modulus; we just want to leave it
88 Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
90 * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
93 * throw.h (scm_catch_apply): Removed the `lazyp' argument.
95 * throw.c (scm_catch_apply): Finished implementation of
98 Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
100 * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
102 (scm_init_filesys): set "i/o-extensions" feature.
105 Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
107 * Makefile.in (root.o): Correct dependencies.
109 Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
111 * Makefile.in: Added dependency entry for root.o.
113 * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
114 throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
116 * init.c (scm_start_stack): Set initial root continuation number
119 * procs.c: New function: scm_thunk_p.
121 * procs.h: Added declarations of scm_thunk_p.
123 * root.c: Renamed `call-with-new-root' -->
124 `call-with-dynamic-root'.
125 (cwdr): Removed allocation of new root state. This should be done
126 separately by use of scm_make_root.
127 (scm_apply_with_dynamic_root): New function: Does what it
128 sounds like. Needed when spawning threads.
130 * root.h: Added member last_debug_frame to root state.
131 Added #include "libguile/debug.h"
133 * throw.c: Renamed scm_catch --> scm_catch_apply and added more
134 arguments. The motivation is that code in root.c needs catch
135 functionality, and we want to avoid code duplication.
136 New functions: scm_catch, scm_lazy_catch. These are wrappers for
137 scm_catch_apply. scm_lazy_catch is intended to introduce catch
138 handlers that run without popping the stack into the dynwind
141 * throw.h: Added prototypes for scm_catch_apply and
144 Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
146 * root.h (scm_root, scm_set_root): Decouple thread support details
147 by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
148 SCM_SET_THREAD_LOCAL_DATA.
150 * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
151 and tortoise scanning loop.
153 Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
155 * Makefile.in: Rebuild dependencies.
157 * libguile.h: #include "libguile/print.h" before "smob.h", since
158 the latter uses the print_state structure.
160 * throw.c (scm_ithrow): Use the correct variable when checking to
161 see if a given element of scm_dynwinds is a valid catch.
163 * throw.c (scm_ithrow): If scm_dynwinds has invalid list
164 structure, abort; don't just silently ignore the garbage.
166 * _scm.h: #include "print.h" here, since it seems to be used just
168 * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
169 strports.c, unif.h: Don't #include "print.h".
171 Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
173 * feature.h (scm_loc_features): Removed external declaration.
174 (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
176 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
178 * feature.c (scm_init_feature): Added threads feature (needs to be
179 initialized here, since features doesn't exist when
180 scm_init_threads is called).
182 * libguile.h: Added #include "libguile/../threads/threads.h".
183 (This is a kludge to get thread support working. This should be
186 * configure.in, acconfig.h: Added flags for thread support.
188 * scmsigs.c: Define `signal' to be `pthread_signal' if using
191 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
192 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
195 * _scm.h: Added conditional #include "threads.h"
197 * __scm.h (SCM_ASYNC_TICK): Added call to macro
198 SCM_THREADS_SWITCHING_CODE.
200 * init.c (scm_start_stack): Call `scm_make_root' to dynamically
201 allocate the basic dynamic root object.
202 (scm_boot_guile): Added call to scm_init_root.
204 * * root.c, root.h: Added root smob.
205 (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
206 functions: Implements dynamic roots mostly according to spec in
207 SCM manual. Main difference is that the second argument is a
208 throw handler rather than an error "thunk".
210 * root.h: Added declaration of scm_init_root.
212 * root.c: Added #include "genio.h", #include "smob.h", #include
213 "pairs.h", #include "throw.h", #include "dynwind.h", #include
215 (scm_init_root): Added #include "root.x".
217 * throw.c: Added #include "stackchk.h"
218 (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
219 SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
220 can be used in scm_call_with_new_root; Added reenabling of stack
221 checking when catching a throw.
223 Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
225 * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
227 * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
228 element is not found, as per R4RS.
230 Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
232 * list.c: Doc fixes throughout.
234 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
236 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
237 declare the char * to be const. Avoids a warning in rgx.c.
239 * ports.h: spelling fix.
241 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
244 * load.c (scm_sys_try_load_path): throw an error if file not found
245 (like it says it in NEWS).
247 Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
249 * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
250 PROPS slot to '(), not #f; it's an empty alist.
252 * throw.h, throw.c: Use SCM_P instead of #if hair.
254 Remove special support for uncaught throws; see throw.c for
256 * throw.c (uncaught_throw): New function.
257 (scm_ithrow): Call uncaught_throw if we don't find a throw
258 target; don't mess with scm_bad_throw_vcell.
259 (scm_bad_throw_vcell): Variable deleted.
260 (scm_init_throw): Don't initialize it.
262 * throw.c (scm_ithrow): Don't let outer key matches shadow inner
265 Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
267 * numbers.c (scm_istr2int): If the number is short (as most
268 numbers are), just call scm_small_istr2int to deal with it.
269 (scm_small_istr2int): New function, created by un-#ifdefing the
270 non-bignum version of scm_istr2int and renaming it.
272 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
274 * load.c (scm_sys_try_load): don't check whether value returned
275 by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
276 Change the Scheme name from %try-load to primitive-load.
278 * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
279 Can avoid passing a message, allowing it to be derived in the
280 error handler (e.g., if we want to throw to the key both from
283 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
285 * * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
286 references now have a new appearance which is more compact and
287 also gives a clue about what the target of the reference is.
288 By setting parameters in the print state, more fancy printing can
289 be achieved. This is used by the (not yet commited) backtrace
292 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
294 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
297 * print.c: Added #include "struct.h". Removed function
300 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
301 scm_iprin1. Removed prototype for scm_prlist.
303 * arbiters.c (prinarb),
304 async.c (print_async),
305 debug.c (prindebugobj, prinmemoized),
306 eval.c (prinprom, prinmacro),
307 filesys.c (scm_fd_print, scm_dir_print),
309 mallocs.c (prinmalloc),
310 numbers.c, numbers.h (scm_floprint, scm_bigprint),
311 smob.h (scm_smobfuns),
312 srcprop.c (prinsrcprops),
314 unif.c, unif.h (scm_raprin1, rapr1),
315 variable.c (prin_var): Changed argument `int writing' to
316 `scm_print_state *pstate'.
318 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
319 that it will be called before scm_init_print.
321 * print.c (scm_prin1): Print states are now allocated when calling
322 scm_prin1 and then passed around to all printing functions as an
323 argument. A cache `print_state_pool' enables reuse of print
325 (scm_make_print_state): New function.
326 (scm_iprin1): Adaption to print states.
327 (scm_iprlist): An initial "hare and tortoise" scan brings down
328 time complexity to O (depth * N). (Better time complexity will be
329 achieved when the printing code is completely rewritten.)
331 Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
333 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
334 AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
335 it gets done whether or not the cache variable has a value.
337 Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
339 Distinguish #f and ().
340 * __scm.h: #undef SICP.
341 * pairs.h (SCM_EOL): Delete this definition, equating it with
343 * tags.h (SCM_EOL): Give it a new definition here; I think I found
344 the value it used to have. Doc fixes, too.
346 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
348 * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
349 scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
350 Lord's implementation of structs, allowing for tail arrays as
351 described in the manual. Also fixed some bugs. (Both the interface
352 and the implementation should be improved.)
354 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
356 * print.c, print.h: Closures now print like #<procedure foo (x)>.
357 People who whish to see the source can do `(print-enable 'source)'.
358 Removed #ifdef DEBUG_EXTENSIONS.
360 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
362 * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
363 integer (assuming for now accepting an integer is a good thing).
365 * error.c, fports.c: replace use of %S in lgh_error args with %s.
366 %S will be used instead for write'ing arguments.
368 * unif.c (scm_transpose_array): change arguments in the SCM_WNA
369 asserts. fix a few other asserts.
370 (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
371 scm_uniform_vector_ref, scm_array_set_x,
372 scm_dimensions_to_unform_array): change args in
373 SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
374 strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
375 scm_substring_fill_x): likewise.
376 gsubr.c (scm_gsubr_apply): likewise.
377 eval.c (SCM_APPLY): likewise.
379 * eval.c (4 places): replace scm_everr with lgh_error or
382 * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
383 scm_memory_error): new procedures.
384 * scm_everr: deleted. can use scm_wta, dropping first two args.
385 scm_error: convert NULL subr to SCM_BOOL_F.
387 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
390 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
393 * error.c, error.h: new error keys: scm_arg_type_key,
394 scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
396 scm_wta: reimplement using lgh_error instead of scm_everr.
398 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
400 * gdbint.c: scm_lread now has one more argument.
402 * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
403 scm_port_\1; Added mutator scm_set_port_filename_x (used when
404 loading source from non-file ports, which, e. g., happens when
405 using the Emacs interface).
407 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
410 * read.c: Added code for recording of positions of source code
411 expressions; New functions: recsexpr, scm_lreadrecparen;
412 _scm_make_srcprops --> scm_make_srcprops
413 (scm_flush_ws): Removed updating of positions counters. This work
414 is already done by scm_gen_getc
416 * read.h: Added prototype for scm_lreadrecparen
418 * print.c: Added #include "alist.h"
420 * eval.c: Added #include "hash.h"
422 * eq.c: Added #include "ramap.h"
424 * options.c: Documentation fixes.
426 * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
427 (scm_init_srcprop): Adjusted size of initial source-whash. Name
428 changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
429 --> scm_make_srcprops
431 * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
432 _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
433 function calls in the definition of the whash access macros.
435 Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
437 * init.c (scm_boot_guile): Add level of indirection to
438 scm_boot_guile_1() to ensure that stack base pointer is properly
439 initialized. There was no guarantee that variable i was the
440 highest/lowest variable on stack (i.e. the call frame of
441 scm_boot_guile was not completely protected from gc).
443 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
445 * ports.h (scm_port_table): put back file_name, it will be used to
446 support debugging. Undo related changes in fports.c, ioext.c,
449 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
451 * ports.h (scm_port_table): remove file_name member for now, it seems
453 * fports.c (scm_open_file): don't set file_name in PTAB.
454 (prinfport): don't use file_name in PTAB.
455 * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
456 * ports.c (scm_add_to_port_table): don't intialize file_name.
457 (scm_port_file_name): remove for now.
458 * gc.c (scm_gc_mark): don't mark PTAB file_name.
460 * fports.h (scm_mkfile): prototype deleted.
461 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
463 * debug.c, unif.c: use scm_out_of_range instead of
464 wta for range errors (ASSERT still needs work).
466 * error.c, error.h (scm_out_of_range): new procedure.
468 * error.c, error.h (scm_out_of_range_key): new key.
470 * posix.c (scm_sync): #else was missing.
472 * error.c, error.h: append _key to names scm_num_overflow and
475 * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
476 of consing an empty list.
477 (SCM_SYSERROR etc.): move into error.c, make them procedures instead
478 of macros, saves code and string space.
479 error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
480 fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
481 lower case. Rename scm_syserror_m to scm_syserror_msg.
482 error.h: prototypes for new procedures.
484 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
486 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
488 * error.c, error.h: setup scm_num_overflow key.
490 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
491 Remove definition of SCM_OVSCM_FLOW.
493 * fports.c (scm_open_file): use SCM_SYSERROR_M.
495 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
496 explicit message and args.
498 * error.c, error.h, __scm.h: change system_error_sym to
501 * error.c (system_error_sym): remove leading %% from the Scheme name
504 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
506 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
508 * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
509 fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
510 numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
511 tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
512 renamed. (These were introduced by unsupervised name
515 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
517 * * print.c: Added code for detection of circular references during
518 printing. (init_ref_stack, grow_ref_stack): New functions. Added
519 a hook for printing of closures (accessible via print options).
520 This leads to a split of calls to scm_iprin1 into two classes:
521 elementary print operations (e. g. the code which prints a smob)
522 still use scm_iprin1 while top level calls (like scm_display) use
523 scm_prin1. scm_prin1 begins by clearing the data structure used
524 to record reference information.
526 * print.h: Added declarations of scm_prin1 and scm_prlist.
528 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
530 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
532 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
534 * error.c (err_head): scm_iprin1 --> scm_prin1
536 * debug.c: Adjusted header comment.
540 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
542 * strerror.c: Doc fix.
544 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
546 * gdbint.c (gdb_read): Now possible to run during GC.
547 (unmark_port, remark_port): New functions.
549 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
551 * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
552 of allocating a new string object. Also, increase size by
553 the factor 2 instead of 1.5.
555 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
557 * __scm.h (SCM_P): Corrected to run under traditional C.
559 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
562 * async.c: Calls to scm_sysintern corrected.
564 * async.h (scm_async_clock): Redundant declaration removed.
566 * continuations.c (scm_dynthrow): Redundant declaration removed.
568 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
569 Definition typos corrected.
571 * debug.h: Missing declarations of functions in debug.c added
574 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
575 Missing declarations to functions in eval.c added.
577 * filesys.c: Possibly uninitialized variable rv.
579 * gc.h (scm_object_addr, scm_unhash_name): Missing
580 declarations of functions defined in gc.c added.
582 * genio.c: Possible typos str_data -> wstr_data. ???
584 * genio.c: Possibly unintended shadowing of local variable
585 `int c' (gotos out of scope of inner `c'). ???
587 * init.c: Uninitialized `SCM last' may be used.
589 * ioext.h: (scm_sys_isatty_p): Typo.
591 * list.h (scm_list_head): Missing prototype for function in
594 * numbers.c (scm_two_doubles): Changed from extern to static
595 (is used only within numbers.c).
597 * numbers.h: Repeated declarations removed.
599 * ports.h (scm_close_all_ports_except): Declaration for the
600 function defined in ports.c added.
602 * posix.h: Missing declarations added.
604 * procs.h (scm_make_subr_opt): Missing declaration added.
606 * socket.h (scm_sys_gethost): Missing declaration added.
608 * socket.h: Redundant declarations removed (they are in fdsocket.h).
610 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
611 Missing declarations added.
613 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
615 * struct.c: Uninitialized variable `SCM answer' may be used.
617 * unif.c (l2ra): Declaration prototype.
619 * unif.c (scm_array_equal_p): Dummy definition removed (it is
622 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
623 Redundant declarations removed (they are in ramap.h).
625 * variable.h (scm_make_udvariable,
626 scm_make_undefined_variable): Declaration corrected to
627 correspond variable.c.
629 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
630 Missing declarations added.
632 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
634 * Makefile.in (distclean): Don't forget to delete fd.h.
636 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
638 * fd.h.in, tags.h: Trivial cleanups.
640 * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
641 marksweep.h just declared functions from gc.c.
642 * gc.h, libguile.h: Don't #include "marksweep.h".
643 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
644 marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
645 dependencies updated.
647 * libguile.h: Don't #include "files.h"; it's been deleted.
649 * files.c (scm_sys_delete_file): Moved to filesys.c.
650 File is now empty; deleted.
652 * filesys.c: scm_sys_delete_file is now here. Remove
653 #if's; they seem to rely on remnants of an old portability
654 regimen. If the problems come up again, solve them properly,
655 using autoconf. Specifically: Don't test M_SYSV, and #define
656 remove to be unlink if it's #defined; don't use remove just
657 because HAVE_STDC_HEADERS is #defined.
658 * filesys.h: Add declarations for scm_sys_delete_file.
659 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
660 files.o, files.h, files.c, and files.x.
661 * init.c: Don't #include "files.h", and don't call scm_init_files.
663 Use SCM_P instead of PROTO; the latter intrudes on the user's
665 * params.h: Deleted; definition of SCM_P moved to...
666 * __scm.h: ... here, where it replaces PROTO macro.
667 * libguile.h, smob.h: Don't #include "params.h".
668 * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
669 smob.h: Fix prototypes accordingly.
670 * Makefile.in: Update dependencies.
671 (inner_h_files): Remove params.h.
673 * gc.c: #include "gc.h"; every module should include its header,
674 to let the compiler cross-check the declarations against the
677 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
678 simpos.h: #include "libguile/__scm.h".
680 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
682 * init.c: Don't forget to #include smob.h and init.h.
683 * Makefile.in: Dependencies updated.
685 * smob.h: Use PROTO instead of #if __STDC__.
687 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
689 * __scm.h: Doc fixes.
691 * __scm.h, libguile.h: Use "quotes" in the #includes, not
692 <angles>; this allows `make depends' to work properly.
694 * libguile.h: #include smob.h and pairs.h before the others; they
695 define typedefs used by other headers.
697 C files should #include only the header files they need, not
698 libguile.h (which #includes all the header files); the pointless
699 recompilation was wasting my time.
700 * Makefile.in (all .o dependency lists): Regenerated.
701 * libguile.h: Don't try to get a definition for size_t here...
702 * __scm.h: Do it here.
703 * _scm.h: Since this is the internal libguile header, put things
704 here that all (or a majority) of the libguile files will want.
705 Don't #include <libguile.h> here; that generates dependencies on
706 way too much. Instead, get "__scm.h", "error.h", "pairs.h",
707 "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
708 "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
710 * alist.c: Get "eq.h", "list.h", "alist.h".
711 * append.c: Get "append.h", "list.h".
712 * arbiters.c: Get "arbiters.h", "smob.h".
713 * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
714 * boolean.c: Get "boolean.h".
715 * chars.c: Get "chars.h".
716 * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
718 * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
719 "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
720 "genio.h", "throw.h", "eval.h".
721 * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
722 * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
724 * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
725 * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
726 "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
727 "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
729 * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
730 * feature.c: Get "feature.h".
731 * files.c: Get "files.h".
732 * filesys.c: Get "filesys.h", "smob.h", "genio.h".
733 * fports.c: Get "fports.h", "markers.h".
734 * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
735 "genio.h", "struct.h", "stackchk.h", "stime.h".
736 * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
737 "read.h", "strports.h", "tag.h".
738 * genio.c: Get "genio.h", "chars.h".
739 * gsubr.c: Get "gsubr.h", "genio.h".
740 * hash.c: Get "hash.h", "chars.h".
741 * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
742 * init.c: Get everyone who has an scm_init_mumble function:
743 "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
744 "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
745 "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
746 "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
747 "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
748 "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
749 "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
750 "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
751 "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
752 "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
753 "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
754 "async.h", "arbiters.h", "append.h", "alist.h".
755 * ioext.c: Get "ioext.h", "fports.h".
756 * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
757 * list.c: Get "list.h", "eq.h".
758 * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
759 * mallocs.c: Get "smob.h", "genio.h".
760 * markers.c: Get "markers.h".
761 * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
763 * numbers.c: Get "unif.h", "genio.h".
764 * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
765 * options.c: Get "options.h".
766 * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
767 "markers.h", "chars.h", "genio.h".
768 * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
769 "read.h", "scmsigs.h", "genio.h", "fports.h".
770 * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
771 "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
773 * procprop.c: Get "procprop.h", "eval.h", "alist.h".
774 * procs.c: Get "procs.h".
775 * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
776 "chars.h", "smob.h", "unif.h".
777 * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
778 "eval.h", "genio.h", "chars.h".
779 * root.c: Get "root.h", "stackchk.h".
780 * scmsigs.c: Get "scmsigs.h".
781 * sequences.c: Get "sequences.h".
782 * simpos.c: Get "simpos.h", "scmsigs.h".
783 * smob.c: Get "smob.h".
784 * socket.c: Get "socket.h", "feature.h".
785 * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
787 * stackchk.c: Get "stackchk.h", "genio.h".
788 * stime.c: Get "stime.h"."libguile/continuations.h".
789 * strings.c: Get "strings.h", "chars.h".
790 * strop.c: Get "strop.h", "chars.h".
791 * strorder.c: Get "strorder.h", "chars.h".
792 * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
793 * struct.c: Get "struct.h", "chars.h".
794 * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
795 "variable.h", "eval.h", "chars.h".
796 * tag.c: Get "tag.h", "struct.h", "chars.h".
797 * throw.c: Get "throw.h", "continuations.h", "debug.h",
798 "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
799 * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
800 "smob.h", "genio.h", "eval.h", "chars.h".
801 * variable.c: Get "variable.h", "smob.h", "genio.h".
802 * vectors.c: Get "vectors.h", "eq.h".
803 * version.c: Get "version.h".
804 * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
805 * weaks.c: Get "weaks.h".
807 * stackchk.h: #include "libguile/debug.h",
809 * print.h, read.h: #include "options.h", since everyone who uses
810 either of these files will need that.
812 * smob.h: #include "ports.h", "genio.h", and "print.h", since
813 anyone who uses this file will need them to define the smob
814 printing functions. Also, get markers.h, since people will need
815 to #define the mark functions.
817 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
818 * ports.h: ... to here.
820 * ports.h (scm_port_table_size): Explicitly give type as 'int';
821 don't rely on archaic C default type rules.
823 * fports.h: #include "libguile/ports.h", since you need that in
826 * genio.h: #include "libguile/print.h", because you need that to
827 parse this; don't bother #including "ports.h", since print.h gets
830 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
832 * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
833 this; it's now a reference to an element of *scm_root.
835 * debug.h: Don't #include "options.h"; the compiler won't be able
836 to find that once the headers are installed; instead, #include
837 "libguile/options.h".
838 * gc.h: Same, with marksweep.h.
839 * mbstrings.h: Same, with symbols.h.
840 * scmhob.h: Same, with _scm.h.
841 * smob.h: Same, with params.h.
843 * Makefile.in (depends): Don't nuke scmconfig.h and the generated
844 C files; there's no need for this, and it forces recompilations
847 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
849 * error.c (scm_error): declare scm_error_callback.
851 * error.h: prototype for scm_error_callback.
853 * __scm.h: define lgh_error.
854 (SCM_SYSERROR): redefine using lgh_error.
856 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
858 * error.c (scm_error): new procedure.
860 * error.h: prototype for scm_error.
862 * Makefile.in (install): install scmconfig.h from the current
863 directory, not $(srcdir).
865 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
867 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
868 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
869 feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
870 hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
871 mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
872 posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
873 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
874 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
875 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
876 vports.h, weaks.h: #include "libguile/__scm.h", not
877 <libguile/__scm.h>. This allows 'gcc -MM' to determine which
878 dependencies are within libguile properly.
880 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
882 * Makefile.in (.c.x): Simplify; there's no need to run this rule
883 when scmconfig.h doesn't exist.
885 * load.c (scm_sys_try_load): Correct spelling.
887 * feature.c (scm_loc_features): Make this static.
889 * Makefile.in (libpath.h): Omit trailing slash from path. We
890 shouldn't require it of users, so why put it here?
892 Move code to initialize and search %load-path from ice-9 to C
893 code, so we can use the load-path to find the ice-9 boot code;
894 this makes it easier to run Guile without installing it. See
895 corresponding changes in guile/Makefile.in.
896 * feature.c: Move stuff concerned with the load path to load.c.
897 (scm_compiled_library_path): Deleted.
898 Don't #include libpath.h here.
899 * feature.h: Don't mention scm_compiled_library_path.
900 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
901 <sys/stat.h>, and <unistd.h> (if present).
902 (R_OK): #define if the system hasn't deigned to.
903 (scm_loc_load_path): New variable.
904 (scm_init_load_path, scm_sys_search_load_path,
905 scm_sys_try_load_path): New functions.
906 (scm_init_load): Initialize scm_loc_load_path to point to the
907 value cell of the Scheme %load-path variable.
908 * load.h: Add declarations for scm_sys_search_load_path,
909 scm_sys_try_load_path.
910 * init.c: Call scm_init_load_path.
911 * Makefile.in (feature.o, load.o): Dependencies updated.
913 * load.c, load.h: Rewrite using PROTO macro.
915 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
917 * gc.c (scm_cellp): New function: C predicate to determine if an
918 SCM value can be regarded as a pointer to a cell on the heap.
920 * gc.h: Added declaration of scm_cellp.
922 * gdb_interface.h: New file: The GDB interface header from the GDB
925 * gdbint.c: New file: GDB interface.
927 * gdbint.h: New file: GDB interface.
929 * libguile.h: Added #include <libguile/gdbint.h>.
931 * init.c (scm_boot_guile): Added scm_init_gdbint.
933 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
934 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
935 found if object files and source are kept separate).
937 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
939 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
941 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
943 * configure.in: Don't substitute the values of TCL_SRC_DIR and
944 TK_SRC_DIR; they're not relevant any more.
946 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
947 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
949 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
951 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
952 search path, so we can find the <libguile/MUMBLE.h> headers.
954 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
956 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
957 implicit in the .c.o rule.
958 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
961 Put the library path in a header file, instead of passing it on
962 the command line in every compilation.
963 * Makefile.in (libpath.h): New target.
964 (feature.o): Depend on libpath.h.
965 (clean): Delete libpath.h.
966 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
967 * feature.c: ... #include "libpath.h" here.
968 * .cvsignore: Ignore libpath.h.
970 * Don't install the unwashed masses of Guile header files in the
971 main #include path; put most of them in a subdirectory called
972 'libguile'. This avoids naming conflicts between Guile header
973 files and system header files (of which there were a few).
974 * Makefile.in (pkgincludedir): Deleted.
975 (innerincludedir): New variable; this and $(includedir) are enough.
976 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
977 (installed_h_files): Divide this up. Now this variable lists
978 those header files which should go into $(includedir) (i.e. appear
979 directly in the #include path), and ...
980 (inner_h_files): ... this new variable says which files appear in
981 a subdirectory, and are referred to as <libguile/mumble.h>.
982 (h_files): List them both.
983 (install): Create innerincludedir, not pkgincludedir. Put
984 the installed_h_files and inner_h_files in their proper places.
985 (uninstall): Corresponding changes.
986 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
987 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
988 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
989 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
990 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
991 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
992 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
993 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
994 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
995 vports.h, weaks.h: Find __scm.h in its new location.
996 * __scm.h: Find scmconfig.h and tags.h in their new locations
997 (they're both "inner" files).
999 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
1001 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
1003 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
1005 * posix.c: Doc fixes.
1007 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
1009 * socket.c: Don't include a prototype for inet_aton; just use a
1010 K&R style declaration, to avoid warnings but minimize the chance
1011 of conflicts with the system.
1013 On NextStep, <utime.h> doesn't define struct utime, unless we
1014 #define _POSIX_SOURCE before #including it.
1015 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
1016 * acconfig.h: New comment text for above CPP symbol.
1017 * configure.in: Call it.
1018 * posix.c: #define _POSIX_SOURCE if it seems necessary.
1020 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
1022 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
1023 testing for __EMX__.
1025 * posix.c: #include <libc.h>, if it exists.
1027 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
1028 don't even know if the latter exists.
1030 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
1031 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
1032 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
1034 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
1036 (scm_init_posix): Use them when initializing the Scheme constants
1039 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
1041 * Makefile.in (libdir, includedir, bindir): Use the
1042 autoconf-supplied values, instead of deriving them ourselves.
1043 (pkgincludedir, datadir, pkgdatadir): New variables.
1044 (install, uninstall): Put the header files in a special
1045 subdirectory, not in the main search path.
1047 * Makefile.in (ALL_CFLAGS): Provide the proper value for
1048 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
1050 * Makefile.in (IMPLPATH): Deleted; never used.
1052 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
1053 on the Tcl/Tk source any more.
1054 (INCLUDE_CFLAGS): Remove references to the above.
1056 * Makefile.in (version.o): Corrected dependencies.
1058 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
1060 * libguile.h: #include "version.h"
1062 * init.c (scm_boot_guile): Call scm_init_version.
1063 * gscm.c (gscm_run_scm): Call scm_init_version.
1065 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
1066 GUILE_VERSION): AC_DEFINE these.
1067 (acconfig.h): #undef the above symbols.
1069 * Makefile.in (libobjs): Add version.o.
1070 (installed_h_files): Add version.h.
1071 (c_files): Add version.c.
1072 (gen_c_files): Add version.x.
1073 (version.o): New rule.
1074 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
1075 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
1076 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
1077 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
1078 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
1079 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
1080 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
1081 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
1082 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
1083 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
1084 weaks.o): Add version.h to dependency lists.
1085 (markers.o): Remove duplicate rule.
1087 * version.h: New file.
1089 * version.c: New file.
1091 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1093 * symbols.c (scm_strhash): scm_downcase is now a function, not an
1094 array; use it appropriately. Since GCC is quite happy to
1095 subscript functions, it never warned us about this; we should use
1096 -Wpointer-arith in the future. I guess we never tested
1099 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
1101 * socket.c: Doc and copyright fixes.
1103 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1105 * debug.c: Fixed and improved gdb support.
1107 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1109 * socket.c: Added declaration of inet_aton to avoid compiler
1110 warning. (Hope this solution is correct.)
1112 * stime.c: Added declaration of ftime. (This is missing in
1115 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
1117 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
1119 * Makefile.in (c_files): add strerror.c.
1121 * strerror.c: new file from Emacs' sysdep.c.
1122 maybe configure should also check for sys_errlist.
1124 * configure.in (AC_REPLACE_FUNCS): add strerror.
1126 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1128 * debug.c (scm_init_debug): Added initialization for
1129 scm_evaluator_traps.
1131 * debug.h, debug.c: Various name changes.
1132 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
1133 "debug-options-interface". See commentary in options.c.
1135 * options.h, options.c: Options now have documentation strings.
1136 Also added a long explanatory commentary.
1138 * eval.c, print.h, print.c, read.h, read.c: Modifications to
1141 * gscm.c, init.c, root.c, throw.c: Bug fixes:
1142 last_debug_info_frame is now updated in all cases.
1144 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
1147 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1149 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
1150 Added option STACK_CHECKING.
1152 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1154 * Makefile.in: Added {debug,options,srcprop}.{h,c}
1156 * __scm.h: Removed symbols for debugging support.
1158 * acconfig.h: Added symbols for debugging support.
1160 * * configure.in: Added user option for debugging support.
1161 --enable-debug will include the debugging code into libguile.a.
1163 * continuations.c (scm_make_cont): Enlarged the #if 0 around
1164 scm_relocate_chunk_to_heap.
1166 * * debug.c: New file: low-level debugging support. It also
1167 includes support for debugging with gdb. (The extensions to gdb
1168 are written by Per Bothner at Cygnus.)
1170 * debug.h: New file: low-level debugging support.
1172 * * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
1173 argument pairs. Extensive modifications to the debugging
1174 evaluator. Added "SECTION:" commentaries to clarify what happens
1175 when, during double compilation. Renamed EVALIMP --> EVALIM.
1176 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
1177 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
1178 the beginning of the file. New procedure: scm_unmemocopy.
1179 Added some global state variables needed by the debugging
1180 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
1181 check_entry, check_apply, check_exit, debug_options and
1182 evaluator_traps. New acro: undefine.
1184 * eval.h: Renamed EVAL --> XEVAL.
1186 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
1187 --> scm_make_weak_key_hash_table.
1189 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
1190 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
1192 * libguile.h: Conditionally include debug.h
1194 * * objprop.c (scm_object_properties, scm_set_object_properties_x):
1195 scm_object_properties shouldn't return handle. `handle' now gets
1196 initialized in scm_set_object_properties_x. scm_object_properties
1197 doesn't any longer create an entry in scm_object_whash.
1199 * * options.c: New file: handling of run time options.
1201 * options.h: New file: handling of run time options.
1203 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
1205 * * print.c: New procedure: scm_print_options
1207 * print.h: Defines for print options.
1209 * * read.c: New procedure: scm_read_options
1211 * read.h: Defines for reader options.
1213 * root.h: Added scm_source_whash among scm_sys_protects.
1215 * * srcprop.c: New file: source properties.
1217 * srcprop.h: New file: source properties.
1219 * throw.c (jbsmob): Jump buffers are now correctly allocated.
1220 (Bug found by A. Green.)
1222 * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
1224 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
1226 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
1228 * libguile.h: #include "objprop.h"; I guess this was forgotten.
1230 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
1231 and should be called by the final client.
1233 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
1235 * gc.h: Use the PROTO macro when declaring functions.
1236 * gc.c: Use the PROTO macro when declaring static functions.
1237 Remove the CPP hair around function definitions.
1239 * gc.c (scm_init_storage): Initialize scm_asyncs.
1241 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
1242 preprocessor symbol; "__scm.h" is where it might get #defined.
1243 * __scm.h: Similar: #include <scmconfig.h> before testing
1246 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
1248 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
1250 * * init.c (scm_boot_guile): Add init_func argument; call
1251 (*init_func) instead of calling scm_appinit; it's ucky to
1252 hard-code names for the user's procedures.
1253 * init.h (scm_boot_guile): Adjust declaration.
1255 * __scm.h (PROTO): New macro, for declaring functions with
1258 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
1259 eliminate all the __STDC__ conditionals.
1260 (scm_boot_guile): Add declaration.
1261 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
1262 Remove __STDC__ conditionals around function definitions; the
1263 declarations in init.h will provide the same information, more
1266 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
1267 complain about it in the error message; the error message is
1268 adequate without that note, and there's nothing the user can do
1271 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
1273 * Makefile.in (ancillary): Drop def.sed.
1275 * posix.c (scm_init_posix): Use numeric values, rather than
1276 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
1277 F_OK. The symbols aren't available on some systems, and I'm
1278 pretty sure their values are fixed by common widespread practice.
1279 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
1281 More functions unavailable on some systems.
1282 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
1283 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
1285 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
1286 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
1287 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
1288 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
1289 stub that signals an error as the #else.
1291 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
1293 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
1295 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
1297 * unif.c: include ramap.h.
1299 * read.c (endif): case_insensative_p renamed case_insensitive_p.
1301 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
1303 * ports.c: include sys/ioctl.h.
1305 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
1307 * configure.in: check for sys/ioctl.h.
1309 * ports.c: include <malloc.h> not "malloc.h".
1311 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1313 * fports.c: remove ttyname and tmpnam declarations.
1315 * posix.c: fewer ttyname declarations.
1317 * fports.c: include <string.h> not "string.h".
1319 * init.c, ioext.c: include string.h and unistd.h.
1321 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1323 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
1324 genio.c, simpos.c, vports.c: include string.h.
1326 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
1328 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
1330 (scm_addr_buffer_size): change type from scm_sizet to int.
1331 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
1332 from scm_sizet to int.
1334 * error.c: include unistd.h.
1336 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
1339 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
1341 * __scm.hd, def.sed: deleted.
1343 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
1345 Changes for NeXT, suggested by Robert Brown.
1346 * configure.in: Call AC_TYPE_MODE_T.
1347 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
1348 NeXT. Put header file list in alphabetical order.
1349 * configure, scmconfig.h.in: Regenerated.
1350 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
1352 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
1355 * acconfig.h: New file, providing documentation for the CPP
1356 symbols defined in configure.in
1357 * acconfig-1.5.h: Removed; superceded by the above.
1359 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
1361 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
1363 * * fports.c (scm_open_file): don't return #f, throw error.
1365 * * ioext.c (fileno): renamed from %fileno.
1366 (soft-fileno): deleted.
1368 * ports.c (scm_port_revealed): don't need to check for -1 from
1370 (scm_set_port_revealed_x): return unspecified, not #f.
1372 * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
1374 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
1376 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
1378 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
1380 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1382 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
1383 This is necessary on Ultrix, and doesn't hurt portability.
1385 * Makefile.in (dist-dir): New target, implementing a new dist system.
1386 (installed_h_files): Put in alphabetical order.
1387 Remove duplicate entries for markers.h and unif.h.
1388 (c_files): Remove duplicate entries for markers.c.
1389 (ancillary): Renamed from anillery; all uses changed. Remove
1390 PLUGIN; it's a directory, and needs special treatment in dist-dir.
1391 Remove all the ../doc/* files; doc/Makefile.in handles that.
1393 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
1395 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
1396 every if must have an else, or else the whole command has a
1397 non-zero exit code whenever the if's condition is false.
1399 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
1401 * posix.c: include string.h.
1403 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
1405 * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
1408 * * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
1409 Remove leading % from scheme names.
1410 Do not return error values, call SCM_SYSERROR or similar.
1412 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
1414 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
1416 * struct.c (scm_init_struct): new file.
1418 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
1420 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
1421 (scm_list_head): added list-head for rapidly chopping argument
1422 lists off of longer lists (and similar).
1424 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
1426 * objprop.c (scm_object_property): assq the cdr of the whash
1427 handle for obj, not the handle itself.
1429 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
1431 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
1432 weak hash tables last of all marking to avoid an obscure gc bug.
1433 WARNING: circular lists stored in a weak hash table will hose us.
1435 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
1437 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
1438 new functions similar to scm_substring_move_left_x and
1439 scm_substring_move_right_x.
1441 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
1443 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
1446 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
1448 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
1450 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
1452 * strports.c (scm_strprint_obj): convenience function. C for
1453 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
1455 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
1456 removed to a separate library
1458 * init.c (scm_boot_guile): copied from guile-tcl.c.
1459 Initialization specific to tcl interpreters removed.
1461 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
1463 * ports.c (scm_ports_prehistory): size malloced here doesn't
1464 matter so long as it is non-0 (got rid of "* 4").
1466 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
1468 * gscm.h: gscm_mkarray eliminated (presumably was not being used
1469 since its definition was bogus).
1471 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
1473 * mallocs.[ch]: back again (for rx at least).
1475 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
1477 * ports.c: removed functions relating to the mapping between ports
1478 and descriptors. (That stuff is unix-specific and should be collected
1479 in a separate library).
1481 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
1482 (Tom Mckay@avanticorp.com)
1484 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
1486 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
1487 handled correctly (SCM_FREEP was applied to them) -- test for
1488 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
1489 being overwritten with #f. (brown@grettir.bibliotech.com)
1491 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
1493 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
1494 for a specific symbol or for all symbols.
1496 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
1498 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
1499 keys and weak values confused).
1501 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
1503 * list.c (scm_last_pair): map '()=>'()
1505 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
1507 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
1508 Generalized assoc and hash-table functions.
1509 Factored pairs.c into multiple files.
1511 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
1513 * gscm.c (gscm_run_scm): got rid of objprop.
1515 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
1517 * genio.c (scm_getc):
1518 NOTE: fgetc may not be interruptable.
1520 * procprop.c (scm_stand_in_scm_proc):
1521 NOTE: don't use a alist here.
1522 (scm_set_procedure_properties_x): fix type checking throughout this file.
1524 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
1526 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
1527 after freeing part of the port table.
1529 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
1531 * strports.c (scm_mkstrport):
1532 * vports.c (scm_make_soft_port): allocate a port table entry
1533 (possibly triggering gc) before setting the tag of the corresponding
1536 * pairs.c (scm_delq_x): never throw an error.
1538 * vectors.c (scm_make_vector): made the default vector fill argument
1539 into '() (much more useful than the previous value, "#unspecified")
1541 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
1543 * ports.c (scm_add_to_port_table): Added fields
1544 to port table entries: file_name, line_num, col.
1545 Update these in open_file, gen_getc and gen_ungetc.
1546 Added procedures to access those fields.
1548 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
1550 * procs.c (scm_make_subr_opt): new entry point for making
1553 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
1555 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
1557 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
1559 * numbers.c (scm_exact_p): This function no longer
1560 implements "integer?".
1562 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
1564 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
1565 (scm_gc_stats): return an assoc of useful data. Replaces "room"
1566 and the stats reporting formerlly built into repl.
1568 * repl.[ch]: removed.
1569 GC statistics keeping moved to gc.c.
1570 Other statistics keeping can be done from Scheme.
1571 REPLS are now written in Scheme.
1573 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
1575 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
1576 conservatively marked objects).
1578 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
1580 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
1582 * feature.c (scm_compiled_library_path): moved here from repl.c.
1583 This file is for stuff relating specifically to Scheme libraries
1586 * eval.c (scm_m_define): don't give warning about redefinition, don't
1589 NOTE: this should throw a resumable exception with parameters --
1590 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
1592 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
1594 * error.c: scm_warn eliminated.
1596 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
1598 * repl.c, marksweep.c, gc.c (various):
1599 lose exit_report, growth_mon.
1601 * gscm.c: got rid of verbosity functions.
1603 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
1605 * throw.c (scm_ithrow): guard against the bad-throw hook changing
1606 between the call to procedurep and use.
1608 * error.c (scm_everr):
1610 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
1613 * strports.c: don't reveal the port's string to the caller
1614 because it changes size.
1616 (stputc stwrite): check/change the strings length with interrupts
1619 * objprop.c (scm_set_object_property_x &c): use the generic
1620 hashing functions and be threadsafe.
1622 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
1623 (per suggestion jaffer@gnu.ai.mit.edu).
1625 * mbstrings.c (scm_multi_byte_string): guard against argument list
1628 * strings.c (scm_make_string): loop cleanup
1630 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
1633 * weaks.c (scm_weak_vector): guard against argument list
1636 * variable.c (scm_builtin_variable): check for/make a built-in
1639 * vectors.c (scm_vector): while filling the new array,
1640 guard against a list of fill elements that grows after
1641 the vector is allocated.
1643 * hashtab.c -- new file: general hash table
1644 functions. hash, hashq, hashv, hashx.
1646 * tags.h: made wvect an option bit of vector.
1648 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
1650 * symbols.c: made the basic symbol table operations atomic.
1652 * root.c &c.: collected stack-specific global state.
1653 linum/colnum etc *should* be port-specific state.
1655 * struct.c (scm_init_struct): init the first struct type during
1656 initialization to fix a race condition.
1658 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
1659 object, not in a global.
1660 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
1662 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
1663 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
1665 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
1666 and C symbols to begin with SCM_ or scm_.
1668 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
1670 * gsubr.c (scm_gsubr_apply): statically allocate the
1671 array of arguments (bothner@cygnus.com).
1673 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
1675 * scmsigs.c: Simplified to use async rountines.
1677 * async.c: New support for interrupt handlers.
1679 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
1681 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
1682 set the multi_byte flag correctly in symbols. This is wrong.
1683 intern_obbary_soft and msymbolize should take an extra parameter.
1684 Also, weird multibyte symbols don't print correctly.
1685 The weird symbol syntax is also a bit bogus (emacs doesn't quite
1688 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
1690 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
1691 use the system symhash. == #t means create an uninterned symbol.
1693 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
1695 * strings.c (scm_make_shared_substring): build'em.
1696 It might better to keep a table of these and use one
1697 less cons-pair per shared-substring.
1699 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
1701 * strings.c (scm_string_shared_substring): create shared
1702 substrings. (Doesn't handle mb strings yet).
1704 * mbstrings.c (scm_print_mb_string): handle RO strings.
1706 * print.c (scm_iprin1): print substrings as their non-substring
1707 counterparts (dubious).
1709 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
1712 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
1714 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
1716 * eq.c (scm_equal_p): handle RO and MB strings.
1718 * symbols.c (scm_string_to_symbol):
1719 (scm_string_to_obarray_symbol):
1720 * strop.c (scm_i_index):
1722 (scm_string_null_p):
1723 (scm_string_to_list):
1724 * strings.c (scm_string_length):
1727 (scm_string_append):
1728 * simpos.c (scm_system):
1730 * fports.c (scm_open_file):
1731 * strorder.c (scm_string_equal_p):
1732 (scm_string_ci_equal_p):
1733 (scm_string_less_p):
1734 (scm_string_ci_less_p):
1735 * pairs.c (scm_obj_length):
1736 * mbstrings.c (scm_multi_byte_string_length):
1738 Use RO string macros for RO strings.
1740 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
1742 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
1744 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
1745 index/rindex. Do handle embedded \000 characters.
1747 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
1749 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
1750 Eliminate a (presumed) warning on some systems.
1752 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
1753 (Mikael Djurfeldt <mdj@nada.kth.se>)
1755 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
1757 * eval.c (scm_map): added argument type checking.
1758 (kawai@sail.t.u-tokyo.ac.jp)
1760 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
1761 for C++. (Seth Alves <alves@gryphon.com>)
1763 (gscm_cstr): uses an uninitialized local variable causing
1764 segv. (kawai@sail.t.u-tokyo.ac.jp)
1767 * lvectors.c (scm_get_lvector_hook):
1768 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
1769 It seems to me like if it is broken again in guile-iv...Here is a patch.
1770 "! || (LENGTH (keyvec) == 0))"
1771 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
1774 * gscm.c (gscm_sys_default_verbosity):
1775 incorrectly declared for non-__STDC__
1776 (Tom_Mckay@avanticorp.com)
1778 * ports.c (scm_setfileno): Tweak the macro a bit
1779 to make it easier to port to systems that use
1780 more than a single structure field to hold a descriptor.
1782 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
1783 Give a warning, not an error, for unrecognized modes.
1785 * eval.c (SCM_CEVAL):
1786 static char scm_s_for_each[];
1787 static char scm_s_map[];
1790 * strings.c (scm_string_p):
1791 static char s_string[];
1794 * struct.c (scm_sys_struct_set_x):
1795 static char s_sys_make_struct[];
1796 static char s_sys_struct_ref[];
1797 static char s_sys_struct_set_x[];
1798 Rearrange code to eliminate those forward decls for the sake of
1801 * variable.c (make_vcell_variable): static char s_make_variable[];
1804 * fports.c (scm_port_mode):
1805 chars modes[3] = "";
1809 (Tom_Mckay@avanticorp.com)
1812 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
1813 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
1814 (Tom_Mckay@avanticorp.com)
1816 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
1817 scm_num_eq_p() was scm_equal_p().
1818 (Tom_Mckay@avanticorp.com)
1820 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
1821 (Tom_Mckay@avanticorp.com)
1823 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
1825 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
1826 (Tom_Mckay@avanticorp.com)
1828 * strop.c (scm_substring_fill_x):
1829 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
1830 (Tom_Mckay@avanticorp.com)
1832 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
1833 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
1835 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
1836 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
1838 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
1839 can turn into an obscure gc bug.
1841 * chars.c (scm_char_p): fixed PROC call.
1843 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
1846 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
1848 * elisp.c (new file): dynamic scoping and other bits for
1849 elisp. Don't use this yet unless you specificly want to
1850 hack on elisp emulation.
1852 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
1853 scope created by scm_with_dynamic_bindings_operation_x, swap
1854 the bindings of that scope with the corresponding globals.
1856 * continuations.c (scm_make_cont): when a continuation is captured,
1857 relocate the continuation stack chunks registered on the wind chain
1860 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
1862 * eval.c (SCM_CEVAL): if the function position evaluates
1863 to a macro, process it accordingly. (Previously, macros were
1864 handled only if the function position was a symbol naming a
1865 variable bound to a macro).
1867 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
1869 * eval.c (scm_m_set): allow multi-variable set! like
1872 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
1874 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
1875 STREAM of ports into the port table and replaced it with a
1878 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
1880 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
1882 * mbstrings.c (new file): functions on multi-byte strings.
1884 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
1885 for multi-byte strings. Moved the string tag.
1887 * chars.h chars.c repl.c (many functions): made scm_upcase and
1888 scm_downcase functions that are safe for extended character sets.
1890 Changed the range of integer->char.
1892 Changed the type of SCM_ICHR.
1894 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
1896 * guile.c: Changed init file name from "SCM_INIT_PATH" to
1899 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
1901 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
1902 know that it's safe to pass an object to gscm_get_type?)
1903 (gscm_get_type): Fix tyop in error message.
1905 * variable.c (scm_variable_ref): fixed assertion test.
1906 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
1908 * gscm.h: fixed several prototypes, notably gscm_vref.
1909 Add gscm_is_eq and temporarily commented out gscm_eq (see
1910 the note in gscm.h near gscm_eq if this change effects your
1912 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1914 * pairs.c (scm_obj_length): see next entry.
1916 * gscm.h (gscm_obj_length): A way to get an integer
1917 length for lists, strings, symbols (treated as strings),
1918 and vectors. Returns -1 on error.
1920 * eq.c (scm_equal_p): fixed smob case.
1921 (William Gribble <grib@arlut.utexas.edu>)
1923 * Makefile.in (X_CFLAGS): defined.
1924 (William Gribble <grib@arlut.utexas.edu>)
1926 * gscm.h (gscm_2_double): provided now
1927 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1929 Tue Jun 13 01:04:09 1995 gnu