* srcprop.c (scm_source_properties, scm_set_source_properties_x,
[bpt/guile.git] / libguile / ChangeLog
1 Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
2
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
24 Vollmer.)
25
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
30 fports.c.
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.
36
37 Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
38
39 * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
40
41 * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
42
43 * stime.c, stime.h: use SCM_P method.
44
45 Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
46
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.
50
51 Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
52
53 * eval.c (scm_nconc2last): Revert last change; there seems to be
54 other stuff going on here.
55
56 Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
57
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 '().
61
62 Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
63
64 * unif.c (scm_ra_set_contp): Localize `inc' declaration.
65 Clarifies flow.
66
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
69 saying "1".
70
71 * vectors.c (scm_make_vector): Fill vectors with the undefined
72 value, to help make Guile Scheme code more portable to other
73 Schemes.
74
75 * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
76 * symbols.h, tags.h: Doc fixes.
77
78 Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
79
80 * async.c (scm_take_signal): Doc fixes.
81
82 Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
83
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
86 alone.
87
88 Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
89
90 * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
91 `scm_init_threads'.
92
93 * throw.h (scm_catch_apply): Removed the `lazyp' argument.
94
95 * throw.c (scm_catch_apply): Finished implementation of
96 `lazy-catch'.
97
98 Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
99
100 * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
101 check.
102 (scm_init_filesys): set "i/o-extensions" feature.
103 include feature.h.
104
105 Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
106
107 * Makefile.in (root.o): Correct dependencies.
108
109 Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
110
111 * Makefile.in: Added dependency entry for root.o.
112
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.
115
116 * init.c (scm_start_stack): Set initial root continuation number
117 to 0.
118
119 * procs.c: New function: scm_thunk_p.
120
121 * procs.h: Added declarations of scm_thunk_p.
122
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.
129
130 * root.h: Added member last_debug_frame to root state.
131 Added #include "libguile/debug.h"
132
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
139 chain.
140
141 * throw.h: Added prototypes for scm_catch_apply and
142 scm_lazy_catch.
143
144 Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
145
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.
149
150 * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
151 and tortoise scanning loop.
152
153 Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
154
155 * Makefile.in: Rebuild dependencies.
156
157 * libguile.h: #include "libguile/print.h" before "smob.h", since
158 the latter uses the print_state structure.
159
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.
162
163 * throw.c (scm_ithrow): If scm_dynwinds has invalid list
164 structure, abort; don't just silently ignore the garbage.
165
166 * _scm.h: #include "print.h" here, since it seems to be used just
167 about everywhere.
168 * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
169 strports.c, unif.h: Don't #include "print.h".
170
171 Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
172
173 * feature.h (scm_loc_features): Removed external declaration.
174 (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
175
176 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
177
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).
181
182 * libguile.h: Added #include "libguile/../threads/threads.h".
183 (This is a kludge to get thread support working. This should be
184 fixed.)
185
186 * configure.in, acconfig.h: Added flags for thread support.
187
188 * scmsigs.c: Define `signal' to be `pthread_signal' if using
189 mit-pthreads.
190
191 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
192 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
193 root.c:mark_root.
194
195 * _scm.h: Added conditional #include "threads.h"
196
197 * __scm.h (SCM_ASYNC_TICK): Added call to macro
198 SCM_THREADS_SWITCHING_CODE.
199
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.
203
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".
209
210 * root.h: Added declaration of scm_init_root.
211
212 * root.c: Added #include "genio.h", #include "smob.h", #include
213 "pairs.h", #include "throw.h", #include "dynwind.h", #include
214 "eval.h"
215 (scm_init_root): Added #include "root.x".
216
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.
222
223 Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
224
225 * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
226
227 * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
228 element is not found, as per R4RS.
229
230 Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
231
232 * list.c: Doc fixes throughout.
233
234 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
235
236 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
237 declare the char * to be const. Avoids a warning in rgx.c.
238
239 * ports.h: spelling fix.
240
241 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
242 error messages.
243
244 * load.c (scm_sys_try_load_path): throw an error if file not found
245 (like it says it in NEWS).
246
247 Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
248
249 * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
250 PROPS slot to '(), not #f; it's an empty alist.
251
252 * throw.h, throw.c: Use SCM_P instead of #if hair.
253
254 Remove special support for uncaught throws; see throw.c for
255 rationale.
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.
261
262 * throw.c (scm_ithrow): Don't let outer key matches shadow inner
263 #t catches.
264
265 Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
266
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.
271
272 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
273
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.
277
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
281 Scheme and C).
282
283 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
284
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
290 code.
291
292 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
293
294 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
295 "print.h"
296
297 * print.c: Added #include "struct.h". Removed function
298 scm_prlist.
299
300 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
301 scm_iprin1. Removed prototype for scm_prlist.
302
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),
308 kw.c (print_kw),
309 mallocs.c (prinmalloc),
310 numbers.c, numbers.h (scm_floprint, scm_bigprint),
311 smob.h (scm_smobfuns),
312 srcprop.c (prinsrcprops),
313 throw.c (prinjb),
314 unif.c, unif.h (scm_raprin1, rapr1),
315 variable.c (prin_var): Changed argument `int writing' to
316 `scm_print_state *pstate'.
317
318 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
319 that it will be called before scm_init_print.
320
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
324 states.
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.)
330
331 Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
332
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.
336
337 Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
338
339 Distinguish #f and ().
340 * __scm.h: #undef SICP.
341 * pairs.h (SCM_EOL): Delete this definition, equating it with
342 SCM_BOOL_F.
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.
345
346 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
347
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.)
353
354 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
355
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.
359
360 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
361
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).
364
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.
367
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.
378
379 * eval.c (4 places): replace scm_everr with lgh_error or
380 scm_wrong_num_args.
381
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.
386
387 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
388 SCM_ARGERR.
389
390 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
391 of scm_wta.
392
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,
395 scm_misc_error_key.
396 scm_wta: reimplement using lgh_error instead of scm_everr.
397
398 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
399
400 * gdbint.c: scm_lread now has one more argument.
401
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).
406
407 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
408 object.
409
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
415
416 * read.h: Added prototype for scm_lreadrecparen
417
418 * print.c: Added #include "alist.h"
419
420 * eval.c: Added #include "hash.h"
421
422 * eq.c: Added #include "ramap.h"
423
424 * options.c: Documentation fixes.
425
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
430
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.
434
435 Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
436
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).
442
443 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
444
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,
447 ports.c, gc.c.
448
449 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
450
451 * ports.h (scm_port_table): remove file_name member for now, it seems
452 undesirable.
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.
459
460 * fports.h (scm_mkfile): prototype deleted.
461 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
462
463 * debug.c, unif.c: use scm_out_of_range instead of
464 wta for range errors (ASSERT still needs work).
465
466 * error.c, error.h (scm_out_of_range): new procedure.
467
468 * error.c, error.h (scm_out_of_range_key): new key.
469
470 * posix.c (scm_sync): #else was missing.
471
472 * error.c, error.h: append _key to names scm_num_overflow and
473 scm_system_error.
474
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.
483
484 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
485
486 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
487
488 * error.c, error.h: setup scm_num_overflow key.
489
490 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
491 Remove definition of SCM_OVSCM_FLOW.
492
493 * fports.c (scm_open_file): use SCM_SYSERROR_M.
494
495 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
496 explicit message and args.
497
498 * error.c, error.h, __scm.h: change system_error_sym to
499 scm_system_error.
500
501 * error.c (system_error_sym): remove leading %% from the Scheme name
502 "%%system-error".
503
504 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
505
506 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
507
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
513 substitution.)
514
515 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
516
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.
525
526 * print.h: Added declarations of scm_prin1 and scm_prlist.
527
528 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
529
530 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
531
532 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
533
534 * error.c (err_head): scm_iprin1 --> scm_prin1
535
536 * debug.c: Adjusted header comment.
537
538 * tags.h: Typo.
539
540 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
541
542 * strerror.c: Doc fix.
543
544 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
545
546 * gdbint.c (gdb_read): Now possible to run during GC.
547 (unmark_port, remark_port): New functions.
548
549 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
550
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.
554
555 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
556
557 * __scm.h (SCM_P): Corrected to run under traditional C.
558
559 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
560 removed.
561
562 * async.c: Calls to scm_sysintern corrected.
563
564 * async.h (scm_async_clock): Redundant declaration removed.
565
566 * continuations.c (scm_dynthrow): Redundant declaration removed.
567
568 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
569 Definition typos corrected.
570
571 * debug.h: Missing declarations of functions in debug.c added
572 (lots).
573
574 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
575 Missing declarations to functions in eval.c added.
576
577 * filesys.c: Possibly uninitialized variable rv.
578
579 * gc.h (scm_object_addr, scm_unhash_name): Missing
580 declarations of functions defined in gc.c added.
581
582 * genio.c: Possible typos str_data -> wstr_data. ???
583
584 * genio.c: Possibly unintended shadowing of local variable
585 `int c' (gotos out of scope of inner `c'). ???
586
587 * init.c: Uninitialized `SCM last' may be used.
588
589 * ioext.h: (scm_sys_isatty_p): Typo.
590
591 * list.h (scm_list_head): Missing prototype for function in
592 list.c added.
593
594 * numbers.c (scm_two_doubles): Changed from extern to static
595 (is used only within numbers.c).
596
597 * numbers.h: Repeated declarations removed.
598
599 * ports.h (scm_close_all_ports_except): Declaration for the
600 function defined in ports.c added.
601
602 * posix.h: Missing declarations added.
603
604 * procs.h (scm_make_subr_opt): Missing declaration added.
605
606 * socket.h (scm_sys_gethost): Missing declaration added.
607
608 * socket.h: Redundant declarations removed (they are in fdsocket.h).
609
610 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
611 Missing declarations added.
612
613 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
614
615 * struct.c: Uninitialized variable `SCM answer' may be used.
616
617 * unif.c (l2ra): Declaration prototype.
618
619 * unif.c (scm_array_equal_p): Dummy definition removed (it is
620 defined in ramap.c).
621
622 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
623 Redundant declarations removed (they are in ramap.h).
624
625 * variable.h (scm_make_udvariable,
626 scm_make_undefined_variable): Declaration corrected to
627 correspond variable.c.
628
629 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
630 Missing declarations added.
631
632 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
633
634 * Makefile.in (distclean): Don't forget to delete fd.h.
635
636 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
637
638 * fd.h.in, tags.h: Trivial cleanups.
639
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.
646
647 * libguile.h: Don't #include "files.h"; it's been deleted.
648
649 * files.c (scm_sys_delete_file): Moved to filesys.c.
650 File is now empty; deleted.
651 * files.h: 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.
662
663 Use SCM_P instead of PROTO; the latter intrudes on the user's
664 namespace.
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.
672
673 * gc.c: #include "gc.h"; every module should include its header,
674 to let the compiler cross-check the declarations against the
675 definitions.
676
677 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
678 simpos.h: #include "libguile/__scm.h".
679
680 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
681
682 * init.c: Don't forget to #include smob.h and init.h.
683 * Makefile.in: Dependencies updated.
684
685 * smob.h: Use PROTO instead of #if __STDC__.
686
687 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
688
689 * __scm.h: Doc fixes.
690
691 * __scm.h, libguile.h: Use "quotes" in the #includes, not
692 <angles>; this allows `make depends' to work properly.
693
694 * libguile.h: #include smob.h and pairs.h before the others; they
695 define typedefs used by other headers.
696
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
709 "async.h".
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",
717 "stackchk.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",
723 "stackchk.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",
728 "debug.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",
762 "chars.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",
772 "chars.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",
786 "alist.h", "smob.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".
806
807 * stackchk.h: #include "libguile/debug.h",
808
809 * print.h, read.h: #include "options.h", since everyone who uses
810 either of these files will need that.
811
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.
816
817 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
818 * ports.h: ... to here.
819
820 * ports.h (scm_port_table_size): Explicitly give type as 'int';
821 don't rely on archaic C default type rules.
822
823 * fports.h: #include "libguile/ports.h", since you need that in
824 order to parse this.
825
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
828 that.
829
830 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
831
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.
834
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.
842
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
845 unnecessarily.
846
847 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
848
849 * error.c (scm_error): declare scm_error_callback.
850
851 * error.h: prototype for scm_error_callback.
852
853 * __scm.h: define lgh_error.
854 (SCM_SYSERROR): redefine using lgh_error.
855
856 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
857
858 * error.c (scm_error): new procedure.
859
860 * error.h: prototype for scm_error.
861
862 * Makefile.in (install): install scmconfig.h from the current
863 directory, not $(srcdir).
864
865 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
866
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.
879
880 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
881
882 * Makefile.in (.c.x): Simplify; there's no need to run this rule
883 when scmconfig.h doesn't exist.
884
885 * load.c (scm_sys_try_load): Correct spelling.
886
887 * feature.c (scm_loc_features): Make this static.
888
889 * Makefile.in (libpath.h): Omit trailing slash from path. We
890 shouldn't require it of users, so why put it here?
891
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.
912
913 * load.c, load.h: Rewrite using PROTO macro.
914
915 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
916
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.
919
920 * gc.h: Added declaration of scm_cellp.
921
922 * gdb_interface.h: New file: The GDB interface header from the GDB
923 distribution.
924
925 * gdbint.c: New file: GDB interface.
926
927 * gdbint.h: New file: GDB interface.
928
929 * libguile.h: Added #include <libguile/gdbint.h>.
930
931 * init.c (scm_boot_guile): Added scm_init_gdbint.
932
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).
936
937 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
938
939 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
940
941 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
942
943 * configure.in: Don't substitute the values of TCL_SRC_DIR and
944 TK_SRC_DIR; they're not relevant any more.
945
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.
948
949 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
950
951 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
952 search path, so we can find the <libguile/MUMBLE.h> headers.
953
954 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
955
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
959 $(CC) already.
960
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.
969
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).
998
999 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
1000
1001 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
1002
1003 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
1004
1005 * posix.c: Doc fixes.
1006
1007 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
1008
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.
1012
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.
1019
1020 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
1021 in the list.
1022 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
1023 testing for __EMX__.
1024
1025 * posix.c: #include <libc.h>, if it exists.
1026
1027 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
1028 don't even know if the latter exists.
1029
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.
1033
1034 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
1035 header files don't.
1036 (scm_init_posix): Use them when initializing the Scheme constants
1037 of the same name.
1038
1039 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
1040
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.
1046
1047 * Makefile.in (ALL_CFLAGS): Provide the proper value for
1048 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
1049
1050 * Makefile.in (IMPLPATH): Deleted; never used.
1051
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.
1055
1056 * Makefile.in (version.o): Corrected dependencies.
1057
1058 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
1059
1060 * libguile.h: #include "version.h"
1061
1062 * init.c (scm_boot_guile): Call scm_init_version.
1063 * gscm.c (gscm_run_scm): Call scm_init_version.
1064
1065 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
1066 GUILE_VERSION): AC_DEFINE these.
1067 (acconfig.h): #undef the above symbols.
1068
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.
1086
1087 * version.h: New file.
1088
1089 * version.c: New file.
1090
1091 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1092
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
1097 case-insensitivity.
1098
1099 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
1100
1101 * socket.c: Doc and copyright fixes.
1102
1103 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1104
1105 * debug.c: Fixed and improved gdb support.
1106
1107 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1108
1109 * socket.c: Added declaration of inet_aton to avoid compiler
1110 warning. (Hope this solution is correct.)
1111
1112 * stime.c: Added declaration of ftime. (This is missing in
1113 Solaris 2 headers.)
1114
1115 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
1116
1117 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
1118
1119 * Makefile.in (c_files): add strerror.c.
1120
1121 * strerror.c: new file from Emacs' sysdep.c.
1122 maybe configure should also check for sys_errlist.
1123
1124 * configure.in (AC_REPLACE_FUNCS): add strerror.
1125
1126 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1127
1128 * debug.c (scm_init_debug): Added initialization for
1129 scm_evaluator_traps.
1130
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.
1134
1135 * options.h, options.c: Options now have documentation strings.
1136 Also added a long explanatory commentary.
1137
1138 * eval.c, print.h, print.c, read.h, read.c: Modifications to
1139 run-time options.
1140
1141 * gscm.c, init.c, root.c, throw.c: Bug fixes:
1142 last_debug_info_frame is now updated in all cases.
1143
1144 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
1145 checking.
1146
1147 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1148
1149 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
1150 Added option STACK_CHECKING.
1151
1152 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
1153
1154 * Makefile.in: Added {debug,options,srcprop}.{h,c}
1155
1156 * __scm.h: Removed symbols for debugging support.
1157
1158 * acconfig.h: Added symbols for debugging support.
1159
1160 * * configure.in: Added user option for debugging support.
1161 --enable-debug will include the debugging code into libguile.a.
1162
1163 * continuations.c (scm_make_cont): Enlarged the #if 0 around
1164 scm_relocate_chunk_to_heap.
1165
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.)
1169
1170 * debug.h: New file: low-level debugging support.
1171
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.
1183
1184 * eval.h: Renamed EVAL --> XEVAL.
1185
1186 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
1187 --> scm_make_weak_key_hash_table.
1188
1189 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
1190 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
1191
1192 * libguile.h: Conditionally include debug.h
1193
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.
1198
1199 * * options.c: New file: handling of run time options.
1200
1201 * options.h: New file: handling of run time options.
1202
1203 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
1204
1205 * * print.c: New procedure: scm_print_options
1206
1207 * print.h: Defines for print options.
1208
1209 * * read.c: New procedure: scm_read_options
1210
1211 * read.h: Defines for reader options.
1212
1213 * root.h: Added scm_source_whash among scm_sys_protects.
1214
1215 * * srcprop.c: New file: source properties.
1216
1217 * srcprop.h: New file: source properties.
1218
1219 * throw.c (jbsmob): Jump buffers are now correctly allocated.
1220 (Bug found by A. Green.)
1221
1222 * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
1223
1224 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
1225
1226 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
1227
1228 * libguile.h: #include "objprop.h"; I guess this was forgotten.
1229
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.
1232
1233 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
1234
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.
1238
1239 * gc.c (scm_init_storage): Initialize scm_asyncs.
1240
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
1244 HAVE_LIMITS_H.
1245
1246 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
1247
1248 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
1249
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.
1254
1255 * __scm.h (PROTO): New macro, for declaring functions with
1256 prototypes.
1257
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
1264 usefully.
1265
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
1269 about it.
1270
1271 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
1272
1273 * Makefile.in (ancillary): Drop def.sed.
1274
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.
1280
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
1284 check for.
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.
1290
1291 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
1292
1293 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
1294
1295 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
1296
1297 * unif.c: include ramap.h.
1298
1299 * read.c (endif): case_insensative_p renamed case_insensitive_p.
1300
1301 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
1302
1303 * ports.c: include sys/ioctl.h.
1304
1305 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
1306
1307 * configure.in: check for sys/ioctl.h.
1308
1309 * ports.c: include <malloc.h> not "malloc.h".
1310
1311 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1312
1313 * fports.c: remove ttyname and tmpnam declarations.
1314
1315 * posix.c: fewer ttyname declarations.
1316
1317 * fports.c: include <string.h> not "string.h".
1318
1319 * init.c, ioext.c: include string.h and unistd.h.
1320
1321 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
1322
1323 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
1324 genio.c, simpos.c, vports.c: include string.h.
1325
1326 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
1327
1328 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
1329 scm_sizet to int.
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.
1333
1334 * error.c: include unistd.h.
1335
1336 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
1337 defined.
1338
1339 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
1340
1341 * __scm.hd, def.sed: deleted.
1342
1343 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
1344
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>.
1351
1352 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
1353 for strerror.
1354
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.
1358
1359 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
1360
1361 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
1362
1363 * * fports.c (scm_open_file): don't return #f, throw error.
1364
1365 * * ioext.c (fileno): renamed from %fileno.
1366 (soft-fileno): deleted.
1367
1368 * ports.c (scm_port_revealed): don't need to check for -1 from
1369 scm_revealed_count.
1370 (scm_set_port_revealed_x): return unspecified, not #f.
1371
1372 * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
1373
1374 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
1375
1376 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
1377
1378 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
1379
1380 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1381
1382 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
1383 This is necessary on Ultrix, and doesn't hurt portability.
1384
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.
1392
1393 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
1394
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.
1398
1399 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
1400
1401 * posix.c: include string.h.
1402
1403 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
1404
1405 * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
1406 have been once.
1407
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.
1411
1412 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
1413
1414 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
1415
1416 * struct.c (scm_init_struct): new file.
1417
1418 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
1419
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).
1423
1424 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
1425
1426 * objprop.c (scm_object_property): assq the cdr of the whash
1427 handle for obj, not the handle itself.
1428
1429 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
1430
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.
1434
1435 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
1436
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.
1440
1441 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
1442
1443 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
1444 scm_gc_heap_lock!
1445
1446 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
1447
1448 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
1449
1450 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
1451
1452 * strports.c (scm_strprint_obj): convenience function. C for
1453 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
1454
1455 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
1456 removed to a separate library
1457
1458 * init.c (scm_boot_guile): copied from guile-tcl.c.
1459 Initialization specific to tcl interpreters removed.
1460
1461 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
1462
1463 * ports.c (scm_ports_prehistory): size malloced here doesn't
1464 matter so long as it is non-0 (got rid of "* 4").
1465
1466 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
1467
1468 * gscm.h: gscm_mkarray eliminated (presumably was not being used
1469 since its definition was bogus).
1470
1471 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
1472
1473 * mallocs.[ch]: back again (for rx at least).
1474
1475 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
1476
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).
1480
1481 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
1482 (Tom Mckay@avanticorp.com)
1483
1484 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
1485
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)
1490
1491 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
1492
1493 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
1494 for a specific symbol or for all symbols.
1495
1496 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
1497
1498 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
1499 keys and weak values confused).
1500
1501 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
1502
1503 * list.c (scm_last_pair): map '()=>'()
1504
1505 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
1506
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.
1510
1511 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
1512
1513 * gscm.c (gscm_run_scm): got rid of objprop.
1514
1515 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
1516
1517 * genio.c (scm_getc):
1518 NOTE: fgetc may not be interruptable.
1519
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.
1523
1524 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
1525
1526 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
1527 after freeing part of the port table.
1528
1529 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
1530
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
1534 ports handle.
1535
1536 * pairs.c (scm_delq_x): never throw an error.
1537
1538 * vectors.c (scm_make_vector): made the default vector fill argument
1539 into '() (much more useful than the previous value, "#unspecified")
1540
1541 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
1542
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.
1547
1548 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
1549
1550 * procs.c (scm_make_subr_opt): new entry point for making
1551 anonymous subrs.
1552
1553 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
1554
1555 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
1556
1557 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
1558
1559 * numbers.c (scm_exact_p): This function no longer
1560 implements "integer?".
1561
1562 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
1563
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.
1567
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.
1572
1573 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
1574
1575 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
1576 conservatively marked objects).
1577
1578 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
1579
1580 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
1581
1582 * feature.c (scm_compiled_library_path): moved here from repl.c.
1583 This file is for stuff relating specifically to Scheme libraries
1584 like slib.
1585
1586 * eval.c (scm_m_define): don't give warning about redefinition, don't
1587 check verbosity.
1588
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?
1591
1592 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
1593
1594 * error.c: scm_warn eliminated.
1595
1596 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
1597
1598 * repl.c, marksweep.c, gc.c (various):
1599 lose exit_report, growth_mon.
1600
1601 * gscm.c: got rid of verbosity functions.
1602
1603 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
1604
1605 * throw.c (scm_ithrow): guard against the bad-throw hook changing
1606 between the call to procedurep and use.
1607
1608 * error.c (scm_everr):
1609 * gc.c (fixconfig):
1610 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
1611 but less so.
1612
1613 * strports.c: don't reveal the port's string to the caller
1614 because it changes size.
1615
1616 (stputc stwrite): check/change the strings length with interrupts
1617 blocked.
1618
1619 * objprop.c (scm_set_object_property_x &c): use the generic
1620 hashing functions and be threadsafe.
1621
1622 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
1623 (per suggestion jaffer@gnu.ai.mit.edu).
1624
1625 * mbstrings.c (scm_multi_byte_string): guard against argument list
1626 changing length.
1627
1628 * strings.c (scm_make_string): loop cleanup
1629
1630 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
1631 a scheme function.
1632
1633 * weaks.c (scm_weak_vector): guard against argument list
1634 changing length.
1635
1636 * variable.c (scm_builtin_variable): check for/make a built-in
1637 variable automicly.
1638
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.
1642
1643 * hashtab.c -- new file: general hash table
1644 functions. hash, hashq, hashv, hashx.
1645
1646 * tags.h: made wvect an option bit of vector.
1647
1648 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
1649
1650 * symbols.c: made the basic symbol table operations atomic.
1651
1652 * root.c &c.: collected stack-specific global state.
1653 linum/colnum etc *should* be port-specific state.
1654
1655 * struct.c (scm_init_struct): init the first struct type during
1656 initialization to fix a race condition.
1657
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)
1661
1662 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
1663 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
1664
1665 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
1666 and C symbols to begin with SCM_ or scm_.
1667
1668 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
1669
1670 * gsubr.c (scm_gsubr_apply): statically allocate the
1671 array of arguments (bothner@cygnus.com).
1672
1673 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
1674
1675 * scmsigs.c: Simplified to use async rountines.
1676
1677 * async.c: New support for interrupt handlers.
1678
1679 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
1680
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
1686 cope).
1687
1688 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
1689
1690 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
1691 use the system symhash. == #t means create an uninterned symbol.
1692
1693 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
1694
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.
1698
1699 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
1700
1701 * strings.c (scm_string_shared_substring): create shared
1702 substrings. (Doesn't handle mb strings yet).
1703
1704 * mbstrings.c (scm_print_mb_string): handle RO strings.
1705
1706 * print.c (scm_iprin1): print substrings as their non-substring
1707 counterparts (dubious).
1708
1709 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
1710 strings.
1711
1712 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
1713
1714 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
1715
1716 * eq.c (scm_equal_p): handle RO and MB strings.
1717
1718 * symbols.c (scm_string_to_symbol):
1719 (scm_string_to_obarray_symbol):
1720 * strop.c (scm_i_index):
1721 (scm_i_rindex):
1722 (scm_string_null_p):
1723 (scm_string_to_list):
1724 * strings.c (scm_string_length):
1725 (scm_string_ref):
1726 (scm_substring):
1727 (scm_string_append):
1728 * simpos.c (scm_system):
1729 (scm_getenv):
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):
1737
1738 Use RO string macros for RO strings.
1739
1740 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
1741
1742 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
1743
1744 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
1745 index/rindex. Do handle embedded \000 characters.
1746
1747 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
1748
1749 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
1750 Eliminate a (presumed) warning on some systems.
1751
1752 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
1753 (Mikael Djurfeldt <mdj@nada.kth.se>)
1754
1755 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
1756
1757 * eval.c (scm_map): added argument type checking.
1758 (kawai@sail.t.u-tokyo.ac.jp)
1759
1760 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
1761 for C++. (Seth Alves <alves@gryphon.com>)
1762
1763 (gscm_cstr): uses an uninitialized local variable causing
1764 segv. (kawai@sail.t.u-tokyo.ac.jp)
1765
1766
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>)
1772
1773
1774 * gscm.c (gscm_sys_default_verbosity):
1775 incorrectly declared for non-__STDC__
1776 (Tom_Mckay@avanticorp.com)
1777
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.
1781
1782 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
1783 Give a warning, not an error, for unrecognized modes.
1784
1785 * eval.c (SCM_CEVAL):
1786 static char scm_s_for_each[];
1787 static char scm_s_map[];
1788 not needed.
1789
1790 * strings.c (scm_string_p):
1791 static char s_string[];
1792 (see next entry)
1793
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
1799 broken compilers.
1800
1801 * variable.c (make_vcell_variable): static char s_make_variable[];
1802 isn't needed.
1803
1804 * fports.c (scm_port_mode):
1805 chars modes[3] = "";
1806 to
1807 chars modes[3];
1808 modes[0] = '\0';
1809 (Tom_Mckay@avanticorp.com)
1810
1811
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)
1815
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)
1819
1820 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
1821 (Tom_Mckay@avanticorp.com)
1822
1823 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
1824
1825 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
1826 (Tom_Mckay@avanticorp.com)
1827
1828 * strop.c (scm_substring_fill_x):
1829 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
1830 (Tom_Mckay@avanticorp.com)
1831
1832 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
1833 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
1834
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)
1837
1838 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
1839 can turn into an obscure gc bug.
1840
1841 * chars.c (scm_char_p): fixed PROC call.
1842
1843 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
1844 scm_vector_set.
1845
1846 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
1847
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.
1851
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.
1855
1856 * continuations.c (scm_make_cont): when a continuation is captured,
1857 relocate the continuation stack chunks registered on the wind chain
1858 to the heap.
1859
1860 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
1861
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).
1866
1867 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
1868
1869 * eval.c (scm_m_set): allow multi-variable set! like
1870 (set! x 1 y 2 z 3).
1871
1872 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
1873
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
1876 port-table index.
1877
1878 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
1879
1880 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
1881
1882 * mbstrings.c (new file): functions on multi-byte strings.
1883
1884 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
1885 for multi-byte strings. Moved the string tag.
1886
1887 * chars.h chars.c repl.c (many functions): made scm_upcase and
1888 scm_downcase functions that are safe for extended character sets.
1889
1890 Changed the range of integer->char.
1891
1892 Changed the type of SCM_ICHR.
1893
1894 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
1895
1896 * guile.c: Changed init file name from "SCM_INIT_PATH" to
1897 "GUILE_INIT_PATH"
1898
1899 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
1900
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.
1904
1905 * variable.c (scm_variable_ref): fixed assertion test.
1906 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
1907
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
1911 code).
1912 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1913
1914 * pairs.c (scm_obj_length): see next entry.
1915
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.
1919
1920 * eq.c (scm_equal_p): fixed smob case.
1921 (William Gribble <grib@arlut.utexas.edu>)
1922
1923 * Makefile.in (X_CFLAGS): defined.
1924 (William Gribble <grib@arlut.utexas.edu>)
1925
1926 * gscm.h (gscm_2_double): provided now
1927 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
1928
1929 Tue Jun 13 01:04:09 1995 gnu
1930 * Vrooom!
1931
1932