*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
2
3 Change from Thomas Morgan:
4 * variable.c: Include eq.h.
5 (var_equal): New function.
6 (variable_smob): Use var_equal as the discriminator for variables.
7
8 * throw.c (s_throw): Remove extraneous declaration.
9
10 * configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
11 * eval.c: Add necessary CPP cruft to support that.
12 * configure, Makefile.in, scmconfig.h.in: regenerated.
13
14 Change from Thomas Morgan:
15 * procprop.c (scm_procedure_properties): Convert the Scheme
16 boolean returned by scm_procedure_p into a C boolean before using
17 it as a condition for SCM_ASSERT.
18 (scm_procedure_property): Likewise.
19
20 * simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
21 indications of Unixness.
22 * stime.c: Same.
23
24 Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
25
26 * * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
27
28 Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
29
30 * read.c (scm_lreadr): use scm_misc_error to improve one of the
31 "unknown # object" error messages.
32
33 * strop.c (scm_i_index, scm_i_rindex): combine into one procedure
34 (scm_i_index) and declare it static. Add a 'direction' argument
35 to indicate what way the search should go.
36 (scm_i_index): throw out-of-range error instead of wrong-type-arg
37 if indices are bad.
38 (scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
39 strop.h: remove scm_i_index, scm_i_rindex prototypes.
40
41 Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
42
43 * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
44
45 * * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
46 to avoid clash with various scsh forks.
47
48 Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
49
50 The following two changes (ramap.c, throw.c) are motivated by the
51 apparent unportability of forward declarations of static arrays of
52 the form `static foo bar[];'.
53
54 * ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
55 (ra_rpsubrs, ra_asubrs): Moved to the top of array code.
56
57 * throw.c (scm_throw): Moved above scm_ithrow.
58
59 * options.h: Removed the extern declarations of scm_yes_sym and
60 scm_no_sym since these are static.
61
62 Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
63
64 * ports.c: add SCM_PROC declarations for pt-size and pt-member.
65
66 * Makefile.am: remove AWK=@AWK@.
67 Add a rule for generating errnos.list.
68 (CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
69
70 * configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
71 don't extract errnos, just set a variable (avoids the
72 need to recompile error.c just because configure is run.)
73
74 * unif.h: update prototypes.
75 * unif.c (scm_uniform_array_read,write): change the offset and
76 length arguments to start and end, for consistency.
77
78 * __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
79
80 * ioext.h: update prototypes.
81 * * ioext.c (scm_read_delimited_x): replaces scm_read_line and
82 scm_read_line_x, it's a more general procedure using an
83 interface from scsh. read-line and read-line! are now defined
84 in boot-9.scm.
85 * Note that the new read-line trims the terminator
86 by default, previously it was appended to the returned string. An
87 optional argument specifies how to process the terminator (scsh
88 compatible). For the old behaviour: (read-line port 'concat).
89 scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
90 returns a pair, but is converted to multiple values if the scsh
91 module is loaded.
92
93 socket.h: update prototypes.
94 * socket.c (scm_recvfrom): for consistency with other procedures,
95 take start and end as separate optional arguments.
96 * (scm_recv, scm_recvfrom): don't allow the second argument
97 to be a size, only a buffer. Change the scheme names to
98 recv! and recvfrom!. Don't return the buffer.
99
100 * ioext.h, posix.h: move prototypes too.
101 * ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
102 moved back from posix.c to ioext.c. Also move #includes of "genio.h"
103 "read.h" and "unif.h".
104 * ioext.c: include "chars.h"
105
106 Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
107
108 * dynl.c: The dynamic linking and module registration functions
109 are now defined even when dynamic linking is not available for the
110 host system. Some of their functionality can be done without
111 dynamic linking; when it's really needed, they throw errors.
112
113 Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
114
115 * configure.in: Only define DYNAMIC_LINKING when one of the system
116 dependent functions is detected.
117 * dynl.c (scm_dynamic_func): New function to get the address of a
118 function in a dynamic object.
119 (scm_dynamic_call, scm_dynamic_args_call): Accept the values
120 produced by scm_dynamic_func as the thing to call.
121
122 Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
123
124 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
125 (scm_register_module_xxx, scm_registered_modules,
126 scm_clear_registered_modules): New functions.
127
128 Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
129
130 * symbols.c (scm_sysintern): Renamed to
131 scm_sysintern_no_module_lookup.
132 (scm_sysintern): New function to take the place of the old
133 scm_sysintern. It uses the current toplevel lookup closure to give
134 the symbol its value. This is a temporary hack to put packages
135 like gtcltk into their own module.
136 (scm_can_use_top_level_lookup_closure_var): New variable to tell
137 us whether `scm_top_level_lookup_closure_var' has been initialized
138 and is usable.
139 * eval.c (scm_init_eval): Set it.
140
141 Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
142
143 * fports.c (scm_open_file): pass errno to scm_syserror_msg.
144 * filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
145 SCM_FD.
146 * filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
147 scm_syserror_msg.
148 * (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
149 scm_sys_dup): deleted: FD capability will be added to other
150 procedures.
151 * Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
152 scm_fd_free, fd_smob, scm_intern_fd.
153 * (scm_open): renamed from scm_sys_open. Return a port instead of
154 an FD object. Make the mode argument optional.
155 * (scm_sys_create): deleted, it's just a special case of open.
156 (scm_init_filesys): move interning of constants O_CREAT etc.,
157 here (were previously using SCM_CONST_LONG macro).
158 Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
159 don't newsmob fd.
160 (numerous _sys_ procedures): remove gratuitous _sys_ from names.
161 include "fports.h" and <stdio.h>
162 (scm_stat, scm_select): don't support FD objects.
163
164 * error.h: adjust scm_syserror_msg prototype.
165 * error.c (scm_syserror_msg): take an extra argument for errno.
166 Using the global value didn't always work, since it could be
167 reset by procedure calls in the message or args arguments.
168
169 * fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
170 I don't understand why the check was there (and what about the
171 ultrix check?)
172
173 * strop.c (scm_string_copy): allow shared substrings to be copied.
174
175 * unif.h: corresponding change to prototypes.
176 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
177 recognize two new optional arguments: offset and length. Allow
178 the port argument to be an integer (file descriptor, for scsh).
179 Include <unistd.h> for "read" prototype.
180
181 Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
182
183 * socket.c: don't include filesys.h.
184
185 Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
186
187 * Makefile.am: add AWK=@AWK@ (?)
188
189 * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
190 errnos_get.c.
191 Add a rule to generate errnos.c from errnos.
192 * error.c (scm_init_error): include errnos.c.
193 * errnos_cnvt.awk: new file, converts the list of errno codes to
194 C expressions.
195 * errnos_get.c: new file.
196 * errnos.default: new file, contains errnos to try if they can't
197 be extracted from errno.h.
198 * configure.in: if using GCC, try and extract errno codes from
199 errno.h.
200 Added AC_PROG_AWK.
201
202 Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
203
204 * configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
205 * Makefile.am: Made libguile into a libtool library.
206 * PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
207 Set libtool_libs to indicate that libguile is a libtool library.
208 See guile/ChangeLog for details.
209 * .cvsignore: ignore "*.lo", the libtool library objects.
210
211 Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
212
213 * net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
214 use htons in getservbyport argument.
215
216 Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
217
218 * ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
219 * smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
220 duplicate.
221
222 * objprop.c (scm_object_property): No need to take the CDR of the
223 value returned by scm_object_properties, since Aug 20 change.
224
225 * configure.in: When checking for struct linger, #include
226 <sys/types.h> as well as <sys/socket.h>. I've never known
227 <sys/types.h> to cause any portability problems, and Solaris's
228 <sys/socket.h> needs it.
229 * configure: Rebuilt.
230
231 I think the Sun compiler has chosen a perverse way to interpret
232 ANSI declarations combined with K&R definitions. We'll
233 appease it a little bit. But when it invades France, we fight.
234 * print.c (scm_iprlist): Change 'tlr' argument to an int.
235 * print.h (scm_iprlist): Here too.
236 * numbers.c (scm_divbigdig): Change definition to match
237 declaration in numbers.h.
238 * unif.c (scm_makflo): Change definition to match declaration in
239 unif.h.
240
241 * init.c (scm_boot_guile): Don't return the value of
242 scm_boot_guile_1. This function doesn't return a value;
243 scm_boot_guile_1 doesn't return a value (or return at all).
244
245 * eval.c (unmemocopy): Add a semicolon to appease the Sun
246 compiler.
247
248 * simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
249 compile. I have a feeling this function is a bad idea anyway ---
250 one should always test for features, not systems.
251
252 * smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
253 semicolons. Only pure luck kept this from being noticed earlier.
254
255 Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
256
257 * socket.c (scm_recvfrom): Added missing semicolon.
258
259 Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
260
261 * socket.c (scm_recvfrom): allow buff_or_size to be a list containing
262 the buffer and start and end positions for scsh networking
263 implementation.
264
265 Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
266
267 * configure.in: Revert previous change to this file; the problem
268 is due to transient automake weirdness.
269 * configure: Rebuilt.
270
271 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
272 PLUGIN/guile.libs. configure generates the latter from the former.
273 * Makefile.in: Rebuilt.
274
275 * configure.in: Call AM_PROG_INSTALL; the automake manual says we
276 need this if we install scripts, like guile-snarf.
277 * configure: Rebuilt.
278
279 Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
280
281 * Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
282
283 Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
284
285 * socket.c (scm_addr_vector): fix faulty scm_listify.
286
287 Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
288
289 * read.c (scm_lreadr): Encountering EOF after skipping a SCSH
290 style block comment is no longer considered an error.
291
292 Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
293
294 * PLUGIN/guile.libs.in: New file.
295 * PLUGIN/guile.libs: Removed from repository.
296 * configure.in: Create PLUGIN/guile.libs from
297 PLUGIN/guile.libs.in. This is for including additonal libraries
298 needed for dynamic linking.
299 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
300 instead of PLUGIN/guile.libs.
301
302 * Makefile.am: Added explicit dependency "dynl.o: dynl.x".
303
304 Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
305
306 * list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
307 occurrences of the given element from the list, not just the
308 first. This is how the Emacs Lisp functions behave, how the
309 analogous Common Lisp functions behave, and (I believe) how the
310 older Maclisp functions worked. I realize that this change may
311 break code, but it seemed better to break it before the Guile
312 release than after.
313
314 * gc.c (scm_protect_object, scm_unprotect_object): New functions.
315 Their prototypes were already present in gc.h, but they weren't
316 implemented.
317 (scm_init_storage): Initialize scm_protects.
318 * root.c (scm_protects): New element of scm_sys_protects.
319
320 * net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
321
322 Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
323
324 * libguile.h: Added #include "libguile/net_db.h".
325
326 * libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
327 30 change. That file is only meant for communication between the
328 configuration process and load.c. If code linked against libguile
329 wants to get at the paths mentioned in libpath.h, it can call
330 functions declared in load.h.
331
332 Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
333
334 * libguile.h: Removed #include "libguile/fdsocket.h"
335
336 * net_db.c: Added #include <sys/socket.h>.
337
338 Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
339
340 * filesys.c (scm_input_waiting_p): use select in preference to
341 FIONREAD, since the latter doesn't detect EOF.
342 Throw error if neither select nor FIONREAD available.
343
344 * socket.c (scm_connect): take a port, not a fd object.
345 (scm_fill_sockaddr): throw an error if fam is not recognised.
346 (scm_bind): use scm_fill_sockaddr.
347 (scm_listen): take a port, not a fd object.
348 (scm_accept): take and return a port. return #f in the car if
349 address can't be got
350 (scm_sock_fd_to_port): new procedure.
351 (scm_socket): use scm_sock_fd_to_port.
352 (scm_addr_vector): throw error if unrecognised address type.
353 take an extra argument with the calling procedure name.
354 (scm_getsockname): take a port. return #f if address can't be got.
355 (scm_getpeername): take a port. return #f if address can't be got.
356 (scm_recvfrom): take a port. return #f for address component if can't
357 be got.
358 (scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
359 scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
360
361 Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
362
363 * throw.c (scm_internal_catch): Make body funcs and handler funcs
364 use separate data pointers, to allow them to be designed
365 independently and reused.
366 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
367 Renamed from catch_body, catch_handler, and uncaught_throw; made
368 generically useful.
369 (struct scm_catch_body_data): Renamed from catch_body_data; moved
370 to throw.h.
371 (scm_catch): Use the above.
372 (scm_throw): Don't bother printing a message for an uncaught
373 throw; we establish a default handler in init.
374 * throw.h (scm_internal_catch): Prototype updated.
375 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
376 decls.
377 (struct scm_body_thunk_data): New structure, used as data
378 argument to scm_body_thunk.
379 * init.c (struct main_func_closure): New structure, packaging up
380 the data to pass to the user's main function.
381 (scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
382 (scm_boot_guile_1): Pass it through to invoke_main_func. Use
383 scm_internal_catch to establish a catch-all handler, using
384 scm_handle_by_message. This replaces the special-case code in
385 scm_throw.
386 (invoke_main_func): Body function for scm_internal_catch; invoke
387 the user's main function, using the main_func_closure pointer to
388 decide what to pass it.
389 * root.c (struct cwdr_body_data): Remove handler_proc member.
390 (cwdr): Use scm_handle_by_proc instead of cwdr_handler.
391 (cwdr_handler): Removed.
392
393 Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
394
395 * socket.h (SCM_P): update bind prototype.
396 * socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
397 include "feature.h".
398 (scm_socket): return a port, not a file descriptor object.
399 include "fports.h" and <unistd.h>
400 (scm_bind): take a port, not a file descriptor object.
401 take an extra argument for address args.
402
403 * net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
404 INADDR_NONE, INADDR_LOOPBACK.
405
406 Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
407
408 * init.c: include net_db.h and not fdsocket.h.
409 (scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
410
411 * Makefile.am: corresponding changes.
412 * socket.h: renamed from fdsocket.h, fix names.
413 * net_db.h: renamed from socket.h, fix names.
414 * socket.c: renamed from fdsocket.c.
415 remove _sys from procedure names.
416 (scm_init_socket): rename from scm_init_fdsocket. include socket.x.
417 add "socket" to features list.
418 * net_db.c: renamed from socket.c.
419 remove _sys from procedure names.
420 (scm_init_net_db): rename from scm_init_socket. include net_db.x.
421 add "net-db" to features list.
422 include "net_db.h". don't include <sys/socket.h> or
423 <sys/un.h>.
424
425 Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
426
427 * tags.h (scm_tags): Removed comma at end of last enumerator.
428
429 Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
430
431 Don't use GCC extensions to allocate space for debugging frames.
432 (Here he goes again! Why do we put up with this?!)
433 * debug.h (scm_debug_frame): Make the 'vect' member a pointer to
434 an scm_debug_info structure, not an in-line array of them. Add
435 'info' member, to say how many vect elements we've used, for eval
436 frames.
437 * eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
438 a new variable debug_info_end to mark the end of vect, instead of
439 the address of the 'info' pointer itself.
440 [DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
441 &debug to scm_debug_frame *; debug is a real scm_debug_frame now.
442 (SCM_APPLY): Explicitly allocate space for debug.vect.
443 * debug.c (scm_m_start_stack): Same, for vframe.vect.
444 * stacks.c: Adjusted for new debug frame structure.
445 (RELOC_INFO, RELOC_FRAME): New macros.
446 (stack_depth, read_frames): Use them, and new scm_debug_frame
447 element 'info', instead of magically knowing that eval frames have
448 an info pointer sitting after vect.
449 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
450 RELOC_FRAME.
451 (scm_init_stacks): Formatting tweaks.
452
453 Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
454
455 Give GCC more control flow information, so it can be sure that
456 variables aren't used uninitialized.
457 * error.h (scm_error, scm_syserror, scm_syserror_msg,
458 scm_sysmissing, scm_num_overflow, scm_out_of_range,
459 scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
460 scm_misc_error): Tell GCC that these functions never return.
461 * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
462 out the field type, call abort if SCM_ASSERT returns, to placate
463 the optimizer.
464 * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
465 scm_wta ever returns. We can't handle this case anyway, and this
466 gives the optimizer more information.
467 * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
468 scm_wta ever returns.
469
470 In some cases, the code is fine, but GCC isn't smart enough to
471 figure that out; this usually happens when one variable is only
472 initialized and used when a particular condition holds true, and
473 we know that condition will never change within a given invocation
474 of the function. In this case, we simply initialize the variables
475 to placate the compiler, hopefully to a value which will cause a
476 crash if it is ever actually used.
477 * print.c (scm_iprin1): Initialize mw_pos.
478 * read.c (scm_lreadrecparen): Initialize tl2, ans2.
479 * throw.c (scm_ithrow): Initialize dynpair.
480 * unif.c (scm_uniform_vector_ref): Initialize cra.
481 * struct.c (init_struct): Initialize prot.
482 * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
483
484 * strports.c (scm_eval_0str): Don't return uninitialized garbage
485 if EXPR contains no expressions.
486
487 Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
488
489 * eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
490 cause an infinite loop (???). So much for the algebraic
491 equivalency of variable-sized arrays and alloca...
492
493 Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
494
495 * backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
496 a SCM boolean, not a C boolean.
497
498 Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
499
500 * gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
501 (scm_must_malloc, scm_must_realloc): Added a hysteresis to the
502 rules for raising scm_mtrigger. Previously, unfortunate but not
503 unlikely circumstances could result in almost constant invokation
504 of the gc. Now, this situations should be less likely, but they
505 are not prevented completely.
506
507 Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
508
509 * numbers.c (scm_fuck): Procedure removed; looks like old test
510 code.
511 * numbers.h: Prototype removed.
512
513 Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
514
515 * debug.h (scm_debug_frame): Change `vect' member from an in-line
516 array to a pointer, to match my Nov 21 change in eval.c.
517
518 Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
519
520 * libguile.h: Added #include "libguile/backtrace.h", #include
521 "libguile/stacks.h".
522
523 * strings.c (scm_string scm_make_string scm_string_ref
524 scm_string_set_x scm_string_equal_p scm_string_append):
525 Bugfix according to scm patch from Aubrey Jaffer:
526 Corrected long-standing
527 (not (eqv? (integer->char 128)
528 (string-ref (make-string 1 (integer->char 128)) 0)))
529 bug found by John Kozak <jk@noontide.demon.co.uk>.
530
531 * strports.c, strports.h: Make scm_eval_0str return the value of
532 the last expression evaluated (previously, it returned void).
533
534 * strports.c, strports.h: New function: scm_read_0str. Does what
535 it sounds like.
536
537 Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
538
539 * simpos.c (scm_getenv): return #f if string can't be found in the
540 environment instead of throwing an exception, for compatibility
541 with numerous other systems.
542
543 Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
544
545 * Makefile.am (.c.x): Use guile-snarf.
546 * configure.in (AC_OUTPUT): Generate guile-snarf; make it
547 executable.
548 * guile-snarf.in: New file, resurrected from old guile-snarf.sh.
549
550 Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
551
552 * backtrace.c (scm_display_error_message): Made non-static, and
553 renamed from display_error_message.
554 * backtrace.h (scm_display_error_message): Added extern decl.
555 * throw.c (uncaught_throw): Use it to display the error message.
556
557 Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
558
559 * inet_aton.c: Use #if 0, not #ifdef 0.
560
561 Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
562
563 * ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
564 to convert the returned value.
565 (scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
566 the offset argument.
567
568 Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
569
570 Add new interface to catch/throw, usable from C as well as
571 Scheme.
572 * throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
573 (scm_internal_catch): New function, replaces...
574 (scm_catch_apply): Deleted.
575 * throw.c (scm_catch_apply): Deleted; replaced with a more general
576 mechanism which is a bit more code, but can be used nicely from C
577 and implement the Scheme semantics as well.
578 (scm_internal_catch): This is the replacement; it's named after
579 the analogous function in Emacs.
580 (scm_catch): Reimplemented in terms of the above.
581 (struct catch_body_data, catch_body, catch_handler): New
582 functions, used by scm_catch.
583 * root.c (cwdr): Reimplemented in terms of scm_internal_catch.
584 (struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
585 support for new cwdr.
586
587 * Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
588 Oct 30.
589
590 Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
591
592 * acconfig.h: Added DYNAMIC_LINKING symbol.
593 * configure.in: Add option and checks for dynamic linking.
594 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
595 dynl.h: New files for dynamic linking support.
596 * Makefile.am (libguile_a_SOURCES):
597 Added "dynl.c".
598 (modinclude_HEADERS): Added "dynl.h".
599 (EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
600 "dynl-vms.c".
601 * init.c (scm_boot_guile_1): Call
602 scm_init_dynamic_linking to initialize dynamic linking support.
603
604 Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
605
606 * init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
607 (as we Schemers say). It needs to be global, so that I can tweak
608 it for the proper operation of unexec.
609 (scm_boot_guile_1_live): New variable, see above.
610
611 Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
612
613 * guile-snarf.sh: Removed.
614 * PLUGIN/guile.libs: Added dependency for -lm.
615 * acinclude.m4: Renamed from aclocal.m4.
616 * PLUGIN/greet: Removed.
617 * Makefile.am, aclocal.m4: New files.
618 * configure.in: Updated for Automake.
619
620 Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
621
622 * eval.c (scm_definedp): Use top_level_lookup_closure_var
623 and not top_level_lookup_thunk_var.
624
625 Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
626
627 * Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
628
629 Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
630
631 * eval.c (scm_definedp): Incompatibly changed to be a builtin
632 Scheme function, instead of syntax. Single argument is now a
633 symbol.
634
635 Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
636
637 * ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
638 scm_ra_divide): Properly terminate statements passed as arguments
639 to IVDEP macros. (Thanks to Bernard Urban.)
640
641 * eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
642 with non-constant sizes. (Thanks to Bernard Urban.)
643
644 Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
645
646 It's an "eval closure", not an "eval thunk." A thunk is a
647 function of no arguments.
648 * root.h (struct scm_root_state): Renamed
649 top_level_lookup_closure_var from top_level_lookup_thunk_var.
650 (scm_top_level_lookup_closure_var): Renamed from
651 scm_top_level_lookup_thunk_var.
652 * root.c (mark_root): Uses changed.
653 * gdbint.c (gdb_eval, gdb_binding): Uses changed.
654 * init.c (scm_start_stack): Uses changed.
655 * eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
656 Change scheme-visible name to *top-level-lookup-closure* from
657 *top-level-lookup-thunk*.
658
659 Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
660
661 * gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
662 pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
663
664 Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
665
666 * gc.c (struct scm_heap_seg_data): Doc fixes.
667
668 * gc.c (scm_gc_sweep): Empty all segments' freelists before
669 sweeping. Then, prepend each segment's free cells to its
670 freelist, rather than wiping out the old value. (Thanks to Marius
671 Vollmer.)
672
673 * gc.c (which_seg, scm_map_free_list, scm_newcell_count,
674 scm_check_freelist, scm_debug_newcell): New functions and
675 variables, for debugging freelist problems.
676 * pairs.h (SCM_NEWCELL): New debugging version added.
677 * gc.h (scm_debug_newcell): Added extern declaration, used by
678 debugging version of SCM_NEWCELL.
679
680 Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
681
682 On some systems <libc.h> conflicts with <unistd.h>, and should not
683 be #included at all.
684 * aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
685 * acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
686 * configure.in: Call it.
687 * posix.c, filesys.c: Use its results to decide whether or not to
688 #include <libc.h>.
689 * configure, scmconfig.h.in: Rebuilt with autoconf and
690 autoheader.
691
692 Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
693
694 * fports.c (scm_stdio_to_port, scm_open_file): Set the port's
695 pointer to the stdio stream before calling scm_setbuf0, so the
696 latter will be able to retrieve it. I'm surprised this didn't
697 segfault earlier. (Thanks to Christopher Lee.)
698
699 Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
700
701 * throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
702 of `lazy-catch'.
703
704 Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
705
706 * stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
707 number of stack narrowing specifier pairs. The first specifier in
708 a pair controls inner border, the second the outer border. A
709 number means cut that number of frames, a procedure object means
710 cut until that object is found in operator position in a frame.
711
712 * root.c (cwdr): Bugfix.
713
714 * read.c: Recording of positions disabled by default.
715
716 * procs.c (scm_closure_p): New function.
717
718 * posix.c (scm_tmpnam): New function.
719
720 * load.c: Added #include "throw.h".
721 (scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
722 ends with '/'.
723
724 * load.c, load.h (scm_read_and_eval_x): New function.
725
726 * eval.c: Renamed debug option "deval" to "debug".
727
728 (scm_eval_x): `eval!' is no longer accessible from the scheme
729 level. Motivation: We can't allow operations which introduce
730 glocs into the scheme level. Guile's type system can't handle
731 these as data. Use `eval' or `read-and-eval!' as replacement.
732
733 * debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
734 SCM_CONSP since this is a macro!; Set vframe.prev to
735 scm_last_debug_frame instead of 0. In this way we can look
736 "above" the virtual start stack frame if we wish.
737 (scm_debug_hang): New function: Useful for debugging Guile in
738 certain tricky situations. Will probably be removed later...
739
740 * debug.h: Changed semantics of debug option "backtrace". This
741 option now only indicates whether we want automatic backtrace at
742 an error.
743
744 Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
745
746 * ports.c: #include "filesys.h"
747 (scm_char_ready_p): input_waiting renamed and moved to filesys.c.
748
749 * filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
750 Motivation: This is system specific code which is related to file
751 I/O. It also may use select. Added code by Gary Houston to
752 detect presence of character in stdio buffers.
753
754 * libguile.h: #include "libguile/libpath.h"
755
756 * Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
757 SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
758 SCM_SITE_DIR; Install libpath.h among the other include files.
759
760 * load.c, load.h (scm_sys_package_data_dir): New function.
761
762 Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
763
764 * stacks.h: Bugfix: Don't use tail-array length field as stack
765 length field! This screwed GC.
766
767 Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
768
769 * _scm.h: Added #ifndef around definition of macros min and max.
770
771 * __scm.h: Added hooks for threads to plugin to in ints protection
772 macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
773 SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
774 the main code in these macros duplicated and spread over multiple
775 files. Renamed SCM_THREADS_SWITCHING_CODE ->
776 SCM_THREAD_SWITCHING_CODE.
777
778 Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
779
780 * snarf.h: New file.
781 * guile-snarf.sh: New file.
782 * Makefile.in (inner_h_files): Added snarf.h
783 (ancillary, install, uninstall, distclean): Added actions for
784 guile-snarf.
785 (.c.x): Use guile-snarf.
786 (guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
787 (gen_c_files): Note that these depend on guile-snarf.
788 * _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
789 now in "snarf.h". Added #include "snarf.h" to get them.
790 * libguile.h: Added #include "snarf.h".
791 (Patches applied and tweaked by Jim Blandy.)
792
793 Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
794
795 * socket.c: Use K&R style declaration for 'close'; the GNU coding
796 standards suggest against providing prototypes for system
797 functions. Thanks to Greg Troxel.
798
799 Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
800
801 * strports.c (scm_eval_0str): New function.
802 #include "read.h", to get prototype for scm_read.
803 * Makefile.in (strports.o): Update dependencies.
804 * strports.h: New prototype.
805
806 * numbers.c (scm_integer_p): Renamed from scm_int_p; change its
807 scheme name from "int?" to "integer?". It seems to do the job.
808 * numbers.h: Rename prototype too.
809 * scmhob.h (intp): Change definition to refer to scm_integer_p. I
810 hope this is right.
811
812 * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
813 scm_num_eq_p): Rename these according to R4RS conventions: call
814 them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
815 to making libguile R4RS compliant without ice-9...
816
817 * load.c (scm_sys_search_load_path): Search for files under all
818 extensions listed in the %load-extensions variable. If FILENAME
819 is absolute, return it unchanged, without searching the load path.
820 (scm_loc_load_extensions): New variable, pointing to
821 %load-extensions' value cell.
822 (scm_init_load): Initialize it, and the value it points to.
823 (scm_primitive_load_path): Improve error reporting.
824
825 * load.c (scm_loc_load_hook): New variable, pointing to value cell
826 of new Scheme variable %load-hook.
827 (scm_primitive_load): Apply %load-hook to filename.
828
829 Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
830
831 * configure.in: add tests for figuring out whether buffered data
832 is available in a FILE structure, which is needed by char-ready.
833
834 * acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
835 FILE_CNT_READPTR.
836
837 * simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
838 exceptions using misc_error instead of syserror. It seems a bit
839 odd to throw an exception if a string can't be found in the
840 environment, but it's consistent with open-file, stat etc.
841 (simpos.h): remove sys_ from getenv.
842
843 * posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
844 occurs, throw an error instead of returning errno. Return value
845 is now unspecified.
846 (numerous in posix.c and posix.h): removed superfluous sys_ from names.
847
848 Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
849
850 * filesys.c (scm_stat2scm): derive file type and permissions from
851 the stat mode and append them to the returned vector.
852 There isn't much overhead in doing this and it avoids the need to
853 work with S_IRUSR et al. in Scheme.
854 Define symbols scm_sym_regular etc.
855 (scm_init_filesys): don't intern S_IRUSR etc.
856
857 * load.c: change s_try_load and s_try_load_path to s_primitive_load
858 and s_primitive_load_path.
859
860 * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
861
862 * error.h: don't declare error symbols. prototype for scm_misc_error.
863
864 * stackchk.c (scm_stack_overflow_key): defined here instead of in
865 error.c.
866
867 * error.c: use SCM_SYMBOL to set up error keys.
868 scm_misc_error: new procedure.
869
870 Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
871
872 * read.c (scm_lreadr): Recognize SCSH-style block comments; text
873 between `#!' and `!#' is ignored.
874 (skip_scsh_block_comment): New function.
875
876 * feature.c (scm_set_program_arguments): New argument, FIRST.
877 * feature.h: Update prototype.
878 * init.c (scm_boot_guile_1): Pass new argument to
879 scm_set_program_arguments.
880
881 Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
882
883 * init.c (scm_start_stack): Don't initialize scm_progargs here.
884 (scm_boot_guile): Call scm_set_program_arguments here, later than
885 the old initialization.
886
887 * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
888 initialization procedure.
889 - Delete in, out, err arguments; there are other perfectly good
890 ways to override these when desired.
891 - Delete result argument; this function shouldn't ever return.
892 - Rename init_func argument to main_func, for less confusion.
893 - Delete boot_cmd argument; main_func is more general.
894 -Add 'closure' argument, to help people pass data to main_func
895 without resorting to global variables.
896 - Abort if reentered; don't bother returning an error code.
897 - Call scm_init_standard_ports to set up the default/current
898 standard ports; no need to pass them to scm_start_stack.
899 - Remove code to evaluate the boot_cmd, and start the repl; let
900 the user do something like that in main_func if they want.
901 - Remove code to package up a return value; main_func can do any
902 of that as needed.
903 - Call exit (0), instead of returning.
904 (scm_start_stack): Don't initialize the I/O ports here; that's
905 weird. Delete in, out, err arguments. Move guts to
906 scm_init_standard_ports, scm_stdio_to_port.
907 (scm_init_standard_ports): New function, to set up current and
908 default standard ports.
909 (scm_start_stack, scm_restart_stack): Make these static.
910 * init.h (scm_boot_guile): Adjust declaration.
911 (scm_start_stack, scm_restart_stack): Remove externally
912 visible declarations for these.
913 (enum scm_boot_status): Removed; now scm_boot_guile never returns.
914
915 * fports.c (scm_stdio_to_port): New function. Its guts used to be
916 written out several times in scm_start_stack.
917 * fports.h: New declaration for the above.
918
919 * feature.c (scm_set_program_arguments): New function.
920 * feature.h: New declaration for the above.
921
922 * ports.c: Formatting tweak.
923
924 Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
925
926 * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
927 ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
928 for obtaining the address of a car or cdr field. Motivation:
929 &SCM_CXR make assumptions about the internal structure of the
930 SCM_CXR selectors.
931
932 * eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
933 Motivation: see SCM_CXRLOC.
934
935 * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
936 srcprop.h, tags.h, throw.c, unif.c: Added new selectors
937 SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
938 Motivation: Safer use. Some other macros are defined in terms of
939 these operations. If these are defined using the SCM_SETCXR
940 (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
941 to inefficiency and an <e1> with side-effects could potentially
942 break. Also, these particular operations are heavily utilized in
943 the garbage collector. In unoptimized code there will be a
944 measurable speedup.
945
946 * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
947 eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
948 ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
949 pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
950 procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
951 strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
952 vports.c: Cleaned up use of pairs: Don't make any special
953 assumptions about the internal structure of selectors and
954 mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
955 SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
956 (Among other things, this change makes it easier to build Guile
957 with certain compilers which have problems with casted lvalues.)
958
959 Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
960
961 * stacks.c: Improve selection of relevant stack frames when making
962 a stack object. Introduce one level of indirection in the stack
963 object to make it possible to "narrow" to a certain region of the
964 stack. This facilitates making use of more clever algorithms (not
965 implemented) for selecting relevant frames and gives a cleaner
966 design since selection of frames can be done independently of
967 extraction of frames from the real stack.
968 (scm_stack_id): Also take #t as argument which means look at
969 current stack.
970
971 * stacks.h: In struct scm_stack: Turn field frames into a pointer.
972 Turn n_tail into an integer directly representing current number
973 of frames in stack. Add field tail.
974
975 * ports.c (scm_port_line_x, scm_port_column_x): New mutators.
976
977 * debug.c (scm_make_memoized): Made it available at scheme level.
978 (scm_unmemoize, scm_memoized_environment): Bugfix: Check for
979 SCM_NIMP before applying heavier predicates in argument checking.
980 (scm_local_eval): Also take memoized object as argument.
981
982 * backtrace.c (scm_display_error): Just a safety measure: Stacks
983 aren't created with zero length, but should such a strange
984 creature suddenly turn up...
985
986 Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
987
988 * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
989 `del', for the sake of C++ compilers. (Patch applied by JimB.)
990
991 Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
992
993 * variable.c (scm_make_variable): Make the name hint optional, as
994 documented.
995 (anonymous_variable_sym): Renamed from variable_sym. All uses
996 changed.
997
998 * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
999 from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
1000 of scm_primitive_load_path was also changed to
1001 "primitive-load-path", from "%try-load-path". Callers changed.
1002 We'd like to respect the convention that a function named
1003 "try-mumble" should behave just like the function called "mumble",
1004 but return #f instead of signalling some error.
1005 * load.h: Rename prototypes.
1006
1007 Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1008
1009 * print.c (make_print_state, grow_print_state), print.h: Modified
1010 the print state representation: Don't use a tail array for
1011 recording of circular references. Resizing of the print state
1012 structure invalidates the print state pointer. To avoid passing
1013 around an indirect print state reference to all printing
1014 functions, we instead let the print state reference a resizable
1015 vector.
1016
1017 Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
1018
1019 * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
1020 Don't crash when passed an improper list terminated by a
1021 non-immediate value.
1022
1023 Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
1024
1025 Allocate data for structures on an eight-byte boundary, as
1026 required by the tagging system.
1027 * struct.c (alloc_struct): New function.
1028 (scm_make_struct, scm_make_vtable_vtable): Call it.
1029 * struct.h (scm_struct_n_extra_words): Bump to 3.
1030 (scm_struct_i_ptr): New "field".
1031 * gc.c (scm_gc_sweep): When we need to free the data, use the
1032 information stored by alloc_struct to find the beginning of the
1033 block allocated to the structure, so we can free it.
1034
1035 Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1036
1037 * init.c (scm_boot_guile_1): Moved scm_init_struct in front of
1038 scm_init_stacks.
1039
1040 * debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
1041 (scm_debug_info): New member: id.
1042
1043 * stacks.c: Stacks are now represented as structs; Stacks have an
1044 id given to them by `start-stack'.
1045 (scm_last_stack_frame): Added predicates `stack?' and `frame?'.
1046
1047 * stacks.h: Added declarations of scm_stack_p and scm_frame_p;
1048 Changed stack representation.
1049
1050 * debug.c (scm_procedure_name): Try procedure property `name' for
1051 compiled closures aswell.
1052
1053 * gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
1054
1055 * eval.c: scm_i_name moved to gsubr.c
1056 (scm_m_define): Record names of all kinds of procedure
1057 objects. (Earlier, only closures were recorded.)
1058
1059 * procprop.h: Added declaration of scm_i_name.
1060
1061 * gsubr.c: Added global scm_i_name. Added #include "procprop.h".
1062 (scm_make_gsubr): Record names of compiled closures.
1063
1064 Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1065
1066 * debug.c, debug.h: Removed obsolete code.
1067
1068 * continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
1069 stacks.c: Renamed regs --> scm_contregs.
1070
1071 * print.c (scm_free_print_state): Cleanup print state before
1072 returning it to pool. It is better to do it here than in
1073 scm_prin1 since scm_prin1 is called often.
1074
1075 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
1076 s_set_source_property_x): Check that first argument is a pair or a
1077 memoized object.
1078
1079 * srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
1080 scm_i_line, scm_i_column and scm_i_breakpoint global.
1081
1082 * init.c: Added #include "backtrace.h" and #include "stacks.h".
1083 (scm_boot_guile_1): Added calls to scm_init_backtrace and
1084 scm_init_stacks.
1085
1086 * debug.h: Added debug object smob declaration and macro
1087 definitions.
1088
1089 * configure.in: Build with backtrace.o and stacks.o if debug
1090 support enabled.
1091
1092 * Makefile.in: Added entries for new files: backtrace.c,
1093 backtrace.h, stacks.c and stacks.h.
1094
1095 * symbols.c (scm_sym2ovcell): Fixed documentation.
1096
1097 * _scm.h (min, max): Added.
1098
1099 * async.c: Moved `min' macro to _scm.h.
1100
1101 * debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
1102 SCM_BACKTRACE_INDENT.
1103
1104 * eval.c: Added new debug options `maxdepth' and `indent'.
1105
1106 * print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
1107
1108 * print.h: Added selector SCM_PRINT_STATE.
1109
1110 * print.c: New functions: scm_make_print_state,
1111 scm_free_print_state.
1112
1113 * print.h: Added declarations for scm_make_print_state,
1114 scm_free_print_state.
1115
1116 * debug.c (scm_m_start_stack): New acro.
1117
1118 * debug.h: Small cleanup.
1119
1120 * init.c (scm_boot_guile_1): Moved scm_init_debug below
1121 scm_init_eval.
1122
1123 Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
1124
1125 * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
1126 arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
1127 chars.c, chars.h, continuations.c, continuations.h, debug.c,
1128 debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
1129 eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
1130 filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
1131 gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
1132 hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
1133 kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
1134 markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
1135 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
1136 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
1137 procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
1138 root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
1139 simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
1140 stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
1141 strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
1142 struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
1143 unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
1144 version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
1145 declare functions with prototypes. (Patch thanks to Marius
1146 Vollmer.)
1147
1148 More prototype-related changes from Marius Vollmer:
1149 * gdb_interface.h: Wrapped header file in #ifdef/#endif
1150 * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
1151 * ports.h (ptobfuns): Added prototypes. This means some casting in
1152 fports.c.
1153 * fports.c: Added casts for initializations, since the functions
1154 are defined to take FILE * as their stream argument, not SCM.
1155 * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
1156 * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
1157 to `char *str_data' to conform to prototype.
1158
1159 Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
1160
1161 * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
1162
1163 * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
1164
1165 * stime.c, stime.h: use SCM_P method.
1166
1167 Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
1168
1169 * eval.c (scm_nconc2last): Don't accept an empty list; apply must
1170 be given at least two arguments. Insist that lst's last element
1171 be a list, but don't make any requirements of its predecessors.
1172
1173 Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
1174
1175 * eval.c (scm_nconc2last): Revert last change; there seems to be
1176 other stuff going on here.
1177
1178 Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
1179
1180 * eval.c (scm_nconc2last): Make sure that each element of lst
1181 (which is a list of argument lists, except for the tail) is a
1182 proper list, i.e., finite and terminated by '().
1183
1184 Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
1185
1186 * unif.c (scm_ra_set_contp): Localize `inc' declaration.
1187 Clarifies flow.
1188
1189 * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
1190 symbolic name for the tag, scm_tc3_cons_gloc, instead of just
1191 saying "1".
1192
1193 * vectors.c (scm_make_vector): Fill vectors with the undefined
1194 value, to help make Guile Scheme code more portable to other
1195 Schemes.
1196
1197 * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
1198 * symbols.h, tags.h: Doc fixes.
1199
1200 Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
1201
1202 * async.c (scm_take_signal): Doc fixes.
1203
1204 Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
1205
1206 * numbers.c (scm_divbigint): When the remainder is zero, we don't
1207 want to subtract it from the modulus; we just want to leave it
1208 alone.
1209
1210 Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
1211
1212 * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
1213 `scm_init_threads'.
1214
1215 * throw.h (scm_catch_apply): Removed the `lazyp' argument.
1216
1217 * throw.c (scm_catch_apply): Finished implementation of
1218 `lazy-catch'.
1219
1220 Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
1221
1222 * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
1223 check.
1224 (scm_init_filesys): set "i/o-extensions" feature.
1225 include feature.h.
1226
1227 Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
1228
1229 * Makefile.in (root.o): Correct dependencies.
1230
1231 Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
1232
1233 * Makefile.in: Added dependency entry for root.o.
1234
1235 * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
1236 throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
1237
1238 * init.c (scm_start_stack): Set initial root continuation number
1239 to 0.
1240
1241 * procs.c: New function: scm_thunk_p.
1242
1243 * procs.h: Added declarations of scm_thunk_p.
1244
1245 * root.c: Renamed `call-with-new-root' -->
1246 `call-with-dynamic-root'.
1247 (cwdr): Removed allocation of new root state. This should be done
1248 separately by use of scm_make_root.
1249 (scm_apply_with_dynamic_root): New function: Does what it
1250 sounds like. Needed when spawning threads.
1251
1252 * root.h: Added member last_debug_frame to root state.
1253 Added #include "libguile/debug.h"
1254
1255 * throw.c: Renamed scm_catch --> scm_catch_apply and added more
1256 arguments. The motivation is that code in root.c needs catch
1257 functionality, and we want to avoid code duplication.
1258 New functions: scm_catch, scm_lazy_catch. These are wrappers for
1259 scm_catch_apply. scm_lazy_catch is intended to introduce catch
1260 handlers that run without popping the stack into the dynwind
1261 chain.
1262
1263 * throw.h: Added prototypes for scm_catch_apply and
1264 scm_lazy_catch.
1265
1266 Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1267
1268 * root.h (scm_root, scm_set_root): Decouple thread support details
1269 by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
1270 SCM_SET_THREAD_LOCAL_DATA.
1271
1272 * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
1273 and tortoise scanning loop.
1274
1275 Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
1276
1277 * Makefile.in: Rebuild dependencies.
1278
1279 * libguile.h: #include "libguile/print.h" before "smob.h", since
1280 the latter uses the print_state structure.
1281
1282 * throw.c (scm_ithrow): Use the correct variable when checking to
1283 see if a given element of scm_dynwinds is a valid catch.
1284
1285 * throw.c (scm_ithrow): If scm_dynwinds has invalid list
1286 structure, abort; don't just silently ignore the garbage.
1287
1288 * _scm.h: #include "print.h" here, since it seems to be used just
1289 about everywhere.
1290 * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
1291 strports.c, unif.h: Don't #include "print.h".
1292
1293 Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1294
1295 * feature.h (scm_loc_features): Removed external declaration.
1296 (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
1297
1298 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1299
1300 * feature.c (scm_init_feature): Added threads feature (needs to be
1301 initialized here, since features doesn't exist when
1302 scm_init_threads is called).
1303
1304 * libguile.h: Added #include "libguile/../threads/threads.h".
1305 (This is a kludge to get thread support working. This should be
1306 fixed.)
1307
1308 * configure.in, acconfig.h: Added flags for thread support.
1309
1310 * scmsigs.c: Define `signal' to be `pthread_signal' if using
1311 mit-pthreads.
1312
1313 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
1314 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
1315 root.c:mark_root.
1316
1317 * _scm.h: Added conditional #include "threads.h"
1318
1319 * __scm.h (SCM_ASYNC_TICK): Added call to macro
1320 SCM_THREADS_SWITCHING_CODE.
1321
1322 * init.c (scm_start_stack): Call `scm_make_root' to dynamically
1323 allocate the basic dynamic root object.
1324 (scm_boot_guile): Added call to scm_init_root.
1325
1326 * root.c, root.h: Added root smob.
1327 (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
1328 functions: Implements dynamic roots mostly according to spec in
1329 SCM manual. Main difference is that the second argument is a
1330 throw handler rather than an error "thunk".
1331
1332 * root.h: Added declaration of scm_init_root.
1333
1334 * root.c: Added #include "genio.h", #include "smob.h", #include
1335 "pairs.h", #include "throw.h", #include "dynwind.h", #include
1336 "eval.h"
1337 (scm_init_root): Added #include "root.x".
1338
1339 * throw.c: Added #include "stackchk.h"
1340 (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
1341 SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
1342 can be used in scm_call_with_new_root; Added reenabling of stack
1343 checking when catching a throw.
1344
1345 Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
1346
1347 * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
1348
1349 * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
1350 element is not found, as per R4RS.
1351
1352 Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
1353
1354 * list.c: Doc fixes throughout.
1355
1356 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
1357
1358 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
1359 declare the char * to be const. Avoids a warning in rgx.c.
1360
1361 * ports.h: spelling fix.
1362
1363 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
1364 error messages.
1365
1366 * load.c (scm_sys_try_load_path): throw an error if file not found
1367 (like it says it in NEWS).
1368
1369 Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
1370
1371 * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
1372 PROPS slot to '(), not #f; it's an empty alist.
1373
1374 * throw.h, throw.c: Use SCM_P instead of #if hair.
1375
1376 Remove special support for uncaught throws; see throw.c for
1377 rationale.
1378 * throw.c (uncaught_throw): New function.
1379 (scm_ithrow): Call uncaught_throw if we don't find a throw
1380 target; don't mess with scm_bad_throw_vcell.
1381 (scm_bad_throw_vcell): Variable deleted.
1382 (scm_init_throw): Don't initialize it.
1383
1384 * throw.c (scm_ithrow): Don't let outer key matches shadow inner
1385 #t catches.
1386
1387 Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
1388
1389 * numbers.c (scm_istr2int): If the number is short (as most
1390 numbers are), just call scm_small_istr2int to deal with it.
1391 (scm_small_istr2int): New function, created by un-#ifdefing the
1392 non-bignum version of scm_istr2int and renaming it.
1393
1394 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
1395
1396 * load.c (scm_sys_try_load): don't check whether value returned
1397 by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
1398 Change the Scheme name from %try-load to primitive-load.
1399
1400 * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
1401 Can avoid passing a message, allowing it to be derived in the
1402 error handler (e.g., if we want to throw to the key both from
1403 Scheme and C).
1404
1405 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
1406
1407 * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
1408 references now have a new appearance which is more compact and
1409 also gives a clue about what the target of the reference is.
1410 By setting parameters in the print state, more fancy printing can
1411 be achieved. This is used by the (not yet commited) backtrace
1412 code.
1413
1414 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
1415
1416 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
1417 "print.h"
1418
1419 * print.c: Added #include "struct.h". Removed function
1420 scm_prlist.
1421
1422 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
1423 scm_iprin1. Removed prototype for scm_prlist.
1424
1425 * arbiters.c (prinarb),
1426 async.c (print_async),
1427 debug.c (prindebugobj, prinmemoized),
1428 eval.c (prinprom, prinmacro),
1429 filesys.c (scm_fd_print, scm_dir_print),
1430 kw.c (print_kw),
1431 mallocs.c (prinmalloc),
1432 numbers.c, numbers.h (scm_floprint, scm_bigprint),
1433 smob.h (scm_smobfuns),
1434 srcprop.c (prinsrcprops),
1435 throw.c (prinjb),
1436 unif.c, unif.h (scm_raprin1, rapr1),
1437 variable.c (prin_var): Changed argument `int writing' to
1438 `scm_print_state *pstate'.
1439
1440 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
1441 that it will be called before scm_init_print.
1442
1443 * print.c (scm_prin1): Print states are now allocated when calling
1444 scm_prin1 and then passed around to all printing functions as an
1445 argument. A cache `print_state_pool' enables reuse of print
1446 states.
1447 (scm_make_print_state): New function.
1448 (scm_iprin1): Adaption to print states.
1449 (scm_iprlist): An initial "hare and tortoise" scan brings down
1450 time complexity to O (depth * N). (Better time complexity will be
1451 achieved when the printing code is completely rewritten.)
1452
1453 Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
1454
1455 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
1456 AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
1457 it gets done whether or not the cache variable has a value.
1458
1459 Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
1460
1461 Distinguish #f and ().
1462 * __scm.h: #undef SICP.
1463 * pairs.h (SCM_EOL): Delete this definition, equating it with
1464 SCM_BOOL_F.
1465 * tags.h (SCM_EOL): Give it a new definition here; I think I found
1466 the value it used to have. Doc fixes, too.
1467
1468 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
1469
1470 * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
1471 scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
1472 Lord's implementation of structs, allowing for tail arrays as
1473 described in the manual. Also fixed some bugs. (Both the interface
1474 and the implementation should be improved.)
1475
1476 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
1477
1478 * print.c, print.h: Closures now print like #<procedure foo (x)>.
1479 People who whish to see the source can do `(print-enable 'source)'.
1480 Removed #ifdef DEBUG_EXTENSIONS.
1481
1482 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
1483
1484 * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
1485 integer (assuming for now accepting an integer is a good thing).
1486
1487 * error.c, fports.c: replace use of %S in lgh_error args with %s.
1488 %S will be used instead for write'ing arguments.
1489
1490 * unif.c (scm_transpose_array): change arguments in the SCM_WNA
1491 asserts. fix a few other asserts.
1492 (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
1493 scm_uniform_vector_ref, scm_array_set_x,
1494 scm_dimensions_to_unform_array): change args in
1495 SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
1496 strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
1497 scm_substring_fill_x): likewise.
1498 gsubr.c (scm_gsubr_apply): likewise.
1499 eval.c (SCM_APPLY): likewise.
1500
1501 * eval.c (4 places): replace scm_everr with lgh_error or
1502 scm_wrong_num_args.
1503
1504 * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
1505 scm_memory_error): new procedures.
1506 scm_everr: deleted. can use scm_wta, dropping first two args.
1507 scm_error: convert NULL subr to SCM_BOOL_F.
1508
1509 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
1510 SCM_ARGERR.
1511
1512 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
1513 of scm_wta.
1514
1515 * error.c, error.h: new error keys: scm_arg_type_key,
1516 scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
1517 scm_misc_error_key.
1518 scm_wta: reimplement using lgh_error instead of scm_everr.
1519
1520 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
1521
1522 * gdbint.c: scm_lread now has one more argument.
1523
1524 * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
1525 scm_port_\1; Added mutator scm_set_port_filename_x (used when
1526 loading source from non-file ports, which, e. g., happens when
1527 using the Emacs interface).
1528
1529 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
1530 object.
1531
1532 * read.c: Added code for recording of positions of source code
1533 expressions; New functions: recsexpr, scm_lreadrecparen;
1534 _scm_make_srcprops --> scm_make_srcprops
1535 (scm_flush_ws): Removed updating of positions counters. This work
1536 is already done by scm_gen_getc
1537
1538 * read.h: Added prototype for scm_lreadrecparen
1539
1540 * print.c: Added #include "alist.h"
1541
1542 * eval.c: Added #include "hash.h"
1543
1544 * eq.c: Added #include "ramap.h"
1545
1546 * options.c: Documentation fixes.
1547
1548 * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
1549 (scm_init_srcprop): Adjusted size of initial source-whash. Name
1550 changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
1551 --> scm_make_srcprops
1552
1553 * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
1554 _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
1555 function calls in the definition of the whash access macros.
1556
1557 Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
1558
1559 * init.c (scm_boot_guile): Add level of indirection to
1560 scm_boot_guile_1() to ensure that stack base pointer is properly
1561 initialized. There was no guarantee that variable i was the
1562 highest/lowest variable on stack (i.e. the call frame of
1563 scm_boot_guile was not completely protected from gc).
1564
1565 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
1566
1567 * ports.h (scm_port_table): put back file_name, it will be used to
1568 support debugging. Undo related changes in fports.c, ioext.c,
1569 ports.c, gc.c.
1570
1571 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
1572
1573 * ports.h (scm_port_table): remove file_name member for now, it seems
1574 undesirable.
1575 * fports.c (scm_open_file): don't set file_name in PTAB.
1576 (prinfport): don't use file_name in PTAB.
1577 * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
1578 * ports.c (scm_add_to_port_table): don't intialize file_name.
1579 (scm_port_file_name): remove for now.
1580 * gc.c (scm_gc_mark): don't mark PTAB file_name.
1581
1582 * fports.h (scm_mkfile): prototype deleted.
1583 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
1584
1585 * debug.c, unif.c: use scm_out_of_range instead of
1586 wta for range errors (ASSERT still needs work).
1587
1588 * error.c, error.h (scm_out_of_range): new procedure.
1589
1590 * error.c, error.h (scm_out_of_range_key): new key.
1591
1592 * posix.c (scm_sync): #else was missing.
1593
1594 * error.c, error.h: append _key to names scm_num_overflow and
1595 scm_system_error.
1596
1597 * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
1598 of consing an empty list.
1599 (SCM_SYSERROR etc.): move into error.c, make them procedures instead
1600 of macros, saves code and string space.
1601 error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
1602 fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
1603 lower case. Rename scm_syserror_m to scm_syserror_msg.
1604 error.h: prototypes for new procedures.
1605
1606 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
1607
1608 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
1609
1610 * error.c, error.h: setup scm_num_overflow key.
1611
1612 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
1613 Remove definition of SCM_OVSCM_FLOW.
1614
1615 * fports.c (scm_open_file): use SCM_SYSERROR_M.
1616
1617 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
1618 explicit message and args.
1619
1620 * error.c, error.h, __scm.h: change system_error_sym to
1621 scm_system_error.
1622
1623 * error.c (system_error_sym): remove leading %% from the Scheme name
1624 "%%system-error".
1625
1626 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
1627
1628 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1629
1630 * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
1631 fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
1632 numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
1633 tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
1634 renamed. (These were introduced by unsupervised name
1635 substitution.)
1636
1637 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1638
1639 * print.c: Added code for detection of circular references during
1640 printing. (init_ref_stack, grow_ref_stack): New functions. Added
1641 a hook for printing of closures (accessible via print options).
1642 This leads to a split of calls to scm_iprin1 into two classes:
1643 elementary print operations (e. g. the code which prints a smob)
1644 still use scm_iprin1 while top level calls (like scm_display) use
1645 scm_prin1. scm_prin1 begins by clearing the data structure used
1646 to record reference information.
1647
1648 * print.h: Added declarations of scm_prin1 and scm_prlist.
1649
1650 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
1651
1652 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
1653
1654 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
1655
1656 * error.c (err_head): scm_iprin1 --> scm_prin1
1657
1658 * debug.c: Adjusted header comment.
1659
1660 * tags.h: Typo.
1661
1662 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
1663
1664 * strerror.c: Doc fix.
1665
1666 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
1667
1668 * gdbint.c (gdb_read): Now possible to run during GC.
1669 (unmark_port, remark_port): New functions.
1670
1671 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
1672
1673 * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
1674 of allocating a new string object. Also, increase size by
1675 the factor 2 instead of 1.5.
1676
1677 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
1678
1679 * __scm.h (SCM_P): Corrected to run under traditional C.
1680
1681 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
1682 removed.
1683
1684 * async.c: Calls to scm_sysintern corrected.
1685
1686 * async.h (scm_async_clock): Redundant declaration removed.
1687
1688 * continuations.c (scm_dynthrow): Redundant declaration removed.
1689
1690 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
1691 Definition typos corrected.
1692
1693 * debug.h: Missing declarations of functions in debug.c added
1694 (lots).
1695
1696 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
1697 Missing declarations to functions in eval.c added.
1698
1699 * filesys.c: Possibly uninitialized variable rv.
1700
1701 * gc.h (scm_object_addr, scm_unhash_name): Missing
1702 declarations of functions defined in gc.c added.
1703
1704 * genio.c: Possible typos str_data -> wstr_data. ???
1705
1706 * genio.c: Possibly unintended shadowing of local variable
1707 `int c' (gotos out of scope of inner `c'). ???
1708
1709 * init.c: Uninitialized `SCM last' may be used.
1710
1711 * ioext.h: (scm_sys_isatty_p): Typo.
1712
1713 * list.h (scm_list_head): Missing prototype for function in
1714 list.c added.
1715
1716 * numbers.c (scm_two_doubles): Changed from extern to static
1717 (is used only within numbers.c).
1718
1719 * numbers.h: Repeated declarations removed.
1720
1721 * ports.h (scm_close_all_ports_except): Declaration for the
1722 function defined in ports.c added.
1723
1724 * posix.h: Missing declarations added.
1725
1726 * procs.h (scm_make_subr_opt): Missing declaration added.
1727
1728 * socket.h (scm_sys_gethost): Missing declaration added.
1729
1730 * socket.h: Redundant declarations removed (they are in fdsocket.h).
1731
1732 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
1733 Missing declarations added.
1734
1735 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
1736
1737 * struct.c: Uninitialized variable `SCM answer' may be used.
1738
1739 * unif.c (l2ra): Declaration prototype.
1740
1741 * unif.c (scm_array_equal_p): Dummy definition removed (it is
1742 defined in ramap.c).
1743
1744 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
1745 Redundant declarations removed (they are in ramap.h).
1746
1747 * variable.h (scm_make_udvariable,
1748 scm_make_undefined_variable): Declaration corrected to
1749 correspond variable.c.
1750
1751 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
1752 Missing declarations added.
1753
1754 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
1755
1756 * Makefile.in (distclean): Don't forget to delete fd.h.
1757
1758 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
1759
1760 * fd.h.in, tags.h: Trivial cleanups.
1761
1762 * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
1763 marksweep.h just declared functions from gc.c.
1764 * gc.h, libguile.h: Don't #include "marksweep.h".
1765 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
1766 marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
1767 dependencies updated.
1768
1769 * libguile.h: Don't #include "files.h"; it's been deleted.
1770
1771 * files.c (scm_sys_delete_file): Moved to filesys.c.
1772 File is now empty; deleted.
1773 * files.h: Deleted.
1774 * filesys.c: scm_sys_delete_file is now here. Remove
1775 #if's; they seem to rely on remnants of an old portability
1776 regimen. If the problems come up again, solve them properly,
1777 using autoconf. Specifically: Don't test M_SYSV, and #define
1778 remove to be unlink if it's #defined; don't use remove just
1779 because HAVE_STDC_HEADERS is #defined.
1780 * filesys.h: Add declarations for scm_sys_delete_file.
1781 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
1782 files.o, files.h, files.c, and files.x.
1783 * init.c: Don't #include "files.h", and don't call scm_init_files.
1784
1785 Use SCM_P instead of PROTO; the latter intrudes on the user's
1786 namespace.
1787 * params.h: Deleted; definition of SCM_P moved to...
1788 * __scm.h: ... here, where it replaces PROTO macro.
1789 * libguile.h, smob.h: Don't #include "params.h".
1790 * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
1791 smob.h: Fix prototypes accordingly.
1792 * Makefile.in: Update dependencies.
1793 (inner_h_files): Remove params.h.
1794
1795 * gc.c: #include "gc.h"; every module should include its header,
1796 to let the compiler cross-check the declarations against the
1797 definitions.
1798
1799 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
1800 simpos.h: #include "libguile/__scm.h".
1801
1802 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
1803
1804 * init.c: Don't forget to #include smob.h and init.h.
1805 * Makefile.in: Dependencies updated.
1806
1807 * smob.h: Use PROTO instead of #if __STDC__.
1808
1809 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
1810
1811 * __scm.h: Doc fixes.
1812
1813 * __scm.h, libguile.h: Use "quotes" in the #includes, not
1814 <angles>; this allows `make depends' to work properly.
1815
1816 * libguile.h: #include smob.h and pairs.h before the others; they
1817 define typedefs used by other headers.
1818
1819 C files should #include only the header files they need, not
1820 libguile.h (which #includes all the header files); the pointless
1821 recompilation was wasting my time.
1822 * Makefile.in (all .o dependency lists): Regenerated.
1823 * libguile.h: Don't try to get a definition for size_t here...
1824 * __scm.h: Do it here.
1825 * _scm.h: Since this is the internal libguile header, put things
1826 here that all (or a majority) of the libguile files will want.
1827 Don't #include <libguile.h> here; that generates dependencies on
1828 way too much. Instead, get "__scm.h", "error.h", "pairs.h",
1829 "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
1830 "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
1831 "async.h".
1832 * alist.c: Get "eq.h", "list.h", "alist.h".
1833 * append.c: Get "append.h", "list.h".
1834 * arbiters.c: Get "arbiters.h", "smob.h".
1835 * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
1836 * boolean.c: Get "boolean.h".
1837 * chars.c: Get "chars.h".
1838 * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
1839 "stackchk.h".
1840 * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
1841 "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
1842 "genio.h", "throw.h", "eval.h".
1843 * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
1844 * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
1845 "stackchk.h".
1846 * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
1847 * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
1848 "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
1849 "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
1850 "debug.h".
1851 * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
1852 * feature.c: Get "feature.h".
1853 * files.c: Get "files.h".
1854 * filesys.c: Get "filesys.h", "smob.h", "genio.h".
1855 * fports.c: Get "fports.h", "markers.h".
1856 * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
1857 "genio.h", "struct.h", "stackchk.h", "stime.h".
1858 * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
1859 "read.h", "strports.h", "tag.h".
1860 * genio.c: Get "genio.h", "chars.h".
1861 * gsubr.c: Get "gsubr.h", "genio.h".
1862 * hash.c: Get "hash.h", "chars.h".
1863 * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
1864 * init.c: Get everyone who has an scm_init_mumble function:
1865 "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
1866 "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
1867 "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
1868 "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
1869 "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
1870 "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
1871 "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
1872 "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
1873 "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
1874 "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
1875 "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
1876 "async.h", "arbiters.h", "append.h", "alist.h".
1877 * ioext.c: Get "ioext.h", "fports.h".
1878 * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
1879 * list.c: Get "list.h", "eq.h".
1880 * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
1881 * mallocs.c: Get "smob.h", "genio.h".
1882 * markers.c: Get "markers.h".
1883 * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
1884 "chars.h".
1885 * numbers.c: Get "unif.h", "genio.h".
1886 * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
1887 * options.c: Get "options.h".
1888 * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
1889 "markers.h", "chars.h", "genio.h".
1890 * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
1891 "read.h", "scmsigs.h", "genio.h", "fports.h".
1892 * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
1893 "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
1894 "chars.h".
1895 * procprop.c: Get "procprop.h", "eval.h", "alist.h".
1896 * procs.c: Get "procs.h".
1897 * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
1898 "chars.h", "smob.h", "unif.h".
1899 * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
1900 "eval.h", "genio.h", "chars.h".
1901 * root.c: Get "root.h", "stackchk.h".
1902 * scmsigs.c: Get "scmsigs.h".
1903 * sequences.c: Get "sequences.h".
1904 * simpos.c: Get "simpos.h", "scmsigs.h".
1905 * smob.c: Get "smob.h".
1906 * socket.c: Get "socket.h", "feature.h".
1907 * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
1908 "alist.h", "smob.h".
1909 * stackchk.c: Get "stackchk.h", "genio.h".
1910 * stime.c: Get "stime.h"."libguile/continuations.h".
1911 * strings.c: Get "strings.h", "chars.h".
1912 * strop.c: Get "strop.h", "chars.h".
1913 * strorder.c: Get "strorder.h", "chars.h".
1914 * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
1915 * struct.c: Get "struct.h", "chars.h".
1916 * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
1917 "variable.h", "eval.h", "chars.h".
1918 * tag.c: Get "tag.h", "struct.h", "chars.h".
1919 * throw.c: Get "throw.h", "continuations.h", "debug.h",
1920 "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
1921 * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
1922 "smob.h", "genio.h", "eval.h", "chars.h".
1923 * variable.c: Get "variable.h", "smob.h", "genio.h".
1924 * vectors.c: Get "vectors.h", "eq.h".
1925 * version.c: Get "version.h".
1926 * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
1927 * weaks.c: Get "weaks.h".
1928
1929 * stackchk.h: #include "libguile/debug.h",
1930
1931 * print.h, read.h: #include "options.h", since everyone who uses
1932 either of these files will need that.
1933
1934 * smob.h: #include "ports.h", "genio.h", and "print.h", since
1935 anyone who uses this file will need them to define the smob
1936 printing functions. Also, get markers.h, since people will need
1937 to #define the mark functions.
1938
1939 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
1940 * ports.h: ... to here.
1941
1942 * ports.h (scm_port_table_size): Explicitly give type as 'int';
1943 don't rely on archaic C default type rules.
1944
1945 * fports.h: #include "libguile/ports.h", since you need that in
1946 order to parse this.
1947
1948 * genio.h: #include "libguile/print.h", because you need that to
1949 parse this; don't bother #including "ports.h", since print.h gets
1950 that.
1951
1952 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
1953
1954 * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
1955 this; it's now a reference to an element of *scm_root.
1956
1957 * debug.h: Don't #include "options.h"; the compiler won't be able
1958 to find that once the headers are installed; instead, #include
1959 "libguile/options.h".
1960 * gc.h: Same, with marksweep.h.
1961 * mbstrings.h: Same, with symbols.h.
1962 * scmhob.h: Same, with _scm.h.
1963 * smob.h: Same, with params.h.
1964
1965 * Makefile.in (depends): Don't nuke scmconfig.h and the generated
1966 C files; there's no need for this, and it forces recompilations
1967 unnecessarily.
1968
1969 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
1970
1971 * error.c (scm_error): declare scm_error_callback.
1972
1973 * error.h: prototype for scm_error_callback.
1974
1975 * __scm.h: define lgh_error.
1976 (SCM_SYSERROR): redefine using lgh_error.
1977
1978 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
1979
1980 * error.c (scm_error): new procedure.
1981
1982 * error.h: prototype for scm_error.
1983
1984 * Makefile.in (install): install scmconfig.h from the current
1985 directory, not $(srcdir).
1986
1987 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
1988
1989 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
1990 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
1991 feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
1992 hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
1993 mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
1994 posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
1995 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
1996 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
1997 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
1998 vports.h, weaks.h: #include "libguile/__scm.h", not
1999 <libguile/__scm.h>. This allows 'gcc -MM' to determine which
2000 dependencies are within libguile properly.
2001
2002 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
2003
2004 * Makefile.in (.c.x): Simplify; there's no need to run this rule
2005 when scmconfig.h doesn't exist.
2006
2007 * load.c (scm_sys_try_load): Correct spelling.
2008
2009 * feature.c (scm_loc_features): Make this static.
2010
2011 * Makefile.in (libpath.h): Omit trailing slash from path. We
2012 shouldn't require it of users, so why put it here?
2013
2014 Move code to initialize and search %load-path from ice-9 to C
2015 code, so we can use the load-path to find the ice-9 boot code;
2016 this makes it easier to run Guile without installing it. See
2017 corresponding changes in guile/Makefile.in.
2018 * feature.c: Move stuff concerned with the load path to load.c.
2019 (scm_compiled_library_path): Deleted.
2020 Don't #include libpath.h here.
2021 * feature.h: Don't mention scm_compiled_library_path.
2022 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
2023 <sys/stat.h>, and <unistd.h> (if present).
2024 (R_OK): #define if the system hasn't deigned to.
2025 (scm_loc_load_path): New variable.
2026 (scm_init_load_path, scm_sys_search_load_path,
2027 scm_sys_try_load_path): New functions.
2028 (scm_init_load): Initialize scm_loc_load_path to point to the
2029 value cell of the Scheme %load-path variable.
2030 * load.h: Add declarations for scm_sys_search_load_path,
2031 scm_sys_try_load_path.
2032 * init.c: Call scm_init_load_path.
2033 * Makefile.in (feature.o, load.o): Dependencies updated.
2034
2035 * load.c, load.h: Rewrite using PROTO macro.
2036
2037 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2038
2039 * gc.c (scm_cellp): New function: C predicate to determine if an
2040 SCM value can be regarded as a pointer to a cell on the heap.
2041
2042 * gc.h: Added declaration of scm_cellp.
2043
2044 * gdb_interface.h: New file: The GDB interface header from the GDB
2045 distribution.
2046
2047 * gdbint.c: New file: GDB interface.
2048
2049 * gdbint.h: New file: GDB interface.
2050
2051 * libguile.h: Added #include <libguile/gdbint.h>.
2052
2053 * init.c (scm_boot_guile): Added scm_init_gdbint.
2054
2055 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
2056 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
2057 found if object files and source are kept separate).
2058
2059 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
2060
2061 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
2062
2063 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
2064
2065 * configure.in: Don't substitute the values of TCL_SRC_DIR and
2066 TK_SRC_DIR; they're not relevant any more.
2067
2068 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
2069 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
2070
2071 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
2072
2073 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
2074 search path, so we can find the <libguile/MUMBLE.h> headers.
2075
2076 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
2077
2078 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
2079 implicit in the .c.o rule.
2080 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
2081 $(CC) already.
2082
2083 Put the library path in a header file, instead of passing it on
2084 the command line in every compilation.
2085 * Makefile.in (libpath.h): New target.
2086 (feature.o): Depend on libpath.h.
2087 (clean): Delete libpath.h.
2088 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
2089 * feature.c: ... #include "libpath.h" here.
2090 * .cvsignore: Ignore libpath.h.
2091
2092 Don't install the unwashed masses of Guile header files in the
2093 main #include path; put most of them in a subdirectory called
2094 'libguile'. This avoids naming conflicts between Guile header
2095 files and system header files (of which there were a few).
2096 * Makefile.in (pkgincludedir): Deleted.
2097 (innerincludedir): New variable; this and $(includedir) are enough.
2098 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
2099 (installed_h_files): Divide this up. Now this variable lists
2100 those header files which should go into $(includedir) (i.e. appear
2101 directly in the #include path), and ...
2102 (inner_h_files): ... this new variable says which files appear in
2103 a subdirectory, and are referred to as <libguile/mumble.h>.
2104 (h_files): List them both.
2105 (install): Create innerincludedir, not pkgincludedir. Put
2106 the installed_h_files and inner_h_files in their proper places.
2107 (uninstall): Corresponding changes.
2108 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
2109 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
2110 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
2111 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
2112 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
2113 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
2114 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
2115 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
2116 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
2117 vports.h, weaks.h: Find __scm.h in its new location.
2118 * __scm.h: Find scmconfig.h and tags.h in their new locations
2119 (they're both "inner" files).
2120
2121 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
2122
2123 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
2124
2125 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
2126
2127 * posix.c: Doc fixes.
2128
2129 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
2130
2131 * socket.c: Don't include a prototype for inet_aton; just use a
2132 K&R style declaration, to avoid warnings but minimize the chance
2133 of conflicts with the system.
2134
2135 On NextStep, <utime.h> doesn't define struct utime, unless we
2136 #define _POSIX_SOURCE before #including it.
2137 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
2138 * acconfig.h: New comment text for above CPP symbol.
2139 * configure.in: Call it.
2140 * posix.c: #define _POSIX_SOURCE if it seems necessary.
2141
2142 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
2143 in the list.
2144 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
2145 testing for __EMX__.
2146
2147 * posix.c: #include <libc.h>, if it exists.
2148
2149 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
2150 don't even know if the latter exists.
2151
2152 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
2153 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
2154 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
2155
2156 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
2157 header files don't.
2158 (scm_init_posix): Use them when initializing the Scheme constants
2159 of the same name.
2160
2161 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
2162
2163 * Makefile.in (libdir, includedir, bindir): Use the
2164 autoconf-supplied values, instead of deriving them ourselves.
2165 (pkgincludedir, datadir, pkgdatadir): New variables.
2166 (install, uninstall): Put the header files in a special
2167 subdirectory, not in the main search path.
2168
2169 * Makefile.in (ALL_CFLAGS): Provide the proper value for
2170 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
2171
2172 * Makefile.in (IMPLPATH): Deleted; never used.
2173
2174 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
2175 on the Tcl/Tk source any more.
2176 (INCLUDE_CFLAGS): Remove references to the above.
2177
2178 * Makefile.in (version.o): Corrected dependencies.
2179
2180 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
2181
2182 * libguile.h: #include "version.h"
2183
2184 * init.c (scm_boot_guile): Call scm_init_version.
2185 * gscm.c (gscm_run_scm): Call scm_init_version.
2186
2187 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
2188 GUILE_VERSION): AC_DEFINE these.
2189 (acconfig.h): #undef the above symbols.
2190
2191 * Makefile.in (libobjs): Add version.o.
2192 (installed_h_files): Add version.h.
2193 (c_files): Add version.c.
2194 (gen_c_files): Add version.x.
2195 (version.o): New rule.
2196 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
2197 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
2198 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
2199 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
2200 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
2201 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
2202 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
2203 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
2204 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
2205 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
2206 weaks.o): Add version.h to dependency lists.
2207 (markers.o): Remove duplicate rule.
2208
2209 * version.h: New file.
2210
2211 * version.c: New file.
2212
2213 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
2214
2215 * symbols.c (scm_strhash): scm_downcase is now a function, not an
2216 array; use it appropriately. Since GCC is quite happy to
2217 subscript functions, it never warned us about this; we should use
2218 -Wpointer-arith in the future. I guess we never tested
2219 case-insensitivity.
2220
2221 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
2222
2223 * socket.c: Doc and copyright fixes.
2224
2225 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2226
2227 * debug.c: Fixed and improved gdb support.
2228
2229 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2230
2231 * socket.c: Added declaration of inet_aton to avoid compiler
2232 warning. (Hope this solution is correct.)
2233
2234 * stime.c: Added declaration of ftime. (This is missing in
2235 Solaris 2 headers.)
2236
2237 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
2238
2239 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
2240
2241 * Makefile.in (c_files): add strerror.c.
2242
2243 * strerror.c: new file from Emacs' sysdep.c.
2244 maybe configure should also check for sys_errlist.
2245
2246 * configure.in (AC_REPLACE_FUNCS): add strerror.
2247
2248 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2249
2250 * debug.c (scm_init_debug): Added initialization for
2251 scm_evaluator_traps.
2252
2253 * debug.h, debug.c: Various name changes.
2254 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
2255 "debug-options-interface". See commentary in options.c.
2256
2257 * options.h, options.c: Options now have documentation strings.
2258 Also added a long explanatory commentary.
2259
2260 * eval.c, print.h, print.c, read.h, read.c: Modifications to
2261 run-time options.
2262
2263 * gscm.c, init.c, root.c, throw.c: Bug fixes:
2264 last_debug_info_frame is now updated in all cases.
2265
2266 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
2267 checking.
2268
2269 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2270
2271 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
2272 Added option STACK_CHECKING.
2273
2274 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2275
2276 * Makefile.in: Added {debug,options,srcprop}.{h,c}
2277
2278 * __scm.h: Removed symbols for debugging support.
2279
2280 * acconfig.h: Added symbols for debugging support.
2281
2282 * configure.in: Added user option for debugging support.
2283 --enable-debug will include the debugging code into libguile.a.
2284
2285 * continuations.c (scm_make_cont): Enlarged the #if 0 around
2286 scm_relocate_chunk_to_heap.
2287
2288 * debug.c: New file: low-level debugging support. It also
2289 includes support for debugging with gdb. (The extensions to gdb
2290 are written by Per Bothner at Cygnus.)
2291
2292 * debug.h: New file: low-level debugging support.
2293
2294 * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
2295 argument pairs. Extensive modifications to the debugging
2296 evaluator. Added "SECTION:" commentaries to clarify what happens
2297 when, during double compilation. Renamed EVALIMP --> EVALIM.
2298 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
2299 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
2300 the beginning of the file. New procedure: scm_unmemocopy.
2301 Added some global state variables needed by the debugging
2302 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
2303 check_entry, check_apply, check_exit, debug_options and
2304 evaluator_traps. New acro: undefine.
2305
2306 * eval.h: Renamed EVAL --> XEVAL.
2307
2308 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
2309 --> scm_make_weak_key_hash_table.
2310
2311 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
2312 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
2313
2314 * libguile.h: Conditionally include debug.h
2315
2316 * objprop.c (scm_object_properties, scm_set_object_properties_x):
2317 scm_object_properties shouldn't return handle. `handle' now gets
2318 initialized in scm_set_object_properties_x. scm_object_properties
2319 doesn't any longer create an entry in scm_object_whash.
2320
2321 * options.c: New file: handling of run time options.
2322
2323 * options.h: New file: handling of run time options.
2324
2325 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
2326
2327 * print.c: New procedure: scm_print_options
2328
2329 * print.h: Defines for print options.
2330
2331 * read.c: New procedure: scm_read_options
2332
2333 * read.h: Defines for reader options.
2334
2335 * root.h: Added scm_source_whash among scm_sys_protects.
2336
2337 * srcprop.c: New file: source properties.
2338
2339 * srcprop.h: New file: source properties.
2340
2341 * throw.c (jbsmob): Jump buffers are now correctly allocated.
2342 (Bug found by A. Green.)
2343
2344 * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
2345
2346 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
2347
2348 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
2349
2350 * libguile.h: #include "objprop.h"; I guess this was forgotten.
2351
2352 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
2353 and should be called by the final client.
2354
2355 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
2356
2357 * gc.h: Use the PROTO macro when declaring functions.
2358 * gc.c: Use the PROTO macro when declaring static functions.
2359 Remove the CPP hair around function definitions.
2360
2361 * gc.c (scm_init_storage): Initialize scm_asyncs.
2362
2363 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
2364 preprocessor symbol; "__scm.h" is where it might get #defined.
2365 * __scm.h: Similar: #include <scmconfig.h> before testing
2366 HAVE_LIMITS_H.
2367
2368 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
2369
2370 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
2371
2372 * init.c (scm_boot_guile): Add init_func argument; call
2373 (*init_func) instead of calling scm_appinit; it's ucky to
2374 hard-code names for the user's procedures.
2375 * init.h (scm_boot_guile): Adjust declaration.
2376
2377 * __scm.h (PROTO): New macro, for declaring functions with
2378 prototypes.
2379
2380 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
2381 eliminate all the __STDC__ conditionals.
2382 (scm_boot_guile): Add declaration.
2383 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
2384 Remove __STDC__ conditionals around function definitions; the
2385 declarations in init.h will provide the same information, more
2386 usefully.
2387
2388 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
2389 complain about it in the error message; the error message is
2390 adequate without that note, and there's nothing the user can do
2391 about it.
2392
2393 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
2394
2395 * Makefile.in (ancillary): Drop def.sed.
2396
2397 * posix.c (scm_init_posix): Use numeric values, rather than
2398 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
2399 F_OK. The symbols aren't available on some systems, and I'm
2400 pretty sure their values are fixed by common widespread practice.
2401 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
2402
2403 More functions unavailable on some systems.
2404 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
2405 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
2406 check for.
2407 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
2408 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
2409 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
2410 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
2411 stub that signals an error as the #else.
2412
2413 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
2414
2415 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
2416
2417 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
2418
2419 * unif.c: include ramap.h.
2420
2421 * read.c (endif): case_insensative_p renamed case_insensitive_p.
2422
2423 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
2424
2425 * ports.c: include sys/ioctl.h.
2426
2427 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
2428
2429 * configure.in: check for sys/ioctl.h.
2430
2431 * ports.c: include <malloc.h> not "malloc.h".
2432
2433 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
2434
2435 * fports.c: remove ttyname and tmpnam declarations.
2436
2437 * posix.c: fewer ttyname declarations.
2438
2439 * fports.c: include <string.h> not "string.h".
2440
2441 * init.c, ioext.c: include string.h and unistd.h.
2442
2443 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
2444
2445 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
2446 genio.c, simpos.c, vports.c: include string.h.
2447
2448 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
2449
2450 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
2451 scm_sizet to int.
2452 (scm_addr_buffer_size): change type from scm_sizet to int.
2453 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
2454 from scm_sizet to int.
2455
2456 * error.c: include unistd.h.
2457
2458 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
2459 defined.
2460
2461 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
2462
2463 * __scm.hd, def.sed: deleted.
2464
2465 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
2466
2467 Changes for NeXT, suggested by Robert Brown.
2468 * configure.in: Call AC_TYPE_MODE_T.
2469 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
2470 NeXT. Put header file list in alphabetical order.
2471 * configure, scmconfig.h.in: Regenerated.
2472 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
2473
2474 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
2475 for strerror.
2476
2477 * acconfig.h: New file, providing documentation for the CPP
2478 symbols defined in configure.in
2479 * acconfig-1.5.h: Removed; superceded by the above.
2480
2481 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
2482
2483 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
2484
2485 * fports.c (scm_open_file): don't return #f, throw error.
2486
2487 * ioext.c (fileno): renamed from %fileno.
2488 (soft-fileno): deleted.
2489
2490 * ports.c (scm_port_revealed): don't need to check for -1 from
2491 scm_revealed_count.
2492 (scm_set_port_revealed_x): return unspecified, not #f.
2493
2494 * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
2495
2496 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
2497
2498 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
2499
2500 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
2501
2502 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
2503
2504 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
2505 This is necessary on Ultrix, and doesn't hurt portability.
2506
2507 * Makefile.in (dist-dir): New target, implementing a new dist system.
2508 (installed_h_files): Put in alphabetical order.
2509 Remove duplicate entries for markers.h and unif.h.
2510 (c_files): Remove duplicate entries for markers.c.
2511 (ancillary): Renamed from anillery; all uses changed. Remove
2512 PLUGIN; it's a directory, and needs special treatment in dist-dir.
2513 Remove all the ../doc/* files; doc/Makefile.in handles that.
2514
2515 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
2516
2517 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
2518 every if must have an else, or else the whole command has a
2519 non-zero exit code whenever the if's condition is false.
2520
2521 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
2522
2523 * posix.c: include string.h.
2524
2525 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
2526
2527 * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
2528 have been once.
2529
2530 * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
2531 Remove leading % from scheme names.
2532 Do not return error values, call SCM_SYSERROR or similar.
2533
2534 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
2535
2536 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
2537
2538 * struct.c (scm_init_struct): new file.
2539
2540 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
2541
2542 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
2543 (scm_list_head): added list-head for rapidly chopping argument
2544 lists off of longer lists (and similar).
2545
2546 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
2547
2548 * objprop.c (scm_object_property): assq the cdr of the whash
2549 handle for obj, not the handle itself.
2550
2551 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
2552
2553 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
2554 weak hash tables last of all marking to avoid an obscure gc bug.
2555 WARNING: circular lists stored in a weak hash table will hose us.
2556
2557 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
2558
2559 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
2560 new functions similar to scm_substring_move_left_x and
2561 scm_substring_move_right_x.
2562
2563 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
2564
2565 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
2566 scm_gc_heap_lock!
2567
2568 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
2569
2570 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
2571
2572 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
2573
2574 * strports.c (scm_strprint_obj): convenience function. C for
2575 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
2576
2577 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
2578 removed to a separate library
2579
2580 * init.c (scm_boot_guile): copied from guile-tcl.c.
2581 Initialization specific to tcl interpreters removed.
2582
2583 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
2584
2585 * ports.c (scm_ports_prehistory): size malloced here doesn't
2586 matter so long as it is non-0 (got rid of "* 4").
2587
2588 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
2589
2590 * gscm.h: gscm_mkarray eliminated (presumably was not being used
2591 since its definition was bogus).
2592
2593 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
2594
2595 * mallocs.[ch]: back again (for rx at least).
2596
2597 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
2598
2599 * ports.c: removed functions relating to the mapping between ports
2600 and descriptors. (That stuff is unix-specific and should be collected
2601 in a separate library).
2602
2603 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
2604 (Tom Mckay@avanticorp.com)
2605
2606 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
2607
2608 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
2609 handled correctly (SCM_FREEP was applied to them) -- test for
2610 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
2611 being overwritten with #f. (brown@grettir.bibliotech.com)
2612
2613 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
2614
2615 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
2616 for a specific symbol or for all symbols.
2617
2618 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
2619
2620 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
2621 keys and weak values confused).
2622
2623 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
2624
2625 * list.c (scm_last_pair): map '()=>'()
2626
2627 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
2628
2629 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
2630 Generalized assoc and hash-table functions.
2631 Factored pairs.c into multiple files.
2632
2633 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
2634
2635 * gscm.c (gscm_run_scm): got rid of objprop.
2636
2637 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
2638
2639 * genio.c (scm_getc):
2640 NOTE: fgetc may not be interruptable.
2641
2642 * procprop.c (scm_stand_in_scm_proc):
2643 NOTE: don't use a alist here.
2644 (scm_set_procedure_properties_x): fix type checking throughout this file.
2645
2646 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
2647
2648 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
2649 after freeing part of the port table.
2650
2651 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
2652
2653 * strports.c (scm_mkstrport):
2654 * vports.c (scm_make_soft_port): allocate a port table entry
2655 (possibly triggering gc) before setting the tag of the corresponding
2656 ports handle.
2657
2658 * pairs.c (scm_delq_x): never throw an error.
2659
2660 * vectors.c (scm_make_vector): made the default vector fill argument
2661 into '() (much more useful than the previous value, "#unspecified")
2662
2663 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
2664
2665 * ports.c (scm_add_to_port_table): Added fields
2666 to port table entries: file_name, line_num, col.
2667 Update these in open_file, gen_getc and gen_ungetc.
2668 Added procedures to access those fields.
2669
2670 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
2671
2672 * procs.c (scm_make_subr_opt): new entry point for making
2673 anonymous subrs.
2674
2675 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
2676
2677 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
2678
2679 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
2680
2681 * numbers.c (scm_exact_p): This function no longer
2682 implements "integer?".
2683
2684 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
2685
2686 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
2687 (scm_gc_stats): return an assoc of useful data. Replaces "room"
2688 and the stats reporting formerlly built into repl.
2689
2690 * repl.[ch]: removed.
2691 GC statistics keeping moved to gc.c.
2692 Other statistics keeping can be done from Scheme.
2693 REPLS are now written in Scheme.
2694
2695 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
2696
2697 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
2698 conservatively marked objects).
2699
2700 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
2701
2702 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
2703
2704 * feature.c (scm_compiled_library_path): moved here from repl.c.
2705 This file is for stuff relating specifically to Scheme libraries
2706 like slib.
2707
2708 * eval.c (scm_m_define): don't give warning about redefinition, don't
2709 check verbosity.
2710
2711 NOTE: this should throw a resumable exception with parameters --
2712 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
2713
2714 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
2715
2716 * error.c: scm_warn eliminated.
2717
2718 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
2719
2720 * repl.c, marksweep.c, gc.c (various):
2721 lose exit_report, growth_mon.
2722
2723 * gscm.c: got rid of verbosity functions.
2724
2725 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
2726
2727 * throw.c (scm_ithrow): guard against the bad-throw hook changing
2728 between the call to procedurep and use.
2729
2730 * error.c (scm_everr):
2731 * gc.c (fixconfig):
2732 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
2733 but less so.
2734
2735 * strports.c: don't reveal the port's string to the caller
2736 because it changes size.
2737
2738 (stputc stwrite): check/change the strings length with interrupts
2739 blocked.
2740
2741 * objprop.c (scm_set_object_property_x &c): use the generic
2742 hashing functions and be threadsafe.
2743
2744 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
2745 (per suggestion jaffer@gnu.ai.mit.edu).
2746
2747 * mbstrings.c (scm_multi_byte_string): guard against argument list
2748 changing length.
2749
2750 * strings.c (scm_make_string): loop cleanup
2751
2752 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
2753 a scheme function.
2754
2755 * weaks.c (scm_weak_vector): guard against argument list
2756 changing length.
2757
2758 * variable.c (scm_builtin_variable): check for/make a built-in
2759 variable automicly.
2760
2761 * vectors.c (scm_vector): while filling the new array,
2762 guard against a list of fill elements that grows after
2763 the vector is allocated.
2764
2765 * hashtab.c -- new file: general hash table
2766 functions. hash, hashq, hashv, hashx.
2767
2768 * tags.h: made wvect an option bit of vector.
2769
2770 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
2771
2772 * symbols.c: made the basic symbol table operations atomic.
2773
2774 * root.c &c.: collected stack-specific global state.
2775 linum/colnum etc *should* be port-specific state.
2776
2777 * struct.c (scm_init_struct): init the first struct type during
2778 initialization to fix a race condition.
2779
2780 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
2781 object, not in a global.
2782 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
2783
2784 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
2785 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
2786
2787 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
2788 and C symbols to begin with SCM_ or scm_.
2789
2790 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
2791
2792 * gsubr.c (scm_gsubr_apply): statically allocate the
2793 array of arguments (bothner@cygnus.com).
2794
2795 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
2796
2797 * scmsigs.c: Simplified to use async rountines.
2798
2799 * async.c: New support for interrupt handlers.
2800
2801 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
2802
2803 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
2804 set the multi_byte flag correctly in symbols. This is wrong.
2805 intern_obbary_soft and msymbolize should take an extra parameter.
2806 Also, weird multibyte symbols don't print correctly.
2807 The weird symbol syntax is also a bit bogus (emacs doesn't quite
2808 cope).
2809
2810 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
2811
2812 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
2813 use the system symhash. == #t means create an uninterned symbol.
2814
2815 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
2816
2817 * strings.c (scm_make_shared_substring): build'em.
2818 It might better to keep a table of these and use one
2819 less cons-pair per shared-substring.
2820
2821 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
2822
2823 * strings.c (scm_string_shared_substring): create shared
2824 substrings. (Doesn't handle mb strings yet).
2825
2826 * mbstrings.c (scm_print_mb_string): handle RO strings.
2827
2828 * print.c (scm_iprin1): print substrings as their non-substring
2829 counterparts (dubious).
2830
2831 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
2832 strings.
2833
2834 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
2835
2836 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
2837
2838 * eq.c (scm_equal_p): handle RO and MB strings.
2839
2840 * symbols.c (scm_string_to_symbol):
2841 (scm_string_to_obarray_symbol):
2842 * strop.c (scm_i_index):
2843 (scm_i_rindex):
2844 (scm_string_null_p):
2845 (scm_string_to_list):
2846 * strings.c (scm_string_length):
2847 (scm_string_ref):
2848 (scm_substring):
2849 (scm_string_append):
2850 * simpos.c (scm_system):
2851 (scm_getenv):
2852 * fports.c (scm_open_file):
2853 * strorder.c (scm_string_equal_p):
2854 (scm_string_ci_equal_p):
2855 (scm_string_less_p):
2856 (scm_string_ci_less_p):
2857 * pairs.c (scm_obj_length):
2858 * mbstrings.c (scm_multi_byte_string_length):
2859
2860 Use RO string macros for RO strings.
2861
2862 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
2863
2864 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
2865
2866 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
2867 index/rindex. Do handle embedded \000 characters.
2868
2869 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
2870
2871 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
2872 Eliminate a (presumed) warning on some systems.
2873
2874 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
2875 (Mikael Djurfeldt <mdj@nada.kth.se>)
2876
2877 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
2878
2879 * eval.c (scm_map): added argument type checking.
2880 (kawai@sail.t.u-tokyo.ac.jp)
2881
2882 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
2883 for C++. (Seth Alves <alves@gryphon.com>)
2884
2885 (gscm_cstr): uses an uninitialized local variable causing
2886 segv. (kawai@sail.t.u-tokyo.ac.jp)
2887
2888
2889 * lvectors.c (scm_get_lvector_hook):
2890 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
2891 It seems to me like if it is broken again in guile-iv...Here is a patch.
2892 "! || (LENGTH (keyvec) == 0))"
2893 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
2894
2895
2896 * gscm.c (gscm_sys_default_verbosity):
2897 incorrectly declared for non-__STDC__
2898 (Tom_Mckay@avanticorp.com)
2899
2900 * ports.c (scm_setfileno): Tweak the macro a bit
2901 to make it easier to port to systems that use
2902 more than a single structure field to hold a descriptor.
2903
2904 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
2905 Give a warning, not an error, for unrecognized modes.
2906
2907 * eval.c (SCM_CEVAL):
2908 static char scm_s_for_each[];
2909 static char scm_s_map[];
2910 not needed.
2911
2912 * strings.c (scm_string_p):
2913 static char s_string[];
2914 (see next entry)
2915
2916 * struct.c (scm_sys_struct_set_x):
2917 static char s_sys_make_struct[];
2918 static char s_sys_struct_ref[];
2919 static char s_sys_struct_set_x[];
2920 Rearrange code to eliminate those forward decls for the sake of
2921 broken compilers.
2922
2923 * variable.c (make_vcell_variable): static char s_make_variable[];
2924 isn't needed.
2925
2926 * fports.c (scm_port_mode):
2927 chars modes[3] = "";
2928 to
2929 chars modes[3];
2930 modes[0] = '\0';
2931 (Tom_Mckay@avanticorp.com)
2932
2933
2934 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
2935 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
2936 (Tom_Mckay@avanticorp.com)
2937
2938 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
2939 scm_num_eq_p() was scm_equal_p().
2940 (Tom_Mckay@avanticorp.com)
2941
2942 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
2943 (Tom_Mckay@avanticorp.com)
2944
2945 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
2946
2947 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
2948 (Tom_Mckay@avanticorp.com)
2949
2950 * strop.c (scm_substring_fill_x):
2951 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
2952 (Tom_Mckay@avanticorp.com)
2953
2954 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
2955 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
2956
2957 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
2958 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
2959
2960 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
2961 can turn into an obscure gc bug.
2962
2963 * chars.c (scm_char_p): fixed PROC call.
2964
2965 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
2966 scm_vector_set.
2967
2968 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
2969
2970 * elisp.c (new file): dynamic scoping and other bits for
2971 elisp. Don't use this yet unless you specificly want to
2972 hack on elisp emulation.
2973
2974 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
2975 scope created by scm_with_dynamic_bindings_operation_x, swap
2976 the bindings of that scope with the corresponding globals.
2977
2978 * continuations.c (scm_make_cont): when a continuation is captured,
2979 relocate the continuation stack chunks registered on the wind chain
2980 to the heap.
2981
2982 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
2983
2984 * eval.c (SCM_CEVAL): if the function position evaluates
2985 to a macro, process it accordingly. (Previously, macros were
2986 handled only if the function position was a symbol naming a
2987 variable bound to a macro).
2988
2989 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
2990
2991 * eval.c (scm_m_set): allow multi-variable set! like
2992 (set! x 1 y 2 z 3).
2993
2994 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
2995
2996 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
2997 STREAM of ports into the port table and replaced it with a
2998 port-table index.
2999
3000 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
3001
3002 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
3003
3004 * mbstrings.c (new file): functions on multi-byte strings.
3005
3006 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
3007 for multi-byte strings. Moved the string tag.
3008
3009 * chars.h chars.c repl.c (many functions): made scm_upcase and
3010 scm_downcase functions that are safe for extended character sets.
3011
3012 Changed the range of integer->char.
3013
3014 Changed the type of SCM_ICHR.
3015
3016 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
3017
3018 * guile.c: Changed init file name from "SCM_INIT_PATH" to
3019 "GUILE_INIT_PATH"
3020
3021 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
3022
3023 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
3024 know that it's safe to pass an object to gscm_get_type?)
3025 (gscm_get_type): Fix tyop in error message.
3026
3027 * variable.c (scm_variable_ref): fixed assertion test.
3028 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
3029
3030 * gscm.h: fixed several prototypes, notably gscm_vref.
3031 Add gscm_is_eq and temporarily commented out gscm_eq (see
3032 the note in gscm.h near gscm_eq if this change effects your
3033 code).
3034 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
3035
3036 * pairs.c (scm_obj_length): see next entry.
3037
3038 * gscm.h (gscm_obj_length): A way to get an integer
3039 length for lists, strings, symbols (treated as strings),
3040 and vectors. Returns -1 on error.
3041
3042 * eq.c (scm_equal_p): fixed smob case.
3043 (William Gribble <grib@arlut.utexas.edu>)
3044
3045 * Makefile.in (X_CFLAGS): defined.
3046 (William Gribble <grib@arlut.utexas.edu>)
3047
3048 * gscm.h (gscm_2_double): provided now
3049 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
3050
3051 Tue Jun 13 01:04:09 1995 gnu
3052 * Vrooom!
3053
3054