* init.c (scm_restart_stack, scm_boot_guile): Added initialization
[bpt/guile.git] / libguile / ChangeLog
1 Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
2
3 * Makefile.in: Added {debug,options,srcprop}.{h,c}
4
5 * __scm.h: Removed symbols for debugging support.
6
7 * acconfig.h: Added symbols for debugging support.
8
9 * * configure.in: Added user option for debugging support.
10 --enable-debug will include the debugging code into libguile.a.
11
12 * continuations.c (scm_make_cont): Enlarged the #if 0 around
13 scm_relocate_chunk_to_heap.
14
15 * * debug.c: New file: low-level debugging support. It also
16 includes support for debugging with gdb. (The extensions to gdb
17 are written by Per Bothner at Cygnus.)
18
19 * debug.h: New file: low-level debugging support.
20
21 * * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple
22 argument pairs. Extensive modifications to the debugging
23 evaluator. Added "SECTION:" commentaries to clarify what happens
24 when, during double compilation. Renamed EVALIMP --> EVALIM.
25 Renamed EVAL --> XEVAL. Removed function evalcar. Defined
26 evalcar to scm_eval_car. Added explanation of "EVAL" symbols to
27 the beginning of the file. New procedure: scm_unmemocopy.
28 Added some global state variables needed by the debugging
29 evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode,
30 check_entry, check_apply, check_exit, debug_options and
31 evaluator_traps. New acro: undefine.
32
33 * eval.h: Renamed EVAL --> XEVAL.
34
35 * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table
36 --> scm_make_weak_key_hash_table.
37
38 * init.c (scm_restart_stack, scm_boot_guile): Added initialization
39 of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}.
40
41 * libguile.h: Conditionally include debug.h
42
43 * * objprop.c (scm_object_properties, scm_set_object_properties_x):
44 scm_object_properties shouldn't return handle. `handle' now gets
45 initialized in scm_set_object_properties_x. scm_object_properties
46 doesn't any longer create an entry in scm_object_whash.
47
48 * * options.c: New file: handling of run time options.
49
50 * options.h: New file: handling of run time options.
51
52 * posix.c (scm_getpgrp): Cast pointer to getpgrp.
53
54 * * print.c: New procedure: scm_print_options
55
56 * print.h: Defines for print options.
57
58 * * read.c: New procedure: scm_read_options
59
60 * read.h: Defines for reader options.
61
62 * root.h: Added scm_source_whash among scm_sys_protects.
63
64 * * srcprop.c: New file: source properties.
65
66 * srcprop.h: New file: source properties.
67
68 * throw.c (jbsmob): Jump buffers are now correctly allocated.
69 (Bug found by A. Green.)
70
71 * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
72
73 * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table.
74
75 Thu Aug 15 02:05:14 1996 Jim Blandy <jimb@totoro.cyclic.com>
76
77 * libguile.h: #include "objprop.h"; I guess this was forgotten.
78
79 * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin,
80 and should be called by the final client.
81
82 Wed Aug 14 21:41:37 1996 Jim Blandy <jimb@totoro.cyclic.com>
83
84 * gc.h: Use the PROTO macro when declaring functions.
85 * gc.c: Use the PROTO macro when declaring static functions.
86 Remove the CPP hair around function definitions.
87
88 * gc.c (scm_init_storage): Initialize scm_asyncs.
89
90 * libguile.h: #include "__scm.h" before testing the STDC_HEADERS
91 preprocessor symbol; "__scm.h" is where it might get #defined.
92 * __scm.h: Similar: #include <scmconfig.h> before testing
93 HAVE_LIMITS_H.
94
95 * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
96
97 Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
98
99 * * init.c (scm_boot_guile): Add init_func argument; call
100 (*init_func) instead of calling scm_appinit; it's ucky to
101 hard-code names for the user's procedures.
102 * init.h (scm_boot_guile): Adjust declaration.
103
104 * __scm.h (PROTO): New macro, for declaring functions with
105 prototypes.
106
107 * init.h (scm_start_stack, scm_restart_stack): Use PROTO;
108 eliminate all the __STDC__ conditionals.
109 (scm_boot_guile): Add declaration.
110 * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile):
111 Remove __STDC__ conditionals around function definitions; the
112 declarations in init.h will provide the same information, more
113 usefully.
114
115 * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't
116 complain about it in the error message; the error message is
117 adequate without that note, and there's nothing the user can do
118 about it.
119
120 Wed Aug 7 14:14:46 1996 Jim Blandy <jimb@totoro.cyclic.com>
121
122 * Makefile.in (ancillary): Drop def.sed.
123
124 * posix.c (scm_init_posix): Use numeric values, rather than
125 CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and
126 F_OK. The symbols aren't available on some systems, and I'm
127 pretty sure their values are fixed by common widespread practice.
128 * ioext.c (scm_init_ioext): Code here defined them too; remove it.
129
130 More functions unavailable on some systems.
131 * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid,
132 tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to
133 check for.
134 * configure, scmconfig.h.in: Updated, using autoconf and autoheader.
135 * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid,
136 scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the
137 bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a
138 stub that signals an error as the #else.
139
140 * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h.
141
142 Wed Aug 7 06:28:42 1996 Gary Houston <ghouston@actrix.gen.nz>
143
144 * Fixes motivated by Petr Adamek <adamek@mit.edu>:
145
146 * unif.c: include ramap.h.
147
148 * read.c (endif): case_insensative_p renamed case_insensitive_p.
149
150 * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x.
151
152 * ports.c: include sys/ioctl.h.
153
154 * scmconfig.h.in: add HAVE_SYS_IOCTL_H.
155
156 * configure.in: check for sys/ioctl.h.
157
158 * ports.c: include <malloc.h> not "malloc.h".
159
160 * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
161
162 * fports.c: remove ttyname and tmpnam declarations.
163
164 * posix.c: fewer ttyname declarations.
165
166 * fports.c: include <string.h> not "string.h".
167
168 * init.c, ioext.c: include string.h and unistd.h.
169
170 * gc.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
171
172 * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c,
173 genio.c, simpos.c, vports.c: include string.h.
174
175 * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H.
176
177 * fdsocket.c (getsockopt, setsockopt): change type of optlen from
178 scm_sizet to int.
179 (scm_addr_buffer_size): change type from scm_sizet to int.
180 (accept, getsockname, getpeername, recvfrom): change type of tmp_size
181 from scm_sizet to int.
182
183 * error.c: include unistd.h.
184
185 * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't
186 defined.
187
188 * Makefile.in: remove references to .hd, .cd suffix and __scm.hd.
189
190 * __scm.hd, def.sed: deleted.
191
192 Tue Aug 6 14:49:08 1996 Jim Blandy <jimb@totoro.cyclic.com>
193
194 Changes for NeXT, suggested by Robert Brown.
195 * configure.in: Call AC_TYPE_MODE_T.
196 (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the
197 NeXT. Put header file list in alphabetical order.
198 * configure, scmconfig.h.in: Regenerated.
199 * filesys.c [HAVE_LIBC_H]: #include <libc.h>.
200
201 * filesys.c [HAVE_STRING_H]: #include <string.h>, to get prototype
202 for strerror.
203
204 * acconfig.h: New file, providing documentation for the CPP
205 symbols defined in configure.in
206 * acconfig-1.5.h: Removed; superceded by the above.
207
208 Sat Aug 3 01:27:14 1996 Gary Houston <ghouston@actrix.gen.nz>
209
210 * ioext.c (scm_sys_fdopen): fix the port-table assignment.
211
212 * * fports.c (scm_open_file): don't return #f, throw error.
213
214 * * ioext.c (fileno): renamed from %fileno.
215 (soft-fileno): deleted.
216
217 * ports.c (scm_port_revealed): don't need to check for -1 from
218 scm_revealed_count.
219 (scm_set_port_revealed_x): return unspecified, not #f.
220
221 * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0.
222
223 * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER.
224
225 * scmconfig.h.in: add HAVE_STRUCT_LINGER.
226
227 * configure.in: check for struct linger, set HAVE_STRUCT_LINGER.
228
229 Thu Aug 1 02:58:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
230
231 * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
232 This is necessary on Ultrix, and doesn't hurt portability.
233
234 * Makefile.in (dist-dir): New target, implementing a new dist system.
235 (installed_h_files): Put in alphabetical order.
236 Remove duplicate entries for markers.h and unif.h.
237 (c_files): Remove duplicate entries for markers.c.
238 (ancillary): Renamed from anillery; all uses changed. Remove
239 PLUGIN; it's a directory, and needs special treatment in dist-dir.
240 Remove all the ../doc/* files; doc/Makefile.in handles that.
241
242 * Makefile.in (libobjs): Remove duplicate entry for markers.o.
243
244 * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell:
245 every if must have an else, or else the whole command has a
246 non-zero exit code whenever the if's condition is false.
247
248 Thu Aug 1 08:22:24 1996 Gary Houston <ghouston@actrix.gen.nz>
249
250 * posix.c: include string.h.
251
252 Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
253
254 * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must
255 have been once.
256
257 * * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c:
258 Remove leading % from scheme names.
259 Do not return error values, call SCM_SYSERROR or similar.
260
261 * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros.
262
263 Wed Jun 12 00:28:31 1996 Tom Lord <lord@beehive>
264
265 * struct.c (scm_init_struct): new file.
266
267 Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
268
269 * list.c (scm_list_tail): list-cdr-ref is the same as list-tail.
270 (scm_list_head): added list-head for rapidly chopping argument
271 lists off of longer lists (and similar).
272
273 Tue Jun 4 09:40:33 1996 Tom Lord <lord@beehive>
274
275 * objprop.c (scm_object_property): assq the cdr of the whash
276 handle for obj, not the handle itself.
277
278 Mon Jun 3 17:19:30 1996 Tom Lord <lord@beehive>
279
280 * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of
281 weak hash tables last of all marking to avoid an obscure gc bug.
282 WARNING: circular lists stored in a weak hash table will hose us.
283
284 Fri May 24 09:53:39 1996 Tom Lord <lord@beehive>
285
286 * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x):
287 new functions similar to scm_substring_move_left_x and
288 scm_substring_move_right_x.
289
290 Wed May 22 20:07:01 1996 Tom Lord <lord@beehive>
291
292 * init.c (scm_boot_guile): prevent gc with scm_block_gc not
293 scm_gc_heap_lock!
294
295 Wed May 15 16:13:29 1996 Tom Lord <lord@beehive>
296
297 * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
298
299 Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
300
301 * strports.c (scm_strprint_obj): convenience function. C for
302 (lambda (obj) (call-with-output-string (lambda (p) (write obj p))))
303
304 * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch]
305 removed to a separate library
306
307 * init.c (scm_boot_guile): copied from guile-tcl.c.
308 Initialization specific to tcl interpreters removed.
309
310 Wed May 8 15:07:37 1996 Tom Lord <lord@beehive>
311
312 * ports.c (scm_ports_prehistory): size malloced here doesn't
313 matter so long as it is non-0 (got rid of "* 4").
314
315 Tue May 7 11:43:37 1996 Tom Lord <lord@beehive>
316
317 * gscm.h: gscm_mkarray eliminated (presumably was not being used
318 since its definition was bogus).
319
320 Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
321
322 * mallocs.[ch]: back again (for rx at least).
323
324 Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
325
326 * ports.c: removed functions relating to the mapping between ports
327 and descriptors. (That stuff is unix-specific and should be collected
328 in a separate library).
329
330 * ramap.c (scm_array_copy): return #<unspecified> not #<undefined>.
331 (Tom Mckay@avanticorp.com)
332
333 Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
334
335 * gc.c (scm_gc_sweep): Immediates in weak vectors were not
336 handled correctly (SCM_FREEP was applied to them) -- test for
337 NIMP. Keys in weak hash tables were spuriously (though harmlessly)
338 being overwritten with #f. (brown@grettir.bibliotech.com)
339
340 Tue Apr 2 22:25:00 1996 Tom Lord <lord@beehive>
341
342 * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs
343 for a specific symbol or for all symbols.
344
345 Mon Apr 1 10:34:55 1996 Tom Lord <lord@beehive>
346
347 * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak
348 keys and weak values confused).
349
350 Thu Mar 14 22:20:20 1996 Tom Lord <lord@beehive>
351
352 * list.c (scm_last_pair): map '()=>'()
353
354 Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
355
356 * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c:
357 Generalized assoc and hash-table functions.
358 Factored pairs.c into multiple files.
359
360 Fri Mar 8 14:44:39 1996 Tom Lord <lord@beehive>
361
362 * gscm.c (gscm_run_scm): got rid of objprop.
363
364 Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
365
366 * genio.c (scm_getc):
367 NOTE: fgetc may not be interruptable.
368
369 * procprop.c (scm_stand_in_scm_proc):
370 NOTE: don't use a alist here.
371 (scm_set_procedure_properties_x): fix type checking throughout this file.
372
373 * gc.c (scm_gc_sweep): free heap segments with free, not must_free.
374
375 * ports.c (scm_remove_from_port_table): adjust scm_mallocated
376 after freeing part of the port table.
377
378 Thu Feb 29 16:21:17 1996 Tom Lord <lord@beehive>
379
380 * strports.c (scm_mkstrport):
381 * vports.c (scm_make_soft_port): allocate a port table entry
382 (possibly triggering gc) before setting the tag of the corresponding
383 ports handle.
384
385 * pairs.c (scm_delq_x): never throw an error.
386
387 * vectors.c (scm_make_vector): made the default vector fill argument
388 into '() (much more useful than the previous value, "#unspecified")
389
390 Mon Feb 26 17:19:09 1996 Tom Lord <lord@beehive>
391
392 * ports.c (scm_add_to_port_table): Added fields
393 to port table entries: file_name, line_num, col.
394 Update these in open_file, gen_getc and gen_ungetc.
395 Added procedures to access those fields.
396
397 Sun Feb 25 00:10:36 1996 Tom Lord <lord@beehive>
398
399 * procs.c (scm_make_subr_opt): new entry point for making
400 anonymous subrs.
401
402 Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
403
404 * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
405
406 Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
407
408 * numbers.c (scm_exact_p): This function no longer
409 implements "integer?".
410
411 Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
412
413 * gc.c (scm_gc_end): simulate a signal at the end of each GC.
414 (scm_gc_stats): return an assoc of useful data. Replaces "room"
415 and the stats reporting formerlly built into repl.
416
417 * repl.[ch]: removed.
418 GC statistics keeping moved to gc.c.
419 Other statistics keeping can be done from Scheme.
420 REPLS are now written in Scheme.
421
422 Wed Feb 21 10:28:53 1996 Tom Lord <lord@beehive>
423
424 * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky
425 conservatively marked objects).
426
427 * throw.c (scm_ithrow): Unwind up to the right catch during a throw!
428
429 * error.c (scm_init_error): init system_error_sym here, not in repl.c.
430
431 * feature.c (scm_compiled_library_path): moved here from repl.c.
432 This file is for stuff relating specifically to Scheme libraries
433 like slib.
434
435 * eval.c (scm_m_define): don't give warning about redefinition, don't
436 check verbosity.
437
438 NOTE: this should throw a resumable exception with parameters --
439 the name, the top-level env, the variable, the definition, #t/#f: redefining builtin?
440
441 * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity.
442
443 * error.c: scm_warn eliminated.
444
445 * read.c (scm_lreadr): extra right paren gets an error, not a warning.
446
447 * repl.c, marksweep.c, gc.c (various):
448 lose exit_report, growth_mon.
449
450 * gscm.c: got rid of verbosity functions.
451
452 Tue Feb 20 00:19:10 1996 Tom Lord <lord@beehive>
453
454 * throw.c (scm_ithrow): guard against the bad-throw hook changing
455 between the call to procedurep and use.
456
457 * error.c (scm_everr):
458 * gc.c (fixconfig):
459 * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong,
460 but less so.
461
462 * strports.c: don't reveal the port's string to the caller
463 because it changes size.
464
465 (stputc stwrite): check/change the strings length with interrupts
466 blocked.
467
468 * objprop.c (scm_set_object_property_x &c): use the generic
469 hashing functions and be threadsafe.
470
471 * eval.c (scm_unmemocar): do this operation in a thread-safe way.
472 (per suggestion jaffer@gnu.ai.mit.edu).
473
474 * mbstrings.c (scm_multi_byte_string): guard against argument list
475 changing length.
476
477 * strings.c (scm_make_string): loop cleanup
478
479 * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer
480 a scheme function.
481
482 * weaks.c (scm_weak_vector): guard against argument list
483 changing length.
484
485 * variable.c (scm_builtin_variable): check for/make a built-in
486 variable automicly.
487
488 * vectors.c (scm_vector): while filling the new array,
489 guard against a list of fill elements that grows after
490 the vector is allocated.
491
492 * hashtab.c -- new file: general hash table
493 functions. hash, hashq, hashv, hashx.
494
495 * tags.h: made wvect an option bit of vector.
496
497 Mon Feb 19 09:38:05 1996 Tom Lord <lord@beehive>
498
499 * symbols.c: made the basic symbol table operations atomic.
500
501 * root.c &c.: collected stack-specific global state.
502 linum/colnum etc *should* be port-specific state.
503
504 * struct.c (scm_init_struct): init the first struct type during
505 initialization to fix a race condition.
506
507 * continuations.c (scm_dynthrow): pass throwval in the 'regs'
508 object, not in a global.
509 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
510
511 * throw.c (_scm_throw): Pass throwval on the stack, not in a global
512 (suggested by green@cygnus, jaffer@gnu.ai.mit.edu)
513
514 * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP
515 and C symbols to begin with SCM_ or scm_.
516
517 Sun Feb 18 15:55:38 1996 Tom Lord <lord@beehive>
518
519 * gsubr.c (scm_gsubr_apply): statically allocate the
520 array of arguments (bothner@cygnus.com).
521
522 Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
523
524 * scmsigs.c: Simplified to use async rountines.
525
526 * async.c: New support for interrupt handlers.
527
528 Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
529
530 * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to
531 set the multi_byte flag correctly in symbols. This is wrong.
532 intern_obbary_soft and msymbolize should take an extra parameter.
533 Also, weird multibyte symbols don't print correctly.
534 The weird symbol syntax is also a bit bogus (emacs doesn't quite
535 cope).
536
537 Tue Feb 13 11:39:37 1996 Tom Lord <lord@beehive>
538
539 * symbols.c (scm_string_to_obarray_symbol): obarray == #f means
540 use the system symhash. == #t means create an uninterned symbol.
541
542 Wed Feb 7 09:28:02 1996 Tom Lord <lord@beehive>
543
544 * strings.c (scm_make_shared_substring): build'em.
545 It might better to keep a table of these and use one
546 less cons-pair per shared-substring.
547
548 Tue Feb 6 17:45:21 1996 Tom Lord <lord@beehive>
549
550 * strings.c (scm_string_shared_substring): create shared
551 substrings. (Doesn't handle mb strings yet).
552
553 * mbstrings.c (scm_print_mb_string): handle RO strings.
554
555 * print.c (scm_iprin1): print substrings as their non-substring
556 counterparts (dubious).
557
558 * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB
559 strings.
560
561 * hash.c (scm_hasher): hash RO and MB strings as bytestrings.
562
563 * eval.c (SCM_CEVAL): self-evaluate RO and MB strings.
564
565 * eq.c (scm_equal_p): handle RO and MB strings.
566
567 * symbols.c (scm_string_to_symbol):
568 (scm_string_to_obarray_symbol):
569 * strop.c (scm_i_index):
570 (scm_i_rindex):
571 (scm_string_null_p):
572 (scm_string_to_list):
573 * strings.c (scm_string_length):
574 (scm_string_ref):
575 (scm_substring):
576 (scm_string_append):
577 * simpos.c (scm_system):
578 (scm_getenv):
579 * fports.c (scm_open_file):
580 * strorder.c (scm_string_equal_p):
581 (scm_string_ci_equal_p):
582 (scm_string_less_p):
583 (scm_string_ci_less_p):
584 * pairs.c (scm_obj_length):
585 * mbstrings.c (scm_multi_byte_string_length):
586
587 Use RO string macros for RO strings.
588
589 Tue Jan 30 09:19:08 1996 Tom Lord <lord@beehive>
590
591 * Makefile.in (CFLAGS ALL_CFLAGS): be more standard.
592
593 * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions
594 index/rindex. Do handle embedded \000 characters.
595
596 Sun Jan 28 13:16:18 1996 Tom Lord <lord@beehive>
597
598 * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos
599 Eliminate a (presumed) warning on some systems.
600
601 * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH
602 (Mikael Djurfeldt <mdj@nada.kth.se>)
603
604 Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
605
606 * eval.c (scm_map): added argument type checking.
607 (kawai@sail.t.u-tokyo.ac.jp)
608
609 * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val"
610 for C++. (Seth Alves <alves@gryphon.com>)
611
612 (gscm_cstr): uses an uninitialized local variable causing
613 segv. (kawai@sail.t.u-tokyo.ac.jp)
614
615
616 * lvectors.c (scm_get_lvector_hook):
617 In guile-ii, the lvector code was broken. It was fixed in guile-iii.
618 It seems to me like if it is broken again in guile-iv...Here is a patch.
619 "! || (LENGTH (keyvec) == 0))"
620 (From: Mikael Djurfeldt <mdj@nada.kth.se>)
621
622
623 * gscm.c (gscm_sys_default_verbosity):
624 incorrectly declared for non-__STDC__
625 (Tom_Mckay@avanticorp.com)
626
627 * ports.c (scm_setfileno): Tweak the macro a bit
628 to make it easier to port to systems that use
629 more than a single structure field to hold a descriptor.
630
631 * debug.c (change_mode): Avoid GNUCism "int foo[n];"
632 Give a warning, not an error, for unrecognized modes.
633
634 * eval.c (SCM_CEVAL):
635 static char scm_s_for_each[];
636 static char scm_s_map[];
637 not needed.
638
639 * strings.c (scm_string_p):
640 static char s_string[];
641 (see next entry)
642
643 * struct.c (scm_sys_struct_set_x):
644 static char s_sys_make_struct[];
645 static char s_sys_struct_ref[];
646 static char s_sys_struct_set_x[];
647 Rearrange code to eliminate those forward decls for the sake of
648 broken compilers.
649
650 * variable.c (make_vcell_variable): static char s_make_variable[];
651 isn't needed.
652
653 * fports.c (scm_port_mode):
654 chars modes[3] = "";
655 to
656 chars modes[3];
657 modes[0] = '\0';
658 (Tom_Mckay@avanticorp.com)
659
660
661 * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of
662 scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon
663 (Tom_Mckay@avanticorp.com)
664
665 * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of
666 scm_num_eq_p() was scm_equal_p().
667 (Tom_Mckay@avanticorp.com)
668
669 * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..."
670 (Tom_Mckay@avanticorp.com)
671
672 Fri Jan 26 14:03:01 1996 Tom Lord <lord@beehive>
673
674 * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..."
675 (Tom_Mckay@avanticorp.com)
676
677 * strop.c (scm_substring_fill_x):
678 Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon
679 (Tom_Mckay@avanticorp.com)
680
681 * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info.
682 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
683
684 * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X)
685 Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com)
686
687 * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which
688 can turn into an obscure gc bug.
689
690 * chars.c (scm_char_p): fixed PROC call.
691
692 * gscm.h (gscm_vset): use scm_vector_set_x not (the missing)
693 scm_vector_set.
694
695 Tue Jan 23 13:29:40 1996 Tom Lord <lord@beehive>
696
697 * elisp.c (new file): dynamic scoping and other bits for
698 elisp. Don't use this yet unless you specificly want to
699 hack on elisp emulation.
700
701 * dynwind.c (scm_dowinds): When entering or leaving a dynamic
702 scope created by scm_with_dynamic_bindings_operation_x, swap
703 the bindings of that scope with the corresponding globals.
704
705 * continuations.c (scm_make_cont): when a continuation is captured,
706 relocate the continuation stack chunks registered on the wind chain
707 to the heap.
708
709 Sun Jan 21 19:31:17 1996 Tom Lord <lord@beehive>
710
711 * eval.c (SCM_CEVAL): if the function position evaluates
712 to a macro, process it accordingly. (Previously, macros were
713 handled only if the function position was a symbol naming a
714 variable bound to a macro).
715
716 Sat Jan 20 23:21:37 1996 Tom Lord <lord@beehive>
717
718 * eval.c (scm_m_set): allow multi-variable set! like
719 (set! x 1 y 2 z 3).
720
721 Wed Dec 6 02:40:49 1995 Tom Lord <lord@beehive>
722
723 * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the STREAM
724 of ports into the port table and replaced it with a port-table
725 index.
726
727 * repl.c (iprin1): added tc7_mb_string -- same as tc7_string.
728
729 * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string.
730
731 * mbstrings.c (new file): functions on multi-byte strings.
732
733 * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag
734 for multi-byte strings. Moved the string tag.
735
736 * chars.h chars.c repl.c (many functions): made scm_upcase and scm_downcase
737 functions that are safe for extended character sets.
738
739 Changed the range of integer->char.
740
741 Changed the tyep of SCM_ICHR.
742
743
744
745 Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
746
747 * guile.c: Changed init file name from "SCM_INIT_PATH" to
748 "GUILE_INIT_PATH"
749
750 Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
751
752 * guile.c (gscm_is_gscm_type): New function. (Without this how will we
753 know that it's safe to pass an object to gscm_get_type?)
754 (gscm_get_type): Fix tyop in error message.
755
756 * variable.c (scm_variable_ref): fixed assertion test.
757 (Robert STRANDH <strandh@labri.u-bordeaux.fr>)
758
759 * gscm.h: fixed several prototypes, notably gscm_vref.
760 Add gscm_is_eq and temporarily commented out gscm_eq (see
761 the note in gscm.h near gscm_eq if this change effects your
762 code).
763 (Reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
764
765 * pairs.c (scm_obj_length): see next entry.
766
767 * gscm.h (gscm_obj_length): A way to get an integer
768 length for lists, strings, symbols (treated as strings),
769 and vectors. Returns -1 on error.
770
771 * eq.c (scm_equal_p): fixed smob case.
772 (William Gribble <grib@arlut.utexas.edu>)
773
774 * Makefile.in (X_CFLAGS): defined.
775 (William Gribble <grib@arlut.utexas.edu>)
776
777 * gscm.h (gscm_2_double): provided now
778 (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
779
780 Tue Jun 13 01:04:09 1995 gnu
781 * Vrooom!
782
783