*** empty log message ***
[bpt/guile.git] / libguile / ChangeLog
1 1998-10-14 Jim Blandy <jimb@zwingli.cygnus.com>
2
3 Handle short and long long uniform arrays properly. (Thanks to
4 Clark McGrew.)
5 * ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
6 raeql_1): Add cases for scm_tc7_svect (short vectors) and
7 scm_tc7_llvect (long long vectors).
8
9 Change the way libguile and boot-9.scm are timestamped, to try to
10 get rid of these spurious mismatch warnings. Now both
11 libguile/versiondat.h and ice-9/version.scm are generated directly
12 by the configuration process, rather than having version.scm
13 generated directly, and libguile/versiondat.h generated by the
14 Makefile, which is generated by configure. It seems that
15 sometimes the Makefile would change, but versiondat.h depends on
16 Makefile.in, not Makefile, so it wouldn't get rebuilt.
17 * Makefile.am (versiondat.h): Target removed; this is generated
18 directly by the configure script now.
19 (BUILT_SOURCES): Remove versiondat.h.
20 * versiondat.h.in: New file, transformed by the configure script
21 into versiondat.h.
22 * Makefile.in: Regenerated.
23
24 * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
25 options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
26 SCM_CAUTIOUS; this way, 1) there's only one version of each flag
27 to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
28 if we want to use them in a header file some day, we can. (Thanks
29 to Michael Livshin.)
30
31 * stime.c (scm_get_internal_real_time): Do the arithmetic using
32 SCM numbers, so we won't have rollover problems; the range of a
33 signed long in milliseconds is about 25 days. (Thanks to Karl
34 Hegbloom.)
35
36 Don't redefine sleep and usleep.
37 * coop.c (sleep, usleep): Remove declarations; we don't use or
38 redefine these any more.
39 (scm_thread_usleep, scm_thread_sleep): New functions which do the
40 job of usleep and sleep in a thread-friendly way. We can use
41 these in the rest of Guile. Define versions for systems both with
42 and without iselect.
43 * threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
44 * scmsigs.c (usleep): Clean up oddities declaring usleep; since
45 we're just using it, not redefining it, we can use a K&R style
46 declaration here.
47 (sleep): Declare this, too, if the system hasn't.
48 (scm_sleep, scm_usleep): Use scm_thread_sleep and
49 scm_uthread_sleep if they're available; otherwise, just call the
50 system functions.
51 * scmconfig.h.in: Regenerated.
52
53 * coop.c (scm_thread_sleep): Make `slept' an unsigned long.
54
55 * coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
56
57 1998-10-12 Jim Blandy <jimb@zwingli.cygnus.com>
58
59 * threads.c: Doc fix.
60
61 The argument type of usleep varies from system to system,
62 as does the return type. We really shouldn't be redefining usleep
63 at all, but I don't have time to clean that up before the 1.3.
64 release. It's on the schedule for afterwards. (Thanks to Julian
65 Satchell.)
66 * coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
67 definition.
68 * scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
69 * scmconfig.h: Regenerated.
70
71 * simpos.c (scm_software_type): Procedure deleted. This isn't the
72 right way to handle system variation. Autoconf's approach is the
73 way and the light.
74 * simpos.h (scm_software_type): Declaration deleted.
75
76 * script.c (scm_find_executable): Don't test if unix is #defined
77 here; first, NetBSD doesn't #define it, and second, it's the wrong
78 way to go about these things. (Thanks to Perry Metzger.)
79 (dld_find_executable): Delete this MSDOS support code. This isn't
80 the way we want to support this; it needs to be rethunk at a
81 larger scale.
82
83 * genio.c (scm_do_read_line): Don't just politely check that the
84 line was either non-empty or EOF. Abort if it's empty and not
85 EOF.
86
87 1998-10-11 Jim Blandy <jimb@zwingli.cygnus.com>
88
89 * scmconfig.h.in: Regenerated.
90
91 * libguile.h: Don't omit the dynamic linking functions. (Thanks
92 to Greg Badros.)
93
94 * genio.c (scm_do_read_line): Count lines correctly when the file
95 doesn't end in a newline.
96
97 1998-10-10 Jim Blandy <jimb@zwingli.cygnus.com>
98
99 * genio.c (scm_do_read_line): Maintain the line count correctly.
100 (Thanks to Harvey J. Stein and Greg Harvey.)
101
102 * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
103 requires ANSI now.
104
105 * numbers.c (big2str): Protect t from garbage collection until
106 we're done. (Thanks to Gary Houston.)
107
108 1998-10-09 Jim Blandy <jimb@zwingli.cygnus.com>
109
110 * Makefile.am (libguile_la_LDFLAGS): Increment shared library
111 version number.
112 * Makefile.in: Regenerated.
113
114 * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
115 scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
116 SCM_P macro.
117
118 Do magic to mix reads and writes on stdio FILE-based ports.
119 (Thanks to Christian Lynbech.)
120 * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
121 New macros.
122 (pre_read, pre_write): New functions.
123 (local_fgetc, local_fgets, local_ffwrite, local_fputc,
124 local_fputs): Call them.
125 (local_fflush): Mark the port as ready for reading and writing.
126 (scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
127 flags on new port objects. This might not be accurate --- who
128 knows what state the FILE * is in when we get it --- but it won't
129 do extraneous calls to fflush or fseek, so it's no worse than the
130 behavior before this change.
131 * ports.h: Add comment.
132
133 Centralize the creation of port objects based on stdio FILE * in
134 fports.c; don't just throw them together anywhere.
135 * fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
136 what the rest of Guile wants. Don't set the revealed count;
137 that's only appropriate for stdin, stdout, stderr.
138 (scm_standard_stream_to_port): This function does set the revealed
139 count.
140 * init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
141 not scm_stdio_to_port.
142 * filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
143 * fports.c (scm_open_file): Same.
144 * posix.c (scm_pipe): Same.
145 * socket.c (scm_sock_fd_to_port): Same.
146 * ioext.c (scm_fdopen): Same.
147 (scm_freopen): Moved from here to...
148 * fports.c (scm_freopen): ... here. This is really something that
149 munges the internals of an fport, so it should go here.
150 * fports.h (scm_stdio_to_port): Adjust prototype.
151 (scm_standard_stream_to_port, scm_freopen): New protoypes.
152 * ioext.h (scm_freopen): Prototype removed.
153
154 * filesys.c (set_element, get_element): This can work on both pipe
155 and file ports, so use SCM_FPORTP to typecheck, instead of testing
156 for scm_tc16_fport.
157
158 * scmconfig.h.in: Regenerated.
159
160 Change the definition of the functions in scm_ptobfuns so that
161 they get passed the port object, not the port's stream.
162 * ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
163 * gc.c (scm_gc_sweep): Pass the port itself to the free function.
164 * genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
165 Pass the port itself to the scm_ptobs function.
166 * ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
167 scm_generic_fgets): Same.
168 (putc_void_port, puts_void_port, write_void_port, flush_void_port,
169 getc_void_port, fgets_void_port, close_void_port): Just change the
170 argument names; these functions don't really do anything.
171 * fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
172 local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
173 port as an argument, and use SCM_STREAM to get the stdio FILE *.
174 Also, use prototyped definitions, and get rid of the extra
175 declarations.
176 (scm_fptob, scm_pipob): We don't need casts here any more.
177 * strports.c (prinstpt): Use prototype declarations.
178 (stputc, stwrite, stputs, stgetc): Take the port as an argument,
179 and use SCM_STREAM to get the string info. Also, use prototyped
180 definitions, and get rid of the extra declarations.
181 * vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
182 noop0): Same.
183
184 * ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
185 prototype; it's okay (preferred, even!) to use ANSI C in Guile.
186
187 * fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
188 scm_fgets, for consistency.
189 (scm_fptop, scm_pipob): References updated.
190
191 1998-10-08 Jim Blandy <jimb@zwingli.cygnus.com>
192
193 Include the source location in error messages for scripts.
194 * init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
195 stack is still there when we catch the error.
196 * throw.c (handler_message): If we are handling an error with a
197 message, then put together the proper arguments and call
198 scm_display_error, instead of scm_display_error_message. That
199 displays source location, if it can find it.
200
201 1998-10-07 Jim Blandy <jimb@zwingli.cygnus.com>
202
203 * gc.c (scm_unprotect_object): Change this so that calls to
204 scm_protect_object and scm_unprotect_object nest properly.
205 (scm_protect_object): Doc fixes.
206
207 * strings.c (scm_string_set_x): Require the argument to be a
208 writable string, not a substring or a symbol.
209 * strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
210 (Thanks to John Redford and Charbel Jacquin.)
211
212 * scmconfig.h.in: Regenerated; ../acconfig.h has changed.
213
214 1998-10-07 Jim Blandy <jimb@totoro.red-bean.com>
215
216 * eval.c (safe_setjmp): Remove this misunderstanding.
217 (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
218 ordinary setjmp.
219
220 1998-10-06 Jim Blandy <jimb@zwingli.cygnus.com>
221
222 * libguile.h: Mark these as C declarations, for compilation by C++
223 compilers.
224
225 * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
226 __cplusplus clause. I seriously doubt this ever worked the way
227 the author seems to have intended.
228
229 1998-10-05 Jim Blandy <jimb@zwingli.cygnus.com>
230
231 Utterly needless cleanups to hopelessly messy code.
232 * ports.c: Doc fixes.
233 (scm_fflush): Moved to ...
234 * genio.c (scm_fflush): ... here, amongst all the other port
235 method invocation functions.
236 * genio.h, ports.h: The prototype moves too.
237
238 1998-10-04 Jim Blandy <jimb@zwingli.cygnus.com>
239
240 * backtrace.c (display_error_body): The current frame does not
241 always have a parent frame; consider a function called directly
242 from the MAIN_FUNC passed to scm_boot_guile. (Thanks to Maciej
243 Stachowiak.)
244
245 * alloca.c (alloca): Undo yesterday's changes, and simply call
246 malloc directly for storage, and abort if we don't get what we
247 want. The situation is much simpler --- just call malloc. Emacs
248 has bizarre/evil requirements (signal handlers might malloc unless
249 you set this global flag, so you have to set the flag around all
250 calls to malloc) which we are certainly not going to conform to,
251 so we can do the simple and obvious thing.
252
253 * coop.c (coop_condition_variable_wait): Make this function
254 static. It's only useful internally --- you should never just
255 wait on a condition variable.
256 * coop-defs.h (coop_condition_variable_wait): Delete prototype.
257
258 1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
259
260 * unif.c (scm_array_set_x): Accept any kind of number as an
261 element for a uniform vector of doubles. This is more consistent
262 with Scheme's view of numbers. (Thanks to Miroslav Silovic.)
263
264 * alloca.c: Use scm_must_malloc to obtain storage. Hopefully this
265 works; I can't conveniently test it myself. (Thanks to Dvid
266 Tillman for the bug report.)
267
268 * init.c: Doc fixes.
269
270 * init.c (invoke_main_func): Load the startup files (boot-9.scm)
271 from here, not from scm_compile_shell_switches (which is a pretty
272 dumb place to do it).
273 (scm_load_startup_files): New function.
274 (scm_ice_9_already_loaded): Variable moved to here from script.c.
275 * script.c (scm_compile_shell_switches): Don't load the startup
276 files here.
277 (scm_ice_9_already_loaded): Variable moved.
278 * init.c (scm_load_startup_files): Prototype for new function.
279 * gh_init.c (gh_enter): Doc fix.
280
281 1998-10-03 <jimb@savonarola.red-bean.com>
282
283 Some anti-warning changes from Greg Harvey.
284 * gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
285 warnings when it doesn't understand our NORETURN declarations in
286 error.h.
287 * posix.c (scm_mknod): Similar.
288
289 1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
290
291 * posix.c (scm_getpwuid): If we can't find an entry, return our
292 own message, instead of using scm_syserror --- the getpwMUMBLE
293 functions don't set `errno' to anything interesting.
294
295 1998-10-03 <jimb@savonarola.red-bean.com>
296
297 Get rid of warnings from the cooperative threading system.
298 * threads.h (scm_single_thread_p, scm_yield,
299 scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
300 scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
301 scm_wait_condition_variable, scm_signal_condition_variable): Add
302 prototypes for these Scheme-visible functions.
303 * coop-defs.h (coop_next_runnable_thread,
304 coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
305 Prototypes for these here, even though they're from iselect.c.
306 (coop_condition_variable_wait, coop_join): Add prototypes.
307 * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
308 scm_threads_free_condvar): Make these smob functions static.
309 * coop-threads.h (coop_init): Give this a real prototype.
310 * coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
311 (coop_next_runnable_thread): No need to provide prototype; it's in
312 coop-defs.h.
313
314 * scmconfig.h.in: .detarenegeR
315
316 * iselect.c, threads.c: Doc fixes.
317
318 1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
319
320 * Makefile.in: Regenerated with a patched automake, to get
321 dependency generation right when using EGCS.
322
323 * inet_aton.c (inet_aton): Add prototype, to remove compiler
324 warning. (Thanks to Robert Pluim.)
325
326 * inet_aton.c (inet_aton): Reassure the compiler that the
327 arguments to the <ctype.h> macros are all unsigned characters, not
328 signed characters.
329
330 1998-10-03 <jimb@savonarola.red-bean.com>
331
332 Getting rid of more warnings...
333 * iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
334 today's change to ../configure.in.
335 * scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
336 * scmconfig.h.in: Regenertaded.de.,.__
337 * stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
338 (scm_localtime, scm_mktime): Use a const char * to manipulate the
339 time zone name.
340
341 * readline.c: Doc fix.
342 (rl_cleanup_after_signal, rl_free_line_state): Make these static.
343 * readline.h (scm_filename_completion_function): Add prototype.
344 (scm_init_readline): Make this into a prototype.
345
346 * readline.c (scm_filename_completion_function): Use SCM_PROC to
347 declare this, instead of calling scm_make_subr manually.
348
349 1998-10-02 <jimb@savonarola.red-bean.com>
350
351 * readline.h (scm_init_readline): Add prototype for this.
352 (scm_init_readline): Make this a real prototype.
353
354 1998-09-30 Jim Blandy <jimb@zwingli.cygnus.com>
355
356 Warning fixes from Maciej Stachowiak:
357 * backtrace.h (scm_display_application, scm_backtrace): Add
358 prototypes.
359 * debug.c (scm_m_start_stack): Make this function static.
360 * fluids.h (scm_fluid_p): Add prototype.
361 * procprop.c (scm_i_procedure_arity): Make this function static.
362 * regex-posix.c (scm_regexp_error_msg): Make this function static.
363 * regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
364 * root.h (scm_dynamic_root): Add external prototype.
365 * scmsigs.h (scm_usleep): Add external prototype.
366 * script.h (scm_init_script): Use prototype, not K&R decl.
367 * stacks.h (scm_stack_id): Add external prototype.
368 * symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
369
370 1998-09-30 Mark Galassi <rosalia@cygnus.com>
371
372 * gh.h: took out the definitions of vset and vref, since they are
373 replaced by the proper vector routines that correspond to the R4RS
374 procedures.
375
376 1998-09-29 Jim Blandy <jimb@totoro.red-bean.com>
377
378 * snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
379 these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
380 third argument, a C expression that should result in a SCM value,
381 which is used to initialize the variable. Reimplemented
382 SCM_CONST_LONG in terms of SCM_VCELL_INIT. (Thanks to Maciej
383 Stachowiak.)
384
385 * version.h (scm_libguile_config_stamp): Add prototype.
386 (From Maciej Stachowiak.)
387
388 1998-09-26 Jim Blandy <jimb@zwingli.cygnus.com>
389
390 * eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
391 (force 9) is tried. (Thanks to Karl M. Hegbloom.)
392
393 1998-09-06 Jim Blandy <jimb@zwingli.cygnus.com>
394
395 * print.c (scm_iprin1): Rather than having one i, and using it in
396 several places, declare a fresh i local to each block where it is
397 used, and give it a signedness appropriate to its use in each case.
398 (scm_iprlist): Same.
399
400 * print.c (scm_iprin1): Add cast to avoid unsigned/signed
401 comparison warnings.
402
403 * print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
404 signed/unsigned clashes.
405
406 * posix.h (scm_tmpnam): Added prototype.
407
408 * objects.h (scm_set_object_procedure_x, scm_make_class_object,
409 scm_make_subclass_object): Add external prototypes.
410
411 * numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
412 comparison is okay here.
413
414 * numbers.c (scm_istr2int): Add cast; len is known to be positive.
415
416 * numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
417 (true, but confusing) fact that -1 == ((unsigned) 0 - 1).
418
419 * numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
420 signed/unsigned.
421
422 * load.c (swap_port): Make this function static.
423
424 * load.c (scm_search_path): Make max_path_len and max_ext_len
425 unsigned, since they're compared against string sizes.
426
427 * load.c (init_build_info): Make i unsigned.
428
429 * ioext.h (scm_read_line): Add prototype.
430
431 * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
432 scm_hash_fn_remove_x): Make hash bucket index local variable k
433 unsigned. Use scm_ulong2num to pass it to SCM_ASSERT as
434 accurately as possible.
435
436 * gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
437 comparisons, and range checking to make sure those casts are
438 harmless.
439
440 * stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
441 signed/unsigned comparisons.
442
443 * smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
444 avoid signed/unsigned comparisons.
445 * smob.h (scm_numsmob): Change extern declaration to match.
446
447 * ports.c (scm_numptob): Make this an int, not an scm_sizet, to
448 avoid signed/unsigned comparisons.
449 * ports.h (scm_numptob): Change extern declaration to match.
450 (scm_current_load_port, scm_set_port_line_x,
451 scm_set_port_column_x): New prototypes.
452
453 * gsubr.c (GSUBR_TEST): Don't #define this. Nobody's using the
454 test code, and it causes warnings.
455
456 * gh.h (gh_int2scmb, gh_uniform_vector_length,
457 gh_uniform_vector_ref): Added prototypes.
458
459 * Makefile.am (libguile_la_SOURCES): Include Scheme-level
460 debugging support unconditionally. That's backtrace.c, stack.c,
461 debug.c, and srcprop.c.
462 (EXTRA_libguile_la_SOURCES): Omit those from here.
463 * Makefile.in: Regenerated.
464
465 1998-08-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
466
467 * options.c (scm_options): Bugfix: Allow empty list of options!
468
469 * debug.c, debug.h (scm_single_step): Removed.
470 (scm_with_traps): New procedure. This procedure could easily be
471 written in Scheme but needs to be highly optimized.
472
473 * eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
474
475 * eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
476 Check SCM_TRAPS_P before trapping.
477
478 1998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
479
480 Changes to avoid signed/unsigned comparison warnings.
481 * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
482 (scm_gc_sweep): Make n and j local to the blocks they're used in,
483 so they can have appropriate types for each application. Make i
484 signed. Use initializers in some spots. I'll probably pay for
485 all this tweaking.
486 (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
487 (scm_must_realloc): Make nm unsigned.
488 (init_heap_seg): Make new_seg_index and n_new_objects signed.
489 (scm_init_storage): Use prototype-style definition, and make the
490 argument unsigned.
491 * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
492 scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
493
494 * filesys.c (scm_readlink): Make local vars rv and size ints, to
495 avoid signed/unsigned comparison warnings, and because the return
496 value of readlink may be -1. Don't bother casting the third
497 argument to readlink.
498
499 * filesys.c (scm_dirname, scm_basename): Move these to their own
500 page, at the end of the file.
501 * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
502
503 * eval.h (scm_eval_options_interface): Add external prototype for this.
504 * eval.c (scm_eval_options_interface): Use prototype-style def'n.
505
506 * eval.c (scm_lookupcar1): Make this static.
507
508 * dynl.h (scm_registered_modules, scm_clear_registered_modules):
509 Make these prototype declarations, not K&R-style.
510
511 * chars.c (scm_tables_prehistory): Add cast, to remove signed/
512 unsigned comparison warning.
513
514 * appinit.c: File removed. It had a single function in it, empty,
515 whose reason for existence is explained in no documentation or
516 comment. I think it's there as a default for some Tcl-style
517 initialization, but Tcl abandoned that approach a while ago.
518 * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
519 (BUILT_SOURCES): Remove appinit.x.
520 * Makefile.in: Regenerated.
521
522 1998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
523
524 * Makefile.in: Regenerated using the last public version of
525 automake, not the hacked Cygnus version.
526
527 1998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
528
529 Remove Totoro kludge.
530 * Makefile.in, scmconfig.h.in: Regenerated.
531 * init.c, readline.c: Don't check if TOTORO is #defined.
532
533 1998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
534
535 * Makefile.am: Adjust for new thread configuration system.
536 (INCLUDES): Include the value of THREAD_CPPFLAGS.
537 (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
538 THREAD_LIBS.
539 (THREAD_LIBS): Definition deleted; automake will generate such
540 things automatically.
541 * Makefile.in: Regenerated.
542
543 1998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
544
545 Simplify smob and port marking; set the mark bit in the generic
546 marking code, and make marker routines only responsible for
547 turning up outgoing pointers.
548 * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
549 before calling the marking function. Don't call the marking
550 function if it's zero.
551 * markers.c (scm_mark0): Just return #f. This function isn't
552 necessary at all now, but it's harmless to call it. We'll leave
553 it in so other folks' code doesn't croak at link time.
554 (scm_markcdr): Don't call SCM_SETGC8MARK.
555 * async.c (mark_async): Don't call SCM_SETGC8MARK.
556 * dynl.c (mark_dynl_obj): Same.
557 * root.c (mark_root): Same.
558 * srcprop.c (marksrcprops): Same.
559 * unif.c (markra): Same.
560 * variable.c (scm_markvar): Same.
561 * ports.c (scm_markstream): Same.
562 (void_port_ptob): Specify zero for our marking function.
563 * debug.c (debugobjsmob): Same.
564 * dynwind.c (guardsmob): Same.
565 * filesys.c (dir_smob): Same.
566 * fluids.c (fluid_smob): Same.
567 * fports.c (scm_fptob, scm_pipob): Same.
568 * mallocs.c (mallocsmob): Same.
569 * regex-posix.c (regex_t_smob): Same.
570 * smob.c (freecell, flob, bigob): Same.
571 * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
572 * throw.c (jbsmob, lazy_catch_funs): Same.
573
574 1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
575
576 * eval.c (scm_copy_tree): Reverted last change: `eval' uses
577 scm_copy_tree on code in order not to let memoized code to leak
578 out. Thus, scm_copy_tree needs to copy vectors as well since
579 quasiquote can introduce evaluated code also inside vector
580 constants.
581
582 1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
583
584 * eval.c (scm_copy_tree): Removed ability to copy vectors.
585
586 * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
587 gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
588 gh_doubles2dvect.)
589
590 * unif.c: Say that ivect and uvect are of type signed and unsigned
591 long instead of int in commentary so that it correctly describes
592 the implementation.
593
594 1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
595
596 * stime.c: Removed declaration of strptime. (It should be
597 declared by the system headers. If it turns out that some systems
598 don't, we'll handle that then.) (Thanks to Greg Troxel.)
599
600 * stime.h: Renamed TIMEH --> STIMEH
601
602 * backtrace.c (scm_display_error, scm_display_backtrace): In order
603 to increase portability, don't use structure assignment.
604 (Thanks to Nicolas Neuss.)
605
606 * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
607 portability.
608 (finalize_fd_sets): Added empty statement after last case label.
609 (Thanks to Nicolas Neuss.)
610
611 * gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
612 Nicolas Neuss.)
613
614 Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
615
616 * init.c, readline.c: OK, I won't have these readline.x bug
617 reports anymore. We've had them since April. The current reason
618 is a completely unintelligible failure of totoro.red-bean.com to
619 do the test for rl_getc_function in libreadline correctly. This
620 kludge overrides the test if we're on totoro so that the snapshot
621 generation process can work.
622
623 * readline.c: Define a strdup replacement if not existent on system.
624
625 1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
626
627 * vectors.c, vectors.h (scm_make_vector): Removed third argument.
628 This change makes scm_make_vector R5RS compatible. We cannot keep
629 the third argument since people want to be able to deduce the form
630 of the C function call only by looking at R5RS. (At the same time
631 we have removed some unnecessary complexity!)
632
633 * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
634 net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
635 stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
636 argument in call to scm_make_vector.
637
638 1998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
639
640 * numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
641 This macro is useful in applications.
642
643 1998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
644
645 * load.c (scm_internal_parse_path): Renamed from scm_parse_path.
646 (scm_parse_path, scm_search_path): New Scheme level procedures.
647
648 * load.h (scm_internal_parse_path, scm_parse_path,
649 scm_search_path): Declared.
650
651 1998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
652
653 * filesys.c (dirname, basename): New procedures.
654
655 * init.c (scm_boot_guile_1): Removed condition around
656 scm_init_options.
657
658 * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
659 new data type (guards) for representation of C level guards and
660 data on the wind chain.
661 (scm_internal_dynamic_wind): New function.
662
663 * dynwind.h: Declare scm_internal_dynamic_wind.
664
665 * root.h (scm_root_state): Added scm_cur_loadp.
666
667 * root.c (mark_root): Added comment about cur_loadp.
668
669 * load.c: #include "dynwind.h";
670 (scm_primitive_load): Use scm_inner_dynamic_wind to update
671 scm_cur_loadp.
672
673 * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
674
675 * ports.c (current-load-port): New procedure.
676
677 1998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
678
679 * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
680 not a tty, return #f.
681
682 * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
683 to Julian Satchell and Roland Kaufmann.)
684
685 * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
686 (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
687
688 1998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
689
690 * debug.h, debug.c (scm_start_stack): New function. Implements
691 the guts of old scm_m_start_stack.
692
693 * debug.c (scm_m_start_stack): Use scm_start_stack.
694
695 * init.c (scm_start_stack, scm_restart_stack): Renamed to
696 start_stack and restart_stack. (These have static scope.)
697
698 1998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
699
700 * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
701 readline functions to come in release 2.3. (Thanks to Chet
702 Ramey.)
703 (handle_errors): Use the above functions.
704
705 1998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
706
707 * readline.c: Improvements for readline support: Handle errors
708 better; Implement before-read-hook.
709
710 1998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
711
712 * init.c (scm_boot_guile_1), readline.c: Test for
713 HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
714 assure that we have version >= 2.1.)
715
716 1998-05-11 Mikael Djurfeldt <mdj@kenneth>
717
718 * readline.c (scm_readline): Defer interrupts while we're calling
719 readline.
720
721 * readline.c (scm_add_history): Bugfix: Do strdup before giving
722 away the string to add_history.
723 (completion_function): Do completion for readline. (Thanks to
724 Andrew Archibald.)
725 (scm_filename_completion_function): New procedure: Filename
726 completer.
727 (current_input_getc): New function. Use this one instead of
728 standard getc from readline.
729
730 * throw.c, throw.h (scm_handle_by_throw): New function: This
731 handler throws errors to next handler on the dynwind chain.
732
733 1998-05-09 Mikael Djurfeldt <mdj@kenneth>
734
735 * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
736 used.
737
738 1998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
739
740 * procprop.c (scm_i_procedure_arity): New function. Returns arity
741 of procedure.
742 (scm_procedure_properties): Modified to return arity together with
743 other properties.
744 (scm_procedure_property): Added the read-only property `arity'.
745 (scm_set_procedure_property_x): It is an error to set the `arity'
746 property.
747
748 * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
749 prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
750
751 * procprop.h (scm_sym_arity): New symbol.
752
753 * objects.c (scm_set_object_procedure_x): New procedure: Use this
754 to set the dispatch procedure of an operator or entity object.
755
756 * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
757 Made procedure slots read-only.
758
759 * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
760 scm_tcs_cons_gloc case in zero args switch; Fixed args
761 construction for operators in scm_tcs_cons_gloc case in two args
762 switch.
763
764 1998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
765
766 * fluids.c: Removed use of assert.h (in order to avoid
767 __eprintf).
768
769 * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
770
771 * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
772
773 * eval.c (SCM_CEVAL): Do more thorough argument checking. This
774 change makes the evaluator safer at the cost of evaluation speed.
775 It handles the case when the user has added a non-immediate
776 improper end of the application form, e.g., `(+ 0 . x)'.
777 (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
778 minimize the extra cost as much as possible. The new code is
779 enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
780 problem with structs planted directly in the code (e.g. by a
781 macro). This no longer causes segmentation fault. (Thanks to
782 Eric Hanchrow.)
783
784 * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
785 arg `proc' in order to be able to throw errors; New argument
786 checking code.
787
788 * Removed extra #include "debug.h"
789
790 1998-04-25 Mikael Djurfeldt <mdj@kenneth>
791
792 * scmsigs.c: Declare usleep as returning void on some systems.
793 (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
794 Satchell.)
795
796 * coop.c (usleep): Return void on some systems.
797
798 1998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
799
800 * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
801
802 * coop.c: Changed return type of usleep to int.
803
804 * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
805 isn't found in the OS.
806
807 * iselect.h: #define scm_internal_select select if GUILE_ISELECT
808 isn't enabled. (Thought that I had made this change ages ago...)
809
810 * iselect.c: Declare bzero if not defined by OS.
811
812 1998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
813
814 * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
815 condition. (Thanks to John Tobey.)
816
817 * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
818 scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
819 A section.
820
821 * __scm.h: Start the long-term project of moving to POSIX threads.
822 Phase 1: Classification of all critical sections.
823 (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
824 for A sections. (See comments in __scm.h for details.)
825
826 * dynl.c: Only check that HAVE_DLOPEN is defined before loading
827 dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
828
829 1998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
830
831 * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
832 cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
833 (libpath.h, versiondat.h): Replaced dependency on Makefile with
834 dependencies on $(srcdir)/Makefile.in
835 $(top_builddir)/config.status in order to avoid circularity.
836
837 * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
838 from argc if argc was 0 initially.
839
840 * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
841 in generation of libpath.h.
842
843 1998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
844
845 * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
846 libguile from 2 to 3.
847
848 1998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
849
850 * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
851
852 1998-04-13 Mikael Djurfeldt <mdj@kenneth>
853
854 * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
855 scm_set_port_column_x, scm_port_filename,
856 scm_set_port_filename_x): Removed optional arguments. Added
857 proper argument checking.
858
859 * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
860 stack size in machine words.
861
862 * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
863 rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
864 to Ole Myren Röhne.)
865
866 1998-04-12 Mikael Djurfeldt <mdj@kenneth>
867
868 * socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
869 UNIX_DOMAIN_SOCKETS. (Thanks to Lauri Alanko.)
870
871 * gc.c (scm_gc_sweep): Count cells correctly. (Thanks to Ben
872 Caradoc-Davies.)
873
874 * eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
875 procedure apply: Copy argument lists before pushing them unto the
876 environment so that the environment won't get mutated due to
877 manipulation of procedure arguments. This should perhaps be
878 regarded as a temporary solution until someone finds a more
879 efficient one. (Thanks to Maciej Stachowiak.)
880
881 1998-04-10 Mikael Djurfeldt <mdj@kenneth>
882
883 * script.c (scm_compile_shell_switches): Use "guile" as default
884 zero arg if argc is NULL.
885
886 1998-04-02 Mikael Djurfeldt <mdj@nada.kth.se>
887
888 * script.c (scm_compile_shell_switches): Allow NULL argv if argc
889 is zero. (Thanks to Dirk Herrmann.)
890
891 1998-03-30 Mikael Djurfeldt <mdj@nada.kth.se>
892
893 * ports.c (scm_add_to_port_table): First line is now line 0
894 (was 1). (Interface changed according to suggestion by Per
895 Bothner.)
896
897 * backtrace.c (display_header): Add 1 to line and column numbers
898 when presenting them to the user.
899
900 * eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
901 from debug.c --> eval.c
902
903 * eval.h, eval.c (scm_eval_options_interface): New options
904 interface.
905 (SCM_EVAL_STACK): New option: Size of newly created stacks,
906 i.e. stacks for new threads.
907
908 * coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK.
909
910 * eval.c (unsafe_setjmp): Removed with #if 0.
911
912 * gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
913 warning.
914
915 * eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
916 to avoid compiler warnings.
917
918 * dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
919
920 1998-03-28 Mikael Djurfeldt <mdj@nada.kth.se>
921
922 * throw.c (handler_message): Print message on current error port
923 instead of default error port. (Thanks to Maciej Stachowiak.)
924
925 Mon Mar 2 21:35:02 1998 Gary Houston <ghouston@actrix.gen.nz>
926
927 * ports.c (scm_add_to_port_table): allocate in units of
928 struct scm_port_table *, not struct scm_port_table.
929 * posix.c (scm_close_pipe): remove the port from the port table
930 and mark as closed.
931 Thanks to Rob Engle for both fixes.
932
933 1998-02-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
934
935 * iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
936 coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
937
938 1998-02-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
939
940 * throw.h: Removed jmpbuf arg in scm_catch_body_t.
941
942 * backtrace.c (display_error_body, display_backtrace_body),
943 coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
944 gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
945 (invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
946 scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
947 functions.
948
949 * throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
950 don't receive the jmpbuf arg anylonger.
951 (scm_catch): Don't accept a #f tag.
952 (scm_throw): Check that key is a symbol.
953 (scm_ithrow): Don't take a jmpbuf as key. Don't check key arg.
954
955 Fri Jan 30 22:28:07 1998 Mikael Djurfeldt <mdj@kenneth>
956
957 * async.c (async_pending): Removed declaration.
958
959 1998-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
960
961 * dynwind.c (scm_wind_chain): New debug function.
962
963 * coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
964 scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
965 c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
966 extra layer of functions around the body and handler of a thread.
967 This extra layer makes sure that the handler is called in the
968 dynamic context of the surround (= empty dynwind list), but under
969 the *dynamic root* of the body. We can not use the dynamic root
970 of the surround since that root belongs to another thread => stack
971 is not handled correctly. It may seem ugly to use this extra
972 layer, but the extra cost in terms of execution time is really
973 negligible compared to the total amount of time required to create
974 a thread, and it would reduce maintainability to duplicate the
975 crucial and complicated steps performed by cwdr.
976
977 * __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
978 (SCM_ALLOW_INTS): Added thread switching code before interrupts
979 get re-enabled. The important effect of this is that interrupts
980 are blocked during thread switching so that thread data structures
981 don't risk getting messed up by an unfortunate signal.
982 (SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
983 seems to do more aggressive optimization which actually move
984 instructions around in these macros in a fatal way. Therefore:
985 Introduce Anthony's SCM_FENCE macro! (And I who thought he was
986 just superstitious...)
987 (SCM_TICK): Maybe do a context switch and take care of asyncs.
988 This macro should be used instead of SCM_ASYNC_TICK since the
989 latter doesn't do context switches any more.
990
991 * eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
992 instead of SCM_ASYNC_TICK.
993
994 * coop.c, iselect.c: Since thread switches are now performed with
995 interrupts masked, we can't use the old mechanism of delivering
996 signals immediately when they arrive. Signals must instead be
997 delivered when the asyncs run *after* the end of the critical
998 section in scm_internal_select. But this also means after context
999 switch so that the signal will be delivered to a different thread.
1000 To avoid this, I have changed the protocol of
1001 coop_wait_for_runnable_thread and friends so that they are allowed
1002 to return the original thread. So, if a signal arrives during
1003 scm_internal_select, we won't any longer be forced do a context
1004 switch, but can remain in the same thread and deliver the signal
1005 to it.
1006
1007 * async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
1008 scm_asyncs_pending and made it global.
1009
1010 * iselect.c: Small fixes.
1011
1012 * coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
1013 coop_condition_variable_init, coop_condition_variable_wait,
1014 coop_condition_variable_signal): Changed return type from `void'
1015 to `int'. This is to adhere closer to the pthreads interface.
1016 This, in turn, is part of an attempt to provide C versions of the
1017 mutex and condition variable primitives which can be part of a
1018 frontend to COOP or pthreads.
1019
1020 * coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
1021 coop_condition_variable_destroy): New functions.
1022
1023 * coop-threads.c (scm_wait_condition_variable): Use
1024 coop_condition_variable_wait_mutex.
1025
1026 * coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
1027 Definitions moved to coop-defs.h.
1028
1029 * coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
1030 scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
1031 scm_cond_destroy): New C interface to mutecis and cond vars.
1032
1033 1998-01-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1034
1035 * error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7.
1036
1037 * iselect.c: Now several threads can wait on the same file
1038 descriptor. The behaviour is compatible with OS select: All
1039 threads waiting for the fd return with the same status.
1040
1041 1998-01-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1042
1043 * coop-threads.c, threads.h (scm_spawn_thread): New function.
1044 Can spawn a thread from application C code.
1045
1046 1998-01-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1047
1048 * gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
1049 gh_doubles2scm): New functions.
1050
1051 1998-01-15 Mark Galassi <rosalia@nis.lanl.gov>
1052
1053 * gh_eval.c (gh_eval_str): cleanup -- threw out the old
1054 commented-out version of gh_eval_str()
1055
1056 Sun Jan 4 02:23:36 1998 Gary Houston <ghouston@actrix.gen.nz>
1057
1058 * socket.c (scm_bind): free soka after use.
1059
1060 Sat Jan 3 20:55:07 1998 Gary Houston <ghouston@actrix.gen.nz>
1061
1062 * stime.c (tzvar): new variable.
1063 (setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
1064 avoid memory leaks when allocating.
1065
1066 1998-01-03 Jim Blandy <jimb@totoro.red-bean.com>
1067
1068 * iselect.h: Some systems require <sys/types.h> to get the FD_SET
1069 macro definitions.
1070
1071 * gc.c, tags.h: Doc fixes.
1072
1073 1998-01-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1074
1075 * eval.c (macro-eval!): Removed. This function was a design bug.
1076 It allowed memoized code to leak out to the scheme level. Most
1077 things that you could do with `macro-eval!' can be done with
1078 `local-eval'.
1079
1080 1997-12-20 Tim Pierce <twp@skepsis.com>
1081
1082 * fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
1083 scm_fgets now depends on ftell(3) to know how many bytes were
1084 read. Sigh.
1085
1086 1997-12-15 Tim Pierce <twp@skepsis.com>
1087
1088 * gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
1089 dealing with strings.
1090
1091 1997-12-13 Tim Pierce <twp@skepsis.com>
1092
1093 Make %read-line more suitable for implementing read-line efficiently.
1094 * ioext.c (scm_read_line): Strip the terminating newline from a
1095 string, and return a cons of the string and its terminator.
1096
1097 * fports.c, fports.h (scm_fgets): Add `len' argument. The length
1098 of the string that is read is stored in this memory location.
1099 * ports.c, ports.h (scm_generic_fgets, fgets_void_port): Same.
1100 * genio.c, genio.h (scm_do_read_line): Update caller.
1101 * ports.h (scm_ptobfuns): Update typedef.
1102 * fports.c (scm_fptob, scm_pipob): Update struct.
1103
1104 1997-12-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1105
1106 * filesys.c (set_element): Return file descriptor.
1107 (fill_select_type): Return the highest file descriptor.
1108 (scm_select): Tell select about the highest file descriptor. On
1109 some systems the SELECT_SET_SIZE can be as much as 128 bytes.
1110 Therefore the extra overhead for calculating the maximum fd seems
1111 to be more than compensated. Is this correct? In any case,
1112 scm_internal_select will be much faster with this info.
1113 (scm_select, fill_select_type, set_element): Don't accept any kind
1114 of object in the file descriptor list or vector.
1115
1116 1997-12-07 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1117
1118 * iselect.c (finalize_fd_sets): Bugfix.
1119
1120 1997-12-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1121
1122 * filesys.c (scm_select): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS
1123 when using scm_internal_select (since we might switch to another
1124 thread).
1125
1126 Sun Dec 7 01:43:56 1997 Gary Houston <ghouston@actrix.gen.nz>
1127
1128 * simpos.c (scm_system): always define: use sysmissing if not
1129 available. Check for HAVE_SYSTEM instead of _Windows (does
1130 Windows lack system or does it have an unusable one?).
1131 Check for error conditions -1 and 127. Use SCM_DEFER_INTS.
1132 Let the argument be optional: if not supplied, call system(NULL).
1133
1134 * ports.c (scm_close_port): relax the type check from OPPORTP to
1135 PORTP; closing a closed port is allowed.
1136
1137 1997-12-04 Tim Pierce <twp@ppp39.Nantucket.net>
1138
1139 * fports.c (scm_fgets): Return if the last char in a chunk is
1140 newline. When fgets returns a string whose length is `size-1', it
1141 is ambiguous whether a whole line was retrieved, so we must check
1142 explicitly whether a line terminator is present.
1143
1144 1997-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1145
1146 * print.h (SCM_COERCE_OUTPORT): Check that the object is a pair
1147 before taking the CDR. (Thanks to Harald Meland.)
1148
1149 * filesys.c (scm_stat): Slightly optimized.
1150
1151 Wed Dec 3 12:23:06 1997 Jim Blandy <jimb@totoro.red-bean.com>
1152
1153 * ports.c (scm_close_port): Make sure the port is open before
1154 trying to close it.
1155
1156 * guile-snarf.in: Pass args through to gcc in a way that preserves
1157 whitespace boundaries. (Thanks to Greg Badros.)
1158
1159 1997-12-02 Tim Pierce <twp@skepsis.com>
1160
1161 * stacks.c (scm_frame_procedure): Reverse the logic in the return
1162 statement. (Thanks to Doug Evans for pointing this out.)
1163
1164 1997-12-01 Tim Pierce <twp@skepsis.com>
1165
1166 * scmconfig.h.in: Regenerated for USCORE change in ../acconfig.h.
1167
1168 Sun Nov 30 11:29:18 1997 Mikael Djurfeldt <mdj@kenneth>
1169
1170 * coop-defs.h (struct coop_t): Renamed errno --> _errno to prevent
1171 errno macro expansion of this field name. (errno is a C
1172 preprocessor macro on some systems.)
1173
1174 1997-11-29 Tim Pierce <twp@skepsis.com>
1175
1176 * iselect.c: Doc fix.
1177
1178 Sat Nov 29 01:16:53 1997 Mikael Djurfeldt <mdj@kenneth>
1179
1180 * init.c (scm_start_stack): Removed initialization of
1181 scm_the_last_stack_var.
1182
1183 * backtrace.h: Declare scm_the_last_stack_var.
1184
1185 * backtrace.c: Define scm_the_last_stack_var.
1186
1187 * root.c (mark_root): Don't mark the_last_stack_var.
1188
1189 * root.h (scm_root_state): Removed the_last_stack_var.
1190
1191 * throw.c: Added #include "fluids.h"
1192 (ss_handler): `the-last-stack' is now a fluid.
1193
1194 * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
1195 --> the_last_stack_fluid.
1196
1197 * backtrace.c: Added #include "fluids.h"
1198 (scm_init_backtrace): Initialize `the-last-stack' to a fluid.
1199 (scm_backtrace): `the-last-stack' is now a fluid.
1200
1201 * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
1202 after scm_init_fluids.
1203
1204 1997-11-28 Tim Pierce <twp@skepsis.com>
1205
1206 * iselect.c: #ifdef USE_THREADS around thread-related includes.
1207
1208 * dynl-dl.c (sysdep_dynl_func): Check both USCORE and
1209 DLSYM_ADDS_USCORE to decide whether to add an underscore.
1210
1211 1997-11-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1212
1213 * iselect.c (coop_next_runnable_thread,
1214 coop_wait_for_runnable_thread): Disable interrupts so that no
1215 async is executed before a potential error_revive.
1216 (scm_internal_select): Disable interrupts during the parts of the
1217 code which manipulate the sleep queue and the file descriptors.
1218
1219 1997-11-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1220
1221 * Makefile.am: Added iselect.c and iselect.h.
1222
1223 * coop.c (coop_qinit): Initialize fields used by
1224 scm_internal_select.
1225 (coop_qget, coop_qget, coop_tmp_queue): Made global.
1226 (coop_next_runnable_thread): If GUILE_ISELECT enabled, use
1227 replacement in iselect.c.
1228 (coop_mutex_lock, coop_condition_variable_wait, coop_abort,
1229 coop_join): If GUILE_ISELECT enabled, use
1230 coop_wait_for_runnable_thread instead of
1231 coop_next_runnable_thread.
1232 (usleep, sleep): New replacements for system functions if
1233 GUILE_ISELECT is enabled.
1234
1235 * coop-threads.h: Declare coop_wait_for_runnable_thread.
1236
1237 * coop-defs.h (coop_t): Added fields used by scm_internal_select.
1238
1239 * filesys.c: Added #include "iselect.h". Moved FD-macros to
1240 iselect.h. Implement Scheme level `select' using
1241 scm_internal_select. (See NEWS.)
1242
1243 * genio.c (scm_getc): Block with scm_internal_select. (See NEWS.)
1244
1245 * init.c: Call scm_init_iselect.
1246
1247 * iselect.h, iselect.c: New files. Implements
1248 scm_internal_select. (See NEWS.)
1249
1250 1997-11-27 Tim Pierce <twp@skepsis.com>
1251
1252 Fix a memory leak in scm_read_line and a type cast bug in the ptob.
1253 * fports.c (scm_fgets): Use malloc/free rather than scm_must_malloc
1254 and scm_must_free, since ultimately the string returned will be copied
1255 by scm_makfrom0str anyway. Also, read any characters that may have
1256 been pushed onto the port with scm_ungetc.
1257 * ports.c (scm_generic_fgets): Same as for scm_fgets.
1258 * ioext.c (scm_read_line): Free string after Guilifying it.
1259 * ports.h (scm_ptobfuns): fgets method returns a char *, not a char.
1260
1261 1997-11-26 Anthony Green <green@hoser.cygnus.com>
1262
1263 * gh_data.c (gh_set_substr): Strings can be longer than 256 bytes.
1264
1265 * gh.h: Safely wrap prototypes for c++ usage.
1266
1267 1997-11-25 Mark Galassi <rosalia@cygnus.com>
1268
1269 * gh_test_repl.c (main_prog): changed invocation of gh_repl() to
1270 gh_repl (argc, argv).
1271
1272 1997-11-24 Mark Galassi <rosalia@nis.lanl.gov>
1273
1274 * gh_init.c (gh_repl): modified gh_repl() to accept argc and argv
1275 and to invoke scm_shell().
1276 (gh_launch_pad): took out the loading of boot-9.scm from here,
1277 since it is probably best to let the user control that. In fact,
1278 gh_repl() now invokes scm_shell() which does that.
1279
1280 1997-11-23 Mark Galassi <rosalia@cygnus.com>
1281
1282 * gh_test_repl.c (main_prog): added argc and argv to the gh_repl()
1283 invocation.
1284
1285 1997-11-22 Tim Pierce <twp@twp.tezcat.com>
1286
1287 * dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
1288 yesterday's underscore patch. (Thanks to Marius Vollmer for
1289 spotting this.)
1290
1291 1997-11-21 Tim Pierce <twp@twp.tezcat.com>
1292
1293 * dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
1294 DLSYM_ADDS_USCORE is not defined.
1295
1296 1997-11-17 Mark Galassi <rosalia@nis.lanl.gov>
1297
1298 * gh_data.c (gh_uniform_vector_length):
1299 (gh_uniform_vector_ref): started implementing the uniform types in
1300 the gh_ interface.
1301
1302 1997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>
1303
1304 * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
1305 of 0; size_t --> scm_size_t. Thanks to Bernard Urban.
1306
1307 1997-10-26 Mikael Djurfeldt <mdj@nada.kth.se>
1308
1309 * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
1310 configure.in was changed).
1311
1312 Sun Oct 26 02:20:11 1997 Jim Blandy <jimb@totoro.red-bean.com>
1313
1314 * Makefile.am (modinclude_HEADERS): Include readline.h here.
1315 * Makefile.in: Regenerated.
1316
1317 1997-10-25 Marius Vollmer <mvo@zagadka.ping.de>
1318
1319 * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
1320 OPORT is an `open' port, not an output port.
1321
1322 * filesys.c (scm_close, set_element, get_element, scm_chown,
1323 scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
1324 SCM_COERCE_OUTPORT to cope with the printstate/port magic.
1325 * ports.c (scm_port_revealed, scm_set_port_revealed_x,
1326 scm_close_port, scm_port_line, scm_set_port_line_x,
1327 scm_port_column, scm_set_port_column_x, scm_port_filename,
1328 scm_set_port_filename_x, scm_port_mode,
1329 scm_close_all_ports_except, scm_set_current_output_port,
1330 scm_set_current_error_port): Likewise
1331 * ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
1332 scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
1333 Likewise
1334 * posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
1335 * backtrace.c (display_backtrace_body): Likewise
1336 * fports (scm_setvbuf): Likewise
1337 * socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
1338 scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
1339 scm_getpeername, scm_send, scm_sendto): Likewise
1340 * unif.c (scm_uniform_array_write): Likewise
1341
1342 Sat Oct 25 02:52:58 1997 Jim Blandy <jimb@totoro.red-bean.com>
1343
1344 Minor problems with substring-related tag changes.
1345 * symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
1346 exactly what we want to leave in to detect substrings.
1347 (SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
1348 * tags.h: Fix diagrams and comments describing the S tag bit;
1349 remove vestigial remarks about the D tag bit.
1350 (SCM_TYP7, SCM_TYP7S): Rephrased for readability.
1351 * strings.c: Formatting tweaks.
1352
1353 * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
1354 variable first; then SCHEME_LOAD_PATH, with a warning message.
1355 (scm_parse_path): New function.
1356 * script.c: Doc fixes.
1357
1358 Thu Oct 23 01:02:03 1997 Jim Blandy <jimb@totoro.red-bean.com>
1359
1360 Readline support, from Daniel Risacher.
1361 * readline.c, readline.h: New files.
1362 * init.c: #include "readline.h".
1363 (scm_boot_guile_1): Call scm_init_readline, if we have it.
1364 * Makefile.am (libguile_la_SOURCES): Include readline.c.
1365 * Makefile.in: Regenerated.
1366 * scmconfig.h.in: Regenerated, after change to ../configure.
1367
1368 1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
1369
1370 * gh.h: gh_vector_set -> gh_vector_set_x
1371
1372 1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
1373
1374 * gh_data.c (gh_vector_set_x): changed name to make it consistent
1375 with the ! -> _x mapping when going from Scheme to C.
1376
1377 1997-10-19 Mark Galassi <rosalia@cygnus.com>
1378
1379 * gh.h (gh_reverse):
1380 (gh_list_tail):
1381 (gh_list_ref):
1382 (gh_memq):
1383 (gh_memv):
1384 (gh_member):
1385 (gh_assq):
1386 (gh_assv):
1387 (gh_assoc): added these gh_ functions implemented as macros.
1388
1389 * gh_predicates.c (gh_null_p):
1390 (gh_string_equal_p): added these two missing predicates.
1391
1392 * gh_list.c (gh_append):
1393 (gh_append2):
1394 (gh_append3):
1395 (gh_append4):
1396 (gh_set_car_x):
1397 (gh_set_cdr_x): added these routines as I go through and try to
1398 complete the picture R4RS functions that should be mirrored in the
1399 gh_ interface.
1400
1401 Sat Oct 18 01:52:51 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1402
1403 * tags.h (scm_tc7_substring): Changed the comment and code to
1404 conform with the changes below. Folks! We have suddenly two new
1405 free tc7 codes!!! Jummy, jummy!
1406
1407 Tue Oct 14 22:03:06 1997 Tom Tromey <tromey@cygnus.com>
1408
1409 * Makefile.in: Rebuilt.
1410 * Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
1411 mbstrings.c.
1412 (modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
1413 * unif.c (scm_vector_set_length_x): Don't handle multibyte
1414 strings.
1415 * tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
1416 (scm_tag): Don't handle multibyte strings.
1417 * read.c: Don't include mbstrings.h.
1418 (scm_lreadr): Don't handle multibyte ports.
1419 * kw.c: Don't include mbstrings.h.
1420 * init.c: Don't include mbstrings.h.
1421 (scm_boot_guile_1): Don't init mbstrings module.
1422 * hash.c (scm_hasher): Don't handle mbstrings.
1423 * gscm.c (gscm_run_scm): Don't init mbstrings module.
1424 * gc.c (scm_gc_mark): Don't handle mbstrings.
1425 (scm_gc_sweep): Likewise.
1426 * eval.c (SCM_CEVAL): Don't handle mbstrings.
1427 * eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
1428 * tags.h (SCM_TYP7SD): Removed.
1429 (SCM_TYP7D): Removed.
1430 (scm_tc7_mb_string): Removed.
1431 (scm_tc7_mb_substring): Removed.
1432 * print.c (scm_iprin1): Handle char printing directly. Don't
1433 handle mbstrings.
1434 Don't include "mbstrings.h".
1435 * symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
1436 scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
1437 multi-byte flag.
1438 Don't include "mbstrings.h".
1439 * symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
1440 (SCM_SYMBOL_SLOTS): Define as 4.
1441 (SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
1442 * arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
1443 gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
1444 print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
1445 struct.c, threads.c, throw.c, unif.c, variable.c: Use new
1446 ("gen"-less) I/O function names.
1447 * ports.c (scm_add_to_port_table): Don't set port's
1448 representation.
1449 * ports.h (scm_port_representation_type): Removed.
1450 (scm_string_representation_type): Removed.
1451 (struct scm_port_table ): Removed representation field.
1452 (SCM_PORT_REPRESENTATION): Removed.
1453 (SCM_SET_PORT_REPRESENTATION): Removed.
1454 * genio.h: Use new function names.
1455 * genio.c: Don't include "extchrs.h".
1456 (scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
1457 Removed.
1458 (scm_putc, scm_puts, scm_lfwrite): No longer static.
1459 (scm_getc): No longer static; handle line and column changes.
1460 (scm_ungetc): Renamed from scm_gen_ungetc.
1461 (scm_do_read_line): Renamed from scm_gen_read_line.
1462 * libguile.h: Don't include "extchrs.h" or "mbstrings.h"
1463 * extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
1464
1465 1997-10-12 Mark Galassi <rosalia@cygnus.com>
1466
1467 * gh_test_repl.c (c_vector_test): same as gh_test_c.c
1468
1469 * gh_test_c.c (c_vector_test): some improvements on the vector
1470 routines test.
1471
1472 * gh.h (gh_vector): this used to exist but do the wrong thing.
1473 Now it (almost) does the right thing, though it takes a list
1474 instead of the individual arguments. I need to see how it could
1475 be done right.
1476 (gh_list_to_vector): added this function as a macro. Corresponds
1477 to Scheme's (list->vector ...).
1478 (gh_vector_to_list): added this function as a macro. Corresponds
1479 to Scheme's (vector->list ...).
1480
1481 * gh_data.c (gh_vector_ref): renamed from gh_vref to
1482 gh_vector_ref, so that it resembles the Scheme routines more.
1483 (gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
1484 resembles the Scheme routines more.
1485 (gh_make_vector): this used to be (stupidly) called gh_vector().
1486 This is the right name, since it does the same thing as the Scheme
1487 (make-vector ...) procedure.
1488
1489 Sun Oct 12 14:41:39 1997 Mikael Djurfeldt <mdj@kenneth>
1490
1491 * ports.h: #include "libguile/print.h"
1492
1493 * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
1494 Some indentation fixes.
1495
1496 * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
1497 longer a user field; New field: class_flags.
1498
1499 * objets.c, objects.h: New metaclass: scm_metaclass_operator.
1500
1501 Tue Oct 7 09:37:24 1997 Mark Galassi <rosalia@cygnus.com>
1502
1503 * gh_data.c (gh_bool2scm): new function which replaces
1504 gh_int2scmb(), which is now tagged as obsolete.
1505
1506 1997-10-03 Mikael Djurfeldt <mdj@nada.kth.se>
1507
1508 * print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test. (NIMP
1509 macros should by convention not test for NIMPness.)
1510 (SCM_COERCE_OPORT): Adjust indentation.
1511
1512 * print.c (scm_valid_oport_value_p): Adjusted indentation; Added
1513 SCM_NIMP test before SCM_PRINT_STATE_P.
1514
1515 * struct.c, struct.h, gc.c: Renamed:
1516 scm_struct_i_layout --> scm_vtable_index_layout
1517 scm_struct_i_vcell --> scm_vtable_index_vcell
1518 scm_struct_i_vtable --> scm_vtable_index_vtable
1519 scm_struct_i_printer --> scm_vtable_index_printer
1520 scm_struct_i_vtable_offset --> scm_vtable_offset_user
1521
1522 * struct.c (scm_print_struct): Use new printer slot; Default
1523 printing: Also output hex code of vtable so that type identity
1524 will be indicated as well.
1525 (scm_init_struct): Updated required_vtable_fields to "pruosrpw";
1526 Removed struct_printer_var; Removed struct-vtable-offset;
1527 (vtable-index-layout, vtable-index-vtable, vtable-index-printer,
1528 vtable-offset-user): New constants.
1529
1530 * struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
1531 (scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
1532 If this slot contains a procedure, use that to print structures of
1533 the type represented by this vtable.
1534
1535 * print.c (scm_iprin1): Don't print arguments of macro
1536 transformers. (They are always: exp env.); Bugfix: Unmemoize
1537 transformer source with correct environment.
1538
1539 1997-10-02 Marius Vollmer <mvo@zagadka.ping.de>
1540
1541 Streamlining of call-with-dynamic-root:
1542
1543 * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
1544 there is now only one catch.
1545 (cwdr_outer_body): Removed.
1546 (cwdr_handler): New function.
1547 (scm_internal_cwdr): New function to perform the function of cwdr
1548 but take args that are more useful to C code. Also, the handler
1549 is now invoked *outside* of the new dynamic root, like the docs
1550 say. We no longer have to catch absolutely all errors, the caller
1551 is responsible for using a handler that does not throw, if he
1552 wants that.
1553 (cwdr): Reimplemented in terms of scm_internal_cwdr.
1554 * root.h (scm_internal_cwdr): New prototype.
1555
1556 Even more but risky streamlining:
1557
1558 * root.c (USE_STACKJMPBUF): New define to activate a stack-based
1559 allocation of the jumpbuf of a root continuation. The changes
1560 below are controlled by it. They are now deactivated.
1561 (scm_internal_cwdr): Allocate the scm_contregs on the stack. Set
1562 the JMPBUF of the scm_rootcont to NULL before returning.
1563
1564 * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
1565 when they are non-NULL.
1566 (scm_gc_mark): Likewise, mark only when non-NULL.
1567
1568 Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
1569 * dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
1570
1571 * gc.c (scm_done_malloc): New function.
1572 gc.h (scm_done_malloc): New prototype.
1573
1574 * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
1575 (struct scm_print_state) [revealed]: New field.
1576 (scm_print_state_vtable): Make visible to the outside world for
1577 type checking purposes.
1578 (scm_valid_oport_value_p): New prototype.
1579
1580 * print.c (scm_valid_oport_value_p): New function to check whether
1581 a certain value is acceptable as a port argument.
1582 (scm_print_state_vtable): New variable.
1583 (scm_free_print_state): Set `revealed' field to false.
1584 (scm_iprin1): Call user supplied closure printer with
1585 scm_printer_apply. Print in the traditional way when there isn't
1586 one or when it returns #f.
1587 (scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
1588 Accept a port/print-state pair in addition to just a port.
1589 (scm_prin1): Don't return the print_state to the pool when it has
1590 been `revealed'.
1591 (scm_printer_apply): Set `revealed' field of print_state to true.
1592 (scm_init_print): Set scm_print_state_vtable.
1593 (print_state_fluid, print_state_fluid_num): Removed.
1594
1595 * throw.h (scm_handle_by_proc_catching_all): New prototype
1596 throw.c (scm_handle_by_proc_catching_all): New function
1597
1598 Mon Sep 29 23:54:09 1997 Jim Blandy <jimb@totoro.red-bean.com>
1599
1600 * Makefile.in: Regenerated with automake 1.2c.
1601
1602 Sun Sep 28 21:35:42 1997 Radey Shouman <shouman@zianet.com>
1603
1604 * ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
1605 was looping endlessly.
1606
1607 Sun Sep 28 00:04:29 1997 Jim Blandy <jimb@totoro.red-bean.com>
1608
1609 * strports.c (scm_eval_string): Don't close the port.
1610
1611 * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
1612 former returns a nice normal integer. (Thanks to Daniel
1613 Risacher.)
1614
1615 Sat Sep 27 20:19:34 1997 Jim Blandy <jimb@totoro.red-bean.com>
1616
1617 * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
1618 makefile variable as a build parameter called LIBS. The
1619 build-guile program will use this, for the time being.
1620 * Makefile.in: Regenerated.
1621
1622 Thanks to Shiro Kawai:
1623 * gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
1624 * ports.h (scm_ptobfuns): The fgets method returns a char *, not
1625 an SCM.
1626
1627 * Makefile.in: Regenerated with automake 1.2a.
1628
1629 * script.c (scm_compile_shell_switches): If we hit the -c or --
1630 arguments, don't set the car of (command-line) to scm_usage_name,
1631 the prettified name of the guile executable; give it the full
1632 path, the way shells usually handle $0.
1633
1634 Wed Sep 24 22:09:52 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1635
1636 * ramap.c (scm_array_map): Renamed to scm_array_map_x. Removed
1637 Scheme-level name `array-map' and renamed `serial-array-map' to
1638 `serial-array-map!'.
1639
1640 * backtrace.c: Introduced exception handlers which now enclose
1641 `display-error' and `display-backtrace' so that error reporting
1642 won't get into infinite loops if an error occurs during displaying
1643 of the error. This can very easily happen with user supplied
1644 print call-back routines.
1645
1646 Tue Sep 23 12:43:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1647
1648 * ramap.c: Added alias `array-map!' for `array-map'. (Probably,
1649 the names `serial-array-map' and `array-map' should be removed.)
1650
1651 Mon Sep 22 01:21:54 1997 Mikael Djurfeldt <mdj@kenneth>
1652
1653 * init.c (scm_boot_guile_1): Added scm_init_objects ().
1654 Added #include "objects.h"
1655
1656 * eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
1657 Add #include "feature.h".
1658
1659 * Makefile.am (libguile_la_SOURCES): Added objects.c.
1660 (modinclude_HEADERS): Added objects.h.
1661
1662 * ports.h (SCM_EOF_OBJECT_P): New macro predicate.
1663 This test is needed at many places in the code and should be
1664 abstracted. (Motivated by the need of this test in libguiletk.)
1665
1666 * ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
1667 (scm_eval_string), load.c (scm_primitive_load,
1668 scm_read_and_eval_x), gh_eval.c (gh_eval_str):
1669 Use SCM_EOF_OBJECT_P.
1670
1671 * eval.c (scm_init_eval): Add feature `delay'.
1672
1673 Tue Sep 16 02:12:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1674
1675 * scmhob.h: Removed.
1676
1677 Mon Sep 15 20:42:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1678
1679 * list.h (SCM_LISTn): New macros. Make list creation in C code
1680 prettier. The idea comes from STk.
1681
1682 * sequences.h, sequences.c, append.h, append.c: Removed. These
1683 files implemented non-R4RS operations which would encourage
1684 non-portable programming style and less easy-to-read code.
1685
1686 * Makefile.am (sequences.h, sequences.c, append.h, append.c):
1687 Removed.
1688
1689 * libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
1690 sequences.h, #include append.h.
1691
1692 * init.c (scm_boot_guile_1): Removed calls to scm_init_append and
1693 scm_init_sequences.
1694
1695 * gh.h, gh_list.c: Renamed gh_list_length --> gh_length.
1696
1697 * list.h, list.c: Renamed scm_list_length --> scm_length, scm
1698
1699 * stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
1700
1701 Sat Sep 13 00:21:41 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1702
1703 * eval.c: Added #include "objects.h"
1704
1705 * tags.h (scm_tc16_object, scm_tc16_entity): Smobtags for objects
1706 and entities.
1707
1708 * smob.c (scm_smob_prehistory): Create two objectsmobs with
1709 adjacent smob numbers.
1710
1711 Thu Sep 11 00:59:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1712
1713 * procprop.h: Added declaration of scm_i_inner_name.
1714
1715 * gsubr.c: New global symbol scm_i_inner_name.
1716
1717 * debug.c (scm_procedure_name): Try procedure property
1718 `inner-name' if `name' fails.
1719
1720 * print.c (scm_iprin1): Use scm_macro_name.
1721
1722 * eval.c (scm_m_define): Give names to macros as well; Only the
1723 first top-level definition gives a procedure/macro a name.
1724 Otherwise confusing names can turn up in backtraces.
1725 (SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
1726 `name'; Give names to macros as well.
1727
1728 * procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
1729 (scm_macro_transformer): Use SCM_CLOSUREP instead of
1730 scm_closure_p.
1731
1732 Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1733
1734 * * eval.c (macro?, macro-type, macro-name, macro-transfomer): New
1735 procedures;
1736 (prinmacro): Removed. The code has been moved/merged into print.c
1737 in order to decrease code redundancy. We want macros to print in
1738 a way equivalent to procedures, and it would be silly to duplicate
1739 the required code. (We don't want to maintain two places.)
1740 (macrosmob): Print field is now a NULL pointer.
1741
1742 * eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
1743 scm_macro_transformer): New prototypes.
1744 (scm_tc16_macro): Declared.
1745
1746 * * print.c (scm_iprin1): Added code for printing of macros. Macros
1747 are now printed in a way equivalent to procedures.
1748
1749 Sat Sep 6 12:20:42 1997 Mikael Djurfeldt <mdj@kenneth>
1750
1751 * procs.h (scm_closure_p): Added declaration.
1752
1753 Fri Sep 5 13:36:14 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1754
1755 * gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
1756 Shouldn't pass "heap" as the subr name.
1757
1758 Tue Sep 2 18:14:30 1997 Jim Blandy <jimb@totoro.red-bean.com>
1759
1760 * gh_predicates.c (gh_boolean_p, gh_symbol_p, gh_char_p,
1761 gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
1762 gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
1763 gh_equal_p): Use SCM_NFALSEP, instead of testing against
1764 SCM_BOOL_T. Any non-false value is true.
1765
1766 Tue Sep 2 00:27:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1767
1768 * symbols.h (scm_builtin_bindings, scm_builtin_weak_bindings,
1769 scm_gensym): Added prototypes.
1770
1771 * symbols.c (scm_gensym): New function. This will speed up
1772 certain types of applications (such as macro systems) which
1773 generate lots of symbols.
1774
1775 Mon Sep 1 22:30:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1776
1777 * numbers.c (logand, logior, logxor): Handle 0 or 1 arguments.
1778
1779 Sat Aug 30 18:56:19 1997 Gary Houston <ghouston@actrix.gen.nz>
1780
1781 * unif.c (scm_shap2ra): tighten the checking of the array dimension
1782 specifier, since (2) or (2 . 3) would cause SEGV.
1783 (scm_transpose_array): more argument checking fixes.
1784
1785 Thu Aug 28 23:48:53 1997 Jim Blandy <jimb@totoro.red-bean.com>
1786
1787 * Makefile.in: Regenerated.
1788
1789 Wed Aug 27 17:44:44 1997 Jim Blandy <jimb@totoro.red-bean.com>
1790
1791 * Makefile.in: Regenerated, so it uses "tar", not "gtar".
1792
1793 Mon Aug 25 13:47:25 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1794
1795 * error.c, error.h (scm_error_callback): Removed (see NEWS).
1796
1797 Sun Aug 24 01:25:35 1997 Mikael Djurfeldt <mdj@kenneth>
1798
1799 * regex-posix.c: If <regex.h> can't be found, try <rxposix.h> or
1800 <rx/rxposix.h>. (This is in order to accomodate for the GNU Rx
1801 library.)
1802
1803 * ramap.c (scm_ra_matchp, scm_array_fill_int, racp, ramap_1,
1804 ramap_2o, scm_array_index_map_x, raeql_1, scm_array_equal_p),
1805 unif.c (scm_vector_set_length_x, scm_uniform_vector_length,
1806 scm_array_p, scm_array_rank, scm_array_dimensions,
1807 scm_enclose_array, scm_array_in_bounds_p, scm_uniform_vector_ref,
1808 scm_cvref, scm_array_set_x, scm_array_contents, scm_array_to_list,
1809 scm_array_prototype): Added case scm_tc7_wvect.
1810
1811 Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
1812
1813 * errno.h: prototype for scm_strerror.
1814 * error.c (scm_strerror): new procedure.
1815
1816 Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1817
1818 * list.c (scm_list_append_x): Allow non-pair as last argument.
1819 This is consistent with the R4RS append and is probably the
1820 correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
1821
1822 Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
1823
1824 * stime.h: prototype for scm_times.
1825 * stime.c (scm_times): new procedure.
1826 * ioext.c (scm_fseek): if the first argument is a file descriptor
1827 call lseek.
1828 (scm_ftell): if the first argument is a file descriptor call lseek
1829 (sic).
1830 * filesys.h: prototypes for scm_open_fdes, scm_fsync.
1831 * filesys.c (scm_chmod): if the first argument is a file descriptor,
1832 call fchmod.
1833 (scm_chown): if the first argument is a port or file descriptor,
1834 call fchown.
1835 (scm_truncate_file): new procedure.
1836 Add DEFER/ALLOW INTS to a few other procedures.
1837 (scm_fsync): new procedure.
1838 (scm_open_fdes): new procedure.
1839 (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
1840 now be used.
1841 (scm_fcntl): the first argument can now be a file descriptor. The
1842 third argument is now optional.
1843
1844 * posix.c (scm_execl, scm_execlp): make the filename argument
1845 compulsory, since omitting it causes SEGV.
1846 (scm_sync): return unspecified instead of #f.
1847 (scm_execle): new procedure.
1848 (environ_list_to_c): new procedure.
1849 (scm_environ): use environ_list_to_c. disable interrupts.
1850 (scm_convert_exec_args): take pos and subr arguments and
1851 improve error checking.
1852
1853 1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1854
1855 * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
1856 (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
1857 argument to SCM_ASSERT. Furthermore, the name of the function
1858 should be passed as first argument when signalling
1859 SCM_WNA. (Thanks to Thomas Morgan)
1860
1861 * gsubr.c (scm_gsubr_apply): From Radey Shouman
1862 <shouman@zianet.com>: "The switch in scm_gsubr_apply that
1863 dispatches on the number of actual args has a default case
1864 reporting an internal error. This is a vestige from a version
1865 that mallocated a SCM vector to hold the arguments. In the
1866 current version this check is too late: if it ever happens we will
1867 have already overstepped the bounds of the array.
1868
1869 Also, the patch [...] adds a check for too many actual arguments."
1870
1871 mdj: Removed check for "internal programming error".
1872
1873 Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1874
1875 * gh_io.c (gh_write): New function.
1876
1877 * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
1878 throw.c (scm_internal_stack_catch): New sibling to the other catch
1879 functions. Code moved from gh_eval.c.
1880 throw.h: Added header.
1881 gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
1882 scm_internal_stack_catch.
1883
1884 Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
1885
1886 * ioext.h: fix up prototypes.
1887 * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
1888 Scheme name is now dup->fdes.
1889 (scm_dup_to_fdes): make the second argument optional and
1890 fold in the functionality of scm_primitive_dup.
1891 (scm_primitive_dup): deleted.
1892
1893 Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
1894
1895 * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
1896 * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
1897 ultrix are defined. Use setvbuf instead of setbuf.
1898 (scm_setvbuf): new procedure.
1899 (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
1900 (scm_setfileno): moved from ioext.c.
1901 (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
1902 (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
1903
1904 Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
1905
1906 * fluids.c (scm_fluid_p): New function.
1907 * fluids.h (scm_fluid_p): New prototype.
1908
1909 Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
1910
1911 * print.c (scm_iprin1): Enter printed structures into the print
1912 state as nested data while they are printed.
1913 (print_state_fluid, print_state_fluid_num): New variables.
1914 (scm_init_print): Initialize them.
1915 (scm_iprin): If print_state_fluid carries a print_state, use that
1916 instead of creating a new one.
1917 (scm_printer_apply, apply_stub, struct apply_data): New
1918 definitions to help with calling printer functions written in
1919 Scheme.
1920 * print.h (scm_printer_apply): New prototype.
1921
1922 * struct.c (scm_print_struct): Use scm_printer_apply to call the
1923 user defined struct printer.
1924
1925 * dynwind.c (scm_dowinds): Handle fluids on the wind list.
1926 * fluids.h (scm_internal_with_fluids, scm_with_fluids,
1927 scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
1928 * fluids.c (scm_internal_with_fluids, scm_with_fluids,
1929 scm_swap_fluids, scm_swap_fluids_reverse): New functions.
1930
1931 Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
1932
1933 * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
1934 SCM_ASSERT: arg comes before pos.
1935
1936 Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
1937
1938 * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
1939 to a list of length zero correctly.
1940
1941 Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
1942
1943 Supply an `fgets' method for port objects to do fast line i/o.
1944 * ioext.c (scm_read_line): New function.
1945 * genio.c (scm_gen_read_line): New function.
1946 * fports.c (scm_fgets): New function.
1947 (scm_fptob, scm_pipob): Add scm_fgets method.
1948 * ports.c (fgets_void_port, scm_generic_fgets): New functions.
1949 (void_port_ptob): Add void fgets method.
1950 (scm_newptob): Initialize fgets method from ptob struct.
1951 * ports.h (scm_ptobfuns): Add fgets method.
1952 * vports.c (scm_sfptob): Supply generic fgets method.
1953 * strports.c (scm_stptob): Supply generic fgets method.
1954
1955 Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
1956
1957 * ioext.h: removed scm_duplicate_port prototype.
1958
1959 * ioext.c (scm_primitive_dup2): return the new file descriptor
1960 instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
1961 is convenient.
1962 (scm_fdopen): bug fix: don't try to make port unbuffered until its
1963 stream has been set.
1964 (scm_duplicate_port): deleted, there's now an implementation in
1965 boot-9.scm.
1966 (scm_primitive_dup2): do nothing if newfd == oldfd.
1967
1968 Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
1969
1970 * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
1971 argument.
1972
1973 * ioext.h: new prototypes.
1974 * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
1975
1976 * fluids.c (next_fluid_num): don't do
1977 SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
1978
1979 * ports.h: prototypes too.
1980 * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
1981
1982 * fports.h: prototype too.
1983 * fports.c (scm_evict_ports): moved from ioext.c.
1984
1985 Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
1986
1987 * ports.c (scm_close_port): return a boolean instead of unspecified.
1988 throw an error if an error other than EBADF occurs.
1989
1990 * filesys.h: scm_close prototype.
1991 * filesys.c (scm_close): new procedure, can close file descriptors
1992 and ports (scsh compatible).
1993
1994 * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
1995 optional argument.
1996
1997 Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
1998
1999 * fluids.c, fluid.h: New files.
2000 * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
2001 (modinclude_HEADERS): Added "fluids.h"
2002
2003 * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
2004 scm_init_fluids to initialize the fluid machine.
2005 (scm_start_stack): Initialize the fluids of the first root with
2006 scm_make_initial_fluids.
2007
2008 * root.h: Added "fluids" member to scm_root_state.
2009 * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
2010 (scm_make_root): Call scm_copy_fluids to make fluid bindings
2011 unique for the new root when it has a parent.
2012
2013 * smob.h: Include "libguile/print.h" to make scm_print_state
2014 visible.
2015
2016 * dynl.c (free_dynl_obj): New function to free the dynamic object
2017 data. (dynl_smob): Use it.
2018 * dynl.c (scm_dynamic_link): Moved allocating of the memory for
2019 the dynamic object data below the linking of the object to avoid
2020 memory leak when the linking code throws an error. Now the code
2021 leaks a whole dynamically linked library when must_malloc throws,
2022 but that should be much less likely.
2023
2024 Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
2025
2026 Changes to compile under gnu-win32, from Marcus Daniels:
2027 * stime.c (tzset): If tzset isn't provided, make it a NOP.
2028 (scm_localtime): Change SCM_EOF to SCM_EOL.
2029 (scm_mktime): Likewise.
2030 * socket.c: Don't include sys/un.h unless autoconf tells
2031 us Unix domain sockets are available.
2032 (scm_fill_sockaddr): Ignore Unix domain code.
2033 (scm_addr_vector): Likewise.
2034 (scm_init_addr_buffer): Likewise.
2035 (scm_socketpair): Don't include unless socketpair was
2036 found during autoconf.
2037 * simpos.c (SYSTNAME): Treat cygwin like Unix.
2038 * scmsigs.c (scm_pause): Don't include unless pause was found
2039 during autoconf.
2040 * posix.c (scm_getgroups): Don't include unless support function
2041 was found during autoconf (in this case, getgroups).
2042 (scm_setpwent): For setpwent.
2043 (scm_setegid): For setegid.
2044 * net_db.c (scm_inet_netof): Don't include unless support
2045 function was found during autoconf (in this case, inet_netof).
2046 (scm_lnaof): For inet_lnaof.
2047 (scm_inet_makeaddr): For inet_makeaddr.
2048 (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
2049 (scm_getproto): For getprotoent.
2050 (scm_getserv): For getservent.
2051 (scm_sethost): For sethostent, endhostent.
2052 (scm_setnet): For setnetent, endnetent.
2053 (scm_setproto): For setprotoent, endprotoent.
2054 (scm_setserv): For setservent, endservent.
2055 * scmconfig.h.in: Regenerated.
2056
2057 Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
2058
2059 * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
2060 scm_misc_error, not SCM_EOF.
2061
2062 * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
2063 arguments for formatting the error message, not SCM_BOOL_F. I
2064 think this is left over from the (eq? '() #f) days.
2065
2066 * read.c (recsexpr): Give this a dummy definition if
2067 DEBUG_EXTENSIONS isn't #defined.
2068
2069 Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
2070
2071 * coop-threads.c (scm_wait_condition_variable): Lock mutex again
2072 after waiting.
2073
2074 Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
2075
2076 * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
2077 scm_internal_catch.
2078
2079 Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
2080
2081 * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
2082 alloca.lo will be included in @LIBLOBJS@. Something better than
2083 this should be possible.
2084 * Makefile.in: Regenerated.
2085
2086 Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
2087
2088 * simpos.h: prototype for scm_primitive_exit.
2089 * simpos.c (scm_primitive_exit): new procedure, terminates the
2090 process without unwinding the stack.
2091
2092 Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
2093
2094 * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
2095 argument and logior its components together, so the user doesn't
2096 have to do this explicitly. Also, if regexp/basic is supplied, then
2097 turn off REG_EXTENDED.
2098 (scm_init_regex_posix): New regexp/basic symbol.
2099 (REG_BASIC): #define this if it is not already present.
2100
2101 Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
2102
2103 * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
2104 (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
2105 (CLEANFILES): New target, clean versiondat.h, libpath.h.
2106 (DISTCLEANFILES): New target, clean *.x.
2107 * Makefile.in: Regenerated.
2108
2109 Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
2110
2111 * script.c (scm_compile_shell_switches): Add 1997 to copyright
2112 years in usage message.
2113
2114 * Makefile.am (libguile_la_LDFLAGS): Bump library version.
2115 * Makefile.in: Regenerated.
2116
2117 * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
2118 flag; I don't think we support it.
2119 (scm_make_regexp): Make sure the user doesn't pass the
2120 regexp/nosub flag.
2121
2122 * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
2123 FLAGS arguments.
2124 (scm_init_regex_posix): Define constants for the REG_mumble flags;
2125 name them according to the SCSH convention: regexp/mumble.
2126
2127 * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
2128
2129 Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
2130
2131 * Makefile.am (libpath.h): Include the values of all the standard
2132 Makefile directory variables. Print a message, but don't print
2133 all the commands.
2134 (versiondat.h): Print a message, but don't print all the commands.
2135 * load.c: #include "alist.h".
2136 (init_build_info): New function.
2137 (scm_init_load): Call it.
2138 * Makefile.in: Regenerated.
2139
2140 Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
2141
2142 * root.c: Establish a reliable catch-all handler for the new root.
2143 After all the Scheme handler function might signal an error too,
2144 and we don't want to lose that.
2145 (cwdr_inner_body): Renamed from cwdr_body.
2146 (cwdr_outer_body): New function, to establish the user's handler,
2147 and pass control to cwdr_inner_body.
2148 (cwdr): Establish the reliable catch-all handler here, and pass
2149 control to cwdr_outer_body.
2150 (struct cwdr_body_data): New field, handler, to allow cwdr to pass
2151 the user's handler through to cwdr_outer_body.
2152 * throw.c (scm_handle_by_message): Move guts into....
2153 (handler_message): New static function.
2154 (scm_handle_by_message_noexit): New function.
2155 * throw.h (scm_handle_by_message_noexit): New prototype.
2156
2157 * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
2158 across this. Only works on GCC. Otherwise, we hope for the best.
2159 (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
2160 the feeling that real thread systems will not need this...
2161
2162 Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
2163
2164 Try to detect when people are using one version of libguile and a
2165 different version of ice-9. People have been skewing things and
2166 sending in bug reports.
2167 * Makefile.am (versiondat.h): New file to generate.
2168 * version.c: #include "versiondat.h", to get version info.
2169 (scm_libguile_config_stamp): New function.
2170 * script.c: #include "version.h".
2171 (scm_compile_switches): Call scm_version to get version number.
2172 * scmconfig.h.in, Makefile.in: Regenerated.
2173 * Makefile.in: Regenerated.
2174
2175 * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
2176 primitive definitions under their Scheme names.
2177
2178 * Makefile.am (libguile_la_LDFLAGS): Update library version to
2179 1:2. Helps avoid confusion between installed and uninstalled libs.
2180
2181 * scmconfig.h.in: Regenerated. (Needed after June 3 change to
2182 ../configure.in.)
2183
2184 * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
2185 backslash from definition; this should be used like: GDB_INTERFACE;
2186
2187 Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
2188
2189 * ioext.c (scm_duplicate_port): bug fix: don't try to make the
2190 new port unbuffered until its stream has been set.
2191
2192 Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
2193
2194 * ports.h: new prototype.
2195 * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
2196
2197 Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
2198
2199 Make things compile neatly under Sun's C compiler.
2200 * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
2201 * extchrs.c (xmbtowc): Make the second arg a normal char, not
2202 unsigned, because that's what the ANSI function takes.
2203 * extchrs.h (xmbtowc): Corresponding change to prototype.
2204 * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
2205 uchars here.
2206 * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
2207 argument plain char *.
2208 * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
2209 char.
2210 * tag.c (scm_tag): Remove unreachable statement.
2211 * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
2212 top of the word, it should be unsigned.
2213
2214 * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
2215 is defined, to avoid warnings; it's only used in the
2216 conflict-checking code. Which might go away anyway.
2217 (SCM_CEVAL): All goto's targeting the `dispatch' label are in
2218 conditionals; put the label definition in an #if too, to stifle
2219 warnings.
2220
2221 * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
2222 ChangeLog-threads in the distribution.
2223 * Makefile.in: Regenerated.
2224
2225 Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
2226
2227 * guile-snarf.in: Changed regexp to support CPPs that insert
2228 whitespace between lexical tokens (which munges the `%%%' snarf
2229 cookie).
2230
2231 Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
2232
2233 * load.c (scm_init_load_path): Append $(datadir)/guile to
2234 %load-path, so modules do not have to be installed in Guile's
2235 current version directory.
2236
2237 Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
2238
2239 * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
2240 function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
2241 (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
2242 call the sysdep functions with deferred ints.
2243 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
2244 sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
2245 deferred interrupts and insert SCM_ALLOW_INTS before throwing an
2246 error.
2247
2248 * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
2249 SCM_UNSPECIFIED.
2250
2251 Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
2252
2253 * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
2254
2255 Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
2256
2257 * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
2258 ../configure.in.
2259
2260 Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
2261
2262 * eval.c (scm_lookupcar1): New procedure to cope with a race
2263 condition during lookup (when using threads).
2264 (scm_lookupcar): Implement in terms of scm_lookupcar1.
2265 (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
2266 place.
2267
2268 Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
2269
2270 * regex-posix.c (scm_regexp_exec): Use the `start' argument if
2271 supplied. (Change from Tim Pierce.)
2272
2273 Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
2274
2275 * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
2276 23:47:01 1997" changelog: Slots are now initialized with `#f' by
2277 default and not `()'. `#f' is the canonical non-value in Scheme,
2278 right?
2279
2280 Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
2281
2282 * struct.c (struct_printer): New variable that holds a handle on
2283 the Scheme variable *struct-printer*. This variable can be set by
2284 Scheme code to override the printing of structures.
2285 (scm_print_struct): If struct_printer is set, call it. If it is
2286 not set, or returns #f, print the structure in the old fashion.
2287 Include "eval.h" for scm_apply.
2288
2289 Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
2290
2291 * struct.c (scm_struct_ref, scm_struct_set_x): Use
2292 scm_struct_i_n_words to get the number of fields, not
2293 -scm_struct_n_extra_words.
2294
2295 On the route to fancier struct printing:
2296 * struct.c (scm_print_struct): New function to print a structure.
2297 Include "genio.h" to support it. This function doesn't do
2298 anything interesting right now, but I think it should be here
2299 anyway.
2300 * struct.h: Include "print.h" and add prototype for
2301 scm_print_struct.
2302 * print.c (scm_iprin1): Call scm_print_struct instead of trying to
2303 print structures ourself.
2304
2305 Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
2306
2307 * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
2308 before applying the handler in case it doesn't return.
2309
2310 Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
2311
2312 * scmsigs.h, async.h: updated.
2313
2314 * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
2315 loop.
2316
2317 * posix.c (scm_uname): interpret only negative values as an error.
2318 Solaris normally returns a positive value.
2319
2320 * script.c (scm_compile_shell_switches): if we are not going into
2321 an interactive repl, set scm_mask_ints to zero so that asyncs can
2322 run.
2323
2324 * simpos.c (scm_system): don't ignore/unignore signals around
2325 the "system" call.
2326
2327 * posix.c (scm_open_pipe): don't ignore/unignore signals around
2328 the "popen" call.
2329
2330 * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
2331 done in boot-9.scm instead.
2332
2333 * scmsigs.c, async.c: Major rewriting of signal handling code.
2334 (scm_sigaction): new procedure.
2335 (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
2336 timing.
2337 (scm_raise): return unspecified, throw error on failure.
2338
2339 Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
2340
2341 * regex-posix.c (scm_init_regex_posix): Register the "regex"
2342 feature, to help boot-9.scm decide whether to import the regex
2343 module.
2344
2345 Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
2346
2347 * eval.c: Include scmconfig.h at the beginning of the file so that
2348 HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
2349 pointing this out.
2350
2351 * regex-posix.c: #include "_scm.h" before conditionally #including
2352 <regex.h>; the former defines HAVE_REGCOMP.
2353
2354 * regex-posix.c: #include <regex.h> conditionally, so the file is
2355 CPP'able (for dependency scanning) even on systems that don't have
2356 a <regex.h> header.
2357
2358 Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
2359
2360 Add new R4RS-compliant syntax for keywords.
2361 * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
2362 regardless of the setting of the `keywords' read option.
2363 * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
2364 can be re-read no matter what the setting of the `keywords' read
2365 option.
2366
2367 Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
2368
2369 Add support for POSIX regular expressions.
2370
2371 * regex-posix.c, regex-posix.h: New files. (Some code
2372 is taken liberally from rx/rgx.c in the old Guile dist.)
2373
2374 * init.c: Include regex-posix.h.
2375 (scm_boot_guile_1): Call scm_init_regex_posix.
2376
2377 * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
2378 Add regex-posix.[ch] sources.
2379 * Makefile.in: Regenerated.
2380
2381 * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
2382 to do this automatically? It didn't for me, bleh.)
2383
2384 Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
2385
2386 * fports.c (print_pipe_port): New function.
2387 (scm_fptob): Use print_pipe_port instead of scm_prinport; the
2388 latter doesn't even take the right arguments.
2389
2390 * Makefile.am: Increment shared lib revision number. I think
2391 sometimes the uninstalled Guile finds the installed shared lib;
2392 Gord says doing this might help. As things turned out, I can't
2393 say whether it does.
2394 * Makefile.in: Regenerated.
2395
2396 * gh_init.c (gh_enter): Cast c_main_prog to a void * before
2397 passing it as the closure argument to scm_boot_guile. (Bill
2398 Janssen)
2399
2400 * ports.c (print_void_port, putc_void_port, puts_void_port,
2401 write_void_port, flush_void_port, getc_void_port, close_void_port,
2402 noop0): Use ANSI prototypes instead of K&R declarations, so the
2403 initialization of void_port_ptob gets aggressively type-checked.
2404 Fix arguments of print_void_port and write_void_port. (Bill
2405 Janssen)
2406
2407 * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
2408 appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
2409 backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
2410 continuations.c, continuations.h, coop-defs.h, coop-threads.c,
2411 coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
2412 coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
2413 dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
2414 error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
2415 filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
2416 gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
2417 gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
2418 gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
2419 gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
2420 init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
2421 list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
2422 markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
2423 mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
2424 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
2425 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
2426 procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
2427 read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
2428 script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
2429 smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
2430 stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
2431 strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
2432 strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
2433 tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
2434 unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
2435 version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
2436 address for FSF.
2437
2438 Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
2439
2440 * script.c (scm_find_executable): Use prototype-style definition
2441 here; apparently it's not quite right to have const in a prototype
2442 and then use a K&R declaration. I wonder if stuff like this will
2443 go away if we compile with -Wrequire-prototypes, or whatever that
2444 is... (Bernard URBAN)
2445
2446 * scmhob.h: New text from Bernard URBAN.
2447
2448 Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
2449
2450 * script.c: Don't #define const on hpux. Configure takes care of
2451 this. (Thanks to Larry Schwimmer.)
2452
2453 * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
2454 decide whether to #include <unistd.h>, instead of listing a bunch
2455 of systems. Don't #include stdio twice. Removed dyked-out
2456 definition of scm_find_impl_file.
2457
2458 Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
2459
2460 * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
2461 library version info to 1:0.
2462 * Makefile.in: Regenerated.
2463
2464 * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
2465 gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
2466 gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
2467 init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
2468 script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
2469 throw.c: Update copyright years; these files have been worked on
2470 significantly in 1997, but only had copyright years for 1996.
2471 Also, change name of copyright holder on some from Mikael
2472 Djurfeldt to Free Software Foundation; he has signed papers
2473 assigning the changes to the FSF.
2474
2475 * script.c (scm_shell_usage): Pass FATAL to exit. There's no
2476 reason not to give the user the option.
2477
2478 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
2479 Return #f on end-of-file when scanning table (i.e. when called
2480 with no arguments). Try to catch errors, when we can.
2481 * posix.c (scm_getgrgid, scm_getpwuid): Same.
2482
2483 * script.h (scm_shell_usage, scm_compile_shell_switches): New
2484 external declarations. These are useful.
2485
2486 Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
2487
2488 * posix.c: don't include <sys/select.h> or define macros for
2489 select, since they were not used in this file.
2490
2491 * filesys.c (scm_select): make the fifth parameter microseconds,
2492 not milliseconds. let the fourth parameter be either a real value
2493 or an integer or #f. The first, second and third arguments can
2494 now be vectors: the type of the corresponding return set will be
2495 the same.
2496 (set_element, get_element): new static procedures.
2497
2498 Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
2499
2500 * strports.c (scm_eval_string): New function.
2501 (scm_eval_0str): Trivially re-implemented in terms of
2502 scm_eval_string.
2503 * strports.h (scm_eval_string): New extern decl.
2504
2505 * net_db.c (h_errno): Add extern decl for this.
2506
2507 * fports.c (local_pclose): New function.
2508 (scm_pipob): Use it in the initializer here.
2509
2510 From Tim Pierce:
2511 * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
2512 Use a meaningful error message when signalling an error. For
2513 this, scm_gethost must check h_errno rather than errno.
2514
2515 Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
2516
2517 * Makefile.in: Regenerated, using automake-1.1p.
2518
2519 Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
2520
2521 * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
2522 not SCM_UNSPECIFIED.
2523
2524 * script.c (scm_compile_shell_switches): don't append (quit) if
2525 interactive.
2526 (scm_shell): call scm_exit_status and exit on the result of the
2527 evaluation.
2528
2529 Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
2530
2531 Ensure that shared substrings are handled properly when passed to
2532 a system call or other foreign function. Many thanks to Tim
2533 Pierce!
2534 * symbols.h (SCM_COERCE_SUBSTR): new macro.
2535 * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
2536 scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
2537 scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
2538 scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
2539 scm_strftime), vports.c (scm_make_soft_port), backtrace.c
2540 (scm_display_error_message): use RO macros when strings may be RO.
2541 * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
2542 scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
2543 scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
2544 (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
2545 (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
2546 (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
2547 scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
2548 scm_strftime), vports.c (scm_make_soft_port): use
2549 SCM_COERCE_SUBSTR to make sure shared substrings are
2550 null-terminated.
2551
2552 Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
2553
2554 * error.c (scm_error): Add newline to error message.
2555
2556 * init.c (scm_init_standard_ports): Doc fix.
2557
2558 Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
2559
2560 * dynl-shl.c: Completely replaced with new code from Bernard
2561 URBAN.
2562
2563 * script.c (scm_ice_9_already_loaded): New variable.
2564 (scm_compile_shell_switches): Use it.
2565
2566 Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
2567
2568 * filesys.c (scm_input_waiting_p): add missing third argument to
2569 scm_misc_error.
2570
2571 * stime.c (scm_localtime): copy the result of localtime before
2572 calling gmtime in case they share a buffer.
2573 (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
2574 nor HAVE_TZNAME.
2575
2576 Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
2577
2578 * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
2579
2580 Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
2581
2582 * Makefile.am (check-local): New target, which causes 'make check'
2583 to run gh_test_c and gh_test_repl, with some trivial input.
2584 * Makefile.in: Rgnrtd.
2585
2586 Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
2587
2588 * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
2589 been unlinked.
2590
2591 Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
2592
2593 * async.c (scm_sys_tick_async_thunk): commented out. I'm not
2594 sure how this was supposed to work.
2595 (scm_async_click): don't send SCM_TICK_SIGNAL.
2596 (scm_init_async): don't initialize %tick-thunk.
2597
2598 * the following change doesn't affect the Scheme interface:
2599 gc-thunk is called at the end of garbage collection. however it's
2600 no longer implemented by pretending it's a signal.
2601
2602 * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
2603 system async corresponding to scm_gc_thunk.
2604 * async.h: declare scm_gc_async.
2605 * async.c (scm_sys_gc_async_thunk): apply the thunk named by
2606 gc-thunk directly, instead of going through a signal handler.
2607 (scm_gc_async): new variable, points to the GC system-async.
2608 (scm_init_async): save the GC async as scm_gc_async instead
2609 of using system_signal_asyncs.
2610 (scm_gc_vcell): new variable, stores the gc-thunk vcell.
2611
2612 Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
2613
2614 * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
2615 Don't screw up if we're interrupted.
2616 * Makefile.in: Regeneradet.
2617
2618 Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
2619
2620 * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
2621
2622 * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
2623 we're not using AM_INIT_GUILE_MODULE any more.
2624 * Makefile.in: Reneregated.
2625
2626 Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
2627
2628 Functions for finding variable bindings, grace à Tim Pierce.
2629 * gh_data.c (gh_lookup, gh_module_lookup): New functions.
2630 * gh.h (gh_lookup, gh_module_lookup): New prototypes.
2631
2632 Get 'make dist' to work again.
2633 * Makefile.am (EXTRA_DIST): Remove PLUGIN files.
2634 * Makefile.in: Regenerated, like a surry without a fringe on top.
2635
2636 Changes for reduced Guile distribution: one configure script,
2637 no plugins.
2638 * configure.in, configure: Removed.
2639 * acconfig.h, acinclude.m4: Moved to parent directory, where the
2640 real configure script lives.
2641 * Makefile.in, scmconfig.h.in: Regenerated.
2642
2643 * init.c: #include "script.h", to get prototype for script.c's
2644 init function.
2645
2646 Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
2647
2648 * gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
2649 scm_must_malloc, not raw malloc.
2650
2651 * script.c (scm_compile_shell_switches): Dyke out debugging output
2652 code.
2653
2654 Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
2655
2656 * eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
2657
2658 * stime.c: include both <sys/times.h> and <sys/timeb.h> if the
2659 system has them. Hope this is safe. Previously
2660 sys/timeb.h was included if HAVE_FTIME was defined or if
2661 HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
2662 but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
2663
2664 * ioext.c (scm_setfileno): add missing third argument to
2665 scm_misc_error call.
2666
2667 Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
2668
2669 * eq.c (scm_equal_p): Correctly compare strings of different
2670 varieties. (Thanks to Tim Pierce.)
2671
2672 Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
2673
2674 * read.c (skip_scsh_block_comment): SCSH says the !# that ends a
2675 #! block comment must occur on a line all by itself.
2676
2677 Move most of the guts of shell command processing into libguile,
2678 so guile.c can be very small (and eventuallly auto-generated. (I
2679 mean, generated mechanically, not self-generated. Hmm.))
2680 * guile.c, script.c, script.h: New source files.
2681 * init.c (scm_boot_guile_1): Call scm_init_script.
2682 * libguile.h: #include "script.h".
2683 * Makefile.am (bin_PROGRAMS, guile_SOURCES, guile_LDADD): New
2684 targets, for new executable.
2685 (libguile_la_SOURCES): Mention script.c.
2686 (modinclude_HEADERS): Add script.h.
2687 * configure.in: Always check for -lm, -lsocket, -lnsl, whether or
2688 not dynamic linking is enabled. This is because we're generating
2689 executables now. Move CY_AC_WITH_THREADS call after those, so the
2690 values of cy_cv_threads_libs captures the libs chosen above.
2691 * Makefile.in, configure, aclocal.m4: Regenerated.
2692
2693 * Makefile.am (EXTRA_DIST): Don't distribute gscm.c or gscm.h.
2694 We don't maintain this interface any more, and it just confuses
2695 people.
2696
2697 * alloca.c: #include <scmconfig.h>, not <config.h>.
2698 * Makefile.am (EXTRA_libguile_la_SOURCES): Mention alloca.c, so
2699 it'll get included in disties.
2700
2701 Thu Apr 17 17:45:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
2702
2703 * gscm.c, gscm.h: These aren't supported any more, and shouldn't
2704 be distributed, because they confuse people.
2705 * Makefile.am (EXTRA_DIST): Remove gscm.c, gscm.h.
2706
2707 Sat Apr 19 11:56:18 1997 Tim Pierce <twp@twp.tezcat.com>
2708
2709 * configure.in: check for presence of gethostent (not present on
2710 OpenBSD by default).
2711 * net_db.c (scm_gethost): Check HAVE_GETHOSTENT.
2712 * configure, scmconfig.h.in: Regenerated.
2713
2714 Wed Apr 16 17:52:38 1997 Jim Blandy <jimb@floss.cyclic.com>
2715
2716 * backtrace.c (scm_backtrace): Split message string across
2717 newlines properly. GCC is more tolerant of this than other
2718 compilers.
2719
2720 Mon Apr 14 20:20:14 1997 Jim Blandy <jimb@floss.cyclic.com>
2721
2722 Merge threads directory into libguile.
2723 * coop-defs.h, coop-threads.c, coop-threads.h, coop.c, threads.c,
2724 threads.h: New source files.
2725 * Makefile.am (EXTRA_libguile_la_SOURCES): Add threads.c.
2726 (noinst_HEADERS): Add coop-threads.c, coop-threads.h, coop.c
2727 here; see comment.
2728 (modinclude_HEADERS): Add threads.h, coop-defs.h.
2729 (EXTRA_DIST): Add fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
2730 coop-threads.c.cygnus, coop-threads.h.cygnus.
2731 * configure.in: If we're using threads, include threads.o in
2732 LIBOBJS.
2733 * _scm.h, libguile.h: threads.h lives in this directory now.
2734 * fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
2735 coop-threads.c.cygnus, coop-threads.h.cygnus: New files, not
2736 currently used, but brought along for information's sake.
2737 * ChangeLog-threads: log from old 'threads' directory.
2738 * Makefile.in, configure: Rebuilt.
2739
2740 Mon Apr 14 20:15:29 1997 Jim Blandy <jimb@totoro.cyclic.com>
2741
2742 * stime.c (scm_mktime): #ifndef HAVE_TM_ZONE, Use lt.tm_zone, not
2743 lt->tm_zone.
2744
2745 Mon Apr 14 01:32:57 1997 Jim Blandy <jimb@floss.cyclic.com>
2746
2747 * gh_init.c (gh_standard_handler): Return SCM_BOOL_F, not garbage.
2748
2749 Merge GH interface library into libguile.
2750 * gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
2751 gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c: New files.
2752 * Makefile.am (libguile_la_SOURCES): Add gh_data.c, gh_eval.c,
2753 gh_funcs.c, gh_init.c, gh_io.c, gh_list.c, gh_predicates.c. Move
2754 _scm.h to ...
2755 (EXTRA_libguile_la_SOURCES): ... here.
2756 (pkginclude_HEADERS): Add variable, to get gh.h installed.
2757 (THREAD_LIBS, check_ldadd, check_PROGRAMS, gh_test_c_SOURCES,
2758 gh_test_c_LDADD, gh_test_repl_SOURCES, gh_test_repl_LDADD):
2759 New variables, describing how to build the gh test programs.
2760 * configure.in: Check for -lm, -lsocket, -lnsl; we need this to
2761 build the test programs, and we probably should have been linking
2762 libguile.la against them all along, to support AIX shared libs.
2763 Add cflags for threads to CFLAGS; add libs for threads to new
2764 variable THREAD_LIBS, used in Makefile.am.
2765 * ChangeLog-gh: log from old `gh' subdirectory.
2766 * Makefile.in, configure, scmconfig.h.in: Rebuilt.
2767
2768 Sun Apr 13 23:03:55 1997 Jim Blandy <jimb@floss.cyclic.com>
2769
2770 * acconfig.h: Undo change of Apr 9; including the definition of
2771 PACKAGE in the guile headers conflicts with applications' own
2772 definitions.
2773 * scmconfig.h.in: Regenerated.
2774
2775 Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
2776
2777 * filesys.c (scm_fcntl): New function from Roland McGrath.
2778 (scm_init_filesys): New symbols for use with fcntl.
2779 * filesys.h: Added prototype.
2780
2781 * eval.c (SCM_APPLY): Set debug apply frame argument list correctly
2782 when PROC is receiving no arguments.
2783
2784 Fri Apr 11 19:39:32 1997 Jim Blandy <jimb@totoro.cyclic.com>
2785
2786 * filesys.c (S_ISSOCK): Define this if it's missing, but we do
2787 have S_IFSOCK. This is the case under Ultrix.
2788
2789 * posix.c (scm_status_exit_val, scm_status_exit_val,
2790 scm_status_term_sig, scm_status_stop_sig): Modified to work with
2791 Ultrix versions of WIFSTOPPED, etc., which assume that their
2792 arguments are lvalues (hmm).
2793
2794 Thu Apr 10 15:10:07 1997 Jim Blandy <jimb@floss.cyclic.com>
2795
2796 * eval.c: Doc fixes.
2797
2798 * throw.c: Doc fixes; rearranged.
2799
2800 * putenv.c: #include "libguile/scmconfig.h", not <config.h>.
2801
2802 Wed Apr 9 18:01:20 1997 Jim Blandy <jimb@floss.cyclic.com>
2803
2804 * acconfig.h: Added entry for PACKAGE.
2805 * scmconfig.h.in: Regenerated.
2806
2807 Changes to work with automake-1.1n, which has better libtool support.
2808 * Makefile.am: Use lib_LTLIBRARIES instead of lib_PROGRAMS.
2809 Use libguile_la_LIBADD instead of libguile_la_LDADD. (What's the
2810 difference here?)
2811 (libguile_la_SOURCES, modinclude_HEADERS, EXTRA_DIST): Format for
2812 readability.
2813 * Makefile.in: Rebuild.
2814
2815 Wed Apr 9 09:08:54 1997 Gary Houston <ghouston@actrix.gen.nz>
2816
2817 * stime.c (scm_mktime): take an optional zone argument.
2818 (scm_localtime): check putenv return value.
2819 (scm_strftime, scm_strptime): moved from posix.c. move #include
2820 sequences.h too.
2821 stime.h, posix.h: update prototypes.
2822 (bdtime2c, setzone, restorezone): new static procedures.
2823 (scm_mktime, scm_strftime): use them.
2824 (scm_strftime): don't call mktime before strftime. Use
2825 filltime for return value.
2826 (filltime): convert NULL zname to #f.
2827 (scm_strptime): return a count of characters consumed, not
2828 the remaining string.
2829
2830 Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
2831
2832 * stime.c (scm_localtime): check HAVE_TM_ZONE and HAVE_TZNAME.
2833 (scm_mktime): likewise.
2834 Declare *tzname[].
2835 Uncomment localtime and mktime.
2836
2837 * configure.in: add AC_STRUCT_TIMEZONE.
2838
2839 Sat Apr 5 23:56:40 1997 Gary Houston <ghouston@actrix.gen.nz>
2840
2841 * stime.c (scm_init_stime): don't define ticks/sec.
2842 (scm_gettimeofday): renamed from scm_time_plus_ticks (avoids multiple
2843 return value problem and is still portable.)
2844
2845 Sat Apr 5 17:59:24 1997 Jim Blandy <jimb@floss.cyclic.com>
2846
2847 * cpp_err_symbols.in: Renamed from cpp_err_symbols, to avoid
2848 make's implicit cpp_err_symbols: cpp_err_symbols.c rule.
2849 * cpp_sig_symbols.in: Renamed from cpp_sig_symbols.
2850 * Makefile.am (check_errnos, check_signals, cpp_sig_symbols.c,
2851 cpp_err_symbols.c): Corresponding changes.
2852 * Makefile.in: Regenerated.
2853
2854 Sat Apr 5 02:39:02 1997 Gary Houston <ghouston@actrix.gen.nz>
2855
2856 * posix.c (scm_putenv): don't check HAVE_PUTENV.
2857 * Makefile.am (EXTRA_libguile_la_SOURCES): add putenv.c.
2858 * configure.in: move putenv from AC_CHECK_FUNCS to AC_REPLACE_FUNCS.
2859 * putenv.c: new file, from sh-utils 1.12.
2860
2861 * posix.c (scm_environ): use malloc in place of scm_must_malloc
2862 since allocation isn't for Scheme objects.
2863 (scm_putenv): copy strings before placing in the environment.
2864
2865 * stime.c (scm_current_time): throw an error if time returns -1,
2866 instead of returning #f.
2867 (scm_get_internal_real_time, scm_get_internal_real_time): use
2868 scm_long2num for return value instead of SCM_MAKINUM.
2869
2870 * stime.h: prototypes updated.
2871
2872 * stime.c (scm_time_in_msec): apparently unused, deleted.
2873
2874 Fri Apr 4 08:53:41 1997 Gary Houston <ghouston@actrix.gen.nz>
2875
2876 * configure.in: check for gettimeofday.
2877
2878 * stime.c (scm_time_plus_ticks): new procedure, an scsh interface
2879 which may be more usefully portable than a gettimeofday interface.
2880
2881 Wed Apr 2 17:11:39 1997 Jim Blandy <jimb@totoro.cyclic.com>
2882
2883 * Makefile.am (EXTRA_DIST): It's cpp_err_symbols, not
2884 cpp_err_signals.
2885 * Makefile.in: Regenerated.
2886
2887 Mon Mar 31 03:22:37 1997 Gary Houston <ghouston@actrix.gen.nz>
2888
2889 * stime.c (filltime): recovered static procedure.
2890 (scm_localtime, scm_gmtime, scm_mktime, scm_tzset): recovered from
2891 an earlier Guile.
2892
2893 * posix.h: add prototype for scm_close_pipe, remove prototypes for
2894 scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
2895
2896 * posix.c (scm_mknod): split the mode argument into type and perms
2897 arguments, like the extra fields returned by stat.
2898
2899 * fports.c (scm_pipob): set the close, free and print procedures.
2900 (scm_close_pipe): new procedure.
2901
2902 * posix.c (scm_open_input_pipe, scm_open_output_pipe): deleted,
2903 define them in boot-9.scm
2904
2905 Wed Mar 26 04:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
2906
2907 * ioext.c (scm_setfileno): throw a runtime error if SET_FILE_FD_FIELD
2908 wan't defined. Don't include fd.h.
2909
2910 * Previously fd.h was regenerated whenever configure was run,
2911 forcing a couple of files to be recompiled.
2912
2913 * fd.h.in: deleted, SET_FILE_FD_FIELD moved to ioext.c.
2914 * configure.in: AC_DEFINE FD_SETTER instead of HAVE_FD_SETTER.
2915 Check for _fileno as well as _file.
2916 Don't output fd.h.
2917 * ioext.c: don't fd.h.
2918 * acconfig.h: remove duplicate HAVE_FD_SETTER and change the
2919 other to FD_SETTER.
2920
2921 * Change the stratigy for getting information about errno
2922 (and now signal number) values, e.g., ENOSYS, SIGKILL. Instead of
2923 generating lists of symbols during the build process, which will
2924 not always work, include comprehensive lists in the distribution.
2925 To help keep the lists up to date, the "check_signals" and
2926 "check_errnos" make targets can be used.
2927
2928 * configure.in: don't check for a command to extract errno codes.
2929 * Makefile.am: update file lists, remove errnos.list and errnos.c
2930 targets, add cpp_err_symbols.c, cpp_sig_symbols.c, check_signals,
2931 check_errnos targets.
2932 (CLEANFILES): remove errnos.c and errnos.list, add
2933 cpp_err_symbols_here cpp_err_symbols_diff cpp_err_symbols_new
2934 cpp_sig_symbols_here cpp_sig_symbols_diff cpp_sig_symbols_new
2935 * errnos.default: deleted.
2936 * cpp_signal.c: new file.
2937 * cpp_errno.c: renamed from errnos_get.c.
2938 * cpp_err_symbols, cpp_sig_symbols: new files.
2939 * cpp_cnvt.awk: renamed from errnos_cnvt_awk.
2940 * error.c (scm_init_error): #include cpp_err_symbols instead of
2941 errnos.c.
2942 * posix.c (scm_init_posix): don't intern signal symbols. #include
2943 cpp_sig_symbols.c.
2944
2945 Tue Mar 25 04:51:10 1997 Gary Houston <ghouston@actrix.gen.nz>
2946
2947 * strop.c (scm_i_index): allow the lower bound to be equal to the
2948 length of the string, so a null string doesn't always give an error.
2949
2950 * posix.h: new prototypes.
2951 * posix.c (scm_status_exit_val, scm_status_term_sig,
2952 scm_status_stop_sig): new functions, as in scsh. They break down
2953 process status values as returned by waitpid.
2954
2955 Sat Mar 22 18:16:29 1997 Gary Houston <ghouston@actrix.gen.nz>
2956
2957 * net_db.c (scm_gethost): don't check HAVE_GETHOSTENT, since
2958 configure doesn't know about it.
2959
2960 Fri Mar 21 23:49:28 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2961
2962 * snarf.h, backtrace.c: Name change SCM_GLOBAL --> SCM_VCELL.
2963
2964 * snarf.h: Added new macros SCM_GLOBAL_SYMBOL and SCM_GLOBAL_VCELL
2965 which defines C variables with global linkage.
2966
2967 Mon Mar 17 05:57:11 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2968
2969 * snarf.h (SCM_PROC1): Bugfix: Use (void) rather than (...) for
2970 zero arg subrs.
2971
2972 Sun Mar 16 11:43:49 1997 Mikael Djurfeldt <mdj@floss.cyclic.com>
2973
2974 * eval.c (safe_setjmp): Temporarily use old setjmp until someone
2975 has time to check why this doesn't work well with continuations.
2976
2977 Sun Mar 16 05:09:55 1997 Jim Blandy <jimb@totoro.cyclic.com>
2978
2979 * Fix shell syntax error; some shells won't tolerate
2980 multiple "fi" statements on a single line. (Thanks to Fred Fish.)
2981
2982 Sat Mar 15 01:11:40 1997 Gary Houston <ghouston@actrix.gen.nz>
2983
2984 * posix.c (scm_uname): throw an error if uname fails instead
2985 of returning errno.
2986
2987 * error.h (scm_errno, scm_perror): obsolete prototypes removed.
2988
2989 * error.c (err_head, scm_errno, scm_perror): obsolete procedures
2990 removed.
2991
2992 * async.c (scm_ints_disabled): definition moved from error.c.
2993
2994 Sat Mar 15 00:06:08 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
2995
2996 * acconfig.h: Removed PACKAGE.
2997
2998 * scmconfig.h.in: Regenerated.
2999
3000 * snarf.h: g++ says it's non-portable not to specify the first
3001 argument in a varargs declaration. I introduced the first
3002 argument by using preprocessor conditionals.
3003
3004 Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
3005
3006 * ioext.c (scm_read_delimited_x): use RO string macros for delims.
3007 (scm_freopen): use RO string macros for filename and modes.
3008 (scm_duplicate_port, scm_fdopen): use RO string macros for modes.
3009
3010 * posix.c (scm_getgrgid): simplify conversion of name to C string.
3011 (scm_mknod): use RO string macros for path.
3012
3013 * socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
3014 use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
3015
3016 * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
3017 use SCM_ROSTRINGP and SCM_ROCHARS.
3018
3019 Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3020
3021 * unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
3022 a scm_tc7_byvect.
3023
3024 * ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
3025 scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
3026 support for byte vectors.
3027
3028 * print.c (scm_iprin1): Limit number of vector elements printed
3029 according to pstate->length.
3030
3031 Thu Mar 13 00:12:35 1997 Gary Houston <ghouston@actrix.gen.nz>
3032
3033 * backtrace.c (scm_display_error_message): don't segv if message
3034 is an immediate.
3035
3036 * error.h: prototype for scm_error_scm.
3037
3038 * error.c (scm_error_scm): new procedure, reimplements scm-error
3039 in C and uses scm_error.
3040
3041 Tue Mar 11 03:51:00 1997 Gary Houston <ghouston@actrix.gen.nz>
3042
3043 * read.c (scm_read_hash_extend): make scm_read_hash_procedures a
3044 pointer to the Scheme variable read-hash-procedures and intern it
3045 in scm_init_read. Modify scm_read_hash_extend and
3046 scm_get_hash_procedure to use the pointer.
3047
3048 Mon Mar 10 06:28:54 1997 Gary Houston <ghouston@actrix.gen.nz>
3049
3050 * read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
3051 (SCM_KEYWORD_STYLE): defined.
3052
3053 * read.c (scm_read_opts): add a keywords option. This isn't a
3054 boolean option, in case someone wants to add support for DSSSL
3055 keywords too.
3056 Setup scm_keyword_prefix symbol.
3057 (scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
3058 set to 'prefix.
3059 I've left keyword support disabled by default, since it doesn't
3060 seem to break the module system and it gives R4RS standard behaviour.
3061 It can be reactivated with (read-set! keywords 'prefix).
3062
3063 Sun Mar 9 14:14:39 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3064
3065 * arbiters.c (scm_make_arbiter): Bugfix: Must SCM_DEFER_INTS
3066 before constructing arbiter.
3067
3068 * eval.c (scm_m_define): Bugfix: Check that the object is a
3069 closure before setting the procedure property!
3070
3071 * ports.h: Removed prototype for scm_ungetc_char_ready_p.
3072
3073 * ports.c: Removed `ungetc-char-ready?'.
3074
3075 Sat Mar 8 00:27:05 1997 Gary Houston <ghouston@actrix.gen.nz>
3076
3077 * read.c (scm_init_read): intitialise scm_read_hash_procedures
3078 (idea from Mikael: make it a pair so scm_permanent object only
3079 called once.)
3080 (scm_read_hash_extend): don't call scm_permanent_object.
3081 (ideas from Mikael): if chr is already in the list, replace its
3082 procedure instead of appending it again. If proc is #f, remove
3083 it from the list.
3084 (scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
3085
3086 * strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
3087
3088 * gdbint.c (gdb_read): update scm_lreadr usage.
3089
3090 * load.h: update prototypes.
3091
3092 * load.c (scm_primitive_load, scm_read_and_eval_x,
3093 scm_primitive_load_path): remove case_insensitive_p, sharp arguments.
3094
3095 * read.h: add prototype for scm_read_hash_extend. Change args for
3096 other prototypes.
3097
3098 * read.c (scm_read_hash_procedures): new variable.
3099 (scm_read_hash_extend): new procedure.
3100 (scm_get_hash_procedure): new procedure.
3101 (scm_lreadr): use scm_get_hash_procedure instead of an argument
3102 for extended # processing.
3103 (scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
3104 scm_read_token): remove case_i, sharp arguments. Change callers.
3105
3106 Fri Mar 7 08:58:21 1997 Gary Houston <ghouston@actrix.gen.nz>
3107
3108 * read.h (SCM_N_READ_OPTIONS): increase to 3.
3109 (SCM_CASE_INSENSITIVE_P): define.
3110
3111 * read.c: add case-insensitive option to scm_read_opts.
3112 (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
3113 to determine whether to convert symbol case.
3114 (default_case_i): definition removed.
3115 * read.c (scm_read_token): if case_i, downcase ic before doing
3116 anything with it.
3117
3118 Sat Mar 8 03:49:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3119
3120 * configure.in: Added configuration option `guile-debug'.
3121 Configure with --enable-guile-debug if you want a bunch of extra
3122 functions used for debugging when developing Guile.
3123
3124 * acconfig.h: Added new preprocessor symbol GUILE_DEBUG.
3125
3126 * procs.c (make-cclo): New undocumented debugging procedure: Make
3127 compiled closure with internal procedure PROC and length LENGTH.
3128 Only compiled if GUILE_DEBUG is defined.
3129
3130 * debug.c: Only include `debug-hang' if GUILE_DEBUG is defined.
3131
3132 * print.c: Put #ifdef GUILE_DEBUG around `current-pstate'.
3133
3134 * ports.c: Changed preprocessor symbol DEBUG --> GUILE_DEBUG.
3135
3136 * eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
3137 with 3 or more args internally to the evaluator.
3138
3139 Fri Mar 7 19:38:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3140
3141 * eval.c (SCM_CEVAL): Added code sections for handling of asubrs
3142 with 3 or more args internally to the evaluator. This is mainly
3143 because we don't want to pass entry and exit points of the
3144 debug support twice, but it also seems to increase the speed of
3145 the evaluator for such calls (e. g. (+ 1 2 3)).
3146
3147 * backtrace.c (scm_display_application): New procedure:
3148 display-application; Set fancy printing parameters individually
3149 for different types of display (backtrace, error, application).
3150 (These should of course be customizable!)
3151
3152 * debug.h (SCM_RESET_DEBUG_MODE): Bugfix: The old code didn't
3153 clear the CHECK-flags.
3154
3155 Thu Mar 6 00:53:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3156
3157 * tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP.
3158
3159 Wed Mar 5 23:31:21 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3160
3161 * tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
3162 from pairs with a GLOC in the car.
3163
3164 * symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
3165 otherwise `symbol-hash' will behave badly.
3166 (scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
3167 we get segmentation fault!
3168
3169 * symbols.c: Added #include "weaks.h". New functions:
3170 `builtin-bindings' and `builtin-weak-bindings'. (These will be
3171 moved to an extraneous library when we split libguile.)
3172
3173 Tue Mar 4 19:50:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3174
3175 * filesys.c (scm_stat): stat now takes fport arguments too as
3176 documented in the manual.
3177
3178 Mon Mar 3 07:11:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3179
3180 * debug.c (scm_single_step): Bugfix: Call continuation with
3181 scm_call_continuation instead of throwing to it.
3182
3183 Mon Mar 3 09:07:56 1997 Gary Houston <ghouston@actrix.gen.nz>
3184
3185 * ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
3186 argument wasn't declared to be optional.
3187
3188 Sun Mar 2 16:34:40 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3189
3190 * stime.c (scm_init_stime): Add feature "current-time".
3191
3192 Sun Mar 2 06:37:31 1997 Gary Houston <ghouston@actrix.gen.nz>
3193
3194 * throw.h: prototype for scm_exit_status.
3195 * throw.c (scm_handle_by_message): if a 'quit is caught, use its
3196 args to derive an exit status. Allows (quit) to work from a
3197 script.
3198 (scm_exit_status): new function.
3199 #include "eq.h".
3200
3201 Sat Mar 1 00:09:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3202
3203 * eval.c (scm_deval): Removed some old code.
3204 (ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
3205 with the others.
3206 (ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
3207 exit-frame traps.
3208
3209 * symbols.c (msymbolize): Bugfix: Must initialize property list to
3210 SCM_EOL.
3211
3212 * procs.c: Introduce the existent C function scm_thunk_p at the
3213 Scheme level as well.
3214
3215 Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3216
3217 * symbols.c, symbols.h (scm_symbol_value0): New function. Can be
3218 used from C to easily lookup the value of a symbol in the current
3219 module.
3220
3221 Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3222
3223 * unif.c (scm_init_unif): Added #include "unif.x". (There are two
3224 scm_init_unif in this file. This will also fix a previous problem
3225 with guile-snarf.)
3226
3227 * configure.in: Added AM_MAINTAINER_MODE
3228
3229 Fri Feb 21 23:07:26 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3230
3231 * gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to
3232 avoid warnings.
3233
3234 Fri Feb 21 18:00:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
3235
3236 * Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
3237 source files that are not always included in libguile but should
3238 have their dependencies calculated by automake. This variable is
3239 recognized by automake, no further magic is needed.
3240 (libguile_la_DEPENDENCIES): Changed to @LIBLOBJS@. Libtool wants
3241 to deal exclusively with *.lo files, as it seems. The *.o files
3242 are built automatically when the corresponding *.lo file gets
3243 built.
3244
3245 Wed Feb 19 14:04:23 1997 Jim Blandy <jimb@floss.cyclic.com>
3246
3247 * list.h (scm_list_cdr_ref): Delete prototype; function no longer
3248 exists.
3249
3250 Thu Feb 13 21:44:07 1997 Gary Houston <ghouston@actrix.gen.nz>
3251
3252 * unif.c (scm_array_set_x): minor change to argument error checking.
3253
3254 Tue Feb 11 18:19:47 1997 Jim Blandy <jimb@floss.cyclic.com>
3255
3256 * Makefile.am (libguile_la_SOURCES): Remove backtrace.c, debug.c,
3257 inet_aton.c, srcprop.c, stacks.c, and strerror.c from this list.
3258 They should only be included in the library at configure.in's
3259 discretion.
3260 (libguile_la_LDADD): Include the appropriate .lo files here.
3261 (libguile_la_DEPENDENCIES): List the corresponding .o files here,
3262 so we know when to build them (and their .lo bretheren).
3263 * configure.in (LIBLOBJS): New substituted variable. We let
3264 configure decide which .o files to include in LIBOBJS, and then
3265 put the corresponding list of .lo files in LIBLOBJS. The latter
3266 is what we pass to libtool.
3267 * Makefile.in, configure: regenerated.
3268
3269 Mon Feb 10 00:08:08 1997 Mikael Djurfeldt <mdj@kenneth>
3270
3271 * symbols.c (scm_sysintern0): New function. Contains the core of
3272 old scm_sysintern but doesn't take a second value argument.
3273 (scm_sysintern): Now uses scm_sysintern0.
3274 (scm_sysintern_no_module_lookup): Renamed to
3275 scm_sysintern0_no_module_lookup and doesn't take a second value
3276 argument any longer.
3277
3278 * symbols.h (scm_sysintern0: Added declaration.
3279
3280 * options.c (scm_init_opts): Use scm_sysintern0 instead of
3281 scm_sysintern when interning option keys. Otherwise we risk
3282 destroying the values of already interned variables.
3283
3284 * symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
3285 scheme-level boolean (use SCM_NFALSEP).
3286
3287 * backtrace.c (scm_init_backtrace): Make Scheme-level variable
3288 `the-last-stack'.
3289 (scm_backtrace): New function. (C version of old function from
3290 boot-9.scm) Motivation: Make it possible to display backtraces
3291 without depending on boot-9.scm. (I'm uncertain if this
3292 motivation is good enough...)
3293
3294 * root.h (scm_root_state): Add member the_last_stack_var.
3295 (scm_the_stack_var): Defined to scm_root->the_last_stack_var.
3296
3297 * root.c (mark_root): Mark scm_the_last_stack_var.
3298
3299 * init.c (scm_start_stack): Initialize scm_the_last_stack_var to
3300 SCM_BOOL_F.
3301
3302 Sun Feb 9 18:04:41 1997 Mikael Djurfeldt <mdj@kenneth>
3303
3304 * throw.c (mark_lazy_catch, free_lazy_catch): Removed.
3305 1. mark_lazy_catch didn't mark the smob.
3306 2. Both functions above have standard variants:
3307 (lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
3308 free_lazy_catch --> scm_free0.
3309
3310 Fri Feb 7 17:30:26 1997 Jim Blandy <jimb@floss.cyclic.com>
3311
3312 * throw.c (scm_internal_lazy_catch): New function.
3313 (scm_lazy_catch): Rewritten to use it.
3314 (scm_ithrow): Handle the new lazy catch representation.
3315 Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry
3316 that doesn't have a jmpbuf is a lazy catch clause.
3317 (tc16_lazy_catch, struct lazy_catch, mark_lazy_catch,
3318 free_lazy_catch, print_lazy_catch, lazy_catch_funs,
3319 make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new
3320 smob.
3321 (scm_init_throw): Register the new lazy-catch smob type.
3322 * throw.h (scm_internal_lazy_catch): decl for new function.
3323
3324 * throw.c (scm_internal_catch): Doc fixes.
3325
3326 * alloca.c: New file, needed to support the AC_FUNC_ALLOCA call in
3327 configure.in. Including this might cause problems if applications
3328 that link against libguile include their own copies of alloca, but
3329 if they're using autoconf, they should be adding libguile to LIBS
3330 before calling AC_FUNC_ALLOCA anyway, in which case they'll find
3331 the copy in libguile, and things will be okay. (I think.)
3332
3333 Thu Feb 6 03:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
3334
3335 * strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
3336 unif.c.
3337 strop.h: move prototypes too.
3338
3339 Wed Feb 5 08:33:00 1997 Gary Houston <ghouston@actrix.gen.nz>
3340
3341 * posix.c (scm_init_posix): don't intern EINTR since it's now done
3342 elsewhere.
3343
3344 * ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
3345 etc. I deleted them from filesys.c long ago, but didn't
3346 notice they were here too (although ineffective since
3347 sys/stat.h wasn't included).
3348
3349 Tue Feb 4 18:17:50 1997 Tom Tromey <tromey@cygnus.com>
3350
3351 * eval.c: Don't define alloca in GCC case. gcc will automatically
3352 use __builtin_alloca if appropriate.
3353
3354 Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
3355
3356 * eval.c (safe_setjmp): New function: trivial wrapper for setjmp.
3357 (SCM_CEVAL, SCM_APPLY): Call it, instead of setjmp, to make sure
3358 that values of automatic variables are preserved. See comments
3359 for safe_setjmp for details.
3360
3361 Change from Thomas Morgan:
3362 * variable.c: Include eq.h.
3363 (var_equal): New function.
3364 (variable_smob): Use var_equal as the discriminator for variables.
3365
3366 * throw.c (s_throw): Remove extraneous declaration.
3367
3368 * configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
3369 * eval.c: Add necessary CPP cruft to support that.
3370 * configure, Makefile.in, scmconfig.h.in: regenerated.
3371
3372 Change from Thomas Morgan:
3373 * procprop.c (scm_procedure_properties): Convert the Scheme
3374 boolean returned by scm_procedure_p into a C boolean before using
3375 it as a condition for SCM_ASSERT.
3376 (scm_procedure_property): Likewise.
3377
3378 * simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
3379 indications of Unixness.
3380 * stime.c: Same.
3381
3382 Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
3383
3384 * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
3385
3386 Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
3387
3388 * read.c (scm_lreadr): use scm_misc_error to improve one of the
3389 "unknown # object" error messages.
3390
3391 * strop.c (scm_i_index, scm_i_rindex): combine into one procedure
3392 (scm_i_index) and declare it static. Add a 'direction' argument
3393 to indicate what way the search should go.
3394 (scm_i_index): throw out-of-range error instead of wrong-type-arg
3395 if indices are bad.
3396 (scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
3397 strop.h: remove scm_i_index, scm_i_rindex prototypes.
3398
3399 Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
3400
3401 * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
3402
3403 * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
3404 to avoid clash with various scsh forks.
3405
3406 Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
3407
3408 The following two changes (ramap.c, throw.c) are motivated by the
3409 apparent unportability of forward declarations of static arrays of
3410 the form `static foo bar[];'.
3411
3412 * ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
3413 (ra_rpsubrs, ra_asubrs): Moved to the top of array code.
3414
3415 * throw.c (scm_throw): Moved above scm_ithrow.
3416
3417 * options.h: Removed the extern declarations of scm_yes_sym and
3418 scm_no_sym since these are static.
3419
3420 Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
3421
3422 * ports.c: add SCM_PROC declarations for pt-size and pt-member.
3423
3424 * Makefile.am: remove AWK=@AWK@.
3425 Add a rule for generating errnos.list.
3426 (CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
3427
3428 * configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
3429 don't extract errnos, just set a variable (avoids the
3430 need to recompile error.c just because configure is run.)
3431
3432 * unif.h: update prototypes.
3433 * unif.c (scm_uniform_array_read,write): change the offset and
3434 length arguments to start and end, for consistency.
3435
3436 * __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
3437
3438 * ioext.h: update prototypes.
3439 * ioext.c (scm_read_delimited_x): replaces scm_read_line and
3440 scm_read_line_x, it's a more general procedure using an
3441 interface from scsh. read-line and read-line! are now defined
3442 in boot-9.scm.
3443 Note that the new read-line trims the terminator
3444 by default, previously it was appended to the returned string. An
3445 optional argument specifies how to process the terminator (scsh
3446 compatible). For the old behaviour: (read-line port 'concat).
3447 scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
3448 returns a pair, but is converted to multiple values if the scsh
3449 module is loaded.
3450
3451 socket.h: update prototypes.
3452 * socket.c (scm_recvfrom): for consistency with other procedures,
3453 take start and end as separate optional arguments.
3454 (scm_recv, scm_recvfrom): don't allow the second argument
3455 to be a size, only a buffer. Change the scheme names to
3456 recv! and recvfrom!. Don't return the buffer.
3457
3458 * ioext.h, posix.h: move prototypes too.
3459 * ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
3460 moved back from posix.c to ioext.c. Also move #includes of "genio.h"
3461 "read.h" and "unif.h".
3462 * ioext.c: include "chars.h"
3463
3464 Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
3465
3466 * dynl.c: The dynamic linking and module registration functions
3467 are now defined even when dynamic linking is not available for the
3468 host system. Some of their functionality can be done without
3469 dynamic linking; when it's really needed, they throw errors.
3470
3471 Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
3472
3473 * configure.in: Only define DYNAMIC_LINKING when one of the system
3474 dependent functions is detected.
3475 * dynl.c (scm_dynamic_func): New function to get the address of a
3476 function in a dynamic object.
3477 (scm_dynamic_call, scm_dynamic_args_call): Accept the values
3478 produced by scm_dynamic_func as the thing to call.
3479
3480 Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
3481
3482 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
3483 (scm_register_module_xxx, scm_registered_modules,
3484 scm_clear_registered_modules): New functions.
3485
3486 Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
3487
3488 * symbols.c (scm_sysintern): Renamed to
3489 scm_sysintern_no_module_lookup.
3490 (scm_sysintern): New function to take the place of the old
3491 scm_sysintern. It uses the current toplevel lookup closure to give
3492 the symbol its value. This is a temporary hack to put packages
3493 like gtcltk into their own module.
3494 (scm_can_use_top_level_lookup_closure_var): New variable to tell
3495 us whether `scm_top_level_lookup_closure_var' has been initialized
3496 and is usable.
3497 * eval.c (scm_init_eval): Set it.
3498
3499 Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
3500
3501 * fports.c (scm_open_file): pass errno to scm_syserror_msg.
3502 * filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
3503 SCM_FD.
3504 * filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
3505 scm_syserror_msg.
3506 (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
3507 scm_sys_dup): deleted: FD capability will be added to other
3508 procedures.
3509 Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
3510 scm_fd_free, fd_smob, scm_intern_fd.
3511 (scm_open): renamed from scm_sys_open. Return a port instead of
3512 an FD object. Make the mode argument optional.
3513 (scm_sys_create): deleted, it's just a special case of open.
3514 (scm_init_filesys): move interning of constants O_CREAT etc.,
3515 here (were previously using SCM_CONST_LONG macro).
3516 Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
3517 don't newsmob fd.
3518 (numerous _sys_ procedures): remove gratuitous _sys_ from names.
3519 include "fports.h" and <stdio.h>
3520 (scm_stat, scm_select): don't support FD objects.
3521
3522 * error.h: adjust scm_syserror_msg prototype.
3523 * error.c (scm_syserror_msg): take an extra argument for errno.
3524 Using the global value didn't always work, since it could be
3525 reset by procedure calls in the message or args arguments.
3526
3527 * fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
3528 I don't understand why the check was there (and what about the
3529 ultrix check?)
3530
3531 * strop.c (scm_string_copy): allow shared substrings to be copied.
3532
3533 * unif.h: corresponding change to prototypes.
3534 * unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
3535 recognize two new optional arguments: offset and length. Allow
3536 the port argument to be an integer (file descriptor, for scsh).
3537 Include <unistd.h> for "read" prototype.
3538
3539 Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
3540
3541 * socket.c: don't include filesys.h.
3542
3543 Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
3544
3545 * Makefile.am: add AWK=@AWK@ (?)
3546
3547 * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
3548 errnos_get.c.
3549 Add a rule to generate errnos.c from errnos.
3550 * error.c (scm_init_error): include errnos.c.
3551 * errnos_cnvt.awk: new file, converts the list of errno codes to
3552 C expressions.
3553 * errnos_get.c: new file.
3554 * errnos.default: new file, contains errnos to try if they can't
3555 be extracted from errno.h.
3556 * configure.in: if using GCC, try and extract errno codes from
3557 errno.h.
3558 Added AC_PROG_AWK.
3559
3560 Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
3561
3562 * configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
3563 * Makefile.am: Made libguile into a libtool library.
3564 * PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
3565 Set libtool_libs to indicate that libguile is a libtool library.
3566 See guile/ChangeLog for details.
3567 * .cvsignore: ignore "*.lo", the libtool library objects.
3568
3569 Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
3570
3571 * net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
3572 use htons in getservbyport argument.
3573
3574 Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
3575
3576 * ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
3577 * smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
3578 duplicate.
3579
3580 * objprop.c (scm_object_property): No need to take the CDR of the
3581 value returned by scm_object_properties, since Aug 20 change.
3582
3583 * configure.in: When checking for struct linger, #include
3584 <sys/types.h> as well as <sys/socket.h>. I've never known
3585 <sys/types.h> to cause any portability problems, and Solaris's
3586 <sys/socket.h> needs it.
3587 * configure: Rebuilt.
3588
3589 I think the Sun compiler has chosen a perverse way to interpret
3590 ANSI declarations combined with K&R definitions. We'll
3591 appease it a little bit. But when it invades France, we fight.
3592 * print.c (scm_iprlist): Change 'tlr' argument to an int.
3593 * print.h (scm_iprlist): Here too.
3594 * numbers.c (scm_divbigdig): Change definition to match
3595 declaration in numbers.h.
3596 * unif.c (scm_makflo): Change definition to match declaration in
3597 unif.h.
3598
3599 * init.c (scm_boot_guile): Don't return the value of
3600 scm_boot_guile_1. This function doesn't return a value;
3601 scm_boot_guile_1 doesn't return a value (or return at all).
3602
3603 * eval.c (unmemocopy): Add a semicolon to appease the Sun
3604 compiler.
3605
3606 * simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
3607 compile. I have a feeling this function is a bad idea anyway ---
3608 one should always test for features, not systems.
3609
3610 * smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
3611 semicolons. Only pure luck kept this from being noticed earlier.
3612
3613 Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
3614
3615 * socket.c (scm_recvfrom): Added missing semicolon.
3616
3617 Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
3618
3619 * socket.c (scm_recvfrom): allow buff_or_size to be a list containing
3620 the buffer and start and end positions for scsh networking
3621 implementation.
3622
3623 Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
3624
3625 * configure.in: Revert previous change to this file; the problem
3626 is due to transient automake weirdness.
3627 * configure: Rebuilt.
3628
3629 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
3630 PLUGIN/guile.libs. configure generates the latter from the former.
3631 * Makefile.in: Rebuilt.
3632
3633 * configure.in: Call AM_PROG_INSTALL; the automake manual says we
3634 need this if we install scripts, like guile-snarf.
3635 * configure: Rebuilt.
3636
3637 Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
3638
3639 * Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
3640
3641 Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
3642
3643 * socket.c (scm_addr_vector): fix faulty scm_listify.
3644
3645 Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
3646
3647 * read.c (scm_lreadr): Encountering EOF after skipping a SCSH
3648 style block comment is no longer considered an error.
3649
3650 Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
3651
3652 * PLUGIN/guile.libs.in: New file.
3653 * PLUGIN/guile.libs: Removed from repository.
3654 * configure.in: Create PLUGIN/guile.libs from
3655 PLUGIN/guile.libs.in. This is for including additonal libraries
3656 needed for dynamic linking.
3657 * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
3658 instead of PLUGIN/guile.libs.
3659
3660 * Makefile.am: Added explicit dependency "dynl.o: dynl.x".
3661
3662 Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
3663
3664 * list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
3665 occurrences of the given element from the list, not just the
3666 first. This is how the Emacs Lisp functions behave, how the
3667 analogous Common Lisp functions behave, and (I believe) how the
3668 older Maclisp functions worked. I realize that this change may
3669 break code, but it seemed better to break it before the Guile
3670 release than after.
3671
3672 * gc.c (scm_protect_object, scm_unprotect_object): New functions.
3673 Their prototypes were already present in gc.h, but they weren't
3674 implemented.
3675 (scm_init_storage): Initialize scm_protects.
3676 * root.c (scm_protects): New element of scm_sys_protects.
3677
3678 * net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
3679
3680 Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
3681
3682 * libguile.h: Added #include "libguile/net_db.h".
3683
3684 * libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
3685 30 change. That file is only meant for communication between the
3686 configuration process and load.c. If code linked against libguile
3687 wants to get at the paths mentioned in libpath.h, it can call
3688 functions declared in load.h.
3689
3690 Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3691
3692 * libguile.h: Removed #include "libguile/fdsocket.h"
3693
3694 * net_db.c: Added #include <sys/socket.h>.
3695
3696 Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
3697
3698 * filesys.c (scm_input_waiting_p): use select in preference to
3699 FIONREAD, since the latter doesn't detect EOF.
3700 Throw error if neither select nor FIONREAD available.
3701
3702 * socket.c (scm_connect): take a port, not a fd object.
3703 (scm_fill_sockaddr): throw an error if fam is not recognised.
3704 (scm_bind): use scm_fill_sockaddr.
3705 (scm_listen): take a port, not a fd object.
3706 (scm_accept): take and return a port. return #f in the car if
3707 address can't be got
3708 (scm_sock_fd_to_port): new procedure.
3709 (scm_socket): use scm_sock_fd_to_port.
3710 (scm_addr_vector): throw error if unrecognised address type.
3711 take an extra argument with the calling procedure name.
3712 (scm_getsockname): take a port. return #f if address can't be got.
3713 (scm_getpeername): take a port. return #f if address can't be got.
3714 (scm_recvfrom): take a port. return #f for address component if can't
3715 be got.
3716 (scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
3717 scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
3718
3719 Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
3720
3721 * throw.c (scm_internal_catch): Make body funcs and handler funcs
3722 use separate data pointers, to allow them to be designed
3723 independently and reused.
3724 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
3725 Renamed from catch_body, catch_handler, and uncaught_throw; made
3726 generically useful.
3727 (struct scm_catch_body_data): Renamed from catch_body_data; moved
3728 to throw.h.
3729 (scm_catch): Use the above.
3730 (scm_throw): Don't bother printing a message for an uncaught
3731 throw; we establish a default handler in init.
3732 * throw.h (scm_internal_catch): Prototype updated.
3733 (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
3734 decls.
3735 (struct scm_body_thunk_data): New structure, used as data
3736 argument to scm_body_thunk.
3737 * init.c (struct main_func_closure): New structure, packaging up
3738 the data to pass to the user's main function.
3739 (scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
3740 (scm_boot_guile_1): Pass it through to invoke_main_func. Use
3741 scm_internal_catch to establish a catch-all handler, using
3742 scm_handle_by_message. This replaces the special-case code in
3743 scm_throw.
3744 (invoke_main_func): Body function for scm_internal_catch; invoke
3745 the user's main function, using the main_func_closure pointer to
3746 decide what to pass it.
3747 * root.c (struct cwdr_body_data): Remove handler_proc member.
3748 (cwdr): Use scm_handle_by_proc instead of cwdr_handler.
3749 (cwdr_handler): Removed.
3750
3751 Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
3752
3753 * socket.h (SCM_P): update bind prototype.
3754 * socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
3755 include "feature.h".
3756 (scm_socket): return a port, not a file descriptor object.
3757 include "fports.h" and <unistd.h>
3758 (scm_bind): take a port, not a file descriptor object.
3759 take an extra argument for address args.
3760
3761 * net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
3762 INADDR_NONE, INADDR_LOOPBACK.
3763
3764 Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
3765
3766 * init.c: include net_db.h and not fdsocket.h.
3767 (scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
3768
3769 * Makefile.am: corresponding changes.
3770 * socket.h: renamed from fdsocket.h, fix names.
3771 * net_db.h: renamed from socket.h, fix names.
3772 * socket.c: renamed from fdsocket.c.
3773 remove _sys from procedure names.
3774 (scm_init_socket): rename from scm_init_fdsocket. include socket.x.
3775 add "socket" to features list.
3776 * net_db.c: renamed from socket.c.
3777 remove _sys from procedure names.
3778 (scm_init_net_db): rename from scm_init_socket. include net_db.x.
3779 add "net-db" to features list.
3780 include "net_db.h". don't include <sys/socket.h> or
3781 <sys/un.h>.
3782
3783 Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3784
3785 * tags.h (scm_tags): Removed comma at end of last enumerator.
3786
3787 Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
3788
3789 Don't use GCC extensions to allocate space for debugging frames.
3790 (Here he goes again! Why do we put up with this?!)
3791 * debug.h (scm_debug_frame): Make the 'vect' member a pointer to
3792 an scm_debug_info structure, not an in-line array of them. Add
3793 'info' member, to say how many vect elements we've used, for eval
3794 frames.
3795 * eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
3796 a new variable debug_info_end to mark the end of vect, instead of
3797 the address of the 'info' pointer itself.
3798 [DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
3799 &debug to scm_debug_frame *; debug is a real scm_debug_frame now.
3800 (SCM_APPLY): Explicitly allocate space for debug.vect.
3801 * debug.c (scm_m_start_stack): Same, for vframe.vect.
3802 * stacks.c: Adjusted for new debug frame structure.
3803 (RELOC_INFO, RELOC_FRAME): New macros.
3804 (stack_depth, read_frames): Use them, and new scm_debug_frame
3805 element 'info', instead of magically knowing that eval frames have
3806 an info pointer sitting after vect.
3807 (scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
3808 RELOC_FRAME.
3809 (scm_init_stacks): Formatting tweaks.
3810
3811 Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
3812
3813 Give GCC more control flow information, so it can be sure that
3814 variables aren't used uninitialized.
3815 * error.h (scm_error, scm_syserror, scm_syserror_msg,
3816 scm_sysmissing, scm_num_overflow, scm_out_of_range,
3817 scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
3818 scm_misc_error): Tell GCC that these functions never return.
3819 * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
3820 out the field type, call abort if SCM_ASSERT returns, to placate
3821 the optimizer.
3822 * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
3823 scm_wta ever returns. We can't handle this case anyway, and this
3824 gives the optimizer more information.
3825 * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
3826 scm_wta ever returns.
3827
3828 In some cases, the code is fine, but GCC isn't smart enough to
3829 figure that out; this usually happens when one variable is only
3830 initialized and used when a particular condition holds true, and
3831 we know that condition will never change within a given invocation
3832 of the function. In this case, we simply initialize the variables
3833 to placate the compiler, hopefully to a value which will cause a
3834 crash if it is ever actually used.
3835 * print.c (scm_iprin1): Initialize mw_pos.
3836 * read.c (scm_lreadrecparen): Initialize tl2, ans2.
3837 * throw.c (scm_ithrow): Initialize dynpair.
3838 * unif.c (scm_uniform_vector_ref): Initialize cra.
3839 * struct.c (init_struct): Initialize prot.
3840 * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
3841
3842 * strports.c (scm_eval_0str): Don't return uninitialized garbage
3843 if EXPR contains no expressions.
3844
3845 Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
3846
3847 * eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
3848 cause an infinite loop (???). So much for the algebraic
3849 equivalency of variable-sized arrays and alloca...
3850
3851 Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
3852
3853 * backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
3854 a SCM boolean, not a C boolean.
3855
3856 Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
3857
3858 * gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
3859 (scm_must_malloc, scm_must_realloc): Added a hysteresis to the
3860 rules for raising scm_mtrigger. Previously, unfortunate but not
3861 unlikely circumstances could result in almost constant invokation
3862 of the gc. Now, this situations should be less likely, but they
3863 are not prevented completely.
3864
3865 Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
3866
3867 * numbers.c (scm_fuck): Procedure removed; looks like old test
3868 code.
3869 * numbers.h: Prototype removed.
3870
3871 Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
3872
3873 * debug.h (scm_debug_frame): Change `vect' member from an in-line
3874 array to a pointer, to match my Nov 21 change in eval.c.
3875
3876 Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
3877
3878 * libguile.h: Added #include "libguile/backtrace.h", #include
3879 "libguile/stacks.h".
3880
3881 * strings.c (scm_string scm_make_string scm_string_ref
3882 scm_string_set_x scm_string_equal_p scm_string_append):
3883 Bugfix according to scm patch from Aubrey Jaffer:
3884 Corrected long-standing
3885 (not (eqv? (integer->char 128)
3886 (string-ref (make-string 1 (integer->char 128)) 0)))
3887 bug found by John Kozak <jk@noontide.demon.co.uk>.
3888
3889 * strports.c, strports.h: Make scm_eval_0str return the value of
3890 the last expression evaluated (previously, it returned void).
3891
3892 * strports.c, strports.h: New function: scm_read_0str. Does what
3893 it sounds like.
3894
3895 Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
3896
3897 * simpos.c (scm_getenv): return #f if string can't be found in the
3898 environment instead of throwing an exception, for compatibility
3899 with numerous other systems.
3900
3901 Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
3902
3903 * Makefile.am (.c.x): Use guile-snarf.
3904 * configure.in (AC_OUTPUT): Generate guile-snarf; make it
3905 executable.
3906 * guile-snarf.in: New file, resurrected from old guile-snarf.sh.
3907
3908 Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
3909
3910 * backtrace.c (scm_display_error_message): Made non-static, and
3911 renamed from display_error_message.
3912 * backtrace.h (scm_display_error_message): Added extern decl.
3913 * throw.c (uncaught_throw): Use it to display the error message.
3914
3915 Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
3916
3917 * inet_aton.c: Use #if 0, not #ifdef 0.
3918
3919 Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
3920
3921 * ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
3922 to convert the returned value.
3923 (scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
3924 the offset argument.
3925
3926 Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
3927
3928 Add new interface to catch/throw, usable from C as well as
3929 Scheme.
3930 * throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
3931 (scm_internal_catch): New function, replaces...
3932 (scm_catch_apply): Deleted.
3933 * throw.c (scm_catch_apply): Deleted; replaced with a more general
3934 mechanism which is a bit more code, but can be used nicely from C
3935 and implement the Scheme semantics as well.
3936 (scm_internal_catch): This is the replacement; it's named after
3937 the analogous function in Emacs.
3938 (scm_catch): Reimplemented in terms of the above.
3939 (struct catch_body_data, catch_body, catch_handler): New
3940 functions, used by scm_catch.
3941 * root.c (cwdr): Reimplemented in terms of scm_internal_catch.
3942 (struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
3943 support for new cwdr.
3944
3945 * Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
3946 Oct 30.
3947
3948 Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
3949
3950 * acconfig.h: Added DYNAMIC_LINKING symbol.
3951 * configure.in: Add option and checks for dynamic linking.
3952 * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
3953 dynl.h: New files for dynamic linking support.
3954 * Makefile.am (libguile_a_SOURCES):
3955 Added "dynl.c".
3956 (modinclude_HEADERS): Added "dynl.h".
3957 (EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
3958 "dynl-vms.c".
3959 * init.c (scm_boot_guile_1): Call
3960 scm_init_dynamic_linking to initialize dynamic linking support.
3961
3962 Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
3963
3964 * init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
3965 (as we Schemers say). It needs to be global, so that I can tweak
3966 it for the proper operation of unexec.
3967 (scm_boot_guile_1_live): New variable, see above.
3968
3969 Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
3970
3971 * guile-snarf.sh: Removed.
3972 * PLUGIN/guile.libs: Added dependency for -lm.
3973 * acinclude.m4: Renamed from aclocal.m4.
3974 * PLUGIN/greet: Removed.
3975 * Makefile.am, aclocal.m4: New files.
3976 * configure.in: Updated for Automake.
3977
3978 Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
3979
3980 * eval.c (scm_definedp): Use top_level_lookup_closure_var
3981 and not top_level_lookup_thunk_var.
3982
3983 Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
3984
3985 * Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
3986
3987 Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
3988
3989 * eval.c (scm_definedp): Incompatibly changed to be a builtin
3990 Scheme function, instead of syntax. Single argument is now a
3991 symbol.
3992
3993 Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
3994
3995 * ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
3996 scm_ra_divide): Properly terminate statements passed as arguments
3997 to IVDEP macros. (Thanks to Bernard Urban.)
3998
3999 * eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
4000 with non-constant sizes. (Thanks to Bernard Urban.)
4001
4002 Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
4003
4004 It's an "eval closure", not an "eval thunk." A thunk is a
4005 function of no arguments.
4006 * root.h (struct scm_root_state): Renamed
4007 top_level_lookup_closure_var from top_level_lookup_thunk_var.
4008 (scm_top_level_lookup_closure_var): Renamed from
4009 scm_top_level_lookup_thunk_var.
4010 * root.c (mark_root): Uses changed.
4011 * gdbint.c (gdb_eval, gdb_binding): Uses changed.
4012 * init.c (scm_start_stack): Uses changed.
4013 * eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
4014 Change scheme-visible name to *top-level-lookup-closure* from
4015 *top-level-lookup-thunk*.
4016
4017 Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
4018
4019 * gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
4020 pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
4021
4022 Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
4023
4024 * gc.c (struct scm_heap_seg_data): Doc fixes.
4025
4026 * gc.c (scm_gc_sweep): Empty all segments' freelists before
4027 sweeping. Then, prepend each segment's free cells to its
4028 freelist, rather than wiping out the old value. (Thanks to Marius
4029 Vollmer.)
4030
4031 * gc.c (which_seg, scm_map_free_list, scm_newcell_count,
4032 scm_check_freelist, scm_debug_newcell): New functions and
4033 variables, for debugging freelist problems.
4034 * pairs.h (SCM_NEWCELL): New debugging version added.
4035 * gc.h (scm_debug_newcell): Added extern declaration, used by
4036 debugging version of SCM_NEWCELL.
4037
4038 Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
4039
4040 On some systems <libc.h> conflicts with <unistd.h>, and should not
4041 be #included at all.
4042 * aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
4043 * acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
4044 * configure.in: Call it.
4045 * posix.c, filesys.c: Use its results to decide whether or not to
4046 #include <libc.h>.
4047 * configure, scmconfig.h.in: Rebuilt with autoconf and
4048 autoheader.
4049
4050 Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
4051
4052 * fports.c (scm_stdio_to_port, scm_open_file): Set the port's
4053 pointer to the stdio stream before calling scm_setbuf0, so the
4054 latter will be able to retrieve it. I'm surprised this didn't
4055 segfault earlier. (Thanks to Christopher Lee.)
4056
4057 Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4058
4059 * throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
4060 of `lazy-catch'.
4061
4062 Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4063
4064 * stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
4065 number of stack narrowing specifier pairs. The first specifier in
4066 a pair controls inner border, the second the outer border. A
4067 number means cut that number of frames, a procedure object means
4068 cut until that object is found in operator position in a frame.
4069
4070 * root.c (cwdr): Bugfix.
4071
4072 * read.c: Recording of positions disabled by default.
4073
4074 * procs.c (scm_closure_p): New function.
4075
4076 * posix.c (scm_tmpnam): New function.
4077
4078 * load.c: Added #include "throw.h".
4079 (scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
4080 ends with '/'.
4081
4082 * load.c, load.h (scm_read_and_eval_x): New function.
4083
4084 * eval.c: Renamed debug option "deval" to "debug".
4085
4086 (scm_eval_x): `eval!' is no longer accessible from the scheme
4087 level. Motivation: We can't allow operations which introduce
4088 glocs into the scheme level. Guile's type system can't handle
4089 these as data. Use `eval' or `read-and-eval!' as replacement.
4090
4091 * debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
4092 SCM_CONSP since this is a macro!; Set vframe.prev to
4093 scm_last_debug_frame instead of 0. In this way we can look
4094 "above" the virtual start stack frame if we wish.
4095 (scm_debug_hang): New function: Useful for debugging Guile in
4096 certain tricky situations. Will probably be removed later...
4097
4098 * debug.h: Changed semantics of debug option "backtrace". This
4099 option now only indicates whether we want automatic backtrace at
4100 an error.
4101
4102 Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4103
4104 * ports.c: #include "filesys.h"
4105 (scm_char_ready_p): input_waiting renamed and moved to filesys.c.
4106
4107 * filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
4108 Motivation: This is system specific code which is related to file
4109 I/O. It also may use select. Added code by Gary Houston to
4110 detect presence of character in stdio buffers.
4111
4112 * libguile.h: #include "libguile/libpath.h"
4113
4114 * Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
4115 SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
4116 SCM_SITE_DIR; Install libpath.h among the other include files.
4117
4118 * load.c, load.h (scm_sys_package_data_dir): New function.
4119
4120 Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4121
4122 * stacks.h: Bugfix: Don't use tail-array length field as stack
4123 length field! This screwed GC.
4124
4125 Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4126
4127 * _scm.h: Added #ifndef around definition of macros min and max.
4128
4129 * __scm.h: Added hooks for threads to plugin to in ints protection
4130 macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
4131 SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
4132 the main code in these macros duplicated and spread over multiple
4133 files. Renamed SCM_THREADS_SWITCHING_CODE ->
4134 SCM_THREAD_SWITCHING_CODE.
4135
4136 Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
4137
4138 * snarf.h: New file.
4139 * guile-snarf.sh: New file.
4140 * Makefile.in (inner_h_files): Added snarf.h
4141 (ancillary, install, uninstall, distclean): Added actions for
4142 guile-snarf.
4143 (.c.x): Use guile-snarf.
4144 (guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
4145 (gen_c_files): Note that these depend on guile-snarf.
4146 * _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
4147 now in "snarf.h". Added #include "snarf.h" to get them.
4148 * libguile.h: Added #include "snarf.h".
4149 (Patches applied and tweaked by Jim Blandy.)
4150
4151 Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
4152
4153 * socket.c: Use K&R style declaration for 'close'; the GNU coding
4154 standards suggest against providing prototypes for system
4155 functions. Thanks to Greg Troxel.
4156
4157 Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
4158
4159 * strports.c (scm_eval_0str): New function.
4160 #include "read.h", to get prototype for scm_read.
4161 * Makefile.in (strports.o): Update dependencies.
4162 * strports.h: New prototype.
4163
4164 * numbers.c (scm_integer_p): Renamed from scm_int_p; change its
4165 scheme name from "int?" to "integer?". It seems to do the job.
4166 * numbers.h: Rename prototype too.
4167 * scmhob.h (intp): Change definition to refer to scm_integer_p. I
4168 hope this is right.
4169
4170 * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
4171 scm_num_eq_p): Rename these according to R4RS conventions: call
4172 them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
4173 to making libguile R4RS compliant without ice-9...
4174
4175 * load.c (scm_sys_search_load_path): Search for files under all
4176 extensions listed in the %load-extensions variable. If FILENAME
4177 is absolute, return it unchanged, without searching the load path.
4178 (scm_loc_load_extensions): New variable, pointing to
4179 %load-extensions' value cell.
4180 (scm_init_load): Initialize it, and the value it points to.
4181 (scm_primitive_load_path): Improve error reporting.
4182
4183 * load.c (scm_loc_load_hook): New variable, pointing to value cell
4184 of new Scheme variable %load-hook.
4185 (scm_primitive_load): Apply %load-hook to filename.
4186
4187 Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
4188
4189 * configure.in: add tests for figuring out whether buffered data
4190 is available in a FILE structure, which is needed by char-ready.
4191
4192 * acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
4193 FILE_CNT_READPTR.
4194
4195 * simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
4196 exceptions using misc_error instead of syserror. It seems a bit
4197 odd to throw an exception if a string can't be found in the
4198 environment, but it's consistent with open-file, stat etc.
4199 (simpos.h): remove sys_ from getenv.
4200
4201 * posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
4202 occurs, throw an error instead of returning errno. Return value
4203 is now unspecified.
4204 (numerous in posix.c and posix.h): removed superfluous sys_ from names.
4205
4206 Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
4207
4208 * filesys.c (scm_stat2scm): derive file type and permissions from
4209 the stat mode and append them to the returned vector.
4210 There isn't much overhead in doing this and it avoids the need to
4211 work with S_IRUSR et al. in Scheme.
4212 Define symbols scm_sym_regular etc.
4213 (scm_init_filesys): don't intern S_IRUSR etc.
4214
4215 * load.c: change s_try_load and s_try_load_path to s_primitive_load
4216 and s_primitive_load_path.
4217
4218 * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
4219
4220 * error.h: don't declare error symbols. prototype for scm_misc_error.
4221
4222 * stackchk.c (scm_stack_overflow_key): defined here instead of in
4223 error.c.
4224
4225 * error.c: use SCM_SYMBOL to set up error keys.
4226 scm_misc_error: new procedure.
4227
4228 Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
4229
4230 * read.c (scm_lreadr): Recognize SCSH-style block comments; text
4231 between `#!' and `!#' is ignored.
4232 (skip_scsh_block_comment): New function.
4233
4234 * feature.c (scm_set_program_arguments): New argument, FIRST.
4235 * feature.h: Update prototype.
4236 * init.c (scm_boot_guile_1): Pass new argument to
4237 scm_set_program_arguments.
4238
4239 Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
4240
4241 * init.c (scm_start_stack): Don't initialize scm_progargs here.
4242 (scm_boot_guile): Call scm_set_program_arguments here, later than
4243 the old initialization.
4244
4245 * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
4246 initialization procedure.
4247 - Delete in, out, err arguments; there are other perfectly good
4248 ways to override these when desired.
4249 - Delete result argument; this function shouldn't ever return.
4250 - Rename init_func argument to main_func, for less confusion.
4251 - Delete boot_cmd argument; main_func is more general.
4252 -Add 'closure' argument, to help people pass data to main_func
4253 without resorting to global variables.
4254 - Abort if reentered; don't bother returning an error code.
4255 - Call scm_init_standard_ports to set up the default/current
4256 standard ports; no need to pass them to scm_start_stack.
4257 - Remove code to evaluate the boot_cmd, and start the repl; let
4258 the user do something like that in main_func if they want.
4259 - Remove code to package up a return value; main_func can do any
4260 of that as needed.
4261 - Call exit (0), instead of returning.
4262 (scm_start_stack): Don't initialize the I/O ports here; that's
4263 weird. Delete in, out, err arguments. Move guts to
4264 scm_init_standard_ports, scm_stdio_to_port.
4265 (scm_init_standard_ports): New function, to set up current and
4266 default standard ports.
4267 (scm_start_stack, scm_restart_stack): Make these static.
4268 * init.h (scm_boot_guile): Adjust declaration.
4269 (scm_start_stack, scm_restart_stack): Remove externally
4270 visible declarations for these.
4271 (enum scm_boot_status): Removed; now scm_boot_guile never returns.
4272
4273 * fports.c (scm_stdio_to_port): New function. Its guts used to be
4274 written out several times in scm_start_stack.
4275 * fports.h: New declaration for the above.
4276
4277 * feature.c (scm_set_program_arguments): New function.
4278 * feature.h: New declaration for the above.
4279
4280 * ports.c: Formatting tweak.
4281
4282 Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
4283
4284 * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
4285 ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
4286 for obtaining the address of a car or cdr field. Motivation:
4287 &SCM_CXR make assumptions about the internal structure of the
4288 SCM_CXR selectors.
4289
4290 * eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
4291 Motivation: see SCM_CXRLOC.
4292
4293 * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
4294 srcprop.h, tags.h, throw.c, unif.c: Added new selectors
4295 SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
4296 Motivation: Safer use. Some other macros are defined in terms of
4297 these operations. If these are defined using the SCM_SETCXR
4298 (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
4299 to inefficiency and an <e1> with side-effects could potentially
4300 break. Also, these particular operations are heavily utilized in
4301 the garbage collector. In unoptimized code there will be a
4302 measurable speedup.
4303
4304 * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
4305 eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
4306 ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
4307 pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
4308 procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
4309 strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
4310 vports.c: Cleaned up use of pairs: Don't make any special
4311 assumptions about the internal structure of selectors and
4312 mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
4313 SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
4314 (Among other things, this change makes it easier to build Guile
4315 with certain compilers which have problems with casted lvalues.)
4316
4317 Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
4318
4319 * stacks.c: Improve selection of relevant stack frames when making
4320 a stack object. Introduce one level of indirection in the stack
4321 object to make it possible to "narrow" to a certain region of the
4322 stack. This facilitates making use of more clever algorithms (not
4323 implemented) for selecting relevant frames and gives a cleaner
4324 design since selection of frames can be done independently of
4325 extraction of frames from the real stack.
4326 (scm_stack_id): Also take #t as argument which means look at
4327 current stack.
4328
4329 * stacks.h: In struct scm_stack: Turn field frames into a pointer.
4330 Turn n_tail into an integer directly representing current number
4331 of frames in stack. Add field tail.
4332
4333 * ports.c (scm_port_line_x, scm_port_column_x): New mutators.
4334
4335 * debug.c (scm_make_memoized): Made it available at scheme level.
4336 (scm_unmemoize, scm_memoized_environment): Bugfix: Check for
4337 SCM_NIMP before applying heavier predicates in argument checking.
4338 (scm_local_eval): Also take memoized object as argument.
4339
4340 * backtrace.c (scm_display_error): Just a safety measure: Stacks
4341 aren't created with zero length, but should such a strange
4342 creature suddenly turn up...
4343
4344 Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
4345
4346 * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
4347 `del', for the sake of C++ compilers. (Patch applied by JimB.)
4348
4349 Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
4350
4351 * variable.c (scm_make_variable): Make the name hint optional, as
4352 documented.
4353 (anonymous_variable_sym): Renamed from variable_sym. All uses
4354 changed.
4355
4356 * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
4357 from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
4358 of scm_primitive_load_path was also changed to
4359 "primitive-load-path", from "%try-load-path". Callers changed.
4360 We'd like to respect the convention that a function named
4361 "try-mumble" should behave just like the function called "mumble",
4362 but return #f instead of signalling some error.
4363 * load.h: Rename prototypes.
4364
4365 Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4366
4367 * print.c (make_print_state, grow_print_state), print.h: Modified
4368 the print state representation: Don't use a tail array for
4369 recording of circular references. Resizing of the print state
4370 structure invalidates the print state pointer. To avoid passing
4371 around an indirect print state reference to all printing
4372 functions, we instead let the print state reference a resizable
4373 vector.
4374
4375 Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
4376
4377 * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
4378 Don't crash when passed an improper list terminated by a
4379 non-immediate value.
4380
4381 Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
4382
4383 Allocate data for structures on an eight-byte boundary, as
4384 required by the tagging system.
4385 * struct.c (alloc_struct): New function.
4386 (scm_make_struct, scm_make_vtable_vtable): Call it.
4387 * struct.h (scm_struct_n_extra_words): Bump to 3.
4388 (scm_struct_i_ptr): New "field".
4389 * gc.c (scm_gc_sweep): When we need to free the data, use the
4390 information stored by alloc_struct to find the beginning of the
4391 block allocated to the structure, so we can free it.
4392
4393 Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4394
4395 * init.c (scm_boot_guile_1): Moved scm_init_struct in front of
4396 scm_init_stacks.
4397
4398 * debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
4399 (scm_debug_info): New member: id.
4400
4401 * stacks.c: Stacks are now represented as structs; Stacks have an
4402 id given to them by `start-stack'.
4403 (scm_last_stack_frame): Added predicates `stack?' and `frame?'.
4404
4405 * stacks.h: Added declarations of scm_stack_p and scm_frame_p;
4406 Changed stack representation.
4407
4408 * debug.c (scm_procedure_name): Try procedure property `name' for
4409 compiled closures aswell.
4410
4411 * gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
4412
4413 * eval.c: scm_i_name moved to gsubr.c
4414 (scm_m_define): Record names of all kinds of procedure
4415 objects. (Earlier, only closures were recorded.)
4416
4417 * procprop.h: Added declaration of scm_i_name.
4418
4419 * gsubr.c: Added global scm_i_name. Added #include "procprop.h".
4420 (scm_make_gsubr): Record names of compiled closures.
4421
4422 Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4423
4424 * debug.c, debug.h: Removed obsolete code.
4425
4426 * continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
4427 stacks.c: Renamed regs --> scm_contregs.
4428
4429 * print.c (scm_free_print_state): Cleanup print state before
4430 returning it to pool. It is better to do it here than in
4431 scm_prin1 since scm_prin1 is called often.
4432
4433 * srcprop.c (scm_source_properties, scm_set_source_properties_x,
4434 s_set_source_property_x): Check that first argument is a pair or a
4435 memoized object.
4436
4437 * srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
4438 scm_i_line, scm_i_column and scm_i_breakpoint global.
4439
4440 * init.c: Added #include "backtrace.h" and #include "stacks.h".
4441 (scm_boot_guile_1): Added calls to scm_init_backtrace and
4442 scm_init_stacks.
4443
4444 * debug.h: Added debug object smob declaration and macro
4445 definitions.
4446
4447 * configure.in: Build with backtrace.o and stacks.o if debug
4448 support enabled.
4449
4450 * Makefile.in: Added entries for new files: backtrace.c,
4451 backtrace.h, stacks.c and stacks.h.
4452
4453 * symbols.c (scm_sym2ovcell): Fixed documentation.
4454
4455 * _scm.h (min, max): Added.
4456
4457 * async.c: Moved `min' macro to _scm.h.
4458
4459 * debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
4460 SCM_BACKTRACE_INDENT.
4461
4462 * eval.c: Added new debug options `maxdepth' and `indent'.
4463
4464 * print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
4465
4466 * print.h: Added selector SCM_PRINT_STATE.
4467
4468 * print.c: New functions: scm_make_print_state,
4469 scm_free_print_state.
4470
4471 * print.h: Added declarations for scm_make_print_state,
4472 scm_free_print_state.
4473
4474 * debug.c (scm_m_start_stack): New acro.
4475
4476 * debug.h: Small cleanup.
4477
4478 * init.c (scm_boot_guile_1): Moved scm_init_debug below
4479 scm_init_eval.
4480
4481 Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
4482
4483 * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
4484 arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
4485 chars.c, chars.h, continuations.c, continuations.h, debug.c,
4486 debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
4487 eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
4488 filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
4489 gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
4490 hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
4491 kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
4492 markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
4493 objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
4494 ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
4495 procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
4496 root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
4497 simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
4498 stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
4499 strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
4500 struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
4501 unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
4502 version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
4503 declare functions with prototypes. (Patch thanks to Marius
4504 Vollmer.)
4505
4506 More prototype-related changes from Marius Vollmer:
4507 * gdb_interface.h: Wrapped header file in #ifdef/#endif
4508 * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
4509 * ports.h (ptobfuns): Added prototypes. This means some casting in
4510 fports.c.
4511 * fports.c: Added casts for initializations, since the functions
4512 are defined to take FILE * as their stream argument, not SCM.
4513 * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
4514 * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
4515 to `char *str_data' to conform to prototype.
4516
4517 Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
4518
4519 * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
4520
4521 * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
4522
4523 * stime.c, stime.h: use SCM_P method.
4524
4525 Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
4526
4527 * eval.c (scm_nconc2last): Don't accept an empty list; apply must
4528 be given at least two arguments. Insist that lst's last element
4529 be a list, but don't make any requirements of its predecessors.
4530
4531 Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
4532
4533 * eval.c (scm_nconc2last): Revert last change; there seems to be
4534 other stuff going on here.
4535
4536 Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
4537
4538 * eval.c (scm_nconc2last): Make sure that each element of lst
4539 (which is a list of argument lists, except for the tail) is a
4540 proper list, i.e., finite and terminated by '().
4541
4542 Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
4543
4544 * unif.c (scm_ra_set_contp): Localize `inc' declaration.
4545 Clarifies flow.
4546
4547 * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
4548 symbolic name for the tag, scm_tc3_cons_gloc, instead of just
4549 saying "1".
4550
4551 * vectors.c (scm_make_vector): Fill vectors with the undefined
4552 value, to help make Guile Scheme code more portable to other
4553 Schemes.
4554
4555 * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
4556 * symbols.h, tags.h: Doc fixes.
4557
4558 Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
4559
4560 * async.c (scm_take_signal): Doc fixes.
4561
4562 Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
4563
4564 * numbers.c (scm_divbigint): When the remainder is zero, we don't
4565 want to subtract it from the modulus; we just want to leave it
4566 alone.
4567
4568 Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
4569
4570 * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
4571 `scm_init_threads'.
4572
4573 * throw.h (scm_catch_apply): Removed the `lazyp' argument.
4574
4575 * throw.c (scm_catch_apply): Finished implementation of
4576 `lazy-catch'.
4577
4578 Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
4579
4580 * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
4581 check.
4582 (scm_init_filesys): set "i/o-extensions" feature.
4583 include feature.h.
4584
4585 Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
4586
4587 * Makefile.in (root.o): Correct dependencies.
4588
4589 Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
4590
4591 * Makefile.in: Added dependency entry for root.o.
4592
4593 * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
4594 throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
4595
4596 * init.c (scm_start_stack): Set initial root continuation number
4597 to 0.
4598
4599 * procs.c: New function: scm_thunk_p.
4600
4601 * procs.h: Added declarations of scm_thunk_p.
4602
4603 * root.c: Renamed `call-with-new-root' -->
4604 `call-with-dynamic-root'.
4605 (cwdr): Removed allocation of new root state. This should be done
4606 separately by use of scm_make_root.
4607 (scm_apply_with_dynamic_root): New function: Does what it
4608 sounds like. Needed when spawning threads.
4609
4610 * root.h: Added member last_debug_frame to root state.
4611 Added #include "libguile/debug.h"
4612
4613 * throw.c: Renamed scm_catch --> scm_catch_apply and added more
4614 arguments. The motivation is that code in root.c needs catch
4615 functionality, and we want to avoid code duplication.
4616 New functions: scm_catch, scm_lazy_catch. These are wrappers for
4617 scm_catch_apply. scm_lazy_catch is intended to introduce catch
4618 handlers that run without popping the stack into the dynwind
4619 chain.
4620
4621 * throw.h: Added prototypes for scm_catch_apply and
4622 scm_lazy_catch.
4623
4624 Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4625
4626 * root.h (scm_root, scm_set_root): Decouple thread support details
4627 by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
4628 SCM_SET_THREAD_LOCAL_DATA.
4629
4630 * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
4631 and tortoise scanning loop.
4632
4633 Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
4634
4635 * Makefile.in: Rebuild dependencies.
4636
4637 * libguile.h: #include "libguile/print.h" before "smob.h", since
4638 the latter uses the print_state structure.
4639
4640 * throw.c (scm_ithrow): Use the correct variable when checking to
4641 see if a given element of scm_dynwinds is a valid catch.
4642
4643 * throw.c (scm_ithrow): If scm_dynwinds has invalid list
4644 structure, abort; don't just silently ignore the garbage.
4645
4646 * _scm.h: #include "print.h" here, since it seems to be used just
4647 about everywhere.
4648 * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
4649 strports.c, unif.h: Don't #include "print.h".
4650
4651 Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4652
4653 * feature.h (scm_loc_features): Removed external declaration.
4654 (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
4655
4656 Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4657
4658 * feature.c (scm_init_feature): Added threads feature (needs to be
4659 initialized here, since features doesn't exist when
4660 scm_init_threads is called).
4661
4662 * libguile.h: Added #include "libguile/../threads/threads.h".
4663 (This is a kludge to get thread support working. This should be
4664 fixed.)
4665
4666 * configure.in, acconfig.h: Added flags for thread support.
4667
4668 * scmsigs.c: Define `signal' to be `pthread_signal' if using
4669 mit-pthreads.
4670
4671 * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
4672 SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
4673 root.c:mark_root.
4674
4675 * _scm.h: Added conditional #include "threads.h"
4676
4677 * __scm.h (SCM_ASYNC_TICK): Added call to macro
4678 SCM_THREADS_SWITCHING_CODE.
4679
4680 * init.c (scm_start_stack): Call `scm_make_root' to dynamically
4681 allocate the basic dynamic root object.
4682 (scm_boot_guile): Added call to scm_init_root.
4683
4684 * root.c, root.h: Added root smob.
4685 (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
4686 functions: Implements dynamic roots mostly according to spec in
4687 SCM manual. Main difference is that the second argument is a
4688 throw handler rather than an error "thunk".
4689
4690 * root.h: Added declaration of scm_init_root.
4691
4692 * root.c: Added #include "genio.h", #include "smob.h", #include
4693 "pairs.h", #include "throw.h", #include "dynwind.h", #include
4694 "eval.h"
4695 (scm_init_root): Added #include "root.x".
4696
4697 * throw.c: Added #include "stackchk.h"
4698 (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
4699 SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
4700 can be used in scm_call_with_new_root; Added reenabling of stack
4701 checking when catching a throw.
4702
4703 Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
4704
4705 * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
4706
4707 * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
4708 element is not found, as per R4RS.
4709
4710 Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
4711
4712 * list.c: Doc fixes throughout.
4713
4714 Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
4715
4716 * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
4717 declare the char * to be const. Avoids a warning in rgx.c.
4718
4719 * ports.h: spelling fix.
4720
4721 * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
4722 error messages.
4723
4724 * load.c (scm_sys_try_load_path): throw an error if file not found
4725 (like it says it in NEWS).
4726
4727 Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
4728
4729 * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
4730 PROPS slot to '(), not #f; it's an empty alist.
4731
4732 * throw.h, throw.c: Use SCM_P instead of #if hair.
4733
4734 Remove special support for uncaught throws; see throw.c for
4735 rationale.
4736 * throw.c (uncaught_throw): New function.
4737 (scm_ithrow): Call uncaught_throw if we don't find a throw
4738 target; don't mess with scm_bad_throw_vcell.
4739 (scm_bad_throw_vcell): Variable deleted.
4740 (scm_init_throw): Don't initialize it.
4741
4742 * throw.c (scm_ithrow): Don't let outer key matches shadow inner
4743 #t catches.
4744
4745 Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
4746
4747 * numbers.c (scm_istr2int): If the number is short (as most
4748 numbers are), just call scm_small_istr2int to deal with it.
4749 (scm_small_istr2int): New function, created by un-#ifdefing the
4750 non-bignum version of scm_istr2int and renaming it.
4751
4752 Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
4753
4754 * load.c (scm_sys_try_load): don't check whether value returned
4755 by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
4756 Change the Scheme name from %try-load to primitive-load.
4757
4758 * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
4759 Can avoid passing a message, allowing it to be derived in the
4760 error handler (e.g., if we want to throw to the key both from
4761 Scheme and C).
4762
4763 Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
4764
4765 * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
4766 references now have a new appearance which is more compact and
4767 also gives a clue about what the target of the reference is.
4768 By setting parameters in the print state, more fancy printing can
4769 be achieved. This is used by the (not yet commited) backtrace
4770 code.
4771
4772 Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
4773
4774 * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
4775 "print.h"
4776
4777 * print.c: Added #include "struct.h". Removed function
4778 scm_prlist.
4779
4780 * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
4781 scm_iprin1. Removed prototype for scm_prlist.
4782
4783 * arbiters.c (prinarb),
4784 async.c (print_async),
4785 debug.c (prindebugobj, prinmemoized),
4786 eval.c (prinprom, prinmacro),
4787 filesys.c (scm_fd_print, scm_dir_print),
4788 kw.c (print_kw),
4789 mallocs.c (prinmalloc),
4790 numbers.c, numbers.h (scm_floprint, scm_bigprint),
4791 smob.h (scm_smobfuns),
4792 srcprop.c (prinsrcprops),
4793 throw.c (prinjb),
4794 unif.c, unif.h (scm_raprin1, rapr1),
4795 variable.c (prin_var): Changed argument `int writing' to
4796 `scm_print_state *pstate'.
4797
4798 * init.c (scm_boot_guile): Moved scm_init_struct upwards so
4799 that it will be called before scm_init_print.
4800
4801 * print.c (scm_prin1): Print states are now allocated when calling
4802 scm_prin1 and then passed around to all printing functions as an
4803 argument. A cache `print_state_pool' enables reuse of print
4804 states.
4805 (scm_make_print_state): New function.
4806 (scm_iprin1): Adaption to print states.
4807 (scm_iprlist): An initial "hare and tortoise" scan brings down
4808 time complexity to O (depth * N). (Better time complexity will be
4809 achieved when the printing code is completely rewritten.)
4810
4811 Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
4812
4813 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
4814 AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
4815 it gets done whether or not the cache variable has a value.
4816
4817 Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
4818
4819 Distinguish #f and ().
4820 * __scm.h: #undef SICP.
4821 * pairs.h (SCM_EOL): Delete this definition, equating it with
4822 SCM_BOOL_F.
4823 * tags.h (SCM_EOL): Give it a new definition here; I think I found
4824 the value it used to have. Doc fixes, too.
4825
4826 Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
4827
4828 * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
4829 scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
4830 Lord's implementation of structs, allowing for tail arrays as
4831 described in the manual. Also fixed some bugs. (Both the interface
4832 and the implementation should be improved.)
4833
4834 * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
4835
4836 * print.c, print.h: Closures now print like #<procedure foo (x)>.
4837 People who whish to see the source can do `(print-enable 'source)'.
4838 Removed #ifdef DEBUG_EXTENSIONS.
4839
4840 Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
4841
4842 * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
4843 integer (assuming for now accepting an integer is a good thing).
4844
4845 * error.c, fports.c: replace use of %S in lgh_error args with %s.
4846 %S will be used instead for write'ing arguments.
4847
4848 * unif.c (scm_transpose_array): change arguments in the SCM_WNA
4849 asserts. fix a few other asserts.
4850 (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
4851 scm_uniform_vector_ref, scm_array_set_x,
4852 scm_dimensions_to_unform_array): change args in
4853 SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
4854 strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
4855 scm_substring_fill_x): likewise.
4856 gsubr.c (scm_gsubr_apply): likewise.
4857 eval.c (SCM_APPLY): likewise.
4858
4859 * eval.c (4 places): replace scm_everr with lgh_error or
4860 scm_wrong_num_args.
4861
4862 * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
4863 scm_memory_error): new procedures.
4864 scm_everr: deleted. can use scm_wta, dropping first two args.
4865 scm_error: convert NULL subr to SCM_BOOL_F.
4866
4867 * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
4868 SCM_ARGERR.
4869
4870 * stackchk.c (scm_report_stack_overflow): use lgh_error instead
4871 of scm_wta.
4872
4873 * error.c, error.h: new error keys: scm_arg_type_key,
4874 scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
4875 scm_misc_error_key.
4876 scm_wta: reimplement using lgh_error instead of scm_everr.
4877
4878 Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
4879
4880 * gdbint.c: scm_lread now has one more argument.
4881
4882 * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
4883 scm_port_\1; Added mutator scm_set_port_filename_x (used when
4884 loading source from non-file ports, which, e. g., happens when
4885 using the Emacs interface).
4886
4887 * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
4888 object.
4889
4890 * read.c: Added code for recording of positions of source code
4891 expressions; New functions: recsexpr, scm_lreadrecparen;
4892 _scm_make_srcprops --> scm_make_srcprops
4893 (scm_flush_ws): Removed updating of positions counters. This work
4894 is already done by scm_gen_getc
4895
4896 * read.h: Added prototype for scm_lreadrecparen
4897
4898 * print.c: Added #include "alist.h"
4899
4900 * eval.c: Added #include "hash.h"
4901
4902 * eq.c: Added #include "ramap.h"
4903
4904 * options.c: Documentation fixes.
4905
4906 * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
4907 (scm_init_srcprop): Adjusted size of initial source-whash. Name
4908 changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
4909 --> scm_make_srcprops
4910
4911 * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
4912 _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
4913 function calls in the definition of the whash access macros.
4914
4915 Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
4916
4917 * init.c (scm_boot_guile): Add level of indirection to
4918 scm_boot_guile_1() to ensure that stack base pointer is properly
4919 initialized. There was no guarantee that variable i was the
4920 highest/lowest variable on stack (i.e. the call frame of
4921 scm_boot_guile was not completely protected from gc).
4922
4923 Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
4924
4925 * ports.h (scm_port_table): put back file_name, it will be used to
4926 support debugging. Undo related changes in fports.c, ioext.c,
4927 ports.c, gc.c.
4928
4929 Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
4930
4931 * ports.h (scm_port_table): remove file_name member for now, it seems
4932 undesirable.
4933 * fports.c (scm_open_file): don't set file_name in PTAB.
4934 (prinfport): don't use file_name in PTAB.
4935 * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
4936 * ports.c (scm_add_to_port_table): don't intialize file_name.
4937 (scm_port_file_name): remove for now.
4938 * gc.c (scm_gc_mark): don't mark PTAB file_name.
4939
4940 * fports.h (scm_mkfile): prototype deleted.
4941 * fports.c (scm_mkfile): merged into scm_open_file to simplify.
4942
4943 * debug.c, unif.c: use scm_out_of_range instead of
4944 wta for range errors (ASSERT still needs work).
4945
4946 * error.c, error.h (scm_out_of_range): new procedure.
4947
4948 * error.c, error.h (scm_out_of_range_key): new key.
4949
4950 * posix.c (scm_sync): #else was missing.
4951
4952 * error.c, error.h: append _key to names scm_num_overflow and
4953 scm_system_error.
4954
4955 * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
4956 of consing an empty list.
4957 (SCM_SYSERROR etc.): move into error.c, make them procedures instead
4958 of macros, saves code and string space.
4959 error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
4960 fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
4961 lower case. Rename scm_syserror_m to scm_syserror_msg.
4962 error.h: prototypes for new procedures.
4963
4964 Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
4965
4966 * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
4967
4968 * error.c, error.h: setup scm_num_overflow key.
4969
4970 * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
4971 Remove definition of SCM_OVSCM_FLOW.
4972
4973 * fports.c (scm_open_file): use SCM_SYSERROR_M.
4974
4975 * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
4976 explicit message and args.
4977
4978 * error.c, error.h, __scm.h: change system_error_sym to
4979 scm_system_error.
4980
4981 * error.c (system_error_sym): remove leading %% from the Scheme name
4982 "%%system-error".
4983
4984 * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
4985
4986 Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4987
4988 * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
4989 fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
4990 numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
4991 tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
4992 renamed. (These were introduced by unsupervised name
4993 substitution.)
4994
4995 Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
4996
4997 * print.c: Added code for detection of circular references during
4998 printing. (init_ref_stack, grow_ref_stack): New functions. Added
4999 a hook for printing of closures (accessible via print options).
5000 This leads to a split of calls to scm_iprin1 into two classes:
5001 elementary print operations (e. g. the code which prints a smob)
5002 still use scm_iprin1 while top level calls (like scm_display) use
5003 scm_prin1. scm_prin1 begins by clearing the data structure used
5004 to record reference information.
5005
5006 * print.h: Added declarations of scm_prin1 and scm_prlist.
5007
5008 * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
5009
5010 * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
5011
5012 * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
5013
5014 * error.c (err_head): scm_iprin1 --> scm_prin1
5015
5016 * debug.c: Adjusted header comment.
5017
5018 * tags.h: Typo.
5019
5020 Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
5021
5022 * strerror.c: Doc fix.
5023
5024 Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5025
5026 * gdbint.c (gdb_read): Now possible to run during GC.
5027 (unmark_port, remark_port): New functions.
5028
5029 * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
5030
5031 * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
5032 of allocating a new string object. Also, increase size by
5033 the factor 2 instead of 1.5.
5034
5035 Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
5036
5037 * __scm.h (SCM_P): Corrected to run under traditional C.
5038
5039 * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
5040 removed.
5041
5042 * async.c: Calls to scm_sysintern corrected.
5043
5044 * async.h (scm_async_clock): Redundant declaration removed.
5045
5046 * continuations.c (scm_dynthrow): Redundant declaration removed.
5047
5048 * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
5049 Definition typos corrected.
5050
5051 * debug.h: Missing declarations of functions in debug.c added
5052 (lots).
5053
5054 * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
5055 Missing declarations to functions in eval.c added.
5056
5057 * filesys.c: Possibly uninitialized variable rv.
5058
5059 * gc.h (scm_object_addr, scm_unhash_name): Missing
5060 declarations of functions defined in gc.c added.
5061
5062 * genio.c: Possible typos str_data -> wstr_data. ???
5063
5064 * genio.c: Possibly unintended shadowing of local variable
5065 `int c' (gotos out of scope of inner `c'). ???
5066
5067 * init.c: Uninitialized `SCM last' may be used.
5068
5069 * ioext.h: (scm_sys_isatty_p): Typo.
5070
5071 * list.h (scm_list_head): Missing prototype for function in
5072 list.c added.
5073
5074 * numbers.c (scm_two_doubles): Changed from extern to static
5075 (is used only within numbers.c).
5076
5077 * numbers.h: Repeated declarations removed.
5078
5079 * ports.h (scm_close_all_ports_except): Declaration for the
5080 function defined in ports.c added.
5081
5082 * posix.h: Missing declarations added.
5083
5084 * procs.h (scm_make_subr_opt): Missing declaration added.
5085
5086 * socket.h (scm_sys_gethost): Missing declaration added.
5087
5088 * socket.h: Redundant declarations removed (they are in fdsocket.h).
5089
5090 * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
5091 Missing declarations added.
5092
5093 * stime.h (scm_get_internal_real_time): Repeated declarations removed.
5094
5095 * struct.c: Uninitialized variable `SCM answer' may be used.
5096
5097 * unif.c (l2ra): Declaration prototype.
5098
5099 * unif.c (scm_array_equal_p): Dummy definition removed (it is
5100 defined in ramap.c).
5101
5102 * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
5103 Redundant declarations removed (they are in ramap.h).
5104
5105 * variable.h (scm_make_udvariable,
5106 scm_make_undefined_variable): Declaration corrected to
5107 correspond variable.c.
5108
5109 * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
5110 Missing declarations added.
5111
5112 Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
5113
5114 * Makefile.in (distclean): Don't forget to delete fd.h.
5115
5116 Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
5117
5118 * fd.h.in, tags.h: Trivial cleanups.
5119
5120 * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
5121 marksweep.h just declared functions from gc.c.
5122 * gc.h, libguile.h: Don't #include "marksweep.h".
5123 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
5124 marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
5125 dependencies updated.
5126
5127 * libguile.h: Don't #include "files.h"; it's been deleted.
5128
5129 * files.c (scm_sys_delete_file): Moved to filesys.c.
5130 File is now empty; deleted.
5131 * files.h: Deleted.
5132 * filesys.c: scm_sys_delete_file is now here. Remove
5133 #if's; they seem to rely on remnants of an old portability
5134 regimen. If the problems come up again, solve them properly,
5135 using autoconf. Specifically: Don't test M_SYSV, and #define
5136 remove to be unlink if it's #defined; don't use remove just
5137 because HAVE_STDC_HEADERS is #defined.
5138 * filesys.h: Add declarations for scm_sys_delete_file.
5139 * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
5140 files.o, files.h, files.c, and files.x.
5141 * init.c: Don't #include "files.h", and don't call scm_init_files.
5142
5143 Use SCM_P instead of PROTO; the latter intrudes on the user's
5144 namespace.
5145 * params.h: Deleted; definition of SCM_P moved to...
5146 * __scm.h: ... here, where it replaces PROTO macro.
5147 * libguile.h, smob.h: Don't #include "params.h".
5148 * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
5149 smob.h: Fix prototypes accordingly.
5150 * Makefile.in: Update dependencies.
5151 (inner_h_files): Remove params.h.
5152
5153 * gc.c: #include "gc.h"; every module should include its header,
5154 to let the compiler cross-check the declarations against the
5155 definitions.
5156
5157 * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
5158 simpos.h: #include "libguile/__scm.h".
5159
5160 Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
5161
5162 * init.c: Don't forget to #include smob.h and init.h.
5163 * Makefile.in: Dependencies updated.
5164
5165 * smob.h: Use PROTO instead of #if __STDC__.
5166
5167 * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
5168
5169 * __scm.h: Doc fixes.
5170
5171 * __scm.h, libguile.h: Use "quotes" in the #includes, not
5172 <angles>; this allows `make depends' to work properly.
5173
5174 * libguile.h: #include smob.h and pairs.h before the others; they
5175 define typedefs used by other headers.
5176
5177 C files should #include only the header files they need, not
5178 libguile.h (which #includes all the header files); the pointless
5179 recompilation was wasting my time.
5180 * Makefile.in (all .o dependency lists): Regenerated.
5181 * libguile.h: Don't try to get a definition for size_t here...
5182 * __scm.h: Do it here.
5183 * _scm.h: Since this is the internal libguile header, put things
5184 here that all (or a majority) of the libguile files will want.
5185 Don't #include <libguile.h> here; that generates dependencies on
5186 way too much. Instead, get "__scm.h", "error.h", "pairs.h",
5187 "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
5188 "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
5189 "async.h".
5190 * alist.c: Get "eq.h", "list.h", "alist.h".
5191 * append.c: Get "append.h", "list.h".
5192 * arbiters.c: Get "arbiters.h", "smob.h".
5193 * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
5194 * boolean.c: Get "boolean.h".
5195 * chars.c: Get "chars.h".
5196 * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
5197 "stackchk.h".
5198 * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
5199 "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
5200 "genio.h", "throw.h", "eval.h".
5201 * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
5202 * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
5203 "stackchk.h".
5204 * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
5205 * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
5206 "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
5207 "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
5208 "debug.h".
5209 * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
5210 * feature.c: Get "feature.h".
5211 * files.c: Get "files.h".
5212 * filesys.c: Get "filesys.h", "smob.h", "genio.h".
5213 * fports.c: Get "fports.h", "markers.h".
5214 * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
5215 "genio.h", "struct.h", "stackchk.h", "stime.h".
5216 * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
5217 "read.h", "strports.h", "tag.h".
5218 * genio.c: Get "genio.h", "chars.h".
5219 * gsubr.c: Get "gsubr.h", "genio.h".
5220 * hash.c: Get "hash.h", "chars.h".
5221 * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
5222 * init.c: Get everyone who has an scm_init_mumble function:
5223 "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
5224 "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
5225 "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
5226 "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
5227 "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
5228 "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
5229 "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
5230 "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
5231 "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
5232 "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
5233 "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
5234 "async.h", "arbiters.h", "append.h", "alist.h".
5235 * ioext.c: Get "ioext.h", "fports.h".
5236 * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
5237 * list.c: Get "list.h", "eq.h".
5238 * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
5239 * mallocs.c: Get "smob.h", "genio.h".
5240 * markers.c: Get "markers.h".
5241 * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
5242 "chars.h".
5243 * numbers.c: Get "unif.h", "genio.h".
5244 * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
5245 * options.c: Get "options.h".
5246 * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
5247 "markers.h", "chars.h", "genio.h".
5248 * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
5249 "read.h", "scmsigs.h", "genio.h", "fports.h".
5250 * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
5251 "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
5252 "chars.h".
5253 * procprop.c: Get "procprop.h", "eval.h", "alist.h".
5254 * procs.c: Get "procs.h".
5255 * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
5256 "chars.h", "smob.h", "unif.h".
5257 * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
5258 "eval.h", "genio.h", "chars.h".
5259 * root.c: Get "root.h", "stackchk.h".
5260 * scmsigs.c: Get "scmsigs.h".
5261 * sequences.c: Get "sequences.h".
5262 * simpos.c: Get "simpos.h", "scmsigs.h".
5263 * smob.c: Get "smob.h".
5264 * socket.c: Get "socket.h", "feature.h".
5265 * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
5266 "alist.h", "smob.h".
5267 * stackchk.c: Get "stackchk.h", "genio.h".
5268 * stime.c: Get "stime.h"."libguile/continuations.h".
5269 * strings.c: Get "strings.h", "chars.h".
5270 * strop.c: Get "strop.h", "chars.h".
5271 * strorder.c: Get "strorder.h", "chars.h".
5272 * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
5273 * struct.c: Get "struct.h", "chars.h".
5274 * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
5275 "variable.h", "eval.h", "chars.h".
5276 * tag.c: Get "tag.h", "struct.h", "chars.h".
5277 * throw.c: Get "throw.h", "continuations.h", "debug.h",
5278 "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
5279 * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
5280 "smob.h", "genio.h", "eval.h", "chars.h".
5281 * variable.c: Get "variable.h", "smob.h", "genio.h".
5282 * vectors.c: Get "vectors.h", "eq.h".
5283 * version.c: Get "version.h".
5284 * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
5285 * weaks.c: Get "weaks.h".
5286
5287 * stackchk.h: #include "libguile/debug.h",
5288
5289 * print.h, read.h: #include "options.h", since everyone who uses
5290 either of these files will need that.
5291
5292 * smob.h: #include "ports.h", "genio.h", and "print.h", since
5293 anyone who uses this file will need them to define the smob
5294 printing functions. Also, get markers.h, since people will need
5295 to #define the mark functions.
5296
5297 * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
5298 * ports.h: ... to here.
5299
5300 * ports.h (scm_port_table_size): Explicitly give type as 'int';
5301 don't rely on archaic C default type rules.
5302
5303 * fports.h: #include "libguile/ports.h", since you need that in
5304 order to parse this.
5305
5306 * genio.h: #include "libguile/print.h", because you need that to
5307 parse this; don't bother #including "ports.h", since print.h gets
5308 that.
5309
5310 * error.h: Don't #include "pairs.h"; _scm.h will do that now.
5311
5312 * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
5313 this; it's now a reference to an element of *scm_root.
5314
5315 * debug.h: Don't #include "options.h"; the compiler won't be able
5316 to find that once the headers are installed; instead, #include
5317 "libguile/options.h".
5318 * gc.h: Same, with marksweep.h.
5319 * mbstrings.h: Same, with symbols.h.
5320 * scmhob.h: Same, with _scm.h.
5321 * smob.h: Same, with params.h.
5322
5323 * Makefile.in (depends): Don't nuke scmconfig.h and the generated
5324 C files; there's no need for this, and it forces recompilations
5325 unnecessarily.
5326
5327 Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
5328
5329 * error.c (scm_error): declare scm_error_callback.
5330
5331 * error.h: prototype for scm_error_callback.
5332
5333 * __scm.h: define lgh_error.
5334 (SCM_SYSERROR): redefine using lgh_error.
5335
5336 Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
5337
5338 * error.c (scm_error): new procedure.
5339
5340 * error.h: prototype for scm_error.
5341
5342 * Makefile.in (install): install scmconfig.h from the current
5343 directory, not $(srcdir).
5344
5345 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
5346
5347 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
5348 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
5349 feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
5350 hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
5351 mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
5352 posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
5353 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
5354 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
5355 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
5356 vports.h, weaks.h: #include "libguile/__scm.h", not
5357 <libguile/__scm.h>. This allows 'gcc -MM' to determine which
5358 dependencies are within libguile properly.
5359
5360 Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
5361
5362 * Makefile.in (.c.x): Simplify; there's no need to run this rule
5363 when scmconfig.h doesn't exist.
5364
5365 * load.c (scm_sys_try_load): Correct spelling.
5366
5367 * feature.c (scm_loc_features): Make this static.
5368
5369 * Makefile.in (libpath.h): Omit trailing slash from path. We
5370 shouldn't require it of users, so why put it here?
5371
5372 Move code to initialize and search %load-path from ice-9 to C
5373 code, so we can use the load-path to find the ice-9 boot code;
5374 this makes it easier to run Guile without installing it. See
5375 corresponding changes in guile/Makefile.in.
5376 * feature.c: Move stuff concerned with the load path to load.c.
5377 (scm_compiled_library_path): Deleted.
5378 Don't #include libpath.h here.
5379 * feature.h: Don't mention scm_compiled_library_path.
5380 * load.c: #include "libpath.h" here, as well as <sys/types.h>,
5381 <sys/stat.h>, and <unistd.h> (if present).
5382 (R_OK): #define if the system hasn't deigned to.
5383 (scm_loc_load_path): New variable.
5384 (scm_init_load_path, scm_sys_search_load_path,
5385 scm_sys_try_load_path): New functions.
5386 (scm_init_load): Initialize scm_loc_load_path to point to the
5387 value cell of the Scheme %load-path variable.
5388 * load.h: Add declarations for scm_sys_search_load_path,
5389 scm_sys_try_load_path.
5390 * init.c: Call scm_init_load_path.
5391 * Makefile.in (feature.o, load.o): Dependencies updated.
5392
5393 * load.c, load.h: Rewrite using PROTO macro.
5394
5395 Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5396
5397 * gc.c (scm_cellp): New function: C predicate to determine if an
5398 SCM value can be regarded as a pointer to a cell on the heap.
5399
5400 * gc.h: Added declaration of scm_cellp.
5401
5402 * gdb_interface.h: New file: The GDB interface header from the GDB
5403 distribution.
5404
5405 * gdbint.c: New file: GDB interface.
5406
5407 * gdbint.h: New file: GDB interface.
5408
5409 * libguile.h: Added #include <libguile/gdbint.h>.
5410
5411 * init.c (scm_boot_guile): Added scm_init_gdbint.
5412
5413 * Makefile.in: Added gdb_interface.h, gdbint.[hc].
5414 Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
5415 found if object files and source are kept separate).
5416
5417 Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
5418
5419 * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
5420
5421 Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
5422
5423 * configure.in: Don't substitute the values of TCL_SRC_DIR and
5424 TK_SRC_DIR; they're not relevant any more.
5425
5426 * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
5427 * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
5428
5429 Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
5430
5431 * PLUGIN/guile.config (xtra_cflags): Include .. in the header
5432 search path, so we can find the <libguile/MUMBLE.h> headers.
5433
5434 * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
5435
5436 * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
5437 implicit in the .c.o rule.
5438 (.c.x): Don't mention ALL_CFLAGS here; its value is included in
5439 $(CC) already.
5440
5441 Put the library path in a header file, instead of passing it on
5442 the command line in every compilation.
5443 * Makefile.in (libpath.h): New target.
5444 (feature.o): Depend on libpath.h.
5445 (clean): Delete libpath.h.
5446 (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
5447 * feature.c: ... #include "libpath.h" here.
5448 * .cvsignore: Ignore libpath.h.
5449
5450 Don't install the unwashed masses of Guile header files in the
5451 main #include path; put most of them in a subdirectory called
5452 'libguile'. This avoids naming conflicts between Guile header
5453 files and system header files (of which there were a few).
5454 * Makefile.in (pkgincludedir): Deleted.
5455 (innerincludedir): New variable; this and $(includedir) are enough.
5456 (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
5457 (installed_h_files): Divide this up. Now this variable lists
5458 those header files which should go into $(includedir) (i.e. appear
5459 directly in the #include path), and ...
5460 (inner_h_files): ... this new variable says which files appear in
5461 a subdirectory, and are referred to as <libguile/mumble.h>.
5462 (h_files): List them both.
5463 (install): Create innerincludedir, not pkgincludedir. Put
5464 the installed_h_files and inner_h_files in their proper places.
5465 (uninstall): Corresponding changes.
5466 * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
5467 continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
5468 feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
5469 ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
5470 mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
5471 print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
5472 sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
5473 strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
5474 tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
5475 vports.h, weaks.h: Find __scm.h in its new location.
5476 * __scm.h: Find scmconfig.h and tags.h in their new locations
5477 (they're both "inner" files).
5478
5479 Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
5480
5481 * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
5482
5483 Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
5484
5485 * posix.c: Doc fixes.
5486
5487 Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
5488
5489 * socket.c: Don't include a prototype for inet_aton; just use a
5490 K&R style declaration, to avoid warnings but minimize the chance
5491 of conflicts with the system.
5492
5493 On NextStep, <utime.h> doesn't define struct utime, unless we
5494 #define _POSIX_SOURCE before #including it.
5495 * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
5496 * acconfig.h: New comment text for above CPP symbol.
5497 * configure.in: Call it.
5498 * posix.c: #define _POSIX_SOURCE if it seems necessary.
5499
5500 * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
5501 in the list.
5502 * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
5503 testing for __EMX__.
5504
5505 * posix.c: #include <libc.h>, if it exists.
5506
5507 * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
5508 don't even know if the latter exists.
5509
5510 * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
5511 s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
5512 s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
5513
5514 * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
5515 header files don't.
5516 (scm_init_posix): Use them when initializing the Scheme constants
5517 of the same name.
5518
5519 Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
5520
5521 * Makefile.in (libdir, includedir, bindir): Use the
5522 autoconf-supplied values, instead of deriving them ourselves.
5523 (pkgincludedir, datadir, pkgdatadir): New variables.
5524 (install, uninstall): Put the header files in a special
5525 subdirectory, not in the main search path.
5526
5527 * Makefile.in (ALL_CFLAGS): Provide the proper value for
5528 LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
5529
5530 * Makefile.in (IMPLPATH): Deleted; never used.
5531
5532 * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
5533 on the Tcl/Tk source any more.
5534 (INCLUDE_CFLAGS): Remove references to the above.
5535
5536 * Makefile.in (version.o): Corrected dependencies.
5537
5538 Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
5539
5540 * libguile.h: #include "version.h"
5541
5542 * init.c (scm_boot_guile): Call scm_init_version.
5543 * gscm.c (gscm_run_scm): Call scm_init_version.
5544
5545 * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
5546 GUILE_VERSION): AC_DEFINE these.
5547 (acconfig.h): #undef the above symbols.
5548
5549 * Makefile.in (libobjs): Add version.o.
5550 (installed_h_files): Add version.h.
5551 (c_files): Add version.c.
5552 (gen_c_files): Add version.x.
5553 (version.o): New rule.
5554 (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
5555 chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
5556 fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
5557 genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
5558 mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
5559 objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
5560 procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
5561 simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
5562 strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
5563 throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
5564 weaks.o): Add version.h to dependency lists.
5565 (markers.o): Remove duplicate rule.
5566
5567 * version.h: New file.
5568
5569 * version.c: New file.
5570
5571 Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
5572
5573 * symbols.c (scm_strhash): scm_downcase is now a function, not an
5574 array; use it appropriately. Since GCC is quite happy to
5575 subscript functions, it never warned us about this; we should use
5576 -Wpointer-arith in the future. I guess we never tested
5577 case-insensitivity.
5578
5579 Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
5580
5581 * socket.c: Doc and copyright fixes.
5582
5583 Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5584
5585 * debug.c: Fixed and improved gdb support.
5586
5587 Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5588
5589 * socket.c: Added declaration of inet_aton to avoid compiler
5590 warning. (Hope this solution is correct.)
5591
5592 * stime.c: Added declaration of ftime. (This is missing in
5593 Solaris 2 headers.)
5594
5595 Fri Aug 23 02:03:32 1996 Gary Houston <ghouston@actrix.gen.nz>
5596
5597 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
5598
5599 * Makefile.in (c_files): add strerror.c.
5600
5601 * strerror.c: new file from Emacs' sysdep.c.
5602 maybe configure should also check for sys_errlist.
5603
5604 * configure.in (AC_REPLACE_FUNCS): add strerror.
5605
5606 Fri Aug 23 03:02:46 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5607
5608 * debug.c (scm_init_debug): Added initialization for
5609 scm_evaluator_traps.
5610
5611 * debug.h, debug.c: Various name changes.
5612 (Mostly prefixing with SCM_.) Renamed "debug-options" -->
5613 "debug-options-interface". See commentary in options.c.
5614
5615 * options.h, options.c: Options now have documentation strings.
5616 Also added a long explanatory commentary.
5617
5618 * eval.c, print.h, print.c, read.h, read.c: Modifications to
5619 run-time options.
5620
5621 * gscm.c, init.c, root.c, throw.c: Bug fixes:
5622 last_debug_info_frame is now updated in all cases.
5623
5624 * __scm.h, stackchk.h, stackchk.c: Guile now performs stack
5625 checking.
5626
5627 Thu Aug 22 17:34:17 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
5628
5629 * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
5630 Added option STACK_CHECKING.
5631
5632 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
5633
5634 * Makefile.in: Added {debug,options,srcprop}.{h,c}
5635
5636 * __scm.h: Removed symbols for debugging support.
5637
5638 * acconfig.h: Added symbols for debugging support.
5639
5640 * configure.in: Added user option for debugging support.
5641 --enable-debug will include the debugging code into libguile.a.
5642
5643 * continuations.c (scm_make_cont): Enlarged the #if 0 around
5644 scm_relocate_chunk_to_heap.
5645
5646 * debug.c: New file: low-level debugging support. It also
5647 includes support for debugging with gdb. (The extensions to gdb
5648 are written by Per Bothner at Cygnus.)
5649
5650 * debug.h: New file: low-level debugging support.
5651
5652 * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
5653 argument pairs. Extensive modifications to the debugging
5654 evaluator. Added "SECTION:" commentaries to clarify what happens
5655 when, during double compilation. Renamed EVALIMP --> EVALIM.
5656 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
5657 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
5658 the beginning of the file. New procedure: scm_unmemocopy.
5659 Added some global state variables needed by the debugging
5660 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
5661 check_entry, check_apply, check_exit, debug_options and
5662 evaluator_traps. New acro: undefine.
5663
5664 * eval.h: Renamed EVAL --> XEVAL.
5665
5666 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
5667 --> scm_make_weak_key_hash_table.
5668
5669 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
5670 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
5671
5672 * libguile.h: Conditionally include debug.h
5673
5674 * objprop.c (scm_object_properties, scm_set_object_properties_x):
5675 scm_object_properties shouldn't return handle. `handle' now gets
5676 initialized in scm_set_object_properties_x. scm_object_properties
5677 doesn't any longer create an entry in scm_object_whash.
5678
5679 * options.c: New file: handling of run time options.
5680
5681 * options.h: New file: handling of run time options.
5682
5683 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
5684
5685 * print.c: New procedure: scm_print_options
5686
5687 * print.h: Defines for print options.
5688
5689 * read.c: New procedure: scm_read_options
5690
5691 * read.h: Defines for reader options.
5692
5693 * root.h: Added scm_source_whash among scm_sys_protects.
5694
5695 * srcprop.c: New file: source properties.
5696
5697 * srcprop.h: New file: source properties.
5698
5699 * throw.c (jbsmob): Jump buffers are now correctly allocated.
5700 (Bug found by A. Green.)
5701
5702 * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
5703
5704 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
5705
5706 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
5707
5708 * libguile.h: #include "objprop.h"; I guess this was forgotten.
5709
5710 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
5711 and should be called by the final client.
5712
5713 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
5714
5715 * gc.h: Use the PROTO macro when declaring functions.
5716 * gc.c: Use the PROTO macro when declaring static functions.
5717 Remove the CPP hair around function definitions.
5718
5719 * gc.c (scm_init_storage): Initialize scm_asyncs.
5720
5721 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
5722 preprocessor symbol; "__scm.h" is where it might get #defined.
5723 * __scm.h: Similar: #include <scmconfig.h> before testing
5724 HAVE_LIMITS_H.
5725
5726 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
5727
5728 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
5729
5730 * init.c (scm_boot_guile): Add init_func argument; call
5731 (*init_func) instead of calling scm_appinit; it's ucky to
5732 hard-code names for the user's procedures.
5733 * init.h (scm_boot_guile): Adjust declaration.
5734
5735 * __scm.h (PROTO): New macro, for declaring functions with
5736 prototypes.
5737
5738 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
5739 eliminate all the __STDC__ conditionals.
5740 (scm_boot_guile): Add declaration.
5741 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
5742 Remove __STDC__ conditionals around function definitions; the
5743 declarations in init.h will provide the same information, more
5744 usefully.
5745
5746 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
5747 complain about it in the error message; the error message is
5748 adequate without that note, and there's nothing the user can do
5749 about it.
5750
5751 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
5752
5753 * Makefile.in (ancillary): Drop def.sed.
5754
5755 * posix.c (scm_init_posix): Use numeric values, rather than
5756 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
5757 F_OK. The symbols aren't available on some systems, and I'm
5758 pretty sure their values are fixed by common widespread practice.
5759 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
5760
5761 More functions unavailable on some systems.
5762 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
5763 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
5764 check for.
5765 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
5766 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
5767 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
5768 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
5769 stub that signals an error as the #else.
5770
5771 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
5772
5773 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
5774
5775 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
5776
5777 * unif.c: include ramap.h.
5778
5779 * read.c (endif): case_insensative_p renamed case_insensitive_p.
5780
5781 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
5782
5783 * ports.c: include sys/ioctl.h.
5784
5785 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
5786
5787 * configure.in: check for sys/ioctl.h.
5788
5789 * ports.c: include <malloc.h> not "malloc.h".
5790
5791 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
5792
5793 * fports.c: remove ttyname and tmpnam declarations.
5794
5795 * posix.c: fewer ttyname declarations.
5796
5797 * fports.c: include <string.h> not "string.h".
5798
5799 * init.c, ioext.c: include string.h and unistd.h.
5800
5801 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
5802
5803 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
5804 genio.c, simpos.c, vports.c: include string.h.
5805
5806 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
5807
5808 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
5809 scm_sizet to int.
5810 (scm_addr_buffer_size): change type from scm_sizet to int.
5811 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
5812 from scm_sizet to int.
5813
5814 * error.c: include unistd.h.
5815
5816 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
5817 defined.
5818
5819 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
5820
5821 * __scm.hd, def.sed: deleted.
5822
5823 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
5824
5825 Changes for NeXT, suggested by Robert Brown.
5826 * configure.in: Call AC_TYPE_MODE_T.
5827 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
5828 NeXT. Put header file list in alphabetical order.
5829 * configure, scmconfig.h.in: Regenerated.
5830 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
5831
5832 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
5833 for strerror.
5834
5835 * acconfig.h: New file, providing documentation for the CPP
5836 symbols defined in configure.in
5837 * acconfig-1.5.h: Removed; superceded by the above.
5838
5839 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
5840
5841 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
5842
5843 * fports.c (scm_open_file): don't return #f, throw error.
5844
5845 * ioext.c (fileno): renamed from %fileno.
5846 (soft-fileno): deleted.
5847
5848 * ports.c (scm_port_revealed): don't need to check for -1 from
5849 scm_revealed_count.
5850 (scm_set_port_revealed_x): return unspecified, not #f.
5851
5852 * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
5853
5854 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
5855
5856 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
5857
5858 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
5859
5860 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
5861
5862 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
5863 This is necessary on Ultrix, and doesn't hurt portability.
5864
5865 * Makefile.in (dist-dir): New target, implementing a new dist system.
5866 (installed_h_files): Put in alphabetical order.
5867 Remove duplicate entries for markers.h and unif.h.
5868 (c_files): Remove duplicate entries for markers.c.
5869 (ancillary): Renamed from anillery; all uses changed. Remove
5870 PLUGIN; it's a directory, and needs special treatment in dist-dir.
5871 Remove all the ../doc/* files; doc/Makefile.in handles that.
5872
5873 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
5874
5875 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
5876 every if must have an else, or else the whole command has a
5877 non-zero exit code whenever the if's condition is false.
5878
5879 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
5880
5881 * posix.c: include string.h.
5882
5883 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
5884
5885 * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
5886 have been once.
5887
5888 * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
5889 Remove leading % from scheme names.
5890 Do not return error values, call SCM_SYSERROR or similar.
5891
5892 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
5893
5894 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
5895
5896 * struct.c (scm_init_struct): new file.
5897
5898 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
5899
5900 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
5901 (scm_list_head): added list-head for rapidly chopping argument
5902 lists off of longer lists (and similar).
5903
5904 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
5905
5906 * objprop.c (scm_object_property): assq the cdr of the whash
5907 handle for obj, not the handle itself.
5908
5909 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
5910
5911 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
5912 weak hash tables last of all marking to avoid an obscure gc bug.
5913 WARNING: circular lists stored in a weak hash table will hose us.
5914
5915 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
5916
5917 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
5918 new functions similar to scm_substring_move_left_x and
5919 scm_substring_move_right_x.
5920
5921 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
5922
5923 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
5924 scm_gc_heap_lock!
5925
5926 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
5927
5928 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
5929
5930 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
5931
5932 * strports.c (scm_strprint_obj): convenience function. C for
5933 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
5934
5935 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
5936 removed to a separate library
5937
5938 * init.c (scm_boot_guile): copied from guile-tcl.c.
5939 Initialization specific to tcl interpreters removed.
5940
5941 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
5942
5943 * ports.c (scm_ports_prehistory): size malloced here doesn't
5944 matter so long as it is non-0 (got rid of "* 4").
5945
5946 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
5947
5948 * gscm.h: gscm_mkarray eliminated (presumably was not being used
5949 since its definition was bogus).
5950
5951 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
5952
5953 * mallocs.[ch]: back again (for rx at least).
5954
5955 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
5956
5957 * ports.c: removed functions relating to the mapping between ports
5958 and descriptors. (That stuff is unix-specific and should be collected
5959 in a separate library).
5960
5961 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
5962 (Tom Mckay@avanticorp.com)
5963
5964 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
5965
5966 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
5967 handled correctly (SCM_FREEP was applied to them) -- test for
5968 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
5969 being overwritten with #f. (brown@grettir.bibliotech.com)
5970
5971 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
5972
5973 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
5974 for a specific symbol or for all symbols.
5975
5976 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
5977
5978 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
5979 keys and weak values confused).
5980
5981 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
5982
5983 * list.c (scm_last_pair): map '()=>'()
5984
5985 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
5986
5987 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
5988 Generalized assoc and hash-table functions.
5989 Factored pairs.c into multiple files.
5990
5991 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
5992
5993 * gscm.c (gscm_run_scm): got rid of objprop.
5994
5995 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
5996
5997 * genio.c (scm_getc):
5998 NOTE: fgetc may not be interruptable.
5999
6000 * procprop.c (scm_stand_in_scm_proc):
6001 NOTE: don't use a alist here.
6002 (scm_set_procedure_properties_x): fix type checking throughout this file.
6003
6004 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
6005
6006 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
6007 after freeing part of the port table.
6008
6009 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
6010
6011 * strports.c (scm_mkstrport):
6012 * vports.c (scm_make_soft_port): allocate a port table entry
6013 (possibly triggering gc) before setting the tag of the corresponding
6014 ports handle.
6015
6016 * pairs.c (scm_delq_x): never throw an error.
6017
6018 * vectors.c (scm_make_vector): made the default vector fill argument
6019 into '() (much more useful than the previous value, "#unspecified")
6020
6021 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
6022
6023 * ports.c (scm_add_to_port_table): Added fields
6024 to port table entries: file_name, line_num, col.
6025 Update these in open_file, gen_getc and gen_ungetc.
6026 Added procedures to access those fields.
6027
6028 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
6029
6030 * procs.c (scm_make_subr_opt): new entry point for making
6031 anonymous subrs.
6032
6033 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
6034
6035 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
6036
6037 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
6038
6039 * numbers.c (scm_exact_p): This function no longer
6040 implements "integer?".
6041
6042 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
6043
6044 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
6045 (scm_gc_stats): return an assoc of useful data. Replaces "room"
6046 and the stats reporting formerlly built into repl.
6047
6048 * repl.[ch]: removed.
6049 GC statistics keeping moved to gc.c.
6050 Other statistics keeping can be done from Scheme.
6051 REPLS are now written in Scheme.
6052
6053 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
6054
6055 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
6056 conservatively marked objects).
6057
6058 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
6059
6060 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
6061
6062 * feature.c (scm_compiled_library_path): moved here from repl.c.
6063 This file is for stuff relating specifically to Scheme libraries
6064 like slib.
6065
6066 * eval.c (scm_m_define): don't give warning about redefinition, don't
6067 check verbosity.
6068
6069 NOTE: this should throw a resumable exception with parameters --
6070 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
6071
6072 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
6073
6074 * error.c: scm_warn eliminated.
6075
6076 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
6077
6078 * repl.c, marksweep.c, gc.c (various):
6079 lose exit_report, growth_mon.
6080
6081 * gscm.c: got rid of verbosity functions.
6082
6083 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
6084
6085 * throw.c (scm_ithrow): guard against the bad-throw hook changing
6086 between the call to procedurep and use.
6087
6088 * error.c (scm_everr):
6089 * gc.c (fixconfig):
6090 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
6091 but less so.
6092
6093 * strports.c: don't reveal the port's string to the caller
6094 because it changes size.
6095
6096 (stputc stwrite): check/change the strings length with interrupts
6097 blocked.
6098
6099 * objprop.c (scm_set_object_property_x &c): use the generic
6100 hashing functions and be threadsafe.
6101
6102 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
6103 (per suggestion jaffer@gnu.ai.mit.edu).
6104
6105 * mbstrings.c (scm_multi_byte_string): guard against argument list
6106 changing length.
6107
6108 * strings.c (scm_make_string): loop cleanup
6109
6110 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
6111 a scheme function.
6112
6113 * weaks.c (scm_weak_vector): guard against argument list
6114 changing length.
6115
6116 * variable.c (scm_builtin_variable): check for/make a built-in
6117 variable automicly.
6118
6119 * vectors.c (scm_vector): while filling the new array,
6120 guard against a list of fill elements that grows after
6121 the vector is allocated.
6122
6123 * hashtab.c -- new file: general hash table
6124 functions. hash, hashq, hashv, hashx.
6125
6126 * tags.h: made wvect an option bit of vector.
6127
6128 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
6129
6130 * symbols.c: made the basic symbol table operations atomic.
6131
6132 * root.c &c.: collected stack-specific global state.
6133 linum/colnum etc *should* be port-specific state.
6134
6135 * struct.c (scm_init_struct): init the first struct type during
6136 initialization to fix a race condition.
6137
6138 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
6139 object, not in a global.
6140 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
6141
6142 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
6143 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
6144
6145 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
6146 and C symbols to begin with SCM_ or scm_.
6147
6148 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
6149
6150 * gsubr.c (scm_gsubr_apply): statically allocate the
6151 array of arguments (bothner@cygnus.com).
6152
6153 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
6154
6155 * scmsigs.c: Simplified to use async rountines.
6156
6157 * async.c: New support for interrupt handlers.
6158
6159 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
6160
6161 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
6162 set the multi_byte flag correctly in symbols. This is wrong.
6163 intern_obbary_soft and msymbolize should take an extra parameter.
6164 Also, weird multibyte symbols don't print correctly.
6165 The weird symbol syntax is also a bit bogus (emacs doesn't quite
6166 cope).
6167
6168 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
6169
6170 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
6171 use the system symhash. == #t means create an uninterned symbol.
6172
6173 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
6174
6175 * strings.c (scm_make_shared_substring): build'em.
6176 It might better to keep a table of these and use one
6177 less cons-pair per shared-substring.
6178
6179 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
6180
6181 * strings.c (scm_string_shared_substring): create shared
6182 substrings. (Doesn't handle mb strings yet).
6183
6184 * mbstrings.c (scm_print_mb_string): handle RO strings.
6185
6186 * print.c (scm_iprin1): print substrings as their non-substring
6187 counterparts (dubious).
6188
6189 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
6190 strings.
6191
6192 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
6193
6194 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
6195
6196 * eq.c (scm_equal_p): handle RO and MB strings.
6197
6198 * symbols.c (scm_string_to_symbol):
6199 (scm_string_to_obarray_symbol):
6200 * strop.c (scm_i_index):
6201 (scm_i_rindex):
6202 (scm_string_null_p):
6203 (scm_string_to_list):
6204 * strings.c (scm_string_length):
6205 (scm_string_ref):
6206 (scm_substring):
6207 (scm_string_append):
6208 * simpos.c (scm_system):
6209 (scm_getenv):
6210 * fports.c (scm_open_file):
6211 * strorder.c (scm_string_equal_p):
6212 (scm_string_ci_equal_p):
6213 (scm_string_less_p):
6214 (scm_string_ci_less_p):
6215 * pairs.c (scm_obj_length):
6216 * mbstrings.c (scm_multi_byte_string_length):
6217
6218 Use RO string macros for RO strings.
6219
6220 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
6221
6222 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
6223
6224 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
6225 index/rindex. Do handle embedded \000 characters.
6226
6227 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
6228
6229 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
6230 Eliminate a (presumed) warning on some systems.
6231
6232 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
6233 (Mikael Djurfeldt <mdj@nada.kth.se>)
6234
6235 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
6236
6237 * eval.c (scm_map): added argument type checking.
6238 (kawai@sail.t.u-tokyo.ac.jp)
6239
6240 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
6241 for C++. (Seth Alves <alves@gryphon.com>)
6242
6243 (gscm_cstr): uses an uninitialized local variable causing
6244 segv. (kawai@sail.t.u-tokyo.ac.jp)
6245
6246
6247 * lvectors.c (scm_get_lvector_hook):
6248 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
6249 It seems to me like if it is broken again in guile-iv...Here is a patch.
6250 "! || (LENGTH (keyvec) == 0))"
6251 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
6252
6253
6254 * gscm.c (gscm_sys_default_verbosity):
6255 incorrectly declared for non-__STDC__
6256 (Tom_Mckay@avanticorp.com)
6257
6258 * ports.c (scm_setfileno): Tweak the macro a bit
6259 to make it easier to port to systems that use
6260 more than a single structure field to hold a descriptor.
6261
6262 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
6263 Give a warning, not an error, for unrecognized modes.
6264
6265 * eval.c (SCM_CEVAL):
6266 static char scm_s_for_each[];
6267 static char scm_s_map[];
6268 not needed.
6269
6270 * strings.c (scm_string_p):
6271 static char s_string[];
6272 (see next entry)
6273
6274 * struct.c (scm_sys_struct_set_x):
6275 static char s_sys_make_struct[];
6276 static char s_sys_struct_ref[];
6277 static char s_sys_struct_set_x[];
6278 Rearrange code to eliminate those forward decls for the sake of
6279 broken compilers.
6280
6281 * variable.c (make_vcell_variable): static char s_make_variable[];
6282 isn't needed.
6283
6284 * fports.c (scm_port_mode):
6285 chars modes[3] = "";
6286 to
6287 chars modes[3];
6288 modes[0] = '\0';
6289 (Tom_Mckay@avanticorp.com)
6290
6291
6292 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
6293 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
6294 (Tom_Mckay@avanticorp.com)
6295
6296 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
6297 scm_num_eq_p() was scm_equal_p().
6298 (Tom_Mckay@avanticorp.com)
6299
6300 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
6301 (Tom_Mckay@avanticorp.com)
6302
6303 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
6304
6305 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
6306 (Tom_Mckay@avanticorp.com)
6307
6308 * strop.c (scm_substring_fill_x):
6309 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
6310 (Tom_Mckay@avanticorp.com)
6311
6312 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
6313 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
6314
6315 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
6316 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
6317
6318 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
6319 can turn into an obscure gc bug.
6320
6321 * chars.c (scm_char_p): fixed PROC call.
6322
6323 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
6324 scm_vector_set.
6325
6326 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
6327
6328 * elisp.c (new file): dynamic scoping and other bits for
6329 elisp. Don't use this yet unless you specificly want to
6330 hack on elisp emulation.
6331
6332 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
6333 scope created by scm_with_dynamic_bindings_operation_x, swap
6334 the bindings of that scope with the corresponding globals.
6335
6336 * continuations.c (scm_make_cont): when a continuation is captured,
6337 relocate the continuation stack chunks registered on the wind chain
6338 to the heap.
6339
6340 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
6341
6342 * eval.c (SCM_CEVAL): if the function position evaluates
6343 to a macro, process it accordingly. (Previously, macros were
6344 handled only if the function position was a symbol naming a
6345 variable bound to a macro).
6346
6347 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
6348
6349 * eval.c (scm_m_set): allow multi-variable set! like
6350 (set! x 1 y 2 z 3).
6351
6352 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
6353
6354 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the
6355 STREAM of ports into the port table and replaced it with a
6356 port-table index.
6357
6358 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
6359
6360 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
6361
6362 * mbstrings.c (new file): functions on multi-byte strings.
6363
6364 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
6365 for multi-byte strings. Moved the string tag.
6366
6367 * chars.h chars.c repl.c (many functions): made scm_upcase and
6368 scm_downcase functions that are safe for extended character sets.
6369
6370 Changed the range of integer->char.
6371
6372 Changed the type of SCM_ICHR.
6373
6374 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
6375
6376 * guile.c: Changed init file name from "SCM_INIT_PATH" to
6377 "GUILE_INIT_PATH"
6378
6379 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
6380
6381 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
6382 know that it's safe to pass an object to gscm_get_type?)
6383 (gscm_get_type): Fix tyop in error message.
6384
6385 * variable.c (scm_variable_ref): fixed assertion test.
6386 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
6387
6388 * gscm.h: fixed several prototypes, notably gscm_vref.
6389 Add gscm_is_eq and temporarily commented out gscm_eq (see
6390 the note in gscm.h near gscm_eq if this change effects your
6391 code).
6392 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
6393
6394 * pairs.c (scm_obj_length): see next entry.
6395
6396 * gscm.h (gscm_obj_length): A way to get an integer
6397 length for lists, strings, symbols (treated as strings),
6398 and vectors. Returns -1 on error.
6399
6400 * eq.c (scm_equal_p): fixed smob case.
6401 (William Gribble <grib@arlut.utexas.edu>)
6402
6403 * Makefile.in (X_CFLAGS): defined.
6404 (William Gribble <grib@arlut.utexas.edu>)
6405
6406 * gscm.h (gscm_2_double): provided now
6407 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
6408
6409 Tue Jun 13 01:04:09 1995 gnu
6410 * Vrooom!
6411
6412