*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
2
3 * regex-posix.c (scm_init_regex_posix): Register the "regex"
4 feature, to help boot-9.scm decide whether to import the regex
5 module.
6
7 Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
8
9 * eval.c: Include scmconfig.h at the beginning of the file so that
10 HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
11 pointing this out.
12
13 * regex-posix.c: #include "_scm.h" before conditionally #including
14 <regex.h>; the former defines HAVE_REGCOMP.
15
16 * regex-posix.c: #include <regex.h> conditionally, so the file is
17 CPP'able (for dependency scanning) even on systems that don't have
18 a <regex.h> header.
19
20 Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
21
22 Add new R4RS-compliant syntax for keywords.
23 * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
24 regardless of the setting of the `keywords' read option.
25 * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
26 can be re-read no matter what the setting of the `keywords' read
27 option.
28
29 Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
30
31 Add support for POSIX regular expressions.
32
33 * regex-posix.c, regex-posix.h: New files. (Some code
34 is taken liberally from rx/rgx.c in the old Guile dist.)
35
36 * init.c: Include regex-posix.h.
37 (scm_boot_guile_1): Call scm_init_regex_posix.
38
39 * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
40 Add regex-posix.[ch] sources.
41 * Makefile.in: Regenerated.
42
43 * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
44 to do this automatically? It didn't for me, bleh.)
45
46 Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
47
48 * fports.c (print_pipe_port): New function.
49 (scm_fptob): Use print_pipe_port instead of scm_prinport; the
50 latter doesn't even take the right arguments.
51
52 * Makefile.am: Increment shared lib revision number. I think
53 sometimes the uninstalled Guile finds the installed shared lib;
54 Gord says doing this might help. As things turned out, I can't
55 say whether it does.
56 * Makefile.in: Regenerated.
57
58 * gh_init.c (gh_enter): Cast c_main_prog to a void * before
59 passing it as the closure argument to scm_boot_guile. (Bill
60 Janssen)
61
62 * ports.c (print_void_port, putc_void_port, puts_void_port,
63 write_void_port, flush_void_port, getc_void_port, close_void_port,
64 noop0): Use ANSI prototypes instead of K&R declarations, so the
65 initialization of void_port_ptob gets aggressively type-checked.
66 Fix arguments of print_void_port and write_void_port. (Bill
67 Janssen)
68
69 * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
70 appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
71 backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
72 continuations.c, continuations.h, coop-defs.h, coop-threads.c,
73 coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
74 coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
75 dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
76 error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
77 filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
78 gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
79 gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
80 gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
81 gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
82 init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
83 list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
84 markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
85 mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
86 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
87 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
88 procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
89 read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
90 script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
91 smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
92 stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
93 strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
94 strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
95 tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
96 unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
97 version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
98 address for FSF.
99
100 Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
101
102 * script.c (scm_find_executable): Use prototype-style definition
103 here; apparently it's not quite right to have const in a prototype
104 and then use a K&R declaration. I wonder if stuff like this will
105 go away if we compile with -Wrequire-prototypes, or whatever that
106 is... (Bernard URBAN)
107
108 * scmhob.h: New text from Bernard URBAN.
109
110 Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
111
112 * script.c: Don't #define const on hpux. Configure takes care of
113 this. (Thanks to Larry Schwimmer.)
114
115 * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
116 decide whether to #include <unistd.h>, instead of listing a bunch
117 of systems. Don't #include stdio twice. Removed dyked-out
118 definition of scm_find_impl_file.
119
120 Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
121
122 * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
123 library version info to 1:0.
124 * Makefile.in: Regenerated.
125
126 * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
127 gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
128 gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
129 init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
130 script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
131 throw.c: Update copyright years; these files have been worked on
132 significantly in 1997, but only had copyright years for 1996.
133 Also, change name of copyright holder on some from Mikael
134 Djurfeldt to Free Software Foundation; he has signed papers
135 assigning the changes to the FSF.
136
137 * script.c (scm_shell_usage): Pass FATAL to exit. There's no
138 reason not to give the user the option.
139
140 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
141 Return #f on end-of-file when scanning table (i.e. when called
142 with no arguments). Try to catch errors, when we can.
143 * posix.c (scm_getgrgid, scm_getpwuid): Same.
144
145 * script.h (scm_shell_usage, scm_compile_shell_switches): New
146 external declarations. These are useful.
147
148 Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
149
150 * posix.c: don't include <sys/select.h> or define macros for
151 select, since they were not used in this file.
152
153 * filesys.c (scm_select): make the fifth parameter microseconds,
154 not milliseconds. let the fourth parameter be either a real value
155 or an integer or #f. The first, second and third arguments can
156 now be vectors: the type of the corresponding return set will be
157 the same.
158 (set_element, get_element): new static procedures.
159
160 Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
161
162 * strports.c (scm_eval_string): New function.
163 (scm_eval_0str): Trivially re-implemented in terms of
164 scm_eval_string.
165 * strports.h (scm_eval_string): New extern decl.
166
167 * net_db.c (h_errno): Add extern decl for this.
168
169 * fports.c (local_pclose): New function.
170 (scm_pipob): Use it in the initializer here.
171
172 From Tim Pierce:
173 * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
174 Use a meaningful error message when signalling an error. For
175 this, scm_gethost must check h_errno rather than errno.
176
177 Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
178
179 * Makefile.in: Regenerated, using automake-1.1p.
180
181 Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
182
183 * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
184 not SCM_UNSPECIFIED.
185
186 * script.c (scm_compile_shell_switches): don't append (quit) if
187 interactive.
188 (scm_shell): call scm_exit_status and exit on the result of the
189 evaluation.
190
191 Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
192
193 Ensure that shared substrings are handled properly when passed to
194 a system call or other foreign function. Many thanks to Tim
195 Pierce!
196 * symbols.h (SCM_COERCE_SUBSTR): new macro.
197 * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
198 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
199 scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
200 scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
201 scm_strftime), vports.c (scm_make_soft_port), backtrace.c
202 (scm_display_error_message): use RO macros when strings may be RO.
203 * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
204 scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
205 scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
206 (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
207 (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
208 (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
209 scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
210 scm_strftime), vports.c (scm_make_soft_port): use
211 SCM_COERCE_SUBSTR to make sure shared substrings are
212 null-terminated.
213
214 Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
215
216 * error.c (scm_error): Add newline to error message.
217
218 * init.c (scm_init_standard_ports): Doc fix.
219
220 Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
221
222 * dynl-shl.c: Completely replaced with new code from Bernard
223 URBAN.
224
225 * script.c (scm_ice_9_already_loaded): New variable.
226 (scm_compile_shell_switches): Use it.
227
228 Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
229
230 * filesys.c (scm_input_waiting_p): add missing third argument to
231 scm_misc_error.
232
233 * stime.c (scm_localtime): copy the result of localtime before
234 calling gmtime in case they share a buffer.
235 (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
236 nor HAVE_TZNAME.
237
238 Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
239
240 * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
241
242 Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
243
244 * Makefile.am (check-local): New target, which causes 'make check'
245 to run gh_test_c and gh_test_repl, with some trivial input.
246 * Makefile.in: Rgnrtd.
247
248 Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
249
250 * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
251 been unlinked.
252
253 Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
254
255 * async.c (scm_sys_tick_async_thunk): commented out. I'm not
256 sure how this was supposed to work.
257 (scm_async_click): don't send SCM_TICK_SIGNAL.
258 (scm_init_async): don't initialize %tick-thunk.
259
260 * the following change doesn't affect the Scheme interface:
261 gc-thunk is called at the end of garbage collection. however it's
262 no longer implemented by pretending it's a signal.
263
264 * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
265 system async corresponding to scm_gc_thunk.
266 * async.h: declare scm_gc_async.
267 * async.c (scm_sys_gc_async_thunk): apply the thunk named by
268 gc-thunk directly, instead of going through a signal handler.
269 (scm_gc_async): new variable, points to the GC system-async.
270 (scm_init_async): save the GC async as scm_gc_async instead
271 of using system_signal_asyncs.
272 (scm_gc_vcell): new variable, stores the gc-thunk vcell.
273
274 Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
275
276 * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
277 Don't screw up if we're interrupted.
278 * Makefile.in: Regeneradet.
279
280 Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
281
282 * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
283
284 * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
285 we're not using AM_INIT_GUILE_MODULE any more.
286 * Makefile.in: Reneregated.
287
288 Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
289
290 Functions for finding variable bindings, grace à Tim Pierce.
291 * gh_data.c (gh_lookup, gh_module_lookup): New functions.
292 * gh.h (gh_lookup, gh_module_lookup): New prototypes.
293
294 Get 'make dist' to work again.
295 * Makefile.am (EXTRA_DIST): Remove PLUGIN files.
296 * Makefile.in: Regenerated, like a surry without a fringe on top.
297
298 Changes for reduced Guile distribution: one configure script,
299 no plugins.
300 * configure.in, configure: Removed.
301 * acconfig.h, acinclude.m4: Moved to parent directory, where the
302 real configure script lives.
303 * Makefile.in, scmconfig.h.in: Regenerated.
304
305 * init.c: #include "script.h", to get prototype for script.c's
306 init function.
307
308 Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
309
310 * gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
311 scm_must_malloc, not raw malloc.
312
313 * script.c (scm_compile_shell_switches): Dyke out debugging output
314 code.
315
316 Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
317
318 * eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
319
320 * stime.c: include both <sys/times.h> and <sys/timeb.h> if the
321 system has them. Hope this is safe. Previously
322 sys/timeb.h was included if HAVE_FTIME was defined or if
323 HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
324 but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
325
326 * ioext.c (scm_setfileno): add missing third argument to
327 scm_misc_error call.
328
329 Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
330
331 * eq.c (scm_equal_p): Correctly compare strings of different
332 varieties. (Thanks to Tim Pierce.)
333
334 Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
335
336 * read.c (skip_scsh_block_comment): SCSH says the !# that ends a
337 #! block comment must occur on a line all by itself.
338
339 Move most of the guts of shell command processing into libguile,
340 so guile.c can be very small (and eventuallly auto-generated. (I
341 mean, generated mechanically, not self-generated. Hmm.))
342 * guile.c, script.c, script.h: New source files.
343 * init.c (scm_boot_guile_1): Call scm_init_script.
344 * libguile.h: #include "script.h".
345 * Makefile.am (bin_PROGRAMS, guile_SOURCES, guile_LDADD): New
346 targets, for new executable.
347 (libguile_la_SOURCES): Mention script.c.
348 (modinclude_HEADERS): Add script.h.
349 * configure.in: Always check for -lm, -lsocket, -lnsl, whether or
350 not dynamic linking is enabled. This is because we're generating
351 executables now. Move CY_AC_WITH_THREADS call after those, so the
352 values of cy_cv_threads_libs captures the libs chosen above.
353 * Makefile.in, configure, aclocal.m4: Regenerated.
354
355 * Makefile.am (EXTRA_DIST): Don't distribute gscm.c or gscm.h.
356 We don't maintain this interface any more, and it just confuses
357 people.
358
359 * alloca.c: #include <scmconfig.h>, not <config.h>.
360 * Makefile.am (EXTRA_libguile_la_SOURCES): Mention alloca.c, so
361 it'll get included in disties.
362
363 Thu Apr 17 17:45:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
364
365 * gscm.c, gscm.h: These aren't supported any more, and shouldn't
366 be distributed, because they confuse people.
367 * Makefile.am (EXTRA_DIST): Remove gscm.c, gscm.h.
368
369 Sat Apr 19 11:56:18 1997 Tim Pierce <twp@twp.tezcat.com>
370
371 * configure.in: check for presence of gethostent (not present on
372 OpenBSD by default).
373 * net_db.c (scm_gethost): Check HAVE_GETHOSTENT.
374 * configure, scmconfig.h.in: Regenerated.
375
376 Wed Apr 16 17:52:38 1997 Jim Blandy <jimb@floss.cyclic.com>
377
378 * backtrace.c (scm_backtrace): Split message string across
379 newlines properly. GCC is more tolerant of this than other
380 compilers.
381
382 Mon Apr 14 20:20:14 1997 Jim Blandy <jimb@floss.cyclic.com>
383
384 Merge threads directory into libguile.
385 * coop-defs.h, coop-threads.c, coop-threads.h, coop.c, threads.c,
386 threads.h: New source files.
387 * Makefile.am (EXTRA_libguile_la_SOURCES): Add threads.c.
388 (noinst_HEADERS): Add coop-threads.c, coop-threads.h, coop.c
389 here; see comment.
390 (modinclude_HEADERS): Add threads.h, coop-defs.h.
391 (EXTRA_DIST): Add fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
392 coop-threads.c.cygnus, coop-threads.h.cygnus.
393 * configure.in: If we're using threads, include threads.o in
394 LIBOBJS.
395 * _scm.h, libguile.h: threads.h lives in this directory now.
396 * fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
397 coop-threads.c.cygnus, coop-threads.h.cygnus: New files, not
398 currently used, but brought along for information's sake.
399 * ChangeLog-threads: log from old 'threads' directory.
400 * Makefile.in, configure: Rebuilt.
401
402 Mon Apr 14 20:15:29 1997 Jim Blandy <jimb@totoro.cyclic.com>
403
404 * stime.c (scm_mktime): #ifndef HAVE_TM_ZONE, Use lt.tm_zone, not
405 lt->tm_zone.
406
407 Mon Apr 14 01:32:57 1997 Jim Blandy <jimb@floss.cyclic.com>
408
409 * gh_init.c (gh_standard_handler): Return SCM_BOOL_F, not garbage.
410
411 Merge GH interface library into libguile.
412 * gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
413 gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c: New files.
414 * Makefile.am (libguile_la_SOURCES): Add gh_data.c, gh_eval.c,
415 gh_funcs.c, gh_init.c, gh_io.c, gh_list.c, gh_predicates.c. Move
416 _scm.h to ...
417 (EXTRA_libguile_la_SOURCES): ... here.
418 (pkginclude_HEADERS): Add variable, to get gh.h installed.
419 (THREAD_LIBS, check_ldadd, check_PROGRAMS, gh_test_c_SOURCES,
420 gh_test_c_LDADD, gh_test_repl_SOURCES, gh_test_repl_LDADD):
421 New variables, describing how to build the gh test programs.
422 * configure.in: Check for -lm, -lsocket, -lnsl; we need this to
423 build the test programs, and we probably should have been linking
424 libguile.la against them all along, to support AIX shared libs.
425 Add cflags for threads to CFLAGS; add libs for threads to new
426 variable THREAD_LIBS, used in Makefile.am.
427 * ChangeLog-gh: log from old `gh' subdirectory.
428 * Makefile.in, configure, scmconfig.h.in: Rebuilt.
429
430 Sun Apr 13 23:03:55 1997 Jim Blandy <jimb@floss.cyclic.com>
431
432 * acconfig.h: Undo change of Apr 9; including the definition of
433 PACKAGE in the guile headers conflicts with applications' own
434 definitions.
435 * scmconfig.h.in: Regenerated.
436
437 Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
438
439 * filesys.c (scm_fcntl): New function from Roland McGrath.
440 (scm_init_filesys): New symbols for use with fcntl.
441 * filesys.h: Added prototype.
442
443 * eval.c (SCM_APPLY): Set debug apply frame argument list correctly
444 when PROC is receiving no arguments.
445
446 Fri Apr 11 19:39:32 1997 Jim Blandy <jimb@totoro.cyclic.com>
447
448 * filesys.c (S_ISSOCK): Define this if it's missing, but we do
449 have S_IFSOCK. This is the case under Ultrix.
450
451 * posix.c (scm_status_exit_val, scm_status_exit_val,
452 scm_status_term_sig, scm_status_stop_sig): Modified to work with
453 Ultrix versions of WIFSTOPPED, etc., which assume that their
454 arguments are lvalues (hmm).
455
456 Thu Apr 10 15:10:07 1997 Jim Blandy <jimb@floss.cyclic.com>
457
458 * eval.c: Doc fixes.
459
460 * throw.c: Doc fixes; rearranged.
461
462 * putenv.c: #include "libguile/scmconfig.h", not <config.h>.
463
464 Wed Apr 9 18:01:20 1997 Jim Blandy <jimb@floss.cyclic.com>
465
466 * acconfig.h: Added entry for PACKAGE.
467 * scmconfig.h.in: Regenerated.
468
469 Changes to work with automake-1.1n, which has better libtool support.
470 * Makefile.am: Use lib_LTLIBRARIES instead of lib_PROGRAMS.
471 Use libguile_la_LIBADD instead of libguile_la_LDADD. (What's the
472 difference here?)
473 (libguile_la_SOURCES, modinclude_HEADERS, EXTRA_DIST): Format for
474 readability.
475 * Makefile.in: Rebuild.
476
477 Wed Apr 9 09:08:54 1997 Gary Houston <ghouston@actrix.gen.nz>
478
479 * stime.c (scm_mktime): take an optional zone argument.
480 (scm_localtime): check putenv return value.
481 (scm_strftime, scm_strptime): moved from posix.c. move #include
482 sequences.h too.
483 stime.h, posix.h: update prototypes.
484 (bdtime2c, setzone, restorezone): new static procedures.
485 (scm_mktime, scm_strftime): use them.
486 (scm_strftime): don't call mktime before strftime. Use
487 filltime for return value.
488 (filltime): convert NULL zname to #f.
489 (scm_strptime): return a count of characters consumed, not
490 the remaining string.
491
492 Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
493
494 * stime.c (scm_localtime): check HAVE_TM_ZONE and HAVE_TZNAME.
495 (scm_mktime): likewise.
496 Declare *tzname[].
497 Uncomment localtime and mktime.
498
499 * configure.in: add AC_STRUCT_TIMEZONE.
500
501 Sat Apr 5 23:56:40 1997 Gary Houston <ghouston@actrix.gen.nz>
502
503 * stime.c (scm_init_stime): don't define ticks/sec.
504 (scm_gettimeofday): renamed from scm_time_plus_ticks (avoids multiple
505 return value problem and is still portable.)
506
507 Sat Apr 5 17:59:24 1997 Jim Blandy <jimb@floss.cyclic.com>
508
509 * cpp_err_symbols.in: Renamed from cpp_err_symbols, to avoid
510 make's implicit cpp_err_symbols: cpp_err_symbols.c rule.
511 * cpp_sig_symbols.in: Renamed from cpp_sig_symbols.
512 * Makefile.am (check_errnos, check_signals, cpp_sig_symbols.c,
513 cpp_err_symbols.c): Corresponding changes.
514 * Makefile.in: Regenerated.
515
516 Sat Apr 5 02:39:02 1997 Gary Houston <ghouston@actrix.gen.nz>
517
518 * posix.c (scm_putenv): don't check HAVE_PUTENV.
519 * Makefile.am (EXTRA_libguile_la_SOURCES): add putenv.c.
520 * configure.in: move putenv from AC_CHECK_FUNCS to AC_REPLACE_FUNCS.
521 * putenv.c: new file, from sh-utils 1.12.
522
523 * posix.c (scm_environ): use malloc in place of scm_must_malloc
524 since allocation isn't for Scheme objects.
525 (scm_putenv): copy strings before placing in the environment.
526
527 * stime.c (scm_current_time): throw an error if time returns -1,
528 instead of returning #f.
529 (scm_get_internal_real_time, scm_get_internal_real_time): use
530 scm_long2num for return value instead of SCM_MAKINUM.
531
532 * stime.h: prototypes updated.
533
534 * stime.c (scm_time_in_msec): apparently unused, deleted.
535
536 Fri Apr 4 08:53:41 1997 Gary Houston <ghouston@actrix.gen.nz>
537
538 * configure.in: check for gettimeofday.
539
540 * stime.c (scm_time_plus_ticks): new procedure, an scsh interface
541 which may be more usefully portable than a gettimeofday interface.
542
543 Wed Apr 2 17:11:39 1997 Jim Blandy <jimb@totoro.cyclic.com>
544
545 * Makefile.am (EXTRA_DIST): It's cpp_err_symbols, not
546 cpp_err_signals.
547 * Makefile.in: Regenerated.
548
549 Mon Mar 31 03:22:37 1997 Gary Houston <ghouston@actrix.gen.nz>
550
551 * stime.c (filltime): recovered static procedure.
552 (scm_localtime, scm_gmtime, scm_mktime, scm_tzset): recovered from
553 an earlier Guile.
554
555 * posix.h: add prototype for scm_close_pipe, remove prototypes for
556 scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
557
558 * posix.c (scm_mknod): split the mode argument into type and perms
559 arguments, like the extra fields returned by stat.
560
561 * fports.c (scm_pipob): set the close, free and print procedures.
562 (scm_close_pipe): new procedure.
563
564 * posix.c (scm_open_input_pipe, scm_open_output_pipe): deleted,
565 define them in boot-9.scm
566
567 Wed Mar 26 04:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
568
569 * ioext.c (scm_setfileno): throw a runtime error if SET_FILE_FD_FIELD
570 wan't defined. Don't include fd.h.
571
572 * Previously fd.h was regenerated whenever configure was run,
573 forcing a couple of files to be recompiled.
574
575 * fd.h.in: deleted, SET_FILE_FD_FIELD moved to ioext.c.
576 * configure.in: AC_DEFINE FD_SETTER instead of HAVE_FD_SETTER.
577 Check for _fileno as well as _file.
578 Don't output fd.h.
579 * ioext.c: don't fd.h.
580 * acconfig.h: remove duplicate HAVE_FD_SETTER and change the
581 other to FD_SETTER.
582
583 * Change the stratigy for getting information about errno
584 (and now signal number) values, e.g., ENOSYS, SIGKILL. Instead of
585 generating lists of symbols during the build process, which will
586 not always work, include comprehensive lists in the distribution.
587 To help keep the lists up to date, the "check_signals" and
588 "check_errnos" make targets can be used.
589
590 * configure.in: don't check for a command to extract errno codes.
591 * Makefile.am: update file lists, remove errnos.list and errnos.c
592 targets, add cpp_err_symbols.c, cpp_sig_symbols.c, check_signals,
593 check_errnos targets.
594 (CLEANFILES): remove errnos.c and errnos.list, add
595 cpp_err_symbols_here cpp_err_symbols_diff cpp_err_symbols_new
596 cpp_sig_symbols_here cpp_sig_symbols_diff cpp_sig_symbols_new
597 * errnos.default: deleted.
598 * cpp_signal.c: new file.
599 * cpp_errno.c: renamed from errnos_get.c.
600 * cpp_err_symbols, cpp_sig_symbols: new files.
601 * cpp_cnvt.awk: renamed from errnos_cnvt_awk.
602 * error.c (scm_init_error): #include cpp_err_symbols instead of
603 errnos.c.
604 * posix.c (scm_init_posix): don't intern signal symbols. #include
605 cpp_sig_symbols.c.
606
607 Tue Mar 25 04:51:10 1997 Gary Houston <ghouston@actrix.gen.nz>
608
609 * strop.c (scm_i_index): allow the lower bound to be equal to the
610 length of the string, so a null string doesn't always give an error.
611
612 * posix.h: new prototypes.
613 * posix.c (scm_status_exit_val, scm_status_term_sig,
614 scm_status_stop_sig): new functions, as in scsh. They break down
615 process status values as returned by waitpid.
616
617 Sat Mar 22 18:16:29 1997 Gary Houston <ghouston@actrix.gen.nz>
618
619 * net_db.c (scm_gethost): don't check HAVE_GETHOSTENT, since
620 configure doesn't know about it.
621
622 Fri Mar 21 23:49:28 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
623
624 * snarf.h, backtrace.c: Name change SCM_GLOBAL --> SCM_VCELL.
625
626 * snarf.h: Added new macros SCM_GLOBAL_SYMBOL and SCM_GLOBAL_VCELL
627 which defines C variables with global linkage.
628
629 Mon Mar 17 05:57:11 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
630
631 * snarf.h (SCM_PROC1): Bugfix: Use (void) rather than (...) for
632 zero arg subrs.
633
634 Sun Mar 16 11:43:49 1997 Mikael Djurfeldt <mdj@floss.cyclic.com>
635
636 * eval.c (safe_setjmp): Temporarily use old setjmp until someone
637 has time to check why this doesn't work well with continuations.
638
639 Sun Mar 16 05:09:55 1997 Jim Blandy <jimb@totoro.cyclic.com>
640
641 * Fix shell syntax error; some shells won't tolerate
642 multiple "fi" statements on a single line. (Thanks to Fred Fish.)
643
644 Sat Mar 15 01:11:40 1997 Gary Houston <ghouston@actrix.gen.nz>
645
646 * posix.c (scm_uname): throw an error if uname fails instead
647 of returning errno.
648
649 * error.h (scm_errno, scm_perror): obsolete prototypes removed.
650
651 * error.c (err_head, scm_errno, scm_perror): obsolete procedures
652 removed.
653
654 * async.c (scm_ints_disabled): definition moved from error.c.
655
656 Sat Mar 15 00:06:08 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
657
658 * acconfig.h: Removed PACKAGE.
659
660 * scmconfig.h.in: Regenerated.
661
662 * snarf.h: g++ says it's non-portable not to specify the first
663 argument in a varargs declaration. I introduced the first
664 argument by using preprocessor conditionals.
665
666 Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
667
668 * ioext.c (scm_read_delimited_x): use RO string macros for delims.
669 (scm_freopen): use RO string macros for filename and modes.
670 (scm_duplicate_port, scm_fdopen): use RO string macros for modes.
671
672 * posix.c (scm_getgrgid): simplify conversion of name to C string.
673 (scm_mknod): use RO string macros for path.
674
675 * socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
676 use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
677
678 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
679 use SCM_ROSTRINGP and SCM_ROCHARS.
680
681 Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
682
683 * unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
684 a scm_tc7_byvect.
685
686 * ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
687 scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
688 support for byte vectors.
689
690 * print.c (scm_iprin1): Limit number of vector elements printed
691 according to pstate->length.
692
693 Thu Mar 13 00:12:35 1997 Gary Houston <ghouston@actrix.gen.nz>
694
695 * backtrace.c (scm_display_error_message): don't segv if message
696 is an immediate.
697
698 * error.h: prototype for scm_error_scm.
699
700 * error.c (scm_error_scm): new procedure, reimplements scm-error
701 in C and uses scm_error.
702
703 Tue Mar 11 03:51:00 1997 Gary Houston <ghouston@actrix.gen.nz>
704
705 * read.c (scm_read_hash_extend): make scm_read_hash_procedures a
706 pointer to the Scheme variable read-hash-procedures and intern it
707 in scm_init_read. Modify scm_read_hash_extend and
708 scm_get_hash_procedure to use the pointer.
709
710 Mon Mar 10 06:28:54 1997 Gary Houston <ghouston@actrix.gen.nz>
711
712 * read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
713 (SCM_KEYWORD_STYLE): defined.
714
715 * read.c (scm_read_opts): add a keywords option. This isn't a
716 boolean option, in case someone wants to add support for DSSSL
717 keywords too.
718 Setup scm_keyword_prefix symbol.
719 (scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
720 set to 'prefix.
721 I've left keyword support disabled by default, since it doesn't
722 seem to break the module system and it gives R4RS standard behaviour.
723 It can be reactivated with (read-set! keywords 'prefix).
724
725 Sun Mar 9 14:14:39 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
726
727 * arbiters.c (scm_make_arbiter): Bugfix: Must SCM_DEFER_INTS
728 before constructing arbiter.
729
730 * eval.c (scm_m_define): Bugfix: Check that the object is a
731 closure before setting the procedure property!
732
733 * ports.h: Removed prototype for scm_ungetc_char_ready_p.
734
735 * ports.c: Removed `ungetc-char-ready?'.
736
737 Sat Mar 8 00:27:05 1997 Gary Houston <ghouston@actrix.gen.nz>
738
739 * read.c (scm_init_read): intitialise scm_read_hash_procedures
740 (idea from Mikael: make it a pair so scm_permanent object only
741 called once.)
742 (scm_read_hash_extend): don't call scm_permanent_object.
743 (ideas from Mikael): if chr is already in the list, replace its
744 procedure instead of appending it again. If proc is #f, remove
745 it from the list.
746 (scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
747
748 * strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
749
750 * gdbint.c (gdb_read): update scm_lreadr usage.
751
752 * load.h: update prototypes.
753
754 * load.c (scm_primitive_load, scm_read_and_eval_x,
755 scm_primitive_load_path): remove case_insensitive_p, sharp arguments.
756
757 * read.h: add prototype for scm_read_hash_extend. Change args for
758 other prototypes.
759
760 * read.c (scm_read_hash_procedures): new variable.
761 (scm_read_hash_extend): new procedure.
762 (scm_get_hash_procedure): new procedure.
763 (scm_lreadr): use scm_get_hash_procedure instead of an argument
764 for extended # processing.
765 (scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
766 scm_read_token): remove case_i, sharp arguments. Change callers.
767
768 Fri Mar 7 08:58:21 1997 Gary Houston <ghouston@actrix.gen.nz>
769
770 * read.h (SCM_N_READ_OPTIONS): increase to 3.
771 (SCM_CASE_INSENSITIVE_P): define.
772
773 * read.c: add case-insensitive option to scm_read_opts.
774 (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
775 to determine whether to convert symbol case.
776 (default_case_i): definition removed.
777 * read.c (scm_read_token): if case_i, downcase ic before doing
778 anything with it.
779
780 Sat Mar 8 03:49:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
781
782 * configure.in: Added configuration option `guile-debug'.
783 Configure with --enable-guile-debug if you want a bunch of extra
784 functions used for debugging when developing Guile.
785
786 * acconfig.h: Added new preprocessor symbol GUILE_DEBUG.
787
788 * procs.c (make-cclo): New undocumented debugging procedure: Make
789 compiled closure with internal procedure PROC and length LENGTH.
790 Only compiled if GUILE_DEBUG is defined.
791
792 * debug.c: Only include `debug-hang' if GUILE_DEBUG is defined.
793
794 * print.c: Put #ifdef GUILE_DEBUG around `current-pstate'.
795
796 * ports.c: Changed preprocessor symbol DEBUG --> GUILE_DEBUG.
797
798 * eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
799 with 3 or more args internally to the evaluator.
800
801 Fri Mar 7 19:38:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
802
803 * eval.c (SCM_CEVAL): Added code sections for handling of asubrs
804 with 3 or more args internally to the evaluator. This is mainly
805 because we don't want to pass entry and exit points of the
806 debug support twice, but it also seems to increase the speed of
807 the evaluator for such calls (e. g. (+ 1 2 3)).
808
809 * backtrace.c (scm_display_application): New procedure:
810 display-application; Set fancy printing parameters individually
811 for different types of display (backtrace, error, application).
812 (These should of course be customizable!)
813
814 * debug.h (SCM_RESET_DEBUG_MODE): Bugfix: The old code didn't
815 clear the CHECK-flags.
816
817 Thu Mar 6 00:53:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
818
819 * tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP.
820
821 Wed Mar 5 23:31:21 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
822
823 * tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
824 from pairs with a GLOC in the car.
825
826 * symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
827 otherwise `symbol-hash' will behave badly.
828 (scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
829 we get segmentation fault!
830
831 * symbols.c: Added #include "weaks.h". New functions:
832 `builtin-bindings' and `builtin-weak-bindings'. (These will be
833 moved to an extraneous library when we split libguile.)
834
835 Tue Mar 4 19:50:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
836
837 * filesys.c (scm_stat): stat now takes fport arguments too as
838 documented in the manual.
839
840 Mon Mar 3 07:11:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
841
842 * debug.c (scm_single_step): Bugfix: Call continuation with
843 scm_call_continuation instead of throwing to it.
844
845 Mon Mar 3 09:07:56 1997 Gary Houston <ghouston@actrix.gen.nz>
846
847 * ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
848 argument wasn't declared to be optional.
849
850 Sun Mar 2 16:34:40 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
851
852 * stime.c (scm_init_stime): Add feature "current-time".
853
854 Sun Mar 2 06:37:31 1997 Gary Houston <ghouston@actrix.gen.nz>
855
856 * throw.h: prototype for scm_exit_status.
857 * throw.c (scm_handle_by_message): if a 'quit is caught, use its
858 args to derive an exit status. Allows (quit) to work from a
859 script.
860 (scm_exit_status): new function.
861 #include "eq.h".
862
863 Sat Mar 1 00:09:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
864
865 * eval.c (scm_deval): Removed some old code.
866 (ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
867 with the others.
868 (ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
869 exit-frame traps.
870
871 * symbols.c (msymbolize): Bugfix: Must initialize property list to
872 SCM_EOL.
873
874 * procs.c: Introduce the existent C function scm_thunk_p at the
875 Scheme level as well.
876
877 Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
878
879 * symbols.c, symbols.h (scm_symbol_value0): New function. Can be
880 used from C to easily lookup the value of a symbol in the current
881 module.
882
883 Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
884
885 * unif.c (scm_init_unif): Added #include "unif.x". (There are two
886 scm_init_unif in this file. This will also fix a previous problem
887 with guile-snarf.)
888
889 * configure.in: Added AM_MAINTAINER_MODE
890
891 Fri Feb 21 23:07:26 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
892
893 * gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to
894 avoid warnings.
895
896 Fri Feb 21 18:00:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
897
898 * Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
899 source files that are not always included in libguile but should
900 have their dependencies calculated by automake. This variable is
901 recognized by automake, no further magic is needed.
902 (libguile_la_DEPENDENCIES): Changed to @LIBLOBJS@. Libtool wants
903 to deal exclusively with *.lo files, as it seems. The *.o files
904 are built automatically when the corresponding *.lo file gets
905 built.
906
907 Wed Feb 19 14:04:23 1997 Jim Blandy <jimb@floss.cyclic.com>
908
909 * list.h (scm_list_cdr_ref): Delete prototype; function no longer
910 exists.
911
912 Thu Feb 13 21:44:07 1997 Gary Houston <ghouston@actrix.gen.nz>
913
914 * unif.c (scm_array_set_x): minor change to argument error checking.
915
916 Tue Feb 11 18:19:47 1997 Jim Blandy <jimb@floss.cyclic.com>
917
918 * Makefile.am (libguile_la_SOURCES): Remove backtrace.c, debug.c,
919 inet_aton.c, srcprop.c, stacks.c, and strerror.c from this list.
920 They should only be included in the library at configure.in's
921 discretion.
922 (libguile_la_LDADD): Include the appropriate .lo files here.
923 (libguile_la_DEPENDENCIES): List the corresponding .o files here,
924 so we know when to build them (and their .lo bretheren).
925 * configure.in (LIBLOBJS): New substituted variable. We let
926 configure decide which .o files to include in LIBOBJS, and then
927 put the corresponding list of .lo files in LIBLOBJS. The latter
928 is what we pass to libtool.
929 * Makefile.in, configure: regenerated.
930
931 Mon Feb 10 00:08:08 1997 Mikael Djurfeldt <mdj@kenneth>
932
933 * symbols.c (scm_sysintern0): New function. Contains the core of
934 old scm_sysintern but doesn't take a second value argument.
935 (scm_sysintern): Now uses scm_sysintern0.
936 (scm_sysintern_no_module_lookup): Renamed to
937 scm_sysintern0_no_module_lookup and doesn't take a second value
938 argument any longer.
939
940 * symbols.h (scm_sysintern0: Added declaration.
941
942 * options.c (scm_init_opts): Use scm_sysintern0 instead of
943 scm_sysintern when interning option keys. Otherwise we risk
944 destroying the values of already interned variables.
945
946 * symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
947 scheme-level boolean (use SCM_NFALSEP).
948
949 * backtrace.c (scm_init_backtrace): Make Scheme-level variable
950 `the-last-stack'.
951 (scm_backtrace): New function. (C version of old function from
952 boot-9.scm) Motivation: Make it possible to display backtraces
953 without depending on boot-9.scm. (I'm uncertain if this
954 motivation is good enough...)
955
956 * root.h (scm_root_state): Add member the_last_stack_var.
957 (scm_the_stack_var): Defined to scm_root->the_last_stack_var.
958
959 * root.c (mark_root): Mark scm_the_last_stack_var.
960
961 * init.c (scm_start_stack): Initialize scm_the_last_stack_var to
962 SCM_BOOL_F.
963
964 Sun Feb 9 18:04:41 1997 Mikael Djurfeldt <mdj@kenneth>
965
966 * throw.c (mark_lazy_catch, free_lazy_catch): Removed.
967 1. mark_lazy_catch didn't mark the smob.
968 2. Both functions above have standard variants:
969 (lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
970 free_lazy_catch --> scm_free0.
971
972 Fri Feb 7 17:30:26 1997 Jim Blandy <jimb@floss.cyclic.com>
973
974 * throw.c (scm_internal_lazy_catch): New function.
975 (scm_lazy_catch): Rewritten to use it.
976 (scm_ithrow): Handle the new lazy catch representation.
977 Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry
978 that doesn't have a jmpbuf is a lazy catch clause.
979 (tc16_lazy_catch, struct lazy_catch, mark_lazy_catch,
980 free_lazy_catch, print_lazy_catch, lazy_catch_funs,
981 make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new
982 smob.
983 (scm_init_throw): Register the new lazy-catch smob type.
984 * throw.h (scm_internal_lazy_catch): decl for new function.
985
986 * throw.c (scm_internal_catch): Doc fixes.
987
988 * alloca.c: New file, needed to support the AC_FUNC_ALLOCA call in
989 configure.in. Including this might cause problems if applications
990 that link against libguile include their own copies of alloca, but
991 if they're using autoconf, they should be adding libguile to LIBS
992 before calling AC_FUNC_ALLOCA anyway, in which case they'll find
993 the copy in libguile, and things will be okay. (I think.)
994
995 Thu Feb 6 03:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
996
997 * strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
998 unif.c.
999 strop.h: move prototypes too.
1000
1001 Wed Feb 5 08:33:00 1997 Gary Houston <ghouston@actrix.gen.nz>
1002
1003 * posix.c (scm_init_posix): don't intern EINTR since it's now done
1004 elsewhere.
1005
1006 * ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
1007 etc. I deleted them from filesys.c long ago, but didn't
1008 notice they were here too (although ineffective since
1009 sys/stat.h wasn't included).
1010
1011 Tue Feb 4 18:17:50 1997 Tom Tromey <tromey@cygnus.com>
1012
1013 * eval.c: Don't define alloca in GCC case. gcc will automatically
1014 use __builtin_alloca if appropriate.
1015
1016 Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
1017
1018 * eval.c (safe_setjmp): New function: trivial wrapper for setjmp.
1019 (SCM_CEVAL, SCM_APPLY): Call it, instead of setjmp, to make sure
1020 that values of automatic variables are preserved. See comments
1021 for safe_setjmp for details.
1022
1023 Change from Thomas Morgan:
1024 * variable.c: Include eq.h.
1025 (var_equal): New function.
1026 (variable_smob): Use var_equal as the discriminator for variables.
1027
1028 * throw.c (s_throw): Remove extraneous declaration.
1029
1030 * configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
1031 * eval.c: Add necessary CPP cruft to support that.
1032 * configure, Makefile.in, scmconfig.h.in: regenerated.
1033
1034 Change from Thomas Morgan:
1035 * procprop.c (scm_procedure_properties): Convert the Scheme
1036 boolean returned by scm_procedure_p into a C boolean before using
1037 it as a condition for SCM_ASSERT.
1038 (scm_procedure_property): Likewise.
1039
1040 * simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
1041 indications of Unixness.
1042 * stime.c: Same.
1043
1044 Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
1045
1046 * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
1047
1048 Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
1049
1050 * read.c (scm_lreadr): use scm_misc_error to improve one of the
1051 "unknown # object" error messages.
1052
1053 * strop.c (scm_i_index, scm_i_rindex): combine into one procedure
1054 (scm_i_index) and declare it static. Add a 'direction' argument
1055 to indicate what way the search should go.
1056 (scm_i_index): throw out-of-range error instead of wrong-type-arg
1057 if indices are bad.
1058 (scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
1059 strop.h: remove scm_i_index, scm_i_rindex prototypes.
1060
1061 Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
1062
1063 * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
1064
1065 * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
1066 to avoid clash with various scsh forks.
1067
1068 Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
1069
1070 The following two changes (ramap.c, throw.c) are motivated by the
1071 apparent unportability of forward declarations of static arrays of
1072 the form `static foo bar[];'.
1073
1074 * ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
1075 (ra_rpsubrs, ra_asubrs): Moved to the top of array code.
1076
1077 * throw.c (scm_throw): Moved above scm_ithrow.
1078
1079 * options.h: Removed the extern declarations of scm_yes_sym and
1080 scm_no_sym since these are static.
1081
1082 Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
1083
1084 * ports.c: add SCM_PROC declarations for pt-size and pt-member.
1085
1086 * Makefile.am: remove AWK=@AWK@.
1087 Add a rule for generating errnos.list.
1088 (CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
1089
1090 * configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
1091 don't extract errnos, just set a variable (avoids the
1092 need to recompile error.c just because configure is run.)
1093
1094 * unif.h: update prototypes.
1095 * unif.c (scm_uniform_array_read,write): change the offset and
1096 length arguments to start and end, for consistency.
1097
1098 * __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
1099
1100 * ioext.h: update prototypes.
1101 * ioext.c (scm_read_delimited_x): replaces scm_read_line and
1102 scm_read_line_x, it's a more general procedure using an
1103 interface from scsh. read-line and read-line! are now defined
1104 in boot-9.scm.
1105 Note that the new read-line trims the terminator
1106 by default, previously it was appended to the returned string. An
1107 optional argument specifies how to process the terminator (scsh
1108 compatible). For the old behaviour: (read-line port 'concat).
1109 scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
1110 returns a pair, but is converted to multiple values if the scsh
1111 module is loaded.
1112
1113 socket.h: update prototypes.
1114 * socket.c (scm_recvfrom): for consistency with other procedures,
1115 take start and end as separate optional arguments.
1116 (scm_recv, scm_recvfrom): don't allow the second argument
1117 to be a size, only a buffer. Change the scheme names to
1118 recv! and recvfrom!. Don't return the buffer.
1119
1120 * ioext.h, posix.h: move prototypes too.
1121 * ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
1122 moved back from posix.c to ioext.c. Also move #includes of "genio.h"
1123 "read.h" and "unif.h".
1124 * ioext.c: include "chars.h"
1125
1126 Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
1127
1128 * dynl.c: The dynamic linking and module registration functions
1129 are now defined even when dynamic linking is not available for the
1130 host system. Some of their functionality can be done without
1131 dynamic linking; when it's really needed, they throw errors.
1132
1133 Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
1134
1135 * configure.in: Only define DYNAMIC_LINKING when one of the system
1136 dependent functions is detected.
1137 * dynl.c (scm_dynamic_func): New function to get the address of a
1138 function in a dynamic object.
1139 (scm_dynamic_call, scm_dynamic_args_call): Accept the values
1140 produced by scm_dynamic_func as the thing to call.
1141
1142 Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
1143
1144 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
1145 (scm_register_module_xxx, scm_registered_modules,
1146 scm_clear_registered_modules): New functions.
1147
1148 Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
1149
1150 * symbols.c (scm_sysintern): Renamed to
1151 scm_sysintern_no_module_lookup.
1152 (scm_sysintern): New function to take the place of the old
1153 scm_sysintern. It uses the current toplevel lookup closure to give
1154 the symbol its value. This is a temporary hack to put packages
1155 like gtcltk into their own module.
1156 (scm_can_use_top_level_lookup_closure_var): New variable to tell
1157 us whether `scm_top_level_lookup_closure_var' has been initialized
1158 and is usable.
1159 * eval.c (scm_init_eval): Set it.
1160
1161 Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
1162
1163 * fports.c (scm_open_file): pass errno to scm_syserror_msg.
1164 * filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
1165 SCM_FD.
1166 * filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
1167 scm_syserror_msg.
1168 (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
1169 scm_sys_dup): deleted: FD capability will be added to other
1170 procedures.
1171 Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
1172 scm_fd_free, fd_smob, scm_intern_fd.
1173 (scm_open): renamed from scm_sys_open. Return a port instead of
1174 an FD object. Make the mode argument optional.
1175 (scm_sys_create): deleted, it's just a special case of open.
1176 (scm_init_filesys): move interning of constants O_CREAT etc.,
1177 here (were previously using SCM_CONST_LONG macro).
1178 Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
1179 don't newsmob fd.
1180 (numerous _sys_ procedures): remove gratuitous _sys_ from names.
1181 include "fports.h" and <stdio.h>
1182 (scm_stat, scm_select): don't support FD objects.
1183
1184 * error.h: adjust scm_syserror_msg prototype.
1185 * error.c (scm_syserror_msg): take an extra argument for errno.
1186 Using the global value didn't always work, since it could be
1187 reset by procedure calls in the message or args arguments.
1188
1189 * fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
1190 I don't understand why the check was there (and what about the
1191 ultrix check?)
1192
1193 * strop.c (scm_string_copy): allow shared substrings to be copied.
1194
1195 * unif.h: corresponding change to prototypes.
1196 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
1197 recognize two new optional arguments: offset and length. Allow
1198 the port argument to be an integer (file descriptor, for scsh).
1199 Include <unistd.h> for "read" prototype.
1200
1201 Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
1202
1203 * socket.c: don't include filesys.h.
1204
1205 Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
1206
1207 * Makefile.am: add AWK=@AWK@ (?)
1208
1209 * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
1210 errnos_get.c.
1211 Add a rule to generate errnos.c from errnos.
1212 * error.c (scm_init_error): include errnos.c.
1213 * errnos_cnvt.awk: new file, converts the list of errno codes to
1214 C expressions.
1215 * errnos_get.c: new file.
1216 * errnos.default: new file, contains errnos to try if they can't
1217 be extracted from errno.h.
1218 * configure.in: if using GCC, try and extract errno codes from
1219 errno.h.
1220 Added AC_PROG_AWK.
1221
1222 Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
1223
1224 * configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
1225 * Makefile.am: Made libguile into a libtool library.
1226 * PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
1227 Set libtool_libs to indicate that libguile is a libtool library.
1228 See guile/ChangeLog for details.
1229 * .cvsignore: ignore "*.lo", the libtool library objects.
1230
1231 Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
1232
1233 * net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
1234 use htons in getservbyport argument.
1235
1236 Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
1237
1238 * ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
1239 * smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
1240 duplicate.
1241
1242 * objprop.c (scm_object_property): No need to take the CDR of the
1243 value returned by scm_object_properties, since Aug 20 change.
1244
1245 * configure.in: When checking for struct linger, #include
1246 <sys/types.h> as well as <sys/socket.h>. I've never known
1247 <sys/types.h> to cause any portability problems, and Solaris's
1248 <sys/socket.h> needs it.
1249 * configure: Rebuilt.
1250
1251 I think the Sun compiler has chosen a perverse way to interpret
1252 ANSI declarations combined with K&R definitions. We'll
1253 appease it a little bit. But when it invades France, we fight.
1254 * print.c (scm_iprlist): Change 'tlr' argument to an int.
1255 * print.h (scm_iprlist): Here too.
1256 * numbers.c (scm_divbigdig): Change definition to match
1257 declaration in numbers.h.
1258 * unif.c (scm_makflo): Change definition to match declaration in
1259 unif.h.
1260
1261 * init.c (scm_boot_guile): Don't return the value of
1262 scm_boot_guile_1. This function doesn't return a value;
1263 scm_boot_guile_1 doesn't return a value (or return at all).
1264
1265 * eval.c (unmemocopy): Add a semicolon to appease the Sun
1266 compiler.
1267
1268 * simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
1269 compile. I have a feeling this function is a bad idea anyway ---
1270 one should always test for features, not systems.
1271
1272 * smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
1273 semicolons. Only pure luck kept this from being noticed earlier.
1274
1275 Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
1276
1277 * socket.c (scm_recvfrom): Added missing semicolon.
1278
1279 Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
1280
1281 * socket.c (scm_recvfrom): allow buff_or_size to be a list containing
1282 the buffer and start and end positions for scsh networking
1283 implementation.
1284
1285 Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
1286
1287 * configure.in: Revert previous change to this file; the problem
1288 is due to transient automake weirdness.
1289 * configure: Rebuilt.
1290
1291 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
1292 PLUGIN/guile.libs. configure generates the latter from the former.
1293 * Makefile.in: Rebuilt.
1294
1295 * configure.in: Call AM_PROG_INSTALL; the automake manual says we
1296 need this if we install scripts, like guile-snarf.
1297 * configure: Rebuilt.
1298
1299 Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
1300
1301 * Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
1302
1303 Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
1304
1305 * socket.c (scm_addr_vector): fix faulty scm_listify.
1306
1307 Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
1308
1309 * read.c (scm_lreadr): Encountering EOF after skipping a SCSH
1310 style block comment is no longer considered an error.
1311
1312 Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
1313
1314 * PLUGIN/guile.libs.in: New file.
1315 * PLUGIN/guile.libs: Removed from repository.
1316 * configure.in: Create PLUGIN/guile.libs from
1317 PLUGIN/guile.libs.in. This is for including additonal libraries
1318 needed for dynamic linking.
1319 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
1320 instead of PLUGIN/guile.libs.
1321
1322 * Makefile.am: Added explicit dependency "dynl.o: dynl.x".
1323
1324 Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
1325
1326 * list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
1327 occurrences of the given element from the list, not just the
1328 first. This is how the Emacs Lisp functions behave, how the
1329 analogous Common Lisp functions behave, and (I believe) how the
1330 older Maclisp functions worked. I realize that this change may
1331 break code, but it seemed better to break it before the Guile
1332 release than after.
1333
1334 * gc.c (scm_protect_object, scm_unprotect_object): New functions.
1335 Their prototypes were already present in gc.h, but they weren't
1336 implemented.
1337 (scm_init_storage): Initialize scm_protects.
1338 * root.c (scm_protects): New element of scm_sys_protects.
1339
1340 * net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
1341
1342 Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
1343
1344 * libguile.h: Added #include "libguile/net_db.h".
1345
1346 * libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
1347 30 change. That file is only meant for communication between the
1348 configuration process and load.c. If code linked against libguile
1349 wants to get at the paths mentioned in libpath.h, it can call
1350 functions declared in load.h.
1351
1352 Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1353
1354 * libguile.h: Removed #include "libguile/fdsocket.h"
1355
1356 * net_db.c: Added #include <sys/socket.h>.
1357
1358 Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
1359
1360 * filesys.c (scm_input_waiting_p): use select in preference to
1361 FIONREAD, since the latter doesn't detect EOF.
1362 Throw error if neither select nor FIONREAD available.
1363
1364 * socket.c (scm_connect): take a port, not a fd object.
1365 (scm_fill_sockaddr): throw an error if fam is not recognised.
1366 (scm_bind): use scm_fill_sockaddr.
1367 (scm_listen): take a port, not a fd object.
1368 (scm_accept): take and return a port. return #f in the car if
1369 address can't be got
1370 (scm_sock_fd_to_port): new procedure.
1371 (scm_socket): use scm_sock_fd_to_port.
1372 (scm_addr_vector): throw error if unrecognised address type.
1373 take an extra argument with the calling procedure name.
1374 (scm_getsockname): take a port. return #f if address can't be got.
1375 (scm_getpeername): take a port. return #f if address can't be got.
1376 (scm_recvfrom): take a port. return #f for address component if can't
1377 be got.
1378 (scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
1379 scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
1380
1381 Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
1382
1383 * throw.c (scm_internal_catch): Make body funcs and handler funcs
1384 use separate data pointers, to allow them to be designed
1385 independently and reused.
1386 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
1387 Renamed from catch_body, catch_handler, and uncaught_throw; made
1388 generically useful.
1389 (struct scm_catch_body_data): Renamed from catch_body_data; moved
1390 to throw.h.
1391 (scm_catch): Use the above.
1392 (scm_throw): Don't bother printing a message for an uncaught
1393 throw; we establish a default handler in init.
1394 * throw.h (scm_internal_catch): Prototype updated.
1395 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
1396 decls.
1397 (struct scm_body_thunk_data): New structure, used as data
1398 argument to scm_body_thunk.
1399 * init.c (struct main_func_closure): New structure, packaging up
1400 the data to pass to the user's main function.
1401 (scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
1402 (scm_boot_guile_1): Pass it through to invoke_main_func. Use
1403 scm_internal_catch to establish a catch-all handler, using
1404 scm_handle_by_message. This replaces the special-case code in
1405 scm_throw.
1406 (invoke_main_func): Body function for scm_internal_catch; invoke
1407 the user's main function, using the main_func_closure pointer to
1408 decide what to pass it.
1409 * root.c (struct cwdr_body_data): Remove handler_proc member.
1410 (cwdr): Use scm_handle_by_proc instead of cwdr_handler.
1411 (cwdr_handler): Removed.
1412
1413 Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
1414
1415 * socket.h (SCM_P): update bind prototype.
1416 * socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
1417 include "feature.h".
1418 (scm_socket): return a port, not a file descriptor object.
1419 include "fports.h" and <unistd.h>
1420 (scm_bind): take a port, not a file descriptor object.
1421 take an extra argument for address args.
1422
1423 * net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
1424 INADDR_NONE, INADDR_LOOPBACK.
1425
1426 Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
1427
1428 * init.c: include net_db.h and not fdsocket.h.
1429 (scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
1430
1431 * Makefile.am: corresponding changes.
1432 * socket.h: renamed from fdsocket.h, fix names.
1433 * net_db.h: renamed from socket.h, fix names.
1434 * socket.c: renamed from fdsocket.c.
1435 remove _sys from procedure names.
1436 (scm_init_socket): rename from scm_init_fdsocket. include socket.x.
1437 add "socket" to features list.
1438 * net_db.c: renamed from socket.c.
1439 remove _sys from procedure names.
1440 (scm_init_net_db): rename from scm_init_socket. include net_db.x.
1441 add "net-db" to features list.
1442 include "net_db.h". don't include <sys/socket.h> or
1443 <sys/un.h>.
1444
1445 Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1446
1447 * tags.h (scm_tags): Removed comma at end of last enumerator.
1448
1449 Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
1450
1451 Don't use GCC extensions to allocate space for debugging frames.
1452 (Here he goes again! Why do we put up with this?!)
1453 * debug.h (scm_debug_frame): Make the 'vect' member a pointer to
1454 an scm_debug_info structure, not an in-line array of them. Add
1455 'info' member, to say how many vect elements we've used, for eval
1456 frames.
1457 * eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
1458 a new variable debug_info_end to mark the end of vect, instead of
1459 the address of the 'info' pointer itself.
1460 [DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
1461 &debug to scm_debug_frame *; debug is a real scm_debug_frame now.
1462 (SCM_APPLY): Explicitly allocate space for debug.vect.
1463 * debug.c (scm_m_start_stack): Same, for vframe.vect.
1464 * stacks.c: Adjusted for new debug frame structure.
1465 (RELOC_INFO, RELOC_FRAME): New macros.
1466 (stack_depth, read_frames): Use them, and new scm_debug_frame
1467 element 'info', instead of magically knowing that eval frames have
1468 an info pointer sitting after vect.
1469 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
1470 RELOC_FRAME.
1471 (scm_init_stacks): Formatting tweaks.
1472
1473 Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
1474
1475 Give GCC more control flow information, so it can be sure that
1476 variables aren't used uninitialized.
1477 * error.h (scm_error, scm_syserror, scm_syserror_msg,
1478 scm_sysmissing, scm_num_overflow, scm_out_of_range,
1479 scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
1480 scm_misc_error): Tell GCC that these functions never return.
1481 * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
1482 out the field type, call abort if SCM_ASSERT returns, to placate
1483 the optimizer.
1484 * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
1485 scm_wta ever returns. We can't handle this case anyway, and this
1486 gives the optimizer more information.
1487 * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
1488 scm_wta ever returns.
1489
1490 In some cases, the code is fine, but GCC isn't smart enough to
1491 figure that out; this usually happens when one variable is only
1492 initialized and used when a particular condition holds true, and
1493 we know that condition will never change within a given invocation
1494 of the function. In this case, we simply initialize the variables
1495 to placate the compiler, hopefully to a value which will cause a
1496 crash if it is ever actually used.
1497 * print.c (scm_iprin1): Initialize mw_pos.
1498 * read.c (scm_lreadrecparen): Initialize tl2, ans2.
1499 * throw.c (scm_ithrow): Initialize dynpair.
1500 * unif.c (scm_uniform_vector_ref): Initialize cra.
1501 * struct.c (init_struct): Initialize prot.
1502 * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
1503
1504 * strports.c (scm_eval_0str): Don't return uninitialized garbage
1505 if EXPR contains no expressions.
1506
1507 Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
1508
1509 * eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
1510 cause an infinite loop (???). So much for the algebraic
1511 equivalency of variable-sized arrays and alloca...
1512
1513 Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
1514
1515 * backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
1516 a SCM boolean, not a C boolean.
1517
1518 Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
1519
1520 * gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
1521 (scm_must_malloc, scm_must_realloc): Added a hysteresis to the
1522 rules for raising scm_mtrigger. Previously, unfortunate but not
1523 unlikely circumstances could result in almost constant invokation
1524 of the gc. Now, this situations should be less likely, but they
1525 are not prevented completely.
1526
1527 Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
1528
1529 * numbers.c (scm_fuck): Procedure removed; looks like old test
1530 code.
1531 * numbers.h: Prototype removed.
1532
1533 Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
1534
1535 * debug.h (scm_debug_frame): Change `vect' member from an in-line
1536 array to a pointer, to match my Nov 21 change in eval.c.
1537
1538 Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1539
1540 * libguile.h: Added #include "libguile/backtrace.h", #include
1541 "libguile/stacks.h".
1542
1543 * strings.c (scm_string scm_make_string scm_string_ref
1544 scm_string_set_x scm_string_equal_p scm_string_append):
1545 Bugfix according to scm patch from Aubrey Jaffer:
1546 Corrected long-standing
1547 (not (eqv? (integer->char 128)
1548 (string-ref (make-string 1 (integer->char 128)) 0)))
1549 bug found by John Kozak <jk@noontide.demon.co.uk>.
1550
1551 * strports.c, strports.h: Make scm_eval_0str return the value of
1552 the last expression evaluated (previously, it returned void).
1553
1554 * strports.c, strports.h: New function: scm_read_0str. Does what
1555 it sounds like.
1556
1557 Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
1558
1559 * simpos.c (scm_getenv): return #f if string can't be found in the
1560 environment instead of throwing an exception, for compatibility
1561 with numerous other systems.
1562
1563 Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
1564
1565 * Makefile.am (.c.x): Use guile-snarf.
1566 * configure.in (AC_OUTPUT): Generate guile-snarf; make it
1567 executable.
1568 * guile-snarf.in: New file, resurrected from old guile-snarf.sh.
1569
1570 Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
1571
1572 * backtrace.c (scm_display_error_message): Made non-static, and
1573 renamed from display_error_message.
1574 * backtrace.h (scm_display_error_message): Added extern decl.
1575 * throw.c (uncaught_throw): Use it to display the error message.
1576
1577 Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
1578
1579 * inet_aton.c: Use #if 0, not #ifdef 0.
1580
1581 Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
1582
1583 * ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
1584 to convert the returned value.
1585 (scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
1586 the offset argument.
1587
1588 Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
1589
1590 Add new interface to catch/throw, usable from C as well as
1591 Scheme.
1592 * throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
1593 (scm_internal_catch): New function, replaces...
1594 (scm_catch_apply): Deleted.
1595 * throw.c (scm_catch_apply): Deleted; replaced with a more general
1596 mechanism which is a bit more code, but can be used nicely from C
1597 and implement the Scheme semantics as well.
1598 (scm_internal_catch): This is the replacement; it's named after
1599 the analogous function in Emacs.
1600 (scm_catch): Reimplemented in terms of the above.
1601 (struct catch_body_data, catch_body, catch_handler): New
1602 functions, used by scm_catch.
1603 * root.c (cwdr): Reimplemented in terms of scm_internal_catch.
1604 (struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
1605 support for new cwdr.
1606
1607 * Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
1608 Oct 30.
1609
1610 Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
1611
1612 * acconfig.h: Added DYNAMIC_LINKING symbol.
1613 * configure.in: Add option and checks for dynamic linking.
1614 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
1615 dynl.h: New files for dynamic linking support.
1616 * Makefile.am (libguile_a_SOURCES):
1617 Added "dynl.c".
1618 (modinclude_HEADERS): Added "dynl.h".
1619 (EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
1620 "dynl-vms.c".
1621 * init.c (scm_boot_guile_1): Call
1622 scm_init_dynamic_linking to initialize dynamic linking support.
1623
1624 Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
1625
1626 * init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
1627 (as we Schemers say). It needs to be global, so that I can tweak
1628 it for the proper operation of unexec.
1629 (scm_boot_guile_1_live): New variable, see above.
1630
1631 Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
1632
1633 * guile-snarf.sh: Removed.
1634 * PLUGIN/guile.libs: Added dependency for -lm.
1635 * acinclude.m4: Renamed from aclocal.m4.
1636 * PLUGIN/greet: Removed.
1637 * Makefile.am, aclocal.m4: New files.
1638 * configure.in: Updated for Automake.
1639
1640 Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
1641
1642 * eval.c (scm_definedp): Use top_level_lookup_closure_var
1643 and not top_level_lookup_thunk_var.
1644
1645 Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
1646
1647 * Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
1648
1649 Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
1650
1651 * eval.c (scm_definedp): Incompatibly changed to be a builtin
1652 Scheme function, instead of syntax. Single argument is now a
1653 symbol.
1654
1655 Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
1656
1657 * ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
1658 scm_ra_divide): Properly terminate statements passed as arguments
1659 to IVDEP macros. (Thanks to Bernard Urban.)
1660
1661 * eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
1662 with non-constant sizes. (Thanks to Bernard Urban.)
1663
1664 Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
1665
1666 It's an "eval closure", not an "eval thunk." A thunk is a
1667 function of no arguments.
1668 * root.h (struct scm_root_state): Renamed
1669 top_level_lookup_closure_var from top_level_lookup_thunk_var.
1670 (scm_top_level_lookup_closure_var): Renamed from
1671 scm_top_level_lookup_thunk_var.
1672 * root.c (mark_root): Uses changed.
1673 * gdbint.c (gdb_eval, gdb_binding): Uses changed.
1674 * init.c (scm_start_stack): Uses changed.
1675 * eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
1676 Change scheme-visible name to *top-level-lookup-closure* from
1677 *top-level-lookup-thunk*.
1678
1679 Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
1680
1681 * gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
1682 pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
1683
1684 Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
1685
1686 * gc.c (struct scm_heap_seg_data): Doc fixes.
1687
1688 * gc.c (scm_gc_sweep): Empty all segments' freelists before
1689 sweeping. Then, prepend each segment's free cells to its
1690 freelist, rather than wiping out the old value. (Thanks to Marius
1691 Vollmer.)
1692
1693 * gc.c (which_seg, scm_map_free_list, scm_newcell_count,
1694 scm_check_freelist, scm_debug_newcell): New functions and
1695 variables, for debugging freelist problems.
1696 * pairs.h (SCM_NEWCELL): New debugging version added.
1697 * gc.h (scm_debug_newcell): Added extern declaration, used by
1698 debugging version of SCM_NEWCELL.
1699
1700 Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
1701
1702 On some systems <libc.h> conflicts with <unistd.h>, and should not
1703 be #included at all.
1704 * aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
1705 * acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
1706 * configure.in: Call it.
1707 * posix.c, filesys.c: Use its results to decide whether or not to
1708 #include <libc.h>.
1709 * configure, scmconfig.h.in: Rebuilt with autoconf and
1710 autoheader.
1711
1712 Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
1713
1714 * fports.c (scm_stdio_to_port, scm_open_file): Set the port's
1715 pointer to the stdio stream before calling scm_setbuf0, so the
1716 latter will be able to retrieve it. I'm surprised this didn't
1717 segfault earlier. (Thanks to Christopher Lee.)
1718
1719 Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1720
1721 * throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
1722 of `lazy-catch'.
1723
1724 Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1725
1726 * stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
1727 number of stack narrowing specifier pairs. The first specifier in
1728 a pair controls inner border, the second the outer border. A
1729 number means cut that number of frames, a procedure object means
1730 cut until that object is found in operator position in a frame.
1731
1732 * root.c (cwdr): Bugfix.
1733
1734 * read.c: Recording of positions disabled by default.
1735
1736 * procs.c (scm_closure_p): New function.
1737
1738 * posix.c (scm_tmpnam): New function.
1739
1740 * load.c: Added #include "throw.h".
1741 (scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
1742 ends with '/'.
1743
1744 * load.c, load.h (scm_read_and_eval_x): New function.
1745
1746 * eval.c: Renamed debug option "deval" to "debug".
1747
1748 (scm_eval_x): `eval!' is no longer accessible from the scheme
1749 level. Motivation: We can't allow operations which introduce
1750 glocs into the scheme level. Guile's type system can't handle
1751 these as data. Use `eval' or `read-and-eval!' as replacement.
1752
1753 * debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
1754 SCM_CONSP since this is a macro!; Set vframe.prev to
1755 scm_last_debug_frame instead of 0. In this way we can look
1756 "above" the virtual start stack frame if we wish.
1757 (scm_debug_hang): New function: Useful for debugging Guile in
1758 certain tricky situations. Will probably be removed later...
1759
1760 * debug.h: Changed semantics of debug option "backtrace". This
1761 option now only indicates whether we want automatic backtrace at
1762 an error.
1763
1764 Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1765
1766 * ports.c: #include "filesys.h"
1767 (scm_char_ready_p): input_waiting renamed and moved to filesys.c.
1768
1769 * filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
1770 Motivation: This is system specific code which is related to file
1771 I/O. It also may use select. Added code by Gary Houston to
1772 detect presence of character in stdio buffers.
1773
1774 * libguile.h: #include "libguile/libpath.h"
1775
1776 * Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
1777 SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
1778 SCM_SITE_DIR; Install libpath.h among the other include files.
1779
1780 * load.c, load.h (scm_sys_package_data_dir): New function.
1781
1782 Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1783
1784 * stacks.h: Bugfix: Don't use tail-array length field as stack
1785 length field! This screwed GC.
1786
1787 Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1788
1789 * _scm.h: Added #ifndef around definition of macros min and max.
1790
1791 * __scm.h: Added hooks for threads to plugin to in ints protection
1792 macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
1793 SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
1794 the main code in these macros duplicated and spread over multiple
1795 files. Renamed SCM_THREADS_SWITCHING_CODE ->
1796 SCM_THREAD_SWITCHING_CODE.
1797
1798 Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
1799
1800 * snarf.h: New file.
1801 * guile-snarf.sh: New file.
1802 * Makefile.in (inner_h_files): Added snarf.h
1803 (ancillary, install, uninstall, distclean): Added actions for
1804 guile-snarf.
1805 (.c.x): Use guile-snarf.
1806 (guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
1807 (gen_c_files): Note that these depend on guile-snarf.
1808 * _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
1809 now in "snarf.h". Added #include "snarf.h" to get them.
1810 * libguile.h: Added #include "snarf.h".
1811 (Patches applied and tweaked by Jim Blandy.)
1812
1813 Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
1814
1815 * socket.c: Use K&R style declaration for 'close'; the GNU coding
1816 standards suggest against providing prototypes for system
1817 functions. Thanks to Greg Troxel.
1818
1819 Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
1820
1821 * strports.c (scm_eval_0str): New function.
1822 #include "read.h", to get prototype for scm_read.
1823 * Makefile.in (strports.o): Update dependencies.
1824 * strports.h: New prototype.
1825
1826 * numbers.c (scm_integer_p): Renamed from scm_int_p; change its
1827 scheme name from "int?" to "integer?". It seems to do the job.
1828 * numbers.h: Rename prototype too.
1829 * scmhob.h (intp): Change definition to refer to scm_integer_p. I
1830 hope this is right.
1831
1832 * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
1833 scm_num_eq_p): Rename these according to R4RS conventions: call
1834 them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
1835 to making libguile R4RS compliant without ice-9...
1836
1837 * load.c (scm_sys_search_load_path): Search for files under all
1838 extensions listed in the %load-extensions variable. If FILENAME
1839 is absolute, return it unchanged, without searching the load path.
1840 (scm_loc_load_extensions): New variable, pointing to
1841 %load-extensions' value cell.
1842 (scm_init_load): Initialize it, and the value it points to.
1843 (scm_primitive_load_path): Improve error reporting.
1844
1845 * load.c (scm_loc_load_hook): New variable, pointing to value cell
1846 of new Scheme variable %load-hook.
1847 (scm_primitive_load): Apply %load-hook to filename.
1848
1849 Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
1850
1851 * configure.in: add tests for figuring out whether buffered data
1852 is available in a FILE structure, which is needed by char-ready.
1853
1854 * acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
1855 FILE_CNT_READPTR.
1856
1857 * simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
1858 exceptions using misc_error instead of syserror. It seems a bit
1859 odd to throw an exception if a string can't be found in the
1860 environment, but it's consistent with open-file, stat etc.
1861 (simpos.h): remove sys_ from getenv.
1862
1863 * posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
1864 occurs, throw an error instead of returning errno. Return value
1865 is now unspecified.
1866 (numerous in posix.c and posix.h): removed superfluous sys_ from names.
1867
1868 Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
1869
1870 * filesys.c (scm_stat2scm): derive file type and permissions from
1871 the stat mode and append them to the returned vector.
1872 There isn't much overhead in doing this and it avoids the need to
1873 work with S_IRUSR et al. in Scheme.
1874 Define symbols scm_sym_regular etc.
1875 (scm_init_filesys): don't intern S_IRUSR etc.
1876
1877 * load.c: change s_try_load and s_try_load_path to s_primitive_load
1878 and s_primitive_load_path.
1879
1880 * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
1881
1882 * error.h: don't declare error symbols. prototype for scm_misc_error.
1883
1884 * stackchk.c (scm_stack_overflow_key): defined here instead of in
1885 error.c.
1886
1887 * error.c: use SCM_SYMBOL to set up error keys.
1888 scm_misc_error: new procedure.
1889
1890 Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
1891
1892 * read.c (scm_lreadr): Recognize SCSH-style block comments; text
1893 between `#!' and `!#' is ignored.
1894 (skip_scsh_block_comment): New function.
1895
1896 * feature.c (scm_set_program_arguments): New argument, FIRST.
1897 * feature.h: Update prototype.
1898 * init.c (scm_boot_guile_1): Pass new argument to
1899 scm_set_program_arguments.
1900
1901 Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
1902
1903 * init.c (scm_start_stack): Don't initialize scm_progargs here.
1904 (scm_boot_guile): Call scm_set_program_arguments here, later than
1905 the old initialization.
1906
1907 * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
1908 initialization procedure.
1909 - Delete in, out, err arguments; there are other perfectly good
1910 ways to override these when desired.
1911 - Delete result argument; this function shouldn't ever return.
1912 - Rename init_func argument to main_func, for less confusion.
1913 - Delete boot_cmd argument; main_func is more general.
1914 -Add 'closure' argument, to help people pass data to main_func
1915 without resorting to global variables.
1916 - Abort if reentered; don't bother returning an error code.
1917 - Call scm_init_standard_ports to set up the default/current
1918 standard ports; no need to pass them to scm_start_stack.
1919 - Remove code to evaluate the boot_cmd, and start the repl; let
1920 the user do something like that in main_func if they want.
1921 - Remove code to package up a return value; main_func can do any
1922 of that as needed.
1923 - Call exit (0), instead of returning.
1924 (scm_start_stack): Don't initialize the I/O ports here; that's
1925 weird. Delete in, out, err arguments. Move guts to
1926 scm_init_standard_ports, scm_stdio_to_port.
1927 (scm_init_standard_ports): New function, to set up current and
1928 default standard ports.
1929 (scm_start_stack, scm_restart_stack): Make these static.
1930 * init.h (scm_boot_guile): Adjust declaration.
1931 (scm_start_stack, scm_restart_stack): Remove externally
1932 visible declarations for these.
1933 (enum scm_boot_status): Removed; now scm_boot_guile never returns.
1934
1935 * fports.c (scm_stdio_to_port): New function. Its guts used to be
1936 written out several times in scm_start_stack.
1937 * fports.h: New declaration for the above.
1938
1939 * feature.c (scm_set_program_arguments): New function.
1940 * feature.h: New declaration for the above.
1941
1942 * ports.c: Formatting tweak.
1943
1944 Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
1945
1946 * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
1947 ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
1948 for obtaining the address of a car or cdr field. Motivation:
1949 &SCM_CXR make assumptions about the internal structure of the
1950 SCM_CXR selectors.
1951
1952 * eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
1953 Motivation: see SCM_CXRLOC.
1954
1955 * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
1956 srcprop.h, tags.h, throw.c, unif.c: Added new selectors
1957 SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
1958 Motivation: Safer use. Some other macros are defined in terms of
1959 these operations. If these are defined using the SCM_SETCXR
1960 (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
1961 to inefficiency and an <e1> with side-effects could potentially
1962 break. Also, these particular operations are heavily utilized in
1963 the garbage collector. In unoptimized code there will be a
1964 measurable speedup.
1965
1966 * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
1967 eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
1968 ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
1969 pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
1970 procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
1971 strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
1972 vports.c: Cleaned up use of pairs: Don't make any special
1973 assumptions about the internal structure of selectors and
1974 mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
1975 SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
1976 (Among other things, this change makes it easier to build Guile
1977 with certain compilers which have problems with casted lvalues.)
1978
1979 Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1980
1981 * stacks.c: Improve selection of relevant stack frames when making
1982 a stack object. Introduce one level of indirection in the stack
1983 object to make it possible to "narrow" to a certain region of the
1984 stack. This facilitates making use of more clever algorithms (not
1985 implemented) for selecting relevant frames and gives a cleaner
1986 design since selection of frames can be done independently of
1987 extraction of frames from the real stack.
1988 (scm_stack_id): Also take #t as argument which means look at
1989 current stack.
1990
1991 * stacks.h: In struct scm_stack: Turn field frames into a pointer.
1992 Turn n_tail into an integer directly representing current number
1993 of frames in stack. Add field tail.
1994
1995 * ports.c (scm_port_line_x, scm_port_column_x): New mutators.
1996
1997 * debug.c (scm_make_memoized): Made it available at scheme level.
1998 (scm_unmemoize, scm_memoized_environment): Bugfix: Check for
1999 SCM_NIMP before applying heavier predicates in argument checking.
2000 (scm_local_eval): Also take memoized object as argument.
2001
2002 * backtrace.c (scm_display_error): Just a safety measure: Stacks
2003 aren't created with zero length, but should such a strange
2004 creature suddenly turn up...
2005
2006 Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
2007
2008 * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
2009 `del', for the sake of C++ compilers. (Patch applied by JimB.)
2010
2011 Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
2012
2013 * variable.c (scm_make_variable): Make the name hint optional, as
2014 documented.
2015 (anonymous_variable_sym): Renamed from variable_sym. All uses
2016 changed.
2017
2018 * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
2019 from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
2020 of scm_primitive_load_path was also changed to
2021 "primitive-load-path", from "%try-load-path". Callers changed.
2022 We'd like to respect the convention that a function named
2023 "try-mumble" should behave just like the function called "mumble",
2024 but return #f instead of signalling some error.
2025 * load.h: Rename prototypes.
2026
2027 Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2028
2029 * print.c (make_print_state, grow_print_state), print.h: Modified
2030 the print state representation: Don't use a tail array for
2031 recording of circular references. Resizing of the print state
2032 structure invalidates the print state pointer. To avoid passing
2033 around an indirect print state reference to all printing
2034 functions, we instead let the print state reference a resizable
2035 vector.
2036
2037 Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
2038
2039 * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
2040 Don't crash when passed an improper list terminated by a
2041 non-immediate value.
2042
2043 Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
2044
2045 Allocate data for structures on an eight-byte boundary, as
2046 required by the tagging system.
2047 * struct.c (alloc_struct): New function.
2048 (scm_make_struct, scm_make_vtable_vtable): Call it.
2049 * struct.h (scm_struct_n_extra_words): Bump to 3.
2050 (scm_struct_i_ptr): New "field".
2051 * gc.c (scm_gc_sweep): When we need to free the data, use the
2052 information stored by alloc_struct to find the beginning of the
2053 block allocated to the structure, so we can free it.
2054
2055 Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2056
2057 * init.c (scm_boot_guile_1): Moved scm_init_struct in front of
2058 scm_init_stacks.
2059
2060 * debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
2061 (scm_debug_info): New member: id.
2062
2063 * stacks.c: Stacks are now represented as structs; Stacks have an
2064 id given to them by `start-stack'.
2065 (scm_last_stack_frame): Added predicates `stack?' and `frame?'.
2066
2067 * stacks.h: Added declarations of scm_stack_p and scm_frame_p;
2068 Changed stack representation.
2069
2070 * debug.c (scm_procedure_name): Try procedure property `name' for
2071 compiled closures aswell.
2072
2073 * gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
2074
2075 * eval.c: scm_i_name moved to gsubr.c
2076 (scm_m_define): Record names of all kinds of procedure
2077 objects. (Earlier, only closures were recorded.)
2078
2079 * procprop.h: Added declaration of scm_i_name.
2080
2081 * gsubr.c: Added global scm_i_name. Added #include "procprop.h".
2082 (scm_make_gsubr): Record names of compiled closures.
2083
2084 Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2085
2086 * debug.c, debug.h: Removed obsolete code.
2087
2088 * continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
2089 stacks.c: Renamed regs --> scm_contregs.
2090
2091 * print.c (scm_free_print_state): Cleanup print state before
2092 returning it to pool. It is better to do it here than in
2093 scm_prin1 since scm_prin1 is called often.
2094
2095 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
2096 s_set_source_property_x): Check that first argument is a pair or a
2097 memoized object.
2098
2099 * srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
2100 scm_i_line, scm_i_column and scm_i_breakpoint global.
2101
2102 * init.c: Added #include "backtrace.h" and #include "stacks.h".
2103 (scm_boot_guile_1): Added calls to scm_init_backtrace and
2104 scm_init_stacks.
2105
2106 * debug.h: Added debug object smob declaration and macro
2107 definitions.
2108
2109 * configure.in: Build with backtrace.o and stacks.o if debug
2110 support enabled.
2111
2112 * Makefile.in: Added entries for new files: backtrace.c,
2113 backtrace.h, stacks.c and stacks.h.
2114
2115 * symbols.c (scm_sym2ovcell): Fixed documentation.
2116
2117 * _scm.h (min, max): Added.
2118
2119 * async.c: Moved `min' macro to _scm.h.
2120
2121 * debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
2122 SCM_BACKTRACE_INDENT.
2123
2124 * eval.c: Added new debug options `maxdepth' and `indent'.
2125
2126 * print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
2127
2128 * print.h: Added selector SCM_PRINT_STATE.
2129
2130 * print.c: New functions: scm_make_print_state,
2131 scm_free_print_state.
2132
2133 * print.h: Added declarations for scm_make_print_state,
2134 scm_free_print_state.
2135
2136 * debug.c (scm_m_start_stack): New acro.
2137
2138 * debug.h: Small cleanup.
2139
2140 * init.c (scm_boot_guile_1): Moved scm_init_debug below
2141 scm_init_eval.
2142
2143 Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
2144
2145 * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
2146 arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
2147 chars.c, chars.h, continuations.c, continuations.h, debug.c,
2148 debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
2149 eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
2150 filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
2151 gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
2152 hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
2153 kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
2154 markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
2155 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
2156 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
2157 procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
2158 root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
2159 simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
2160 stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
2161 strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
2162 struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
2163 unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
2164 version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
2165 declare functions with prototypes. (Patch thanks to Marius
2166 Vollmer.)
2167
2168 More prototype-related changes from Marius Vollmer:
2169 * gdb_interface.h: Wrapped header file in #ifdef/#endif
2170 * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
2171 * ports.h (ptobfuns): Added prototypes. This means some casting in
2172 fports.c.
2173 * fports.c: Added casts for initializations, since the functions
2174 are defined to take FILE * as their stream argument, not SCM.
2175 * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
2176 * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
2177 to `char *str_data' to conform to prototype.
2178
2179 Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
2180
2181 * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
2182
2183 * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
2184
2185 * stime.c, stime.h: use SCM_P method.
2186
2187 Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
2188
2189 * eval.c (scm_nconc2last): Don't accept an empty list; apply must
2190 be given at least two arguments. Insist that lst's last element
2191 be a list, but don't make any requirements of its predecessors.
2192
2193 Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
2194
2195 * eval.c (scm_nconc2last): Revert last change; there seems to be
2196 other stuff going on here.
2197
2198 Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
2199
2200 * eval.c (scm_nconc2last): Make sure that each element of lst
2201 (which is a list of argument lists, except for the tail) is a
2202 proper list, i.e., finite and terminated by '().
2203
2204 Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
2205
2206 * unif.c (scm_ra_set_contp): Localize `inc' declaration.
2207 Clarifies flow.
2208
2209 * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
2210 symbolic name for the tag, scm_tc3_cons_gloc, instead of just
2211 saying "1".
2212
2213 * vectors.c (scm_make_vector): Fill vectors with the undefined
2214 value, to help make Guile Scheme code more portable to other
2215 Schemes.
2216
2217 * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
2218 * symbols.h, tags.h: Doc fixes.
2219
2220 Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
2221
2222 * async.c (scm_take_signal): Doc fixes.
2223
2224 Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
2225
2226 * numbers.c (scm_divbigint): When the remainder is zero, we don't
2227 want to subtract it from the modulus; we just want to leave it
2228 alone.
2229
2230 Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
2231
2232 * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
2233 `scm_init_threads'.
2234
2235 * throw.h (scm_catch_apply): Removed the `lazyp' argument.
2236
2237 * throw.c (scm_catch_apply): Finished implementation of
2238 `lazy-catch'.
2239
2240 Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
2241
2242 * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
2243 check.
2244 (scm_init_filesys): set "i/o-extensions" feature.
2245 include feature.h.
2246
2247 Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
2248
2249 * Makefile.in (root.o): Correct dependencies.
2250
2251 Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
2252
2253 * Makefile.in: Added dependency entry for root.o.
2254
2255 * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
2256 throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
2257
2258 * init.c (scm_start_stack): Set initial root continuation number
2259 to 0.
2260
2261 * procs.c: New function: scm_thunk_p.
2262
2263 * procs.h: Added declarations of scm_thunk_p.
2264
2265 * root.c: Renamed `call-with-new-root' -->
2266 `call-with-dynamic-root'.
2267 (cwdr): Removed allocation of new root state. This should be done
2268 separately by use of scm_make_root.
2269 (scm_apply_with_dynamic_root): New function: Does what it
2270 sounds like. Needed when spawning threads.
2271
2272 * root.h: Added member last_debug_frame to root state.
2273 Added #include "libguile/debug.h"
2274
2275 * throw.c: Renamed scm_catch --> scm_catch_apply and added more
2276 arguments. The motivation is that code in root.c needs catch
2277 functionality, and we want to avoid code duplication.
2278 New functions: scm_catch, scm_lazy_catch. These are wrappers for
2279 scm_catch_apply. scm_lazy_catch is intended to introduce catch
2280 handlers that run without popping the stack into the dynwind
2281 chain.
2282
2283 * throw.h: Added prototypes for scm_catch_apply and
2284 scm_lazy_catch.
2285
2286 Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2287
2288 * root.h (scm_root, scm_set_root): Decouple thread support details
2289 by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
2290 SCM_SET_THREAD_LOCAL_DATA.
2291
2292 * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
2293 and tortoise scanning loop.
2294
2295 Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
2296
2297 * Makefile.in: Rebuild dependencies.
2298
2299 * libguile.h: #include "libguile/print.h" before "smob.h", since
2300 the latter uses the print_state structure.
2301
2302 * throw.c (scm_ithrow): Use the correct variable when checking to
2303 see if a given element of scm_dynwinds is a valid catch.
2304
2305 * throw.c (scm_ithrow): If scm_dynwinds has invalid list
2306 structure, abort; don't just silently ignore the garbage.
2307
2308 * _scm.h: #include "print.h" here, since it seems to be used just
2309 about everywhere.
2310 * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
2311 strports.c, unif.h: Don't #include "print.h".
2312
2313 Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2314
2315 * feature.h (scm_loc_features): Removed external declaration.
2316 (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
2317
2318 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2319
2320 * feature.c (scm_init_feature): Added threads feature (needs to be
2321 initialized here, since features doesn't exist when
2322 scm_init_threads is called).
2323
2324 * libguile.h: Added #include "libguile/../threads/threads.h".
2325 (This is a kludge to get thread support working. This should be
2326 fixed.)
2327
2328 * configure.in, acconfig.h: Added flags for thread support.
2329
2330 * scmsigs.c: Define `signal' to be `pthread_signal' if using
2331 mit-pthreads.
2332
2333 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
2334 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
2335 root.c:mark_root.
2336
2337 * _scm.h: Added conditional #include "threads.h"
2338
2339 * __scm.h (SCM_ASYNC_TICK): Added call to macro
2340 SCM_THREADS_SWITCHING_CODE.
2341
2342 * init.c (scm_start_stack): Call `scm_make_root' to dynamically
2343 allocate the basic dynamic root object.
2344 (scm_boot_guile): Added call to scm_init_root.
2345
2346 * root.c, root.h: Added root smob.
2347 (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
2348 functions: Implements dynamic roots mostly according to spec in
2349 SCM manual. Main difference is that the second argument is a
2350 throw handler rather than an error "thunk".
2351
2352 * root.h: Added declaration of scm_init_root.
2353
2354 * root.c: Added #include "genio.h", #include "smob.h", #include
2355 "pairs.h", #include "throw.h", #include "dynwind.h", #include
2356 "eval.h"
2357 (scm_init_root): Added #include "root.x".
2358
2359 * throw.c: Added #include "stackchk.h"
2360 (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
2361 SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
2362 can be used in scm_call_with_new_root; Added reenabling of stack
2363 checking when catching a throw.
2364
2365 Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
2366
2367 * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
2368
2369 * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
2370 element is not found, as per R4RS.
2371
2372 Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
2373
2374 * list.c: Doc fixes throughout.
2375
2376 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
2377
2378 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
2379 declare the char * to be const. Avoids a warning in rgx.c.
2380
2381 * ports.h: spelling fix.
2382
2383 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
2384 error messages.
2385
2386 * load.c (scm_sys_try_load_path): throw an error if file not found
2387 (like it says it in NEWS).
2388
2389 Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
2390
2391 * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
2392 PROPS slot to '(), not #f; it's an empty alist.
2393
2394 * throw.h, throw.c: Use SCM_P instead of #if hair.
2395
2396 Remove special support for uncaught throws; see throw.c for
2397 rationale.
2398 * throw.c (uncaught_throw): New function.
2399 (scm_ithrow): Call uncaught_throw if we don't find a throw
2400 target; don't mess with scm_bad_throw_vcell.
2401 (scm_bad_throw_vcell): Variable deleted.
2402 (scm_init_throw): Don't initialize it.
2403
2404 * throw.c (scm_ithrow): Don't let outer key matches shadow inner
2405 #t catches.
2406
2407 Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
2408
2409 * numbers.c (scm_istr2int): If the number is short (as most
2410 numbers are), just call scm_small_istr2int to deal with it.
2411 (scm_small_istr2int): New function, created by un-#ifdefing the
2412 non-bignum version of scm_istr2int and renaming it.
2413
2414 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
2415
2416 * load.c (scm_sys_try_load): don't check whether value returned
2417 by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
2418 Change the Scheme name from %try-load to primitive-load.
2419
2420 * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
2421 Can avoid passing a message, allowing it to be derived in the
2422 error handler (e.g., if we want to throw to the key both from
2423 Scheme and C).
2424
2425 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
2426
2427 * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
2428 references now have a new appearance which is more compact and
2429 also gives a clue about what the target of the reference is.
2430 By setting parameters in the print state, more fancy printing can
2431 be achieved. This is used by the (not yet commited) backtrace
2432 code.
2433
2434 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
2435
2436 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
2437 "print.h"
2438
2439 * print.c: Added #include "struct.h". Removed function
2440 scm_prlist.
2441
2442 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
2443 scm_iprin1. Removed prototype for scm_prlist.
2444
2445 * arbiters.c (prinarb),
2446 async.c (print_async),
2447 debug.c (prindebugobj, prinmemoized),
2448 eval.c (prinprom, prinmacro),
2449 filesys.c (scm_fd_print, scm_dir_print),
2450 kw.c (print_kw),
2451 mallocs.c (prinmalloc),
2452 numbers.c, numbers.h (scm_floprint, scm_bigprint),
2453 smob.h (scm_smobfuns),
2454 srcprop.c (prinsrcprops),
2455 throw.c (prinjb),
2456 unif.c, unif.h (scm_raprin1, rapr1),
2457 variable.c (prin_var): Changed argument `int writing' to
2458 `scm_print_state *pstate'.
2459
2460 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
2461 that it will be called before scm_init_print.
2462
2463 * print.c (scm_prin1): Print states are now allocated when calling
2464 scm_prin1 and then passed around to all printing functions as an
2465 argument. A cache `print_state_pool' enables reuse of print
2466 states.
2467 (scm_make_print_state): New function.
2468 (scm_iprin1): Adaption to print states.
2469 (scm_iprlist): An initial "hare and tortoise" scan brings down
2470 time complexity to O (depth * N). (Better time complexity will be
2471 achieved when the printing code is completely rewritten.)
2472
2473 Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
2474
2475 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
2476 AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
2477 it gets done whether or not the cache variable has a value.
2478
2479 Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
2480
2481 Distinguish #f and ().
2482 * __scm.h: #undef SICP.
2483 * pairs.h (SCM_EOL): Delete this definition, equating it with
2484 SCM_BOOL_F.
2485 * tags.h (SCM_EOL): Give it a new definition here; I think I found
2486 the value it used to have. Doc fixes, too.
2487
2488 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
2489
2490 * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
2491 scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
2492 Lord's implementation of structs, allowing for tail arrays as
2493 described in the manual. Also fixed some bugs. (Both the interface
2494 and the implementation should be improved.)
2495
2496 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
2497
2498 * print.c, print.h: Closures now print like #<procedure foo (x)>.
2499 People who whish to see the source can do `(print-enable 'source)'.
2500 Removed #ifdef DEBUG_EXTENSIONS.
2501
2502 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
2503
2504 * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
2505 integer (assuming for now accepting an integer is a good thing).
2506
2507 * error.c, fports.c: replace use of %S in lgh_error args with %s.
2508 %S will be used instead for write'ing arguments.
2509
2510 * unif.c (scm_transpose_array): change arguments in the SCM_WNA
2511 asserts. fix a few other asserts.
2512 (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
2513 scm_uniform_vector_ref, scm_array_set_x,
2514 scm_dimensions_to_unform_array): change args in
2515 SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
2516 strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
2517 scm_substring_fill_x): likewise.
2518 gsubr.c (scm_gsubr_apply): likewise.
2519 eval.c (SCM_APPLY): likewise.
2520
2521 * eval.c (4 places): replace scm_everr with lgh_error or
2522 scm_wrong_num_args.
2523
2524 * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
2525 scm_memory_error): new procedures.
2526 scm_everr: deleted. can use scm_wta, dropping first two args.
2527 scm_error: convert NULL subr to SCM_BOOL_F.
2528
2529 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
2530 SCM_ARGERR.
2531
2532 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
2533 of scm_wta.
2534
2535 * error.c, error.h: new error keys: scm_arg_type_key,
2536 scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
2537 scm_misc_error_key.
2538 scm_wta: reimplement using lgh_error instead of scm_everr.
2539
2540 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
2541
2542 * gdbint.c: scm_lread now has one more argument.
2543
2544 * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
2545 scm_port_\1; Added mutator scm_set_port_filename_x (used when
2546 loading source from non-file ports, which, e. g., happens when
2547 using the Emacs interface).
2548
2549 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
2550 object.
2551
2552 * read.c: Added code for recording of positions of source code
2553 expressions; New functions: recsexpr, scm_lreadrecparen;
2554 _scm_make_srcprops --> scm_make_srcprops
2555 (scm_flush_ws): Removed updating of positions counters. This work
2556 is already done by scm_gen_getc
2557
2558 * read.h: Added prototype for scm_lreadrecparen
2559
2560 * print.c: Added #include "alist.h"
2561
2562 * eval.c: Added #include "hash.h"
2563
2564 * eq.c: Added #include "ramap.h"
2565
2566 * options.c: Documentation fixes.
2567
2568 * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
2569 (scm_init_srcprop): Adjusted size of initial source-whash. Name
2570 changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
2571 --> scm_make_srcprops
2572
2573 * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
2574 _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
2575 function calls in the definition of the whash access macros.
2576
2577 Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
2578
2579 * init.c (scm_boot_guile): Add level of indirection to
2580 scm_boot_guile_1() to ensure that stack base pointer is properly
2581 initialized. There was no guarantee that variable i was the
2582 highest/lowest variable on stack (i.e. the call frame of
2583 scm_boot_guile was not completely protected from gc).
2584
2585 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
2586
2587 * ports.h (scm_port_table): put back file_name, it will be used to
2588 support debugging. Undo related changes in fports.c, ioext.c,
2589 ports.c, gc.c.
2590
2591 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
2592
2593 * ports.h (scm_port_table): remove file_name member for now, it seems
2594 undesirable.
2595 * fports.c (scm_open_file): don't set file_name in PTAB.
2596 (prinfport): don't use file_name in PTAB.
2597 * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
2598 * ports.c (scm_add_to_port_table): don't intialize file_name.
2599 (scm_port_file_name): remove for now.
2600 * gc.c (scm_gc_mark): don't mark PTAB file_name.
2601
2602 * fports.h (scm_mkfile): prototype deleted.
2603 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
2604
2605 * debug.c, unif.c: use scm_out_of_range instead of
2606 wta for range errors (ASSERT still needs work).
2607
2608 * error.c, error.h (scm_out_of_range): new procedure.
2609
2610 * error.c, error.h (scm_out_of_range_key): new key.
2611
2612 * posix.c (scm_sync): #else was missing.
2613
2614 * error.c, error.h: append _key to names scm_num_overflow and
2615 scm_system_error.
2616
2617 * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
2618 of consing an empty list.
2619 (SCM_SYSERROR etc.): move into error.c, make them procedures instead
2620 of macros, saves code and string space.
2621 error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
2622 fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
2623 lower case. Rename scm_syserror_m to scm_syserror_msg.
2624 error.h: prototypes for new procedures.
2625
2626 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
2627
2628 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
2629
2630 * error.c, error.h: setup scm_num_overflow key.
2631
2632 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
2633 Remove definition of SCM_OVSCM_FLOW.
2634
2635 * fports.c (scm_open_file): use SCM_SYSERROR_M.
2636
2637 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
2638 explicit message and args.
2639
2640 * error.c, error.h, __scm.h: change system_error_sym to
2641 scm_system_error.
2642
2643 * error.c (system_error_sym): remove leading %% from the Scheme name
2644 "%%system-error".
2645
2646 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
2647
2648 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2649
2650 * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
2651 fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
2652 numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
2653 tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
2654 renamed. (These were introduced by unsupervised name
2655 substitution.)
2656
2657 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2658
2659 * print.c: Added code for detection of circular references during
2660 printing. (init_ref_stack, grow_ref_stack): New functions. Added
2661 a hook for printing of closures (accessible via print options).
2662 This leads to a split of calls to scm_iprin1 into two classes:
2663 elementary print operations (e. g. the code which prints a smob)
2664 still use scm_iprin1 while top level calls (like scm_display) use
2665 scm_prin1. scm_prin1 begins by clearing the data structure used
2666 to record reference information.
2667
2668 * print.h: Added declarations of scm_prin1 and scm_prlist.
2669
2670 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
2671
2672 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
2673
2674 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
2675
2676 * error.c (err_head): scm_iprin1 --> scm_prin1
2677
2678 * debug.c: Adjusted header comment.
2679
2680 * tags.h: Typo.
2681
2682 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
2683
2684 * strerror.c: Doc fix.
2685
2686 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
2687
2688 * gdbint.c (gdb_read): Now possible to run during GC.
2689 (unmark_port, remark_port): New functions.
2690
2691 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
2692
2693 * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
2694 of allocating a new string object. Also, increase size by
2695 the factor 2 instead of 1.5.
2696
2697 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
2698
2699 * __scm.h (SCM_P): Corrected to run under traditional C.
2700
2701 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
2702 removed.
2703
2704 * async.c: Calls to scm_sysintern corrected.
2705
2706 * async.h (scm_async_clock): Redundant declaration removed.
2707
2708 * continuations.c (scm_dynthrow): Redundant declaration removed.
2709
2710 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
2711 Definition typos corrected.
2712
2713 * debug.h: Missing declarations of functions in debug.c added
2714 (lots).
2715
2716 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
2717 Missing declarations to functions in eval.c added.
2718
2719 * filesys.c: Possibly uninitialized variable rv.
2720
2721 * gc.h (scm_object_addr, scm_unhash_name): Missing
2722 declarations of functions defined in gc.c added.
2723
2724 * genio.c: Possible typos str_data -> wstr_data. ???
2725
2726 * genio.c: Possibly unintended shadowing of local variable
2727 `int c' (gotos out of scope of inner `c'). ???
2728
2729 * init.c: Uninitialized `SCM last' may be used.
2730
2731 * ioext.h: (scm_sys_isatty_p): Typo.
2732
2733 * list.h (scm_list_head): Missing prototype for function in
2734 list.c added.
2735
2736 * numbers.c (scm_two_doubles): Changed from extern to static
2737 (is used only within numbers.c).
2738
2739 * numbers.h: Repeated declarations removed.
2740
2741 * ports.h (scm_close_all_ports_except): Declaration for the
2742 function defined in ports.c added.
2743
2744 * posix.h: Missing declarations added.
2745
2746 * procs.h (scm_make_subr_opt): Missing declaration added.
2747
2748 * socket.h (scm_sys_gethost): Missing declaration added.
2749
2750 * socket.h: Redundant declarations removed (they are in fdsocket.h).
2751
2752 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
2753 Missing declarations added.
2754
2755 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
2756
2757 * struct.c: Uninitialized variable `SCM answer' may be used.
2758
2759 * unif.c (l2ra): Declaration prototype.
2760
2761 * unif.c (scm_array_equal_p): Dummy definition removed (it is
2762 defined in ramap.c).
2763
2764 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
2765 Redundant declarations removed (they are in ramap.h).
2766
2767 * variable.h (scm_make_udvariable,
2768 scm_make_undefined_variable): Declaration corrected to
2769 correspond variable.c.
2770
2771 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
2772 Missing declarations added.
2773
2774 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
2775
2776 * Makefile.in (distclean): Don't forget to delete fd.h.
2777
2778 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
2779
2780 * fd.h.in, tags.h: Trivial cleanups.
2781
2782 * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
2783 marksweep.h just declared functions from gc.c.
2784 * gc.h, libguile.h: Don't #include "marksweep.h".
2785 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
2786 marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
2787 dependencies updated.
2788
2789 * libguile.h: Don't #include "files.h"; it's been deleted.
2790
2791 * files.c (scm_sys_delete_file): Moved to filesys.c.
2792 File is now empty; deleted.
2793 * files.h: Deleted.
2794 * filesys.c: scm_sys_delete_file is now here. Remove
2795 #if's; they seem to rely on remnants of an old portability
2796 regimen. If the problems come up again, solve them properly,
2797 using autoconf. Specifically: Don't test M_SYSV, and #define
2798 remove to be unlink if it's #defined; don't use remove just
2799 because HAVE_STDC_HEADERS is #defined.
2800 * filesys.h: Add declarations for scm_sys_delete_file.
2801 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
2802 files.o, files.h, files.c, and files.x.
2803 * init.c: Don't #include "files.h", and don't call scm_init_files.
2804
2805 Use SCM_P instead of PROTO; the latter intrudes on the user's
2806 namespace.
2807 * params.h: Deleted; definition of SCM_P moved to...
2808 * __scm.h: ... here, where it replaces PROTO macro.
2809 * libguile.h, smob.h: Don't #include "params.h".
2810 * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
2811 smob.h: Fix prototypes accordingly.
2812 * Makefile.in: Update dependencies.
2813 (inner_h_files): Remove params.h.
2814
2815 * gc.c: #include "gc.h"; every module should include its header,
2816 to let the compiler cross-check the declarations against the
2817 definitions.
2818
2819 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
2820 simpos.h: #include "libguile/__scm.h".
2821
2822 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
2823
2824 * init.c: Don't forget to #include smob.h and init.h.
2825 * Makefile.in: Dependencies updated.
2826
2827 * smob.h: Use PROTO instead of #if __STDC__.
2828
2829 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
2830
2831 * __scm.h: Doc fixes.
2832
2833 * __scm.h, libguile.h: Use "quotes" in the #includes, not
2834 <angles>; this allows `make depends' to work properly.
2835
2836 * libguile.h: #include smob.h and pairs.h before the others; they
2837 define typedefs used by other headers.
2838
2839 C files should #include only the header files they need, not
2840 libguile.h (which #includes all the header files); the pointless
2841 recompilation was wasting my time.
2842 * Makefile.in (all .o dependency lists): Regenerated.
2843 * libguile.h: Don't try to get a definition for size_t here...
2844 * __scm.h: Do it here.
2845 * _scm.h: Since this is the internal libguile header, put things
2846 here that all (or a majority) of the libguile files will want.
2847 Don't #include <libguile.h> here; that generates dependencies on
2848 way too much. Instead, get "__scm.h", "error.h", "pairs.h",
2849 "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
2850 "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
2851 "async.h".
2852 * alist.c: Get "eq.h", "list.h", "alist.h".
2853 * append.c: Get "append.h", "list.h".
2854 * arbiters.c: Get "arbiters.h", "smob.h".
2855 * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
2856 * boolean.c: Get "boolean.h".
2857 * chars.c: Get "chars.h".
2858 * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
2859 "stackchk.h".
2860 * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
2861 "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
2862 "genio.h", "throw.h", "eval.h".
2863 * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
2864 * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
2865 "stackchk.h".
2866 * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
2867 * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
2868 "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
2869 "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
2870 "debug.h".
2871 * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
2872 * feature.c: Get "feature.h".
2873 * files.c: Get "files.h".
2874 * filesys.c: Get "filesys.h", "smob.h", "genio.h".
2875 * fports.c: Get "fports.h", "markers.h".
2876 * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
2877 "genio.h", "struct.h", "stackchk.h", "stime.h".
2878 * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
2879 "read.h", "strports.h", "tag.h".
2880 * genio.c: Get "genio.h", "chars.h".
2881 * gsubr.c: Get "gsubr.h", "genio.h".
2882 * hash.c: Get "hash.h", "chars.h".
2883 * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
2884 * init.c: Get everyone who has an scm_init_mumble function:
2885 "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
2886 "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
2887 "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
2888 "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
2889 "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
2890 "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
2891 "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
2892 "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
2893 "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
2894 "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
2895 "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
2896 "async.h", "arbiters.h", "append.h", "alist.h".
2897 * ioext.c: Get "ioext.h", "fports.h".
2898 * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
2899 * list.c: Get "list.h", "eq.h".
2900 * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
2901 * mallocs.c: Get "smob.h", "genio.h".
2902 * markers.c: Get "markers.h".
2903 * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
2904 "chars.h".
2905 * numbers.c: Get "unif.h", "genio.h".
2906 * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
2907 * options.c: Get "options.h".
2908 * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
2909 "markers.h", "chars.h", "genio.h".
2910 * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
2911 "read.h", "scmsigs.h", "genio.h", "fports.h".
2912 * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
2913 "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
2914 "chars.h".
2915 * procprop.c: Get "procprop.h", "eval.h", "alist.h".
2916 * procs.c: Get "procs.h".
2917 * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
2918 "chars.h", "smob.h", "unif.h".
2919 * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
2920 "eval.h", "genio.h", "chars.h".
2921 * root.c: Get "root.h", "stackchk.h".
2922 * scmsigs.c: Get "scmsigs.h".
2923 * sequences.c: Get "sequences.h".
2924 * simpos.c: Get "simpos.h", "scmsigs.h".
2925 * smob.c: Get "smob.h".
2926 * socket.c: Get "socket.h", "feature.h".
2927 * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
2928 "alist.h", "smob.h".
2929 * stackchk.c: Get "stackchk.h", "genio.h".
2930 * stime.c: Get "stime.h"."libguile/continuations.h".
2931 * strings.c: Get "strings.h", "chars.h".
2932 * strop.c: Get "strop.h", "chars.h".
2933 * strorder.c: Get "strorder.h", "chars.h".
2934 * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
2935 * struct.c: Get "struct.h", "chars.h".
2936 * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
2937 "variable.h", "eval.h", "chars.h".
2938 * tag.c: Get "tag.h", "struct.h", "chars.h".
2939 * throw.c: Get "throw.h", "continuations.h", "debug.h",
2940 "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
2941 * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
2942 "smob.h", "genio.h", "eval.h", "chars.h".
2943 * variable.c: Get "variable.h", "smob.h", "genio.h".
2944 * vectors.c: Get "vectors.h", "eq.h".
2945 * version.c: Get "version.h".
2946 * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
2947 * weaks.c: Get "weaks.h".
2948
2949 * stackchk.h: #include "libguile/debug.h",
2950
2951 * print.h, read.h: #include "options.h", since everyone who uses
2952 either of these files will need that.
2953
2954 * smob.h: #include "ports.h", "genio.h", and "print.h", since
2955 anyone who uses this file will need them to define the smob
2956 printing functions. Also, get markers.h, since people will need
2957 to #define the mark functions.
2958
2959 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
2960 * ports.h: ... to here.
2961
2962 * ports.h (scm_port_table_size): Explicitly give type as 'int';
2963 don't rely on archaic C default type rules.
2964
2965 * fports.h: #include "libguile/ports.h", since you need that in
2966 order to parse this.
2967
2968 * genio.h: #include "libguile/print.h", because you need that to
2969 parse this; don't bother #including "ports.h", since print.h gets
2970 that.
2971
2972 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
2973
2974 * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
2975 this; it's now a reference to an element of *scm_root.
2976
2977 * debug.h: Don't #include "options.h"; the compiler won't be able
2978 to find that once the headers are installed; instead, #include
2979 "libguile/options.h".
2980 * gc.h: Same, with marksweep.h.
2981 * mbstrings.h: Same, with symbols.h.
2982 * scmhob.h: Same, with _scm.h.
2983 * smob.h: Same, with params.h.
2984
2985 * Makefile.in (depends): Don't nuke scmconfig.h and the generated
2986 C files; there's no need for this, and it forces recompilations
2987 unnecessarily.
2988
2989 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
2990
2991 * error.c (scm_error): declare scm_error_callback.
2992
2993 * error.h: prototype for scm_error_callback.
2994
2995 * __scm.h: define lgh_error.
2996 (SCM_SYSERROR): redefine using lgh_error.
2997
2998 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
2999
3000 * error.c (scm_error): new procedure.
3001
3002 * error.h: prototype for scm_error.
3003
3004 * Makefile.in (install): install scmconfig.h from the current
3005 directory, not $(srcdir).
3006
3007 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
3008
3009 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
3010 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
3011 feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
3012 hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
3013 mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
3014 posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
3015 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
3016 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
3017 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
3018 vports.h, weaks.h: #include "libguile/__scm.h", not
3019 <libguile/__scm.h>. This allows 'gcc -MM' to determine which
3020 dependencies are within libguile properly.
3021
3022 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
3023
3024 * Makefile.in (.c.x): Simplify; there's no need to run this rule
3025 when scmconfig.h doesn't exist.
3026
3027 * load.c (scm_sys_try_load): Correct spelling.
3028
3029 * feature.c (scm_loc_features): Make this static.
3030
3031 * Makefile.in (libpath.h): Omit trailing slash from path. We
3032 shouldn't require it of users, so why put it here?
3033
3034 Move code to initialize and search %load-path from ice-9 to C
3035 code, so we can use the load-path to find the ice-9 boot code;
3036 this makes it easier to run Guile without installing it. See
3037 corresponding changes in guile/Makefile.in.
3038 * feature.c: Move stuff concerned with the load path to load.c.
3039 (scm_compiled_library_path): Deleted.
3040 Don't #include libpath.h here.
3041 * feature.h: Don't mention scm_compiled_library_path.
3042 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
3043 <sys/stat.h>, and <unistd.h> (if present).
3044 (R_OK): #define if the system hasn't deigned to.
3045 (scm_loc_load_path): New variable.
3046 (scm_init_load_path, scm_sys_search_load_path,
3047 scm_sys_try_load_path): New functions.
3048 (scm_init_load): Initialize scm_loc_load_path to point to the
3049 value cell of the Scheme %load-path variable.
3050 * load.h: Add declarations for scm_sys_search_load_path,
3051 scm_sys_try_load_path.
3052 * init.c: Call scm_init_load_path.
3053 * Makefile.in (feature.o, load.o): Dependencies updated.
3054
3055 * load.c, load.h: Rewrite using PROTO macro.
3056
3057 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3058
3059 * gc.c (scm_cellp): New function: C predicate to determine if an
3060 SCM value can be regarded as a pointer to a cell on the heap.
3061
3062 * gc.h: Added declaration of scm_cellp.
3063
3064 * gdb_interface.h: New file: The GDB interface header from the GDB
3065 distribution.
3066
3067 * gdbint.c: New file: GDB interface.
3068
3069 * gdbint.h: New file: GDB interface.
3070
3071 * libguile.h: Added #include <libguile/gdbint.h>.
3072
3073 * init.c (scm_boot_guile): Added scm_init_gdbint.
3074
3075 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
3076 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
3077 found if object files and source are kept separate).
3078
3079 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
3080
3081 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
3082
3083 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
3084
3085 * configure.in: Don't substitute the values of TCL_SRC_DIR and
3086 TK_SRC_DIR; they're not relevant any more.
3087
3088 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
3089 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
3090
3091 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
3092
3093 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
3094 search path, so we can find the <libguile/MUMBLE.h> headers.
3095
3096 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
3097
3098 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
3099 implicit in the .c.o rule.
3100 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
3101 $(CC) already.
3102
3103 Put the library path in a header file, instead of passing it on
3104 the command line in every compilation.
3105 * Makefile.in (libpath.h): New target.
3106 (feature.o): Depend on libpath.h.
3107 (clean): Delete libpath.h.
3108 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
3109 * feature.c: ... #include "libpath.h" here.
3110 * .cvsignore: Ignore libpath.h.
3111
3112 Don't install the unwashed masses of Guile header files in the
3113 main #include path; put most of them in a subdirectory called
3114 'libguile'. This avoids naming conflicts between Guile header
3115 files and system header files (of which there were a few).
3116 * Makefile.in (pkgincludedir): Deleted.
3117 (innerincludedir): New variable; this and $(includedir) are enough.
3118 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
3119 (installed_h_files): Divide this up. Now this variable lists
3120 those header files which should go into $(includedir) (i.e. appear
3121 directly in the #include path), and ...
3122 (inner_h_files): ... this new variable says which files appear in
3123 a subdirectory, and are referred to as <libguile/mumble.h>.
3124 (h_files): List them both.
3125 (install): Create innerincludedir, not pkgincludedir. Put
3126 the installed_h_files and inner_h_files in their proper places.
3127 (uninstall): Corresponding changes.
3128 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
3129 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
3130 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
3131 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
3132 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
3133 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
3134 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
3135 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
3136 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
3137 vports.h, weaks.h: Find __scm.h in its new location.
3138 * __scm.h: Find scmconfig.h and tags.h in their new locations
3139 (they're both "inner" files).
3140
3141 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
3142
3143 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
3144
3145 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
3146
3147 * posix.c: Doc fixes.
3148
3149 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
3150
3151 * socket.c: Don't include a prototype for inet_aton; just use a
3152 K&R style declaration, to avoid warnings but minimize the chance
3153 of conflicts with the system.
3154
3155 On NextStep, <utime.h> doesn't define struct utime, unless we
3156 #define _POSIX_SOURCE before #including it.
3157 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
3158 * acconfig.h: New comment text for above CPP symbol.
3159 * configure.in: Call it.
3160 * posix.c: #define _POSIX_SOURCE if it seems necessary.
3161
3162 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
3163 in the list.
3164 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
3165 testing for __EMX__.
3166
3167 * posix.c: #include <libc.h>, if it exists.
3168
3169 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
3170 don't even know if the latter exists.
3171
3172 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
3173 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
3174 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
3175
3176 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
3177 header files don't.
3178 (scm_init_posix): Use them when initializing the Scheme constants
3179 of the same name.
3180
3181 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
3182
3183 * Makefile.in (libdir, includedir, bindir): Use the
3184 autoconf-supplied values, instead of deriving them ourselves.
3185 (pkgincludedir, datadir, pkgdatadir): New variables.
3186 (install, uninstall): Put the header files in a special
3187 subdirectory, not in the main search path.
3188
3189 * Makefile.in (ALL_CFLAGS): Provide the proper value for
3190 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
3191
3192 * Makefile.in (IMPLPATH): Deleted; never used.
3193
3194 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
3195 on the Tcl/Tk source any more.
3196 (INCLUDE_CFLAGS): Remove references to the above.
3197
3198 * Makefile.in (version.o): Corrected dependencies.
3199
3200 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
3201
3202 * libguile.h: #include "version.h"
3203
3204 * init.c (scm_boot_guile): Call scm_init_version.
3205 * gscm.c (gscm_run_scm): Call scm_init_version.
3206
3207 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
3208 GUILE_VERSION): AC_DEFINE these.
3209 (acconfig.h): #undef the above symbols.
3210
3211 * Makefile.in (libobjs): Add version.o.
3212 (installed_h_files): Add version.h.
3213 (c_files): Add version.c.
3214 (gen_c_files): Add version.x.
3215 (version.o): New rule.
3216 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
3217 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
3218 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
3219 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
3220 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
3221 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
3222 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
3223 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
3224 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
3225 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
3226 weaks.o): Add version.h to dependency lists.
3227 (markers.o): Remove duplicate rule.
3228
3229 * version.h: New file.
3230
3231 * version.c: New file.
3232
3233 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
3234
3235 * symbols.c (scm_strhash): scm_downcase is now a function, not an
3236 array; use it appropriately. Since GCC is quite happy to
3237 subscript functions, it never warned us about this; we should use
3238 -Wpointer-arith in the future. I guess we never tested
3239 case-insensitivity.
3240
3241 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
3242
3243 * socket.c: Doc and copyright fixes.
3244
3245 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3246
3247 * debug.c: Fixed and improved gdb support.
3248
3249 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3250
3251 * socket.c: Added declaration of inet_aton to avoid compiler
3252 warning. (Hope this solution is correct.)
3253
3254 * stime.c: Added declaration of ftime. (This is missing in
3255 Solaris 2 headers.)
3256
3257 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
3258
3259 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
3260
3261 * Makefile.in (c_files): add strerror.c.
3262
3263 * strerror.c: new file from Emacs' sysdep.c.
3264 maybe configure should also check for sys_errlist.
3265
3266 * configure.in (AC_REPLACE_FUNCS): add strerror.
3267
3268 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3269
3270 * debug.c (scm_init_debug): Added initialization for
3271 scm_evaluator_traps.
3272
3273 * debug.h, debug.c: Various name changes.
3274 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
3275 "debug-options-interface". See commentary in options.c.
3276
3277 * options.h, options.c: Options now have documentation strings.
3278 Also added a long explanatory commentary.
3279
3280 * eval.c, print.h, print.c, read.h, read.c: Modifications to
3281 run-time options.
3282
3283 * gscm.c, init.c, root.c, throw.c: Bug fixes:
3284 last_debug_info_frame is now updated in all cases.
3285
3286 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
3287 checking.
3288
3289 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
3290
3291 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
3292 Added option STACK_CHECKING.
3293
3294 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
3295
3296 * Makefile.in: Added {debug,options,srcprop}.{h,c}
3297
3298 * __scm.h: Removed symbols for debugging support.
3299
3300 * acconfig.h: Added symbols for debugging support.
3301
3302 * configure.in: Added user option for debugging support.
3303 --enable-debug will include the debugging code into libguile.a.
3304
3305 * continuations.c (scm_make_cont): Enlarged the #if 0 around
3306 scm_relocate_chunk_to_heap.
3307
3308 * debug.c: New file: low-level debugging support. It also
3309 includes support for debugging with gdb. (The extensions to gdb
3310 are written by Per Bothner at Cygnus.)
3311
3312 * debug.h: New file: low-level debugging support.
3313
3314 * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
3315 argument pairs. Extensive modifications to the debugging
3316 evaluator. Added "SECTION:" commentaries to clarify what happens
3317 when, during double compilation. Renamed EVALIMP --> EVALIM.
3318 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
3319 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
3320 the beginning of the file. New procedure: scm_unmemocopy.
3321 Added some global state variables needed by the debugging
3322 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
3323 check_entry, check_apply, check_exit, debug_options and
3324 evaluator_traps. New acro: undefine.
3325
3326 * eval.h: Renamed EVAL --> XEVAL.
3327
3328 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
3329 --> scm_make_weak_key_hash_table.
3330
3331 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
3332 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
3333
3334 * libguile.h: Conditionally include debug.h
3335
3336 * objprop.c (scm_object_properties, scm_set_object_properties_x):
3337 scm_object_properties shouldn't return handle. `handle' now gets
3338 initialized in scm_set_object_properties_x. scm_object_properties
3339 doesn't any longer create an entry in scm_object_whash.
3340
3341 * options.c: New file: handling of run time options.
3342
3343 * options.h: New file: handling of run time options.
3344
3345 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
3346
3347 * print.c: New procedure: scm_print_options
3348
3349 * print.h: Defines for print options.
3350
3351 * read.c: New procedure: scm_read_options
3352
3353 * read.h: Defines for reader options.
3354
3355 * root.h: Added scm_source_whash among scm_sys_protects.
3356
3357 * srcprop.c: New file: source properties.
3358
3359 * srcprop.h: New file: source properties.
3360
3361 * throw.c (jbsmob): Jump buffers are now correctly allocated.
3362 (Bug found by A. Green.)
3363
3364 * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
3365
3366 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
3367
3368 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
3369
3370 * libguile.h: #include "objprop.h"; I guess this was forgotten.
3371
3372 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
3373 and should be called by the final client.
3374
3375 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
3376
3377 * gc.h: Use the PROTO macro when declaring functions.
3378 * gc.c: Use the PROTO macro when declaring static functions.
3379 Remove the CPP hair around function definitions.
3380
3381 * gc.c (scm_init_storage): Initialize scm_asyncs.
3382
3383 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
3384 preprocessor symbol; "__scm.h" is where it might get #defined.
3385 * __scm.h: Similar: #include <scmconfig.h> before testing
3386 HAVE_LIMITS_H.
3387
3388 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
3389
3390 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
3391
3392 * init.c (scm_boot_guile): Add init_func argument; call
3393 (*init_func) instead of calling scm_appinit; it's ucky to
3394 hard-code names for the user's procedures.
3395 * init.h (scm_boot_guile): Adjust declaration.
3396
3397 * __scm.h (PROTO): New macro, for declaring functions with
3398 prototypes.
3399
3400 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
3401 eliminate all the __STDC__ conditionals.
3402 (scm_boot_guile): Add declaration.
3403 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
3404 Remove __STDC__ conditionals around function definitions; the
3405 declarations in init.h will provide the same information, more
3406 usefully.
3407
3408 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
3409 complain about it in the error message; the error message is
3410 adequate without that note, and there's nothing the user can do
3411 about it.
3412
3413 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
3414
3415 * Makefile.in (ancillary): Drop def.sed.
3416
3417 * posix.c (scm_init_posix): Use numeric values, rather than
3418 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
3419 F_OK. The symbols aren't available on some systems, and I'm
3420 pretty sure their values are fixed by common widespread practice.
3421 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
3422
3423 More functions unavailable on some systems.
3424 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
3425 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
3426 check for.
3427 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
3428 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
3429 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
3430 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
3431 stub that signals an error as the #else.
3432
3433 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
3434
3435 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
3436
3437 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
3438
3439 * unif.c: include ramap.h.
3440
3441 * read.c (endif): case_insensative_p renamed case_insensitive_p.
3442
3443 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
3444
3445 * ports.c: include sys/ioctl.h.
3446
3447 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
3448
3449 * configure.in: check for sys/ioctl.h.
3450
3451 * ports.c: include <malloc.h> not "malloc.h".
3452
3453 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
3454
3455 * fports.c: remove ttyname and tmpnam declarations.
3456
3457 * posix.c: fewer ttyname declarations.
3458
3459 * fports.c: include <string.h> not "string.h".
3460
3461 * init.c, ioext.c: include string.h and unistd.h.
3462
3463 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
3464
3465 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
3466 genio.c, simpos.c, vports.c: include string.h.
3467
3468 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
3469
3470 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
3471 scm_sizet to int.
3472 (scm_addr_buffer_size): change type from scm_sizet to int.
3473 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
3474 from scm_sizet to int.
3475
3476 * error.c: include unistd.h.
3477
3478 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
3479 defined.
3480
3481 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
3482
3483 * __scm.hd, def.sed: deleted.
3484
3485 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
3486
3487 Changes for NeXT, suggested by Robert Brown.
3488 * configure.in: Call AC_TYPE_MODE_T.
3489 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
3490 NeXT. Put header file list in alphabetical order.
3491 * configure, scmconfig.h.in: Regenerated.
3492 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
3493
3494 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
3495 for strerror.
3496
3497 * acconfig.h: New file, providing documentation for the CPP
3498 symbols defined in configure.in
3499 * acconfig-1.5.h: Removed; superceded by the above.
3500
3501 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
3502
3503 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
3504
3505 * fports.c (scm_open_file): don't return #f, throw error.
3506
3507 * ioext.c (fileno): renamed from %fileno.
3508 (soft-fileno): deleted.
3509
3510 * ports.c (scm_port_revealed): don't need to check for -1 from
3511 scm_revealed_count.
3512 (scm_set_port_revealed_x): return unspecified, not #f.
3513
3514 * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
3515
3516 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
3517
3518 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
3519
3520 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
3521
3522 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
3523
3524 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
3525 This is necessary on Ultrix, and doesn't hurt portability.
3526
3527 * Makefile.in (dist-dir): New target, implementing a new dist system.
3528 (installed_h_files): Put in alphabetical order.
3529 Remove duplicate entries for markers.h and unif.h.
3530 (c_files): Remove duplicate entries for markers.c.
3531 (ancillary): Renamed from anillery; all uses changed. Remove
3532 PLUGIN; it's a directory, and needs special treatment in dist-dir.
3533 Remove all the ../doc/* files; doc/Makefile.in handles that.
3534
3535 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
3536
3537 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
3538 every if must have an else, or else the whole command has a
3539 non-zero exit code whenever the if's condition is false.
3540
3541 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
3542
3543 * posix.c: include string.h.
3544
3545 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
3546
3547 * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
3548 have been once.
3549
3550 * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
3551 Remove leading % from scheme names.
3552 Do not return error values, call SCM_SYSERROR or similar.
3553
3554 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
3555
3556 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
3557
3558 * struct.c (scm_init_struct): new file.
3559
3560 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
3561
3562 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
3563 (scm_list_head): added list-head for rapidly chopping argument
3564 lists off of longer lists (and similar).
3565
3566 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
3567
3568 * objprop.c (scm_object_property): assq the cdr of the whash
3569 handle for obj, not the handle itself.
3570
3571 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
3572
3573 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
3574 weak hash tables last of all marking to avoid an obscure gc bug.
3575 WARNING: circular lists stored in a weak hash table will hose us.
3576
3577 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
3578
3579 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
3580 new functions similar to scm_substring_move_left_x and
3581 scm_substring_move_right_x.
3582
3583 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
3584
3585 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
3586 scm_gc_heap_lock!
3587
3588 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
3589
3590 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
3591
3592 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
3593
3594 * strports.c (scm_strprint_obj): convenience function. C for
3595 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
3596
3597 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
3598 removed to a separate library
3599
3600 * init.c (scm_boot_guile): copied from guile-tcl.c.
3601 Initialization specific to tcl interpreters removed.
3602
3603 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
3604
3605 * ports.c (scm_ports_prehistory): size malloced here doesn't
3606 matter so long as it is non-0 (got rid of "* 4").
3607
3608 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
3609
3610 * gscm.h: gscm_mkarray eliminated (presumably was not being used
3611 since its definition was bogus).
3612
3613 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
3614
3615 * mallocs.[ch]: back again (for rx at least).
3616
3617 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
3618
3619 * ports.c: removed functions relating to the mapping between ports
3620 and descriptors. (That stuff is unix-specific and should be collected
3621 in a separate library).
3622
3623 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
3624 (Tom Mckay@avanticorp.com)
3625
3626 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
3627
3628 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
3629 handled correctly (SCM_FREEP was applied to them) -- test for
3630 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
3631 being overwritten with #f. (brown@grettir.bibliotech.com)
3632
3633 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
3634
3635 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
3636 for a specific symbol or for all symbols.
3637
3638 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
3639
3640 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
3641 keys and weak values confused).
3642
3643 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
3644
3645 * list.c (scm_last_pair): map '()=>'()
3646
3647 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
3648
3649 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
3650 Generalized assoc and hash-table functions.
3651 Factored pairs.c into multiple files.
3652
3653 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
3654
3655 * gscm.c (gscm_run_scm): got rid of objprop.
3656
3657 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
3658
3659 * genio.c (scm_getc):
3660 NOTE: fgetc may not be interruptable.
3661
3662 * procprop.c (scm_stand_in_scm_proc):
3663 NOTE: don't use a alist here.
3664 (scm_set_procedure_properties_x): fix type checking throughout this file.
3665
3666 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
3667
3668 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
3669 after freeing part of the port table.
3670
3671 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
3672
3673 * strports.c (scm_mkstrport):
3674 * vports.c (scm_make_soft_port): allocate a port table entry
3675 (possibly triggering gc) before setting the tag of the corresponding
3676 ports handle.
3677
3678 * pairs.c (scm_delq_x): never throw an error.
3679
3680 * vectors.c (scm_make_vector): made the default vector fill argument
3681 into '() (much more useful than the previous value, "#unspecified")
3682
3683 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
3684
3685 * ports.c (scm_add_to_port_table): Added fields
3686 to port table entries: file_name, line_num, col.
3687 Update these in open_file, gen_getc and gen_ungetc.
3688 Added procedures to access those fields.
3689
3690 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
3691
3692 * procs.c (scm_make_subr_opt): new entry point for making
3693 anonymous subrs.
3694
3695 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
3696
3697 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
3698
3699 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
3700
3701 * numbers.c (scm_exact_p): This function no longer
3702 implements "integer?".
3703
3704 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
3705
3706 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
3707 (scm_gc_stats): return an assoc of useful data. Replaces "room"
3708 and the stats reporting formerlly built into repl.
3709
3710 * repl.[ch]: removed.
3711 GC statistics keeping moved to gc.c.
3712 Other statistics keeping can be done from Scheme.
3713 REPLS are now written in Scheme.
3714
3715 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
3716
3717 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
3718 conservatively marked objects).
3719
3720 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
3721
3722 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
3723
3724 * feature.c (scm_compiled_library_path): moved here from repl.c.
3725 This file is for stuff relating specifically to Scheme libraries
3726 like slib.
3727
3728 * eval.c (scm_m_define): don't give warning about redefinition, don't
3729 check verbosity.
3730
3731 NOTE: this should throw a resumable exception with parameters --
3732 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
3733
3734 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
3735
3736 * error.c: scm_warn eliminated.
3737
3738 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
3739
3740 * repl.c, marksweep.c, gc.c (various):
3741 lose exit_report, growth_mon.
3742
3743 * gscm.c: got rid of verbosity functions.
3744
3745 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
3746
3747 * throw.c (scm_ithrow): guard against the bad-throw hook changing
3748 between the call to procedurep and use.
3749
3750 * error.c (scm_everr):
3751 * gc.c (fixconfig):
3752 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
3753 but less so.
3754
3755 * strports.c: don't reveal the port's string to the caller
3756 because it changes size.
3757
3758 (stputc stwrite): check/change the strings length with interrupts
3759 blocked.
3760
3761 * objprop.c (scm_set_object_property_x &c): use the generic
3762 hashing functions and be threadsafe.
3763
3764 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
3765 (per suggestion jaffer@gnu.ai.mit.edu).
3766
3767 * mbstrings.c (scm_multi_byte_string): guard against argument list
3768 changing length.
3769
3770 * strings.c (scm_make_string): loop cleanup
3771
3772 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
3773 a scheme function.
3774
3775 * weaks.c (scm_weak_vector): guard against argument list
3776 changing length.
3777
3778 * variable.c (scm_builtin_variable): check for/make a built-in
3779 variable automicly.
3780
3781 * vectors.c (scm_vector): while filling the new array,
3782 guard against a list of fill elements that grows after
3783 the vector is allocated.
3784
3785 * hashtab.c -- new file: general hash table
3786 functions. hash, hashq, hashv, hashx.
3787
3788 * tags.h: made wvect an option bit of vector.
3789
3790 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
3791
3792 * symbols.c: made the basic symbol table operations atomic.
3793
3794 * root.c &c.: collected stack-specific global state.
3795 linum/colnum etc *should* be port-specific state.
3796
3797 * struct.c (scm_init_struct): init the first struct type during
3798 initialization to fix a race condition.
3799
3800 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
3801 object, not in a global.
3802 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
3803
3804 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
3805 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
3806
3807 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
3808 and C symbols to begin with SCM_ or scm_.
3809
3810 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
3811
3812 * gsubr.c (scm_gsubr_apply): statically allocate the
3813 array of arguments (bothner@cygnus.com).
3814
3815 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
3816
3817 * scmsigs.c: Simplified to use async rountines.
3818
3819 * async.c: New support for interrupt handlers.
3820
3821 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
3822
3823 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
3824 set the multi_byte flag correctly in symbols. This is wrong.
3825 intern_obbary_soft and msymbolize should take an extra parameter.
3826 Also, weird multibyte symbols don't print correctly.
3827 The weird symbol syntax is also a bit bogus (emacs doesn't quite
3828 cope).
3829
3830 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
3831
3832 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
3833 use the system symhash. == #t means create an uninterned symbol.
3834
3835 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
3836
3837 * strings.c (scm_make_shared_substring): build'em.
3838 It might better to keep a table of these and use one
3839 less cons-pair per shared-substring.
3840
3841 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
3842
3843 * strings.c (scm_string_shared_substring): create shared
3844 substrings. (Doesn't handle mb strings yet).
3845
3846 * mbstrings.c (scm_print_mb_string): handle RO strings.
3847
3848 * print.c (scm_iprin1): print substrings as their non-substring
3849 counterparts (dubious).
3850
3851 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
3852 strings.
3853
3854 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
3855
3856 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
3857
3858 * eq.c (scm_equal_p): handle RO and MB strings.
3859
3860 * symbols.c (scm_string_to_symbol):
3861 (scm_string_to_obarray_symbol):
3862 * strop.c (scm_i_index):
3863 (scm_i_rindex):
3864 (scm_string_null_p):
3865 (scm_string_to_list):
3866 * strings.c (scm_string_length):
3867 (scm_string_ref):
3868 (scm_substring):
3869 (scm_string_append):
3870 * simpos.c (scm_system):
3871 (scm_getenv):
3872 * fports.c (scm_open_file):
3873 * strorder.c (scm_string_equal_p):
3874 (scm_string_ci_equal_p):
3875 (scm_string_less_p):
3876 (scm_string_ci_less_p):
3877 * pairs.c (scm_obj_length):
3878 * mbstrings.c (scm_multi_byte_string_length):
3879
3880 Use RO string macros for RO strings.
3881
3882 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
3883
3884 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
3885
3886 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
3887 index/rindex. Do handle embedded \000 characters.
3888
3889 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
3890
3891 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
3892 Eliminate a (presumed) warning on some systems.
3893
3894 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
3895 (Mikael Djurfeldt <mdj@nada.kth.se>)
3896
3897 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
3898
3899 * eval.c (scm_map): added argument type checking.
3900 (kawai@sail.t.u-tokyo.ac.jp)
3901
3902 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
3903 for C++. (Seth Alves <alves@gryphon.com>)
3904
3905 (gscm_cstr): uses an uninitialized local variable causing
3906 segv. (kawai@sail.t.u-tokyo.ac.jp)
3907
3908
3909 * lvectors.c (scm_get_lvector_hook):
3910 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
3911 It seems to me like if it is broken again in guile-iv...Here is a patch.
3912 "! || (LENGTH (keyvec) == 0))"
3913 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
3914
3915
3916 * gscm.c (gscm_sys_default_verbosity):
3917 incorrectly declared for non-__STDC__
3918 (Tom_Mckay@avanticorp.com)
3919
3920 * ports.c (scm_setfileno): Tweak the macro a bit
3921 to make it easier to port to systems that use
3922 more than a single structure field to hold a descriptor.
3923
3924 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
3925 Give a warning, not an error, for unrecognized modes.
3926
3927 * eval.c (SCM_CEVAL):
3928 static char scm_s_for_each[];
3929 static char scm_s_map[];
3930 not needed.
3931
3932 * strings.c (scm_string_p):
3933 static char s_string[];
3934 (see next entry)
3935
3936 * struct.c (scm_sys_struct_set_x):
3937 static char s_sys_make_struct[];
3938 static char s_sys_struct_ref[];
3939 static char s_sys_struct_set_x[];
3940 Rearrange code to eliminate those forward decls for the sake of
3941 broken compilers.
3942
3943 * variable.c (make_vcell_variable): static char s_make_variable[];
3944 isn't needed.
3945
3946 * fports.c (scm_port_mode):
3947 chars modes[3] = "";
3948 to
3949 chars modes[3];
3950 modes[0] = '\0';
3951 (Tom_Mckay@avanticorp.com)
3952
3953
3954 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
3955 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
3956 (Tom_Mckay@avanticorp.com)
3957
3958 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
3959 scm_num_eq_p() was scm_equal_p().
3960 (Tom_Mckay@avanticorp.com)
3961
3962 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
3963 (Tom_Mckay@avanticorp.com)
3964
3965 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
3966
3967 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
3968 (Tom_Mckay@avanticorp.com)
3969
3970 * strop.c (scm_substring_fill_x):
3971 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
3972 (Tom_Mckay@avanticorp.com)
3973
3974 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
3975 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
3976
3977 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
3978 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
3979
3980 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
3981 can turn into an obscure gc bug.
3982
3983 * chars.c (scm_char_p): fixed PROC call.
3984
3985 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
3986 scm_vector_set.
3987
3988 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
3989
3990 * elisp.c (new file): dynamic scoping and other bits for
3991 elisp. Don't use this yet unless you specificly want to
3992 hack on elisp emulation.
3993
3994 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
3995 scope created by scm_with_dynamic_bindings_operation_x, swap
3996 the bindings of that scope with the corresponding globals.
3997
3998 * continuations.c (scm_make_cont): when a continuation is captured,
3999 relocate the continuation stack chunks registered on the wind chain
4000 to the heap.
4001
4002 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
4003
4004 * eval.c (SCM_CEVAL): if the function position evaluates
4005 to a macro, process it accordingly. (Previously, macros were
4006 handled only if the function position was a symbol naming a
4007 variable bound to a macro).
4008
4009 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
4010
4011 * eval.c (scm_m_set): allow multi-variable set! like
4012 (set! x 1 y 2 z 3).
4013
4014 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
4015
4016 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
4017 STREAM of ports into the port table and replaced it with a
4018 port-table index.
4019
4020 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
4021
4022 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
4023
4024 * mbstrings.c (new file): functions on multi-byte strings.
4025
4026 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
4027 for multi-byte strings. Moved the string tag.
4028
4029 * chars.h chars.c repl.c (many functions): made scm_upcase and
4030 scm_downcase functions that are safe for extended character sets.
4031
4032 Changed the range of integer->char.
4033
4034 Changed the type of SCM_ICHR.
4035
4036 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
4037
4038 * guile.c: Changed init file name from "SCM_INIT_PATH" to
4039 "GUILE_INIT_PATH"
4040
4041 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
4042
4043 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
4044 know that it's safe to pass an object to gscm_get_type?)
4045 (gscm_get_type): Fix tyop in error message.
4046
4047 * variable.c (scm_variable_ref): fixed assertion test.
4048 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
4049
4050 * gscm.h: fixed several prototypes, notably gscm_vref.
4051 Add gscm_is_eq and temporarily commented out gscm_eq (see
4052 the note in gscm.h near gscm_eq if this change effects your
4053 code).
4054 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
4055
4056 * pairs.c (scm_obj_length): see next entry.
4057
4058 * gscm.h (gscm_obj_length): A way to get an integer
4059 length for lists, strings, symbols (treated as strings),
4060 and vectors. Returns -1 on error.
4061
4062 * eq.c (scm_equal_p): fixed smob case.
4063 (William Gribble <grib@arlut.utexas.edu>)
4064
4065 * Makefile.in (X_CFLAGS): defined.
4066 (William Gribble <grib@arlut.utexas.edu>)
4067
4068 * gscm.h (gscm_2_double): provided now
4069 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
4070
4071 Tue Jun 13 01:04:09 1995 gnu
4072 * Vrooom!
4073
4074