1 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
3 * load.c (scm_sys_try_load): Correct spelling.
5 * feature.c (scm_loc_features): Make this static.
7 * Makefile.in (libpath.h): Omit trailing slash from path. We
8 shouldn't require it of users, so why put it here?
10 Move code to initialize and search %load-path from ice-9 to C
11 code, so we can use the load-path to find the ice-9 boot code;
12 this makes it easier to run Guile without installing it. See
13 corresponding changes in guile/Makefile.in.
14 * feature.c: Move stuff concerned with the load path to load.c.
15 (scm_compiled_library_path): Deleted.
16 Don't #include libpath.h here.
17 * feature.h: Don't mention scm_compiled_library_path.
18 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
19 <sys/stat.h>, and <unistd.h> (if present).
20 (R_OK): #define if the system hasn't deigned to.
21 (scm_loc_load_path): New variable.
22 (scm_init_load_path, scm_sys_search_load_path,
23 scm_sys_try_load_path): New functions.
24 (scm_init_load): Initialize scm_loc_load_path to point to the
25 value cell of the Scheme %load-path variable.
26 * load.h: Add declarations for scm_sys_search_load_path,
27 scm_sys_try_load_path.
28 * init.c: Call scm_init_load_path.
29 * Makefile.in (feature.o, load.o): Dependencies updated.
31 * load.c, load.h: Rewrite using PROTO macro.
33 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
35 * gc.c (scm_cellp): New function: C predicate to determine if an
36 SCM value can be regarded as a pointer to a cell on the heap.
38 * gc.h: Added declaration of scm_cellp.
40 * gdb_interface.h: New file: The GDB interface header from the GDB
43 * gdbint.c: New file: GDB interface.
45 * gdbint.h: New file: GDB interface.
47 * libguile.h: Added #include <libguile/gdbint.h>.
49 * init.c (scm_boot_guile): Added scm_init_gdbint.
51 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
52 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
53 found if object files and source are kept separate).
55 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
57 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
59 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
61 * configure.in: Don't substitute the values of TCL_SRC_DIR and
62 TK_SRC_DIR; they're not relevant any more.
64 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
65 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
67 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
69 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
70 search path, so we can find the <libguile/MUMBLE.h> headers.
72 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
74 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
75 implicit in the .c.o rule.
76 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
79 Put the library path in a header file, instead of passing it on
80 the command line in every compilation.
81 * Makefile.in (libpath.h): New target.
82 (feature.o): Depend on libpath.h.
83 (clean): Delete libpath.h.
84 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
85 * feature.c: ... #include "libpath.h" here.
86 * .cvsignore: Ignore libpath.h.
88 Don't install the unwashed masses of Guile header files in the
89 main #include path; put most of them in a subdirectory called
90 'libguile'. This avoids naming conflicts between Guile header
91 files and system header files (of which there were a few).
92 * Makefile.in (pkgincludedir): Deleted.
93 (innerincludedir): New variable; this and $(includedir) are enough.
94 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
95 (installed_h_files): Divide this up. Now this variable lists
96 those header files which should go into $(includedir) (i.e. appear
97 directly in the #include path), and ...
98 (inner_h_files): ... this new variable says which files appear in
99 a subdirectory, and are referred to as <libguile/mumble.h>.
100 (h_files): List them both.
101 (install): Create innerincludedir, not pkgincludedir. Put
102 the installed_h_files and inner_h_files in their proper places.
103 (uninstall): Corresponding changes.
104 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
105 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
106 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
107 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
108 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
109 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
110 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
111 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
112 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
113 vports.h, weaks.h: Find __scm.h in its new location.
114 * __scm.h: Find scmconfig.h and tags.h in their new locations
115 (they're both "inner" files).
117 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
119 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
121 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
123 * posix.c: Doc fixes.
125 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
127 * socket.c: Don't include a prototype for inet_aton; just use a
128 K&R style declaration, to avoid warnings but minimize the chance
129 of conflicts with the system.
131 On NextStep, <utime.h> doesn't define struct utime, unless we
132 #define _POSIX_SOURCE before #including it.
133 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
134 * acconfig.h: New comment text for above CPP symbol.
135 * configure.in: Call it.
136 * posix.c: #define _POSIX_SOURCE if it seems necessary.
138 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
140 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
143 * posix.c: #include <libc.h>, if it exists.
145 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
146 don't even know if the latter exists.
148 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
149 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
150 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
152 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
154 (scm_init_posix): Use them when initializing the Scheme constants
157 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
159 * Makefile.in (libdir, includedir, bindir): Use the
160 autoconf-supplied values, instead of deriving them ourselves.
161 (pkgincludedir, datadir, pkgdatadir): New variables.
162 (install, uninstall): Put the header files in a special
163 subdirectory, not in the main search path.
165 * Makefile.in (ALL_CFLAGS): Provide the proper value for
166 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
168 * Makefile.in (IMPLPATH): Deleted; never used.
170 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
171 on the Tcl/Tk source any more.
172 (INCLUDE_CFLAGS): Remove references to the above.
174 * Makefile.in (version.o): Corrected dependencies.
176 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
178 * libguile.h: #include "version.h"
180 * init.c (scm_boot_guile): Call scm_init_version.
181 * gscm.c (gscm_run_scm): Call scm_init_version.
183 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
184 GUILE_VERSION): AC_DEFINE these.
185 (acconfig.h): #undef the above symbols.
187 * Makefile.in (libobjs): Add version.o.
188 (installed_h_files): Add version.h.
189 (c_files): Add version.c.
190 (gen_c_files): Add version.x.
191 (version.o): New rule.
192 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
193 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
194 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
195 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
196 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
197 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
198 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
199 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
200 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
201 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
202 weaks.o): Add version.h to dependency lists.
203 (markers.o): Remove duplicate rule.
205 * version.h: New file.
207 * version.c: New file.
209 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
211 * symbols.c (scm_strhash): scm_downcase is now a function, not an
212 array; use it appropriately. Since GCC is quite happy to
213 subscript functions, it never warned us about this; we should use
214 -Wpointer-arith in the future. I guess we never tested
217 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
219 * socket.c: Doc and copyright fixes.
221 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
223 * debug.c: Fixed and improved gdb support.
225 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
227 * socket.c: Added declaration of inet_aton to avoid compiler
228 warning. (Hope this solution is correct.)
230 * stime.c: Added declaration of ftime. (This is missing in
233 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
235 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
237 * Makefile.in (c_files): add strerror.c.
239 * strerror.c: new file from Emacs' sysdep.c.
240 maybe configure should also check for sys_errlist.
242 * configure.in (AC_REPLACE_FUNCS): add strerror.
244 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
246 * debug.c (scm_init_debug): Added initialization for
249 * debug.h, debug.c: Various name changes.
250 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
251 "debug-options-interface". See commentary in options.c.
253 * options.h, options.c: Options now have documentation strings.
254 Also added a long explanatory commentary.
256 * eval.c, print.h, print.c, read.h, read.c: Modifications to
259 * gscm.c, init.c, root.c, throw.c: Bug fixes:
260 last_debug_info_frame is now updated in all cases.
262 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
265 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
267 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
268 Added option STACK_CHECKING.
270 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
272 * Makefile.in: Added {debug,options,srcprop}.{h,c}
274 * __scm.h: Removed symbols for debugging support.
276 * acconfig.h: Added symbols for debugging support.
278 * * configure.in: Added user option for debugging support.
279 --enable-debug will include the debugging code into libguile.a.
281 * continuations.c (scm_make_cont): Enlarged the #if 0 around
282 scm_relocate_chunk_to_heap.
284 * * debug.c: New file: low-level debugging support. It also
285 includes support for debugging with gdb. (The extensions to gdb
286 are written by Per Bothner at Cygnus.)
288 * debug.h: New file: low-level debugging support.
290 * * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
291 argument pairs. Extensive modifications to the debugging
292 evaluator. Added "SECTION:" commentaries to clarify what happens
293 when, during double compilation. Renamed EVALIMP --> EVALIM.
294 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
295 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
296 the beginning of the file. New procedure: scm_unmemocopy.
297 Added some global state variables needed by the debugging
298 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
299 check_entry, check_apply, check_exit, debug_options and
300 evaluator_traps. New acro: undefine.
302 * eval.h: Renamed EVAL --> XEVAL.
304 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
305 --> scm_make_weak_key_hash_table.
307 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
308 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
310 * libguile.h: Conditionally include debug.h
312 * * objprop.c (scm_object_properties, scm_set_object_properties_x):
313 scm_object_properties shouldn't return handle. `handle' now gets
314 initialized in scm_set_object_properties_x. scm_object_properties
315 doesn't any longer create an entry in scm_object_whash.
317 * * options.c: New file: handling of run time options.
319 * options.h: New file: handling of run time options.
321 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
323 * * print.c: New procedure: scm_print_options
325 * print.h: Defines for print options.
327 * * read.c: New procedure: scm_read_options
329 * read.h: Defines for reader options.
331 * root.h: Added scm_source_whash among scm_sys_protects.
333 * * srcprop.c: New file: source properties.
335 * srcprop.h: New file: source properties.
337 * throw.c (jbsmob): Jump buffers are now correctly allocated.
338 (Bug found by A. Green.)
340 * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
342 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
344 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
346 * libguile.h: #include "objprop.h"; I guess this was forgotten.
348 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
349 and should be called by the final client.
351 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
353 * gc.h: Use the PROTO macro when declaring functions.
354 * gc.c: Use the PROTO macro when declaring static functions.
355 Remove the CPP hair around function definitions.
357 * gc.c (scm_init_storage): Initialize scm_asyncs.
359 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
360 preprocessor symbol; "__scm.h" is where it might get #defined.
361 * __scm.h: Similar: #include <scmconfig.h> before testing
364 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
366 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
368 * * init.c (scm_boot_guile): Add init_func argument; call
369 (*init_func) instead of calling scm_appinit; it's ucky to
370 hard-code names for the user's procedures.
371 * init.h (scm_boot_guile): Adjust declaration.
373 * __scm.h (PROTO): New macro, for declaring functions with
376 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
377 eliminate all the __STDC__ conditionals.
378 (scm_boot_guile): Add declaration.
379 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
380 Remove __STDC__ conditionals around function definitions; the
381 declarations in init.h will provide the same information, more
384 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
385 complain about it in the error message; the error message is
386 adequate without that note, and there's nothing the user can do
389 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
391 * Makefile.in (ancillary): Drop def.sed.
393 * posix.c (scm_init_posix): Use numeric values, rather than
394 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
395 F_OK. The symbols aren't available on some systems, and I'm
396 pretty sure their values are fixed by common widespread practice.
397 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
399 More functions unavailable on some systems.
400 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
401 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
403 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
404 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
405 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
406 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
407 stub that signals an error as the #else.
409 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
411 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
413 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
415 * unif.c: include ramap.h.
417 * read.c (endif): case_insensative_p renamed case_insensitive_p.
419 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
421 * ports.c: include sys/ioctl.h.
423 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
425 * configure.in: check for sys/ioctl.h.
427 * ports.c: include <malloc.h> not "malloc.h".
429 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
431 * fports.c: remove ttyname and tmpnam declarations.
433 * posix.c: fewer ttyname declarations.
435 * fports.c: include <string.h> not "string.h".
437 * init.c, ioext.c: include string.h and unistd.h.
439 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
441 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
442 genio.c, simpos.c, vports.c: include string.h.
444 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
446 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
448 (scm_addr_buffer_size): change type from scm_sizet to int.
449 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
450 from scm_sizet to int.
452 * error.c: include unistd.h.
454 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
457 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
459 * __scm.hd, def.sed: deleted.
461 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
463 Changes for NeXT, suggested by Robert Brown.
464 * configure.in: Call AC_TYPE_MODE_T.
465 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
466 NeXT. Put header file list in alphabetical order.
467 * configure, scmconfig.h.in: Regenerated.
468 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
470 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
473 * acconfig.h: New file, providing documentation for the CPP
474 symbols defined in configure.in
475 * acconfig-1.5.h: Removed; superceded by the above.
477 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
479 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
481 * * fports.c (scm_open_file): don't return #f, throw error.
483 * * ioext.c (fileno): renamed from %fileno.
484 (soft-fileno): deleted.
486 * ports.c (scm_port_revealed): don't need to check for -1 from
488 (scm_set_port_revealed_x): return unspecified, not #f.
490 * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
492 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
494 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
496 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
498 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
500 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
501 This is necessary on Ultrix, and doesn't hurt portability.
503 * Makefile.in (dist-dir): New target, implementing a new dist system.
504 (installed_h_files): Put in alphabetical order.
505 Remove duplicate entries for markers.h and unif.h.
506 (c_files): Remove duplicate entries for markers.c.
507 (ancillary): Renamed from anillery; all uses changed. Remove
508 PLUGIN; it's a directory, and needs special treatment in dist-dir.
509 Remove all the ../doc/* files; doc/Makefile.in handles that.
511 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
513 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
514 every if must have an else, or else the whole command has a
515 non-zero exit code whenever the if's condition is false.
517 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
519 * posix.c: include string.h.
521 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
523 * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
526 * * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
527 Remove leading % from scheme names.
528 Do not return error values, call SCM_SYSERROR or similar.
530 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
532 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
534 * struct.c (scm_init_struct): new file.
536 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
538 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
539 (scm_list_head): added list-head for rapidly chopping argument
540 lists off of longer lists (and similar).
542 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
544 * objprop.c (scm_object_property): assq the cdr of the whash
545 handle for obj, not the handle itself.
547 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
549 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
550 weak hash tables last of all marking to avoid an obscure gc bug.
551 WARNING: circular lists stored in a weak hash table will hose us.
553 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
555 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
556 new functions similar to scm_substring_move_left_x and
557 scm_substring_move_right_x.
559 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
561 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
564 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
566 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
568 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
570 * strports.c (scm_strprint_obj): convenience function. C for
571 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
573 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
574 removed to a separate library
576 * init.c (scm_boot_guile): copied from guile-tcl.c.
577 Initialization specific to tcl interpreters removed.
579 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
581 * ports.c (scm_ports_prehistory): size malloced here doesn't
582 matter so long as it is non-0 (got rid of "* 4").
584 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
586 * gscm.h: gscm_mkarray eliminated (presumably was not being used
587 since its definition was bogus).
589 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
591 * mallocs.[ch]: back again (for rx at least).
593 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
595 * ports.c: removed functions relating to the mapping between ports
596 and descriptors. (That stuff is unix-specific and should be collected
597 in a separate library).
599 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
600 (Tom Mckay@avanticorp.com)
602 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
604 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
605 handled correctly (SCM_FREEP was applied to them) -- test for
606 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
607 being overwritten with #f. (brown@grettir.bibliotech.com)
609 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
611 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
612 for a specific symbol or for all symbols.
614 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
616 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
617 keys and weak values confused).
619 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
621 * list.c (scm_last_pair): map '()=>'()
623 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
625 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
626 Generalized assoc and hash-table functions.
627 Factored pairs.c into multiple files.
629 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
631 * gscm.c (gscm_run_scm): got rid of objprop.
633 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
635 * genio.c (scm_getc):
636 NOTE: fgetc may not be interruptable.
638 * procprop.c (scm_stand_in_scm_proc):
639 NOTE: don't use a alist here.
640 (scm_set_procedure_properties_x): fix type checking throughout this file.
642 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
644 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
645 after freeing part of the port table.
647 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
649 * strports.c (scm_mkstrport):
650 * vports.c (scm_make_soft_port): allocate a port table entry
651 (possibly triggering gc) before setting the tag of the corresponding
654 * pairs.c (scm_delq_x): never throw an error.
656 * vectors.c (scm_make_vector): made the default vector fill argument
657 into '() (much more useful than the previous value, "#unspecified")
659 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
661 * ports.c (scm_add_to_port_table): Added fields
662 to port table entries: file_name, line_num, col.
663 Update these in open_file, gen_getc and gen_ungetc.
664 Added procedures to access those fields.
666 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
668 * procs.c (scm_make_subr_opt): new entry point for making
671 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
673 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
675 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
677 * numbers.c (scm_exact_p): This function no longer
678 implements "integer?".
680 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
682 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
683 (scm_gc_stats): return an assoc of useful data. Replaces "room"
684 and the stats reporting formerlly built into repl.
686 * repl.[ch]: removed.
687 GC statistics keeping moved to gc.c.
688 Other statistics keeping can be done from Scheme.
689 REPLS are now written in Scheme.
691 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
693 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
694 conservatively marked objects).
696 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
698 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
700 * feature.c (scm_compiled_library_path): moved here from repl.c.
701 This file is for stuff relating specifically to Scheme libraries
704 * eval.c (scm_m_define): don't give warning about redefinition, don't
707 NOTE: this should throw a resumable exception with parameters --
708 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
710 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
712 * error.c: scm_warn eliminated.
714 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
716 * repl.c, marksweep.c, gc.c (various):
717 lose exit_report, growth_mon.
719 * gscm.c: got rid of verbosity functions.
721 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
723 * throw.c (scm_ithrow): guard against the bad-throw hook changing
724 between the call to procedurep and use.
726 * error.c (scm_everr):
728 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
731 * strports.c: don't reveal the port's string to the caller
732 because it changes size.
734 (stputc stwrite): check/change the strings length with interrupts
737 * objprop.c (scm_set_object_property_x &c): use the generic
738 hashing functions and be threadsafe.
740 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
741 (per suggestion jaffer@gnu.ai.mit.edu).
743 * mbstrings.c (scm_multi_byte_string): guard against argument list
746 * strings.c (scm_make_string): loop cleanup
748 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
751 * weaks.c (scm_weak_vector): guard against argument list
754 * variable.c (scm_builtin_variable): check for/make a built-in
757 * vectors.c (scm_vector): while filling the new array,
758 guard against a list of fill elements that grows after
759 the vector is allocated.
761 * hashtab.c -- new file: general hash table
762 functions. hash, hashq, hashv, hashx.
764 * tags.h: made wvect an option bit of vector.
766 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
768 * symbols.c: made the basic symbol table operations atomic.
770 * root.c &c.: collected stack-specific global state.
771 linum/colnum etc *should* be port-specific state.
773 * struct.c (scm_init_struct): init the first struct type during
774 initialization to fix a race condition.
776 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
777 object, not in a global.
778 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
780 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
781 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
783 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
784 and C symbols to begin with SCM_ or scm_.
786 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
788 * gsubr.c (scm_gsubr_apply): statically allocate the
789 array of arguments (bothner@cygnus.com).
791 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
793 * scmsigs.c: Simplified to use async rountines.
795 * async.c: New support for interrupt handlers.
797 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
799 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
800 set the multi_byte flag correctly in symbols. This is wrong.
801 intern_obbary_soft and msymbolize should take an extra parameter.
802 Also, weird multibyte symbols don't print correctly.
803 The weird symbol syntax is also a bit bogus (emacs doesn't quite
806 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
808 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
809 use the system symhash. == #t means create an uninterned symbol.
811 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
813 * strings.c (scm_make_shared_substring): build'em.
814 It might better to keep a table of these and use one
815 less cons-pair per shared-substring.
817 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
819 * strings.c (scm_string_shared_substring): create shared
820 substrings. (Doesn't handle mb strings yet).
822 * mbstrings.c (scm_print_mb_string): handle RO strings.
824 * print.c (scm_iprin1): print substrings as their non-substring
825 counterparts (dubious).
827 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
830 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
832 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
834 * eq.c (scm_equal_p): handle RO and MB strings.
836 * symbols.c (scm_string_to_symbol):
837 (scm_string_to_obarray_symbol):
838 * strop.c (scm_i_index):
841 (scm_string_to_list):
842 * strings.c (scm_string_length):
846 * simpos.c (scm_system):
848 * fports.c (scm_open_file):
849 * strorder.c (scm_string_equal_p):
850 (scm_string_ci_equal_p):
852 (scm_string_ci_less_p):
853 * pairs.c (scm_obj_length):
854 * mbstrings.c (scm_multi_byte_string_length):
856 Use RO string macros for RO strings.
858 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
860 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
862 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
863 index/rindex. Do handle embedded \000 characters.
865 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
867 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
868 Eliminate a (presumed) warning on some systems.
870 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
871 (Mikael Djurfeldt <mdj@nada.kth.se>)
873 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
875 * eval.c (scm_map): added argument type checking.
876 (kawai@sail.t.u-tokyo.ac.jp)
878 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
879 for C++. (Seth Alves <alves@gryphon.com>)
881 (gscm_cstr): uses an uninitialized local variable causing
882 segv. (kawai@sail.t.u-tokyo.ac.jp)
885 * lvectors.c (scm_get_lvector_hook):
886 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
887 It seems to me like if it is broken again in guile-iv...Here is a patch.
888 "! || (LENGTH (keyvec) == 0))"
889 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
892 * gscm.c (gscm_sys_default_verbosity):
893 incorrectly declared for non-__STDC__
894 (Tom_Mckay@avanticorp.com)
896 * ports.c (scm_setfileno): Tweak the macro a bit
897 to make it easier to port to systems that use
898 more than a single structure field to hold a descriptor.
900 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
901 Give a warning, not an error, for unrecognized modes.
903 * eval.c (SCM_CEVAL):
904 static char scm_s_for_each[];
905 static char scm_s_map[];
908 * strings.c (scm_string_p):
909 static char s_string[];
912 * struct.c (scm_sys_struct_set_x):
913 static char s_sys_make_struct[];
914 static char s_sys_struct_ref[];
915 static char s_sys_struct_set_x[];
916 Rearrange code to eliminate those forward decls for the sake of
919 * variable.c (make_vcell_variable): static char s_make_variable[];
922 * fports.c (scm_port_mode):
927 (Tom_Mckay@avanticorp.com)
930 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
931 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
932 (Tom_Mckay@avanticorp.com)
934 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
935 scm_num_eq_p() was scm_equal_p().
936 (Tom_Mckay@avanticorp.com)
938 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
939 (Tom_Mckay@avanticorp.com)
941 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
943 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
944 (Tom_Mckay@avanticorp.com)
946 * strop.c (scm_substring_fill_x):
947 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
948 (Tom_Mckay@avanticorp.com)
950 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
951 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
953 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
954 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
956 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
957 can turn into an obscure gc bug.
959 * chars.c (scm_char_p): fixed PROC call.
961 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
964 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
966 * elisp.c (new file): dynamic scoping and other bits for
967 elisp. Don't use this yet unless you specificly want to
968 hack on elisp emulation.
970 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
971 scope created by scm_with_dynamic_bindings_operation_x, swap
972 the bindings of that scope with the corresponding globals.
974 * continuations.c (scm_make_cont): when a continuation is captured,
975 relocate the continuation stack chunks registered on the wind chain
978 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
980 * eval.c (SCM_CEVAL): if the function position evaluates
981 to a macro, process it accordingly. (Previously, macros were
982 handled only if the function position was a symbol naming a
983 variable bound to a macro).
985 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
987 * eval.c (scm_m_set): allow multi-variable set! like
990 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
992 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
993 STREAM of ports into the port table and replaced it with a
996 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
998 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
1000 * mbstrings.c (new file): functions on multi-byte strings.
1002 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
1003 for multi-byte strings. Moved the string tag.
1005 * chars.h chars.c repl.c (many functions): made scm_upcase and
1006 scm_downcase functions that are safe for extended character sets.
1008 Changed the range of integer->char.
1010 Changed the tyep of SCM_ICHR.
1014 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
1016 * guile.c: Changed init file name from "SCM_INIT_PATH" to
1019 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
1021 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
1022 know that it's safe to pass an object to gscm_get_type?)
1023 (gscm_get_type): Fix tyop in error message.
1025 * variable.c (scm_variable_ref): fixed assertion test.
1026 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
1028 * gscm.h: fixed several prototypes, notably gscm_vref.
1029 Add gscm_is_eq and temporarily commented out gscm_eq (see
1030 the note in gscm.h near gscm_eq if this change effects your
1032 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1034 * pairs.c (scm_obj_length): see next entry.
1036 * gscm.h (gscm_obj_length): A way to get an integer
1037 length for lists, strings, symbols (treated as strings),
1038 and vectors. Returns -1 on error.
1040 * eq.c (scm_equal_p): fixed smob case.
1041 (William Gribble <grib@arlut.utexas.edu>)
1043 * Makefile.in (X_CFLAGS): defined.
1044 (William Gribble <grib@arlut.utexas.edu>)
1046 * gscm.h (gscm_2_double): provided now
1047 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1049 Tue Jun 13 01:04:09 1995 gnu