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