Fri Aug 23 18:00:16 1996 Mikael Djurfeldt * socket.c: Added declaration of inet_aton to avoid compiler warning. (Hope this solution is correct.) * stime.c: Added declaration of ftime. (This is missing in Solaris 2 headers.) Fri Aug 23 02:03:32 1996 Gary Houston * configure, scmconfig.h.in: Updated, using autoconf and autoheader. * Makefile.in (c_files): add strerror.c. * strerror.c: new file from Emacs' sysdep.c. maybe configure should also check for sys_errlist. * configure.in (AC_REPLACE_FUNCS): add strerror. Fri Aug 23 03:02:46 1996 Mikael Djurfeldt * debug.c (scm_init_debug): Added initialization for scm_evaluator_traps. * debug.h, debug.c: Various name changes. (Mostly prefixing with SCM_.) Renamed "debug-options" --> "debug-options-interface". See commentary in options.c. * options.h, options.c: Options now have documentation strings. Also added a long explanatory commentary. * eval.c, print.h, print.c, read.h, read.c: Modifications to run-time options. * gscm.c, init.c, root.c, throw.c: Bug fixes: last_debug_info_frame is now updated in all cases. * __scm.h, stackchk.h, stackchk.c: Guile now performs stack checking. Thu Aug 22 17:34:17 1996 Mikael Djurfeldt * __scm.h: SCM_STACK_LIMIT removed (now a run-time option). Added option STACK_CHECKING. Tue Aug 20 18:48:40 1996 Mikael Djurfeldt * Makefile.in: Added {debug,options,srcprop}.{h,c} * __scm.h: Removed symbols for debugging support. * acconfig.h: Added symbols for debugging support. * * configure.in: Added user option for debugging support. --enable-debug will include the debugging code into libguile.a. * continuations.c (scm_make_cont): Enlarged the #if 0 around scm_relocate_chunk_to_heap. * * debug.c: New file: low-level debugging support. It also includes support for debugging with gdb. (The extensions to gdb are written by Per Bothner at Cygnus.) * debug.h: New file: low-level debugging support. * * eval.c: scm_m_set and SCM_IM_SET no longer supports multiple argument pairs. Extensive modifications to the debugging evaluator. Added "SECTION:" commentaries to clarify what happens when, during double compilation. Renamed EVALIMP --> EVALIM. Renamed EVAL --> XEVAL. Removed function evalcar. Defined evalcar to scm_eval_car. Added explanation of "EVAL" symbols to the beginning of the file. New procedure: scm_unmemocopy. Added some global state variables needed by the debugging evaluator: scm_ceval_ptr, last_debug_info_frame, debug_mode, check_entry, check_apply, check_exit, debug_options and evaluator_traps. New acro: undefine. * eval.h: Renamed EVAL --> XEVAL. * gc.c (scm_init_storage): Renamed scm_make_weak_hash_table --> scm_make_weak_key_hash_table. * init.c (scm_restart_stack, scm_boot_guile): Added initialization of SCM_DFRAME. Added calls to scm_init_{debug,options,srcprop}. * libguile.h: Conditionally include debug.h * * objprop.c (scm_object_properties, scm_set_object_properties_x): scm_object_properties shouldn't return handle. `handle' now gets initialized in scm_set_object_properties_x. scm_object_properties doesn't any longer create an entry in scm_object_whash. * * options.c: New file: handling of run time options. * options.h: New file: handling of run time options. * posix.c (scm_getpgrp): Cast pointer to getpgrp. * * print.c: New procedure: scm_print_options * print.h: Defines for print options. * * read.c: New procedure: scm_read_options * read.h: Defines for reader options. * root.h: Added scm_source_whash among scm_sys_protects. * * srcprop.c: New file: source properties. * srcprop.h: New file: source properties. * throw.c (jbsmob): Jump buffers are now correctly allocated. (Bug found by A. Green.) * * weak.c: Renamed scm_weak_hash_table --> scm_weak_key_hash_table. * weak.h: Renamed scm_weak_hash_table --> scm_weak_key_hash_table. Thu Aug 15 02:05:14 1996 Jim Blandy * libguile.h: #include "objprop.h"; I guess this was forgotten. * init.c (scm_boot_guile): Don't call scm_init_rgx; it's a plugin, and should be called by the final client. Wed Aug 14 21:41:37 1996 Jim Blandy * gc.h: Use the PROTO macro when declaring functions. * gc.c: Use the PROTO macro when declaring static functions. Remove the CPP hair around function definitions. * gc.c (scm_init_storage): Initialize scm_asyncs. * libguile.h: #include "__scm.h" before testing the STDC_HEADERS preprocessor symbol; "__scm.h" is where it might get #defined. * __scm.h: Similar: #include before testing HAVE_LIMITS_H. * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH. Fri Aug 9 11:09:28 1996 Jim Blandy * * init.c (scm_boot_guile): Add init_func argument; call (*init_func) instead of calling scm_appinit; it's ucky to hard-code names for the user's procedures. * init.h (scm_boot_guile): Adjust declaration. * __scm.h (PROTO): New macro, for declaring functions with prototypes. * init.h (scm_start_stack, scm_restart_stack): Use PROTO; eliminate all the __STDC__ conditionals. (scm_boot_guile): Add declaration. * init.c (scm_start_stack, scm_restart_stack, scm_boot_guile): Remove __STDC__ conditionals around function definitions; the declarations in init.h will provide the same information, more usefully. * __scm.h (SCM_SYSMISSING): When we don't have ENOSYS, don't complain about it in the error message; the error message is adequate without that note, and there's nothing the user can do about it. Wed Aug 7 14:14:46 1996 Jim Blandy * Makefile.in (ancillary): Drop def.sed. * posix.c (scm_init_posix): Use numeric values, rather than CPP symbols, when defining the scheme values R_OK, W_OK, X_OK, and F_OK. The symbols aren't available on some systems, and I'm pretty sure their values are fixed by common widespread practice. * ioext.c (scm_init_ioext): Code here defined them too; remove it. More functions unavailable on some systems. * configure.in (AC_CHECK_FUNCS): Add ctermid, setpgid, setsid, tcgetpgrp, tcsetpgrp, and waitpid to the list of functions to check for. * configure, scmconfig.h.in: Updated, using autoconf and autoheader. * posix.c (scm_sys_ctermid, scm_sys_setpgid, scm_sys_setsid, scm_sys_tcgetpgrp, scm_sys_tcsetpgrp, scm_sys_waitpid): Put the bodies of these functions in "#ifdef HAVE_MUMBLE" clauses, with a stub that signals an error as the #else. * Makefile.in (ancillary): Drop acconfig-1.5.h; add acconfig.h. Wed Aug 7 06:28:42 1996 Gary Houston * Fixes motivated by Petr Adamek : * unif.c: include ramap.h. * read.c (endif): case_insensative_p renamed case_insensitive_p. * ramap.h: rename scm_array_copy prototypes to scm_array_copy_x. * ports.c: include sys/ioctl.h. * scmconfig.h.in: add HAVE_SYS_IOCTL_H. * configure.in: check for sys/ioctl.h. * ports.c: include not "malloc.h". * mallocs.c: include not "malloc.h", likewise for unistd.h. * fports.c: remove ttyname and tmpnam declarations. * posix.c: fewer ttyname declarations. * fports.c: include not "string.h". * init.c, ioext.c: include string.h and unistd.h. * gc.c: include not "malloc.h", likewise for unistd.h. * async.c, strings.h, strports.c, struct.c, symbols.c, feature.c, genio.c, simpos.c, vports.c: include string.h. * socket.c, fdsocket.c: include string.h only if HAVE_STRING_H. * fdsocket.c (getsockopt, setsockopt): change type of optlen from scm_sizet to int. (scm_addr_buffer_size): change type from scm_sizet to int. (accept, getsockname, getpeername, recvfrom): change type of tmp_size from scm_sizet to int. * error.c: include unistd.h. * __scm.h: (SCM_SYSMISSING): another version in case ENOSYS isn't defined. * Makefile.in: remove references to .hd, .cd suffix and __scm.hd. * __scm.hd, def.sed: deleted. Tue Aug 6 14:49:08 1996 Jim Blandy Changes for NeXT, suggested by Robert Brown. * configure.in: Call AC_TYPE_MODE_T. (AC_CHECK_HEADERS): Add libc.h, to get more prototypes on the NeXT. Put header file list in alphabetical order. * configure, scmconfig.h.in: Regenerated. * filesys.c [HAVE_LIBC_H]: #include . * filesys.c [HAVE_STRING_H]: #include , to get prototype for strerror. * acconfig.h: New file, providing documentation for the CPP symbols defined in configure.in * acconfig-1.5.h: Removed; superceded by the above. Sat Aug 3 01:27:14 1996 Gary Houston * ioext.c (scm_sys_fdopen): fix the port-table assignment. * * fports.c (scm_open_file): don't return #f, throw error. * * ioext.c (fileno): renamed from %fileno. (soft-fileno): deleted. * ports.c (scm_port_revealed): don't need to check for -1 from scm_revealed_count. (scm_set_port_revealed_x): return unspecified, not #f. * * ioext.c (primitive-move->fdes): return #t or #f, not 1 or 0. * fdsocket.c: getsockopt, setsockopt: use HAVE_STRUCT_LINGER. * scmconfig.h.in: add HAVE_STRUCT_LINGER. * configure.in: check for struct linger, set HAVE_STRUCT_LINGER. Thu Aug 1 02:58:39 1996 Jim Blandy * filesys.c, posix.c: #include before . This is necessary on Ultrix, and doesn't hurt portability. * Makefile.in (dist-dir): New target, implementing a new dist system. (installed_h_files): Put in alphabetical order. Remove duplicate entries for markers.h and unif.h. (c_files): Remove duplicate entries for markers.c. (ancillary): Renamed from anillery; all uses changed. Remove PLUGIN; it's a directory, and needs special treatment in dist-dir. Remove all the ../doc/* files; doc/Makefile.in handles that. * Makefile.in (libobjs): Remove duplicate entry for markers.o. * Makefile.in (.c.x): Compensate for Ultrix's broken Bourne shell: every if must have an else, or else the whole command has a non-zero exit code whenever the if's condition is false. Thu Aug 1 08:22:24 1996 Gary Houston * posix.c: include string.h. Wed Jul 31 23:43:05 1996 Gary Houston * * numbers.c: rename %expt -> $expt, %atan2 -> $atan2, as it must have been once. * * posix.c, ioext.c, socket.c, fdsocket.c, files.c, filesys.c, simpos.c: Remove leading % from scheme names. Do not return error values, call SCM_SYSERROR or similar. * __scm.h (SCM_SYSERROR, SCM_SYSMISSING): new macros. Wed Jun 12 00:28:31 1996 Tom Lord * struct.c (scm_init_struct): new file. Fri Jun 7 14:02:00 1996 Tom Lord * list.c (scm_list_tail): list-cdr-ref is the same as list-tail. (scm_list_head): added list-head for rapidly chopping argument lists off of longer lists (and similar). Tue Jun 4 09:40:33 1996 Tom Lord * objprop.c (scm_object_property): assq the cdr of the whash handle for obj, not the handle itself. Mon Jun 3 17:19:30 1996 Tom Lord * gc.c (scm_mark_weak_vector_spines): Mark the spines (alists) of weak hash tables last of all marking to avoid an obscure gc bug. WARNING: circular lists stored in a weak hash table will hose us. Fri May 24 09:53:39 1996 Tom Lord * vectors.c (scm_vector_move_left_x, scm_vector_move_right_x): new functions similar to scm_substring_move_left_x and scm_substring_move_right_x. Wed May 22 20:07:01 1996 Tom Lord * init.c (scm_boot_guile): prevent gc with scm_block_gc not scm_gc_heap_lock! Wed May 15 16:13:29 1996 Tom Lord * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure. Thu May 9 09:33:17 1996 Tom Lord * strports.c (scm_strprint_obj): convenience function. C for (lambda (obj) (call-with-output-string (lambda (p) (write obj p)))) * guile-{tcl,tk}.[ch], events.[ch], keysyms.[ch], tcl-channels.[ch] removed to a separate library * init.c (scm_boot_guile): copied from guile-tcl.c. Initialization specific to tcl interpreters removed. Wed May 8 15:07:37 1996 Tom Lord * ports.c (scm_ports_prehistory): size malloced here doesn't matter so long as it is non-0 (got rid of "* 4"). Tue May 7 11:43:37 1996 Tom Lord * gscm.h: gscm_mkarray eliminated (presumably was not being used since its definition was bogus). Mon May 6 13:02:56 1996 Tom Lord * mallocs.[ch]: back again (for rx at least). Wed Apr 17 08:54:20 1996 Tom Lord * ports.c: removed functions relating to the mapping between ports and descriptors. (That stuff is unix-specific and should be collected in a separate library). * ramap.c (scm_array_copy): return # not #. (Tom Mckay@avanticorp.com) Mon Apr 15 14:16:55 1996 Tom Lord * gc.c (scm_gc_sweep): Immediates in weak vectors were not handled correctly (SCM_FREEP was applied to them) -- test for NIMP. Keys in weak hash tables were spuriously (though harmlessly) being overwritten with #f. (brown@grettir.bibliotech.com) Tue Apr 2 22:25:00 1996 Tom Lord * gc.c (scm_unhash_name): new procedure, unhash-name, flushes glocs for a specific symbol or for all symbols. Mon Apr 1 10:34:55 1996 Tom Lord * gc.c (scm_gc_mark): mark weak hash tables correctly (was getting weak keys and weak values confused). Thu Mar 14 22:20:20 1996 Tom Lord * list.c (scm_last_pair): map '()=>'() Wed Mar 13 16:43:34 1996 Tom Lord * pairs.c, hashtab.c, list.c, alist.c append.c, sequences.c: Generalized assoc and hash-table functions. Factored pairs.c into multiple files. Fri Mar 8 14:44:39 1996 Tom Lord * gscm.c (gscm_run_scm): got rid of objprop. Fri Mar 1 10:39:52 1996 Tom Lord * genio.c (scm_getc): NOTE: fgetc may not be interruptable. * procprop.c (scm_stand_in_scm_proc): NOTE: don't use a alist here. (scm_set_procedure_properties_x): fix type checking throughout this file. * gc.c (scm_gc_sweep): free heap segments with free, not must_free. * ports.c (scm_remove_from_port_table): adjust scm_mallocated after freeing part of the port table. Thu Feb 29 16:21:17 1996 Tom Lord * strports.c (scm_mkstrport): * vports.c (scm_make_soft_port): allocate a port table entry (possibly triggering gc) before setting the tag of the corresponding ports handle. * pairs.c (scm_delq_x): never throw an error. * vectors.c (scm_make_vector): made the default vector fill argument into '() (much more useful than the previous value, "#unspecified") Mon Feb 26 17:19:09 1996 Tom Lord * ports.c (scm_add_to_port_table): Added fields to port table entries: file_name, line_num, col. Update these in open_file, gen_getc and gen_ungetc. Added procedures to access those fields. Sun Feb 25 00:10:36 1996 Tom Lord * procs.c (scm_make_subr_opt): new entry point for making anonymous subrs. Sat Feb 24 17:11:31 1996 Tom Lord * gc.h: SCM_STACK_GROWS_UP is now set by autoconf. Fri Feb 23 10:26:29 1996 Tom Lord * numbers.c (scm_exact_p): This function no longer implements "integer?". Thu Feb 22 20:56:16 1996 Tom Lord * gc.c (scm_gc_end): simulate a signal at the end of each GC. (scm_gc_stats): return an assoc of useful data. Replaces "room" and the stats reporting formerlly built into repl. * repl.[ch]: removed. GC statistics keeping moved to gc.c. Other statistics keeping can be done from Scheme. REPLS are now written in Scheme. Wed Feb 21 10:28:53 1996 Tom Lord * cnsvobj.c (gscm_is_gscm_obj): new file for old functions (icky conservatively marked objects). * throw.c (scm_ithrow): Unwind up to the right catch during a throw! * error.c (scm_init_error): init system_error_sym here, not in repl.c. * feature.c (scm_compiled_library_path): moved here from repl.c. This file is for stuff relating specifically to Scheme libraries like slib. * eval.c (scm_m_define): don't give warning about redefinition, don't check verbosity. NOTE: this should throw a resumable exception with parameters -- the name, the top-level env, the variable, the definition, #t/#f: redefining builtin? * repl.c (scm_gc_begin/end): don't print a message, don't check verbosity. * error.c: scm_warn eliminated. * read.c (scm_lreadr): extra right paren gets an error, not a warning. * repl.c, marksweep.c, gc.c (various): lose exit_report, growth_mon. * gscm.c: got rid of verbosity functions. Tue Feb 20 00:19:10 1996 Tom Lord * throw.c (scm_ithrow): guard against the bad-throw hook changing between the call to procedurep and use. * error.c (scm_everr): * gc.c (fixconfig): * gsubr.c (scm_make_gsubr): use exit, not scm_quit. still wrong, but less so. * strports.c: don't reveal the port's string to the caller because it changes size. (stputc stwrite): check/change the strings length with interrupts blocked. * objprop.c (scm_set_object_property_x &c): use the generic hashing functions and be threadsafe. * eval.c (scm_unmemocar): do this operation in a thread-safe way. (per suggestion jaffer@gnu.ai.mit.edu). * mbstrings.c (scm_multi_byte_string): guard against argument list changing length. * strings.c (scm_make_string): loop cleanup * unif.c (scm_vector_set_length_x): scm_vector_set_length_x no longer a scheme function. * weaks.c (scm_weak_vector): guard against argument list changing length. * variable.c (scm_builtin_variable): check for/make a built-in variable automicly. * vectors.c (scm_vector): while filling the new array, guard against a list of fill elements that grows after the vector is allocated. * hashtab.c -- new file: general hash table functions. hash, hashq, hashv, hashx. * tags.h: made wvect an option bit of vector. Mon Feb 19 09:38:05 1996 Tom Lord * symbols.c: made the basic symbol table operations atomic. * root.c &c.: collected stack-specific global state. linum/colnum etc *should* be port-specific state. * struct.c (scm_init_struct): init the first struct type during initialization to fix a race condition. * continuations.c (scm_dynthrow): pass throwval in the 'regs' object, not in a global. (suggested by green@cygnus, jaffer@gnu.ai.mit.edu) * throw.c (_scm_throw): Pass throwval on the stack, not in a global (suggested by green@cygnus, jaffer@gnu.ai.mit.edu) * *.[ch]: namespace cleanup. Changed all (nearly) exported CPP and C symbols to begin with SCM_ or scm_. Sun Feb 18 15:55:38 1996 Tom Lord * gsubr.c (scm_gsubr_apply): statically allocate the array of arguments (bothner@cygnus.com). Sat Feb 17 20:20:40 1996 Tom Lord * scmsigs.c: Simplified to use async rountines. * async.c: New support for interrupt handlers. Thu Feb 15 11:39:09 1996 Tom Lord * symbols.c (scm_string_to_symbol et al.): number of tweaky changes to set the multi_byte flag correctly in symbols. This is wrong. intern_obbary_soft and msymbolize should take an extra parameter. Also, weird multibyte symbols don't print correctly. The weird symbol syntax is also a bit bogus (emacs doesn't quite cope). Tue Feb 13 11:39:37 1996 Tom Lord * symbols.c (scm_string_to_obarray_symbol): obarray == #f means use the system symhash. == #t means create an uninterned symbol. Wed Feb 7 09:28:02 1996 Tom Lord * strings.c (scm_make_shared_substring): build'em. It might better to keep a table of these and use one less cons-pair per shared-substring. Tue Feb 6 17:45:21 1996 Tom Lord * strings.c (scm_string_shared_substring): create shared substrings. (Doesn't handle mb strings yet). * mbstrings.c (scm_print_mb_string): handle RO strings. * print.c (scm_iprin1): print substrings as their non-substring counterparts (dubious). * marksweep.c (scm_gc_mark scm_gc_sweep): handle RO and MB strings. * hash.c (scm_hasher): hash RO and MB strings as bytestrings. * eval.c (SCM_CEVAL): self-evaluate RO and MB strings. * eq.c (scm_equal_p): handle RO and MB strings. * symbols.c (scm_string_to_symbol): (scm_string_to_obarray_symbol): * strop.c (scm_i_index): (scm_i_rindex): (scm_string_null_p): (scm_string_to_list): * strings.c (scm_string_length): (scm_string_ref): (scm_substring): (scm_string_append): * simpos.c (scm_system): (scm_getenv): * fports.c (scm_open_file): * strorder.c (scm_string_equal_p): (scm_string_ci_equal_p): (scm_string_less_p): (scm_string_ci_less_p): * pairs.c (scm_obj_length): * mbstrings.c (scm_multi_byte_string_length): Use RO string macros for RO strings. Tue Jan 30 09:19:08 1996 Tom Lord * Makefile.in (CFLAGS ALL_CFLAGS): be more standard. * strop.c (scm_i_rindex, scm_i_index): Don't use the BSD functions index/rindex. Do handle embedded \000 characters. Sun Jan 28 13:16:18 1996 Tom Lord * error.c (def_err_response): (int)scm_err_pos => (long)scm_err_pos Eliminate a (presumed) warning on some systems. * gscm.c (gscm_run_scm): SCM_INIT_PATH => GUILE_INIT_PATH (Mikael Djurfeldt ) Sat Jan 27 12:36:55 1996 Tom Lord * eval.c (scm_map): added argument type checking. (kawai@sail.t.u-tokyo.ac.jp) * gscm.c (gscm_set_procedure_properties_x): parameter "new" => "new_val" for C++. (Seth Alves ) (gscm_cstr): uses an uninitialized local variable causing segv. (kawai@sail.t.u-tokyo.ac.jp) * lvectors.c (scm_get_lvector_hook): In guile-ii, the lvector code was broken. It was fixed in guile-iii. It seems to me like if it is broken again in guile-iv...Here is a patch. "! || (LENGTH (keyvec) == 0))" (From: Mikael Djurfeldt ) * gscm.c (gscm_sys_default_verbosity): incorrectly declared for non-__STDC__ (Tom_Mckay@avanticorp.com) * ports.c (scm_setfileno): Tweak the macro a bit to make it easier to port to systems that use more than a single structure field to hold a descriptor. * debug.c (change_mode): Avoid GNUCism "int foo[n];" Give a warning, not an error, for unrecognized modes. * eval.c (SCM_CEVAL): static char scm_s_for_each[]; static char scm_s_map[]; not needed. * strings.c (scm_string_p): static char s_string[]; (see next entry) * struct.c (scm_sys_struct_set_x): static char s_sys_make_struct[]; static char s_sys_struct_ref[]; static char s_sys_struct_set_x[]; Rearrange code to eliminate those forward decls for the sake of broken compilers. * variable.c (make_vcell_variable): static char s_make_variable[]; isn't needed. * fports.c (scm_port_mode): chars modes[3] = ""; to chars modes[3]; modes[0] = '\0'; (Tom_Mckay@avanticorp.com) * pairs.c (scm_set_cdr_x): non-__STDC__ declaration of scm_cons2(), scm_acons(), and scm_set_cdr_x() missing semicolon (Tom_Mckay@avanticorp.com) * numbers.c (scm_num_eq_p): Non-__STDC__ declaration of scm_num_eq_p() was scm_equal_p(). (Tom_Mckay@avanticorp.com) * symbols.c (msymbolize): "CHARS(X) = " => "SETCHARS..." (Tom_Mckay@avanticorp.com) Fri Jan 26 14:03:01 1996 Tom Lord * weaks.c (scm_make_weak_vector): "VELTS(X) =" => "SETVELTS..." (Tom_Mckay@avanticorp.com) * strop.c (scm_substring_fill_x): Non-__STDC__ declaration of scm_substring_fill_x() missing semicolon (Tom_Mckay@avanticorp.com) * eval.c (SCM_APPLY): variables "debug_info" -> dbg_info. Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com) * _scm.h (CxR functions): #define CxR SCM_CxR => #define CxR(X) SCM_CxR(X) Works around a compiler bug on some machines. (Tom_Mckay@avanticorp.com) * lvectors.c (scm_lvector_set_x): avoid VELTS (VELTS (...)[..]) which can turn into an obscure gc bug. * chars.c (scm_char_p): fixed PROC call. * gscm.h (gscm_vset): use scm_vector_set_x not (the missing) scm_vector_set. Tue Jan 23 13:29:40 1996 Tom Lord * elisp.c (new file): dynamic scoping and other bits for elisp. Don't use this yet unless you specificly want to hack on elisp emulation. * dynwind.c (scm_dowinds): When entering or leaving a dynamic scope created by scm_with_dynamic_bindings_operation_x, swap the bindings of that scope with the corresponding globals. * continuations.c (scm_make_cont): when a continuation is captured, relocate the continuation stack chunks registered on the wind chain to the heap. Sun Jan 21 19:31:17 1996 Tom Lord * eval.c (SCM_CEVAL): if the function position evaluates to a macro, process it accordingly. (Previously, macros were handled only if the function position was a symbol naming a variable bound to a macro). Sat Jan 20 23:21:37 1996 Tom Lord * eval.c (scm_m_set): allow multi-variable set! like (set! x 1 y 2 z 3). Wed Dec 6 02:40:49 1995 Tom Lord * ports.h fports.c vports.c marksweep.c gc.c strports.c: moved the STREAM of ports into the port table and replaced it with a port-table index. * repl.c (iprin1): added tc7_mb_string -- same as tc7_string. * marksweep.c (scm_gc_mark): added tc7_mb_string -- same as tc7_string. * mbstrings.c (new file): functions on multi-byte strings. * tags.h (scm_typ7_string, scm_typ7_mb_string): added a tag for multi-byte strings. Moved the string tag. * chars.h chars.c repl.c (many functions): made scm_upcase and scm_downcase functions that are safe for extended character sets. Changed the range of integer->char. Changed the tyep of SCM_ICHR. Tue May 16 17:49:58 1995 Mikael Djurfeldt * guile.c: Changed init file name from "SCM_INIT_PATH" to "GUILE_INIT_PATH" Sun Aug 6 15:14:46 1995 Andrew McCallum * guile.c (gscm_is_gscm_type): New function. (Without this how will we know that it's safe to pass an object to gscm_get_type?) (gscm_get_type): Fix tyop in error message. * variable.c (scm_variable_ref): fixed assertion test. (Robert STRANDH ) * gscm.h: fixed several prototypes, notably gscm_vref. Add gscm_is_eq and temporarily commented out gscm_eq (see the note in gscm.h near gscm_eq if this change effects your code). (Reported by Mark Galassi ) * pairs.c (scm_obj_length): see next entry. * gscm.h (gscm_obj_length): A way to get an integer length for lists, strings, symbols (treated as strings), and vectors. Returns -1 on error. * eq.c (scm_equal_p): fixed smob case. (William Gribble ) * Makefile.in (X_CFLAGS): defined. (William Gribble ) * gscm.h (gscm_2_double): provided now (reported by Mark Galassi ) Tue Jun 13 01:04:09 1995 gnu * Vrooom!