+1998-11-23 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest,
+ scm_logbit_p): Do the computation in ulongs. This is not as nice
+ as doing it in bignums, but at least it's good enough for
+ manipulating flags in 32-bit words. (Thanks to Jim Wilson.)
+
+ * regex-posix.c (scm_regexp_exec): Reliably mark unmatched
+ subexpressions. (Thanks to Charbel Jacquin.)
+
+1998-11-23 Mikael Djurfeldt <mdj@kenneth>
+
+ * feature.c, feature.h (scm_make_hook, scm_add_hook_x,
+ scm_remove_hook_x, scm_run_hooks): Moved from ice-9/boot-9.scm.
+ (scm_make_named_hook): New function.
+
+ * feature.c: Added #include "eval.h".
+
+ * modules.c (scm_make_module): Beautify the module.
+
+1998-11-22 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * modules.c, modules.h: New files: C interface to modules. (This
+ is necessary in order to interface the object system to Guile
+ properly. The guts of these modules will be replaced by the new
+ module system in the future.)
+
+ * init.c: Added #include "modules.h"
+ (scm_boot_guile_1): Call scm_init_modules.
+ (invoke_main_func): Call scm_post_boot_init_modules.
+
+ * Makefile.am: Added modules.c, modules.x, modules.h.
+
+1998-11-22 Mikael Djurfeldt <mdj@kenneth>
+
+ * procs.c: #include "objects.h"
+ (scm_procedure_p): Return #t also on structs which are operators.
+
+ * objects.c (scm_init_objects): Renamed <standard-metaclass>,
+ <operator-metaclass> and <entity-class> to <standard-class>,
+ <operator-class> and <entity> in order to conform with STKlos
+ naming conventions.
+
+ * eval.c (SCM_CEVAL): Jump to badfun if trying to apply a struct
+ which isn't an operator.
+ (SCM_APPLY): Ditto, but jump to badproc.
+
+1998-11-21 Mikael Djurfeldt <mdj@kenneth>
+
+ * eval.c (SCM_CEVAL): Allow structs implanted in code.
+ Previously, structs implanted in code were interpreted as forms
+ the operator of which was a gloc. We solve this by checking for
+ the zero in the emulated vcell in the struct vtable. Since
+ implanted structs always will look like forms with a gloc
+ operator, execution will only be slowed down by maximally one
+ extra test-and-branch per application.
+
+ * evalext.c (scm_definedp): Removed check for isyms; Added a
+ second optional argument: It is now possible to supply an
+ evaluation environment in which to look for the symbol.
+
+1998-11-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * readline.c (scm_init_readline): Set
+ rl_basic_word_break_characters. (Thanks to Ian Grant.)
+
+ * coop.c (coop_condition_variable_wait): Removed
+ (coop_condition_variable_wait_mutex): Folded logic of
+ coop_mutex_unlock into coop_condition_variable_wait_mutex to
+ prevent condvar signal lossage. Previously, another thread could
+ start to run after unlocking the mutex but before putting the
+ current thread on the wait queue. If that thread then would
+ signal the first, the signal would be lost. (Thanks to Christian
+ Lynbech.)
+
+1998-11-17 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Added missing case for cclo. (Thanks to
+ Christian Lynbech.)
+
+1998-11-14 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * objects.c (scm_i_make_class_object): Renamed from
+ make_class_object; exported; error checking moved to
+ scm_make_class_object and scm_make_subclass_object.
+ (scm_make_class_object, scm_make_subclass_object): Use
+ scm_i_make_class_object.
+ (scm_make_subclass_object): Let the subclass have same metaclass
+ as the superclass.
+
+1998-11-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * debug.c (scm_debug_options): Bugfix: Set the value of
+ scm_stack_checking_enabled_p after setting debug options;
+ #include "stackchk.h". (Thanks to Richard Polton.)
+
+1998-11-13 Radey Shouman <rshouman@metro2000.com>
+
+ * unif.c (scm_array_contents): removed unnecessary test for 0
+ base.
+
+1998-11-13 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * evalext.c, evalext.h (scm_m_sequence_to_list): Removed.
+ Replaced by macro `collect' in boot-9.scm.
+
+1998-11-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * eval.c (scm_copy_tree): Copy source properties if existent.
+
+ * debug.c (scm_start_stack): Copy source when evaluating. (If we
+ don't, we may end up passing memoized source to a transformer.)
+
+1998-11-10 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stack.c (get_applybody): Help function which lookups the first
+ body form of the apply closure.
+ (read_frames): Prevent the source of the first form of the apply
+ closure from being recorded. This would only be confusing.
+
+ * debug.h (SCM_SET_MACROEXP, SCM_CLEAR_MACROEXP, SCM_MACROEXPP):
+ Replaces SCM_MACROFRAME, SCM_MACROFRAMEP.
+
+ * eval.c (SCM_CEVAL): Use SCM_SET/CLEAR_MACROEXP.
+
+ * stacks.c (read_frame): Bugfix: Removed lingering `else'
+ statement.
+ (read_frames): Use SCM_MACROEXPP.
+
+1998-11-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * stacks.c (read_frames): Skip gsubr frames in backtraces. (They
+ don't contain interesting information since all arguments are
+ present in the frame which applies the compiled closure anyway.);
+ Skip the transformer application frames.
+
+ * print.c (scm_iprin1): Print gsubrs as primitives.
+
+1998-11-09 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * debug.h (SCM_MACROFRAME, SCM_MACROFRAMEP): New frame type.
+
+ * eval.c (SCM_CEVAL): Mark macro frames at `handle_a_macro' so
+ that we can identify these in a backtrace. (This change doesn't
+ introduce any significant speed penalty.)
+
+ * eval.c: Added note about `serial-map' using scm_map.
+
+ * read.c, read.h (scm_read_options, scm_read_opts): Removed
+ readline options. They should reside in their own options array.
+
+ * readline.c, readline.h (scm_readline_options,
+ scm_readline_opts): Moved readline options here.
+
+1998-11-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * readline.c (scm_read_history, scm_write_history): Bugfix: Use
+ SCM_ROCHARS instead of SCM_CHARS.
+
+ * ports.c (scm_unread_string): Bugfixes: Check for SCM_STRINGP,
+ not SCM_ROSTRINGP; use SCM_ROUCHARS instead of SCM_UCHARS.
+
+1998-11-06 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * ports.h (SCM_CUC): #define as ~SCM_CRDY instead of 0x001fffffL.
+ This is quite important since the latter clears the
+ FPORT_READ_SAFE and FPORT_WRITE_SAFE flags causing flushes at
+ every single character read...
+
+1998-11-03 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * print.c (scm_iprin1): Removed suspect looking (and indeed
+ malevolent) semicolon after test for user supplied closure print
+ procedure. (Thanks to Telford Tendys.)
+
+ * list.c (scm_sloppy_memq): Removed sloppy_mem_check.
+ (scm_memq, scm_memv, scm_member): Do argument checking *before*
+ starting to search the list. Removed call to sloppy_mem_check.
+
+ * list.c, list.h (scm_delq1_x, scm_delv1_x, scm_delete1_x): New
+ procedures: Same as scm_delq_x et al, but delete maximally one
+ element.
+
+ * options.c (scm_options, scm_init_options): GC-protect option
+ values of type SCM. (Thanks to Telford Tendys.)
+
+1998-11-01 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c: Don't #define scm_lookupcar to scm_lookupcar1. Instead
+ make sure that there always is a "real" scm_lookupcar.
+
+1998-11-01 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * read.c, read.h (scm_read_opts): New read options
+ "history-length" and "history-file".
+ (scm_read_options): Stifle history to history length.
+
+ * readline.c (scm_read_history, scm_write_history): New procedures.
+
+1998-10-31 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * eval.h (scm_macro_eval_x): Removed declaration.
+
+ * eval.c (scm_s_expression, scm_s_test, scm_s_body,
+ scm_s_bindings, scm_s_variable, scm_s_clauses, scm_s_formals):
+ Renamed and made global.
+
+ * eval.c, eval.h (SCM_EVALIM): Renamed from EVALIM.
+ (SCM_XEVAL, SCM_XEVALCAR): Renamed from XEVAL, XEVALCAR.
+
+ * evalext.c, evalext.h: New files. Contain non-R5RS things
+ having to do with evaluation.
+
+ * evalext.c (scm_serial_map): New procedure: Version of `map'
+ which guarantees that the procedure is applied to the lists in
+ serial order.
+ (scm_m_sequence_to_list): New syntax: Version of `begin' which
+ returns a list of the results of the body forms instead of the
+ result of the last body form.
+ (scm_definedp, scm_m_undefine): Moved from eval.c
+
+ * evalext.h (scm_m_sequence_to_list): Added declaration.
+
+ * macros.c, macros.h: New files.
+ (scm_procedure_to_syntax, scm_procedure_to_macro,
+ scm_procedure_to_memoizing_macro, scm_macro_p, scm_macro_type,
+ scm_macro_name, scm_macro_transformer): Moved from eval.c
+ (scm_make_synt): Moved from eval.c
+
+ * procs.c, procs.h (scm_procedure_documentation): Moved from eval.c.
+
+ * init.c (scm_boot_guile_1): Added calls to scm_init_macros and
+ scm_init_evalext.
+
+ * Makefile.am: Added evalext.c, evalext.h, macros.c, macros.h.
+
+ * debug.c, print.c: Added #include "macros.h".
+
+1998-10-29 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ This change adds the ability to use `unread-char' multiple times
+ without interspersed reads and adds the new procedure
+ `unread-string'. The change is optimized for the common case of
+ unreading a single character. This is also the reason behind the
+ choice to store characters in the port itself: in most cases no
+ extra malloc is required.
+
+ The amount of code in some macros in ports.h has been increased to
+ the extent that they would fit better as C functions, but, since
+ this code belongs to the port representation, such functions
+ should be placed in ports.c which would cause calls back and forth
+ between ports.c and genio.c. That is not good for performance.
+ Also, keeping them as macros allows the compiler to do some
+ optimizations which are needed to make the current interface
+ (SCM_CRDYP, SCM_CGETUN, SCM_TRY_CLRDY) efficient.
+
+ One benchmark (Guile startup time) indicates an increase of
+ loading speed of 1%. Another (reading (using `read') boot-9.scm
+ 10 times) shows no change in performance.
+
+ (Caveat: Since Gary is redesigning I/O anyway, no big efforts were
+ made to find a beautiful solution.)
+
+ * ports.h (SCM_CLRDY, SCM_CUNGET, SCM_CGETUN): Rewritten.
+ (SCM_TRY_CLRDY): New macro: Only clear the first unread
+ character. (SCM_CLRDY clears all.)
+ (SCM_N_READY_CHARS): New macro: Returns number of unread
+ characters in a port. Returns wrong answer if SCM_CRDYP is false.
+ (struct scm_port_table): New fields: `entry' contains port table
+ index, `cp' points to last unread char, `cbuf' is the buffer for
+ unread chars, `cbufend' points after end of the character buffer.
+
+ * ports.h, ports.c (scm_unread_string): New procedure.
+ (scm_grow_port_cbuf): New function.
+
+ * ports.c (scm_add_to_port_table, scm_remove_from_port_table):
+ Handle new fields.
+ (scm_generic_fgets), fports.c (local_fgets): Use a loop
+ to read unread characters. Use SCM_TRY_CLRDY instead of
+ SCM_CLRDY.
+
+ * ioext.c (scm_ftell): Use SCM_N_READY_CHARS to correct position.
+
+ * genio.c (scm_getc): Use SCM_TRY_CLRDY instead of SCM_CLRDY.
+
+ * genio.c, genio.h (scm_ungets): New function.
+
+ * genio.c (scm_puts): Removed mysterious TRANSCRIPT_SUPPORT code
+ sections.
+
+1998-10-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * threads.h (scm_thread_sleep, scm_thread_usleep): Fixed
+ declarations. (Thanks to Russ McManus.)
+
+1998-10-26 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * numbers.c (num2long): As a software archeologist, I'm proud of
+ this finding! :) Preliminary dating suggests an almost 4 year old
+ remnant from the SCM ancestor. The sample has been removed from
+ the finding site and is now safely stored in the repository.
+
+ * numbers.h: Removed prototype for num2long.
+
+ * unif.c (scm_array_set_x): Use scm_num2long instead of num2long.
+
+ * gh_data.c (gh_scm2doubles): Make it possible to pass result
+ array as second arg.
+ (gh_chars2byvect, gh_shorts2svect, gh_floats2fvect, gh_scm2chars,
+ gh_scm2shorts, gh_scm2longs, gh_scm2floats): New functions.
+ * gh.h: Updated and added prototypes.
+
+ * gh_data.c (gh_ints2scm): Handle integers outside INUM limits.
+
+1998-10-24 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * gc.h: Remove all uses of SCM_P. (Thanks to Richard Polton.)
+
+ * guile-snarf.in: Never generate an empty file. (Thanks to
+ Richard Polton.)
+
+ * gh.h (gh_enter, gh_new_procedure0_0, gh_new_procedure0_1,
+ gh_new_procedure0_2, gh_new_procedure1_0, gh_new_procedure1_1,
+ gh_new_procedure1_2, gh_new_procedure2_0, gh_new_procedure2_1,
+ gh_new_procedure2_2, gh_new_procedure3_0, gh_new_procedure4_0,
+ gh_new_procedure5_0): Specify argument types, to appease C++
+ compilers. (Thanks to Brad Bowman.)
+
+ Bug reports from Russ McManus:
+ * guile-snarf.in: If the CPP environment variable is set, use that
+ as the C preprocessor, instead of the preprocessor autoconf
+ found.
+ * snarf.h (SCM_PROC): Cast the function pointer passed to
+ scm_make_gsubr, to satisfy C++.
+
+ * gh_eval.c (gh_eval_str_with_catch, gh_eval_file_with_catch):
+ Use the handler passed, instead of ignoring it and using
+ gh_standard_handler. (Thanks to Etienne Bernard.)
+
+1998-10-20 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * ports.h: Put text after #endif in comment. (Thanks to Nicolas
+ Neuss.)
+
+1998-10-19 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * __scm.h, alist.c, async.c, async.h, backtrace.h, chars.c,
+ continuations.c, debug.c, debug.h, dynl-dl.c, dynl.c, dynl.h,
+ dynwind.c, dynwind.h, eq.c, error.c, error.h, eval.c, eval.h,
+ feature.c, filesys.c, filesys.h, fports.c, fports.h, gc.c, gc.h,
+ genio.c, genio.h, gh.h, gh_data.c, gsubr.c, gsubr.h, hash.c,
+ hashtab.c, init.c, init.h, ioext.c, ioext.h, kw.c, libguile.h,
+ list.c, list.h, load.c, load.h, mallocs.c, markers.c,
+ mit-pthreads.c, net_db.c, numbers.c, numbers.h, options.c,
+ ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
+ procprop.h, procs.c, procs.h, ramap.c, ramap.h, regex-posix.c,
+ regex-posix.h, root.c, root.h, scmsigs.c, scmsigs.h, script.c,
+ script.h, simpos.c, simpos.h, smob.c, smob.h, snarf.h, socket.c,
+ srcprop.c, stackchk.c, stackchk.h, stacks.c, stime.c, stime.h,
+ strings.c, strings.h, strports.c, struct.c, struct.h, symbols.c,
+ symbols.h, tags.h, threads.c, throw.h, unif.c, variable.c,
+ vectors.c, vectors.h, version.h, vports.c, weaks.c: Update
+ copyright years.
+
+ * script.c (scm_compile_shell_switches): Define
+ use-emacs-interface in the root module, so the repl code can see
+ it. See today's change to top-repl in ice-9/boot-9.scm.
+
+ * filesys.c (set_element, get_element): Make sure that `element'
+ is a cell before applying SCM_FPORTP to it. (Thanks to Jost
+ Boekemeier and Jorgen "forcer" Schaefer.)
+
+1998-10-18 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * chars.c (scm_charnames): In ASCII character name table, make
+ newlines print as #\newline by default, not #\nl.
+
+ * Makefile.am (libguile_la_SOURCES, BUILT_SOURCES): Put these in
+ alphabetical order. Oh thrills. But it helps me know how far
+ along in the compilation I am.
+ * Makefile.in: Regenerated.
+
+1998-10-18 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * unif.c (scm_raprin1): Changed print syntax for byte vectors from
+ #bytes(...) to #y(...), and syntax for short vectors from
+ #short(...) to #h(...). This may seem nutty, but, like the other
+ uniform vectors, byte vectors and short vectors want to have the
+ same print and read syntax (and, more basic, want to have read
+ syntax!). Changing the read syntax to use multiple characters
+ after the hash sign breaks with the conventions used in R5RS and
+ the conventions used for the other uniform vectors. It also
+ introduces complexity in the current reader, both on the C and
+ Scheme levels. (The Right solution is probably to change the
+ syntax and prototypes for uniform vectors entirely.)
+
+1998-10-17 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Don't use local_fgets on sockets; ftell doesn't work on sockets.
+ (Thanks to Jorgen "forcer" Schaefer.)
+ * ports.h (SCM_NOFTELL): New flag.
+ * fports.c (local_fgets): If it's set, use the generic fgets.
+ * socket.c (scm_socket): Set SCM_NOFTELL on the ports we produce.
+
+1998-10-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * script.c (scm_compile_shell_switches): Add handling of -q switch
+ (inhibit loading of user init file).
+ (scm_shell_usage): Add usage text for -q switch.
+ (scm_compile_shell_switches): Always load user init file first if
+ it is loaded at all.
+
+1998-10-16 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * stime.c: The CPP hair to determine a value for CLKTCK is weird,
+ and is now broken under NetBSD. I can't fathom what it's trying
+ to do, so I've replaced it with something that I do understand,
+ which seems to work, and which isn't broken on NetBSD. "Progress?
+ You Decide." (Thanks to Perry Metzger.)
+
+ * regex-posix.c (scm_regexp_exec): Add a cast to remove a
+ signed/unsigned comparison.
+
+1998-10-15 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Warning fixes from Greg Harvey:
+ * unif.c (scm_array_set_x): initializer for pos
+ * throw.c (scm_ithrow): added initializer for jmpbuf (SCM_UNDEFINED)
+ * struct.c (scm_struct_ref, scm_struct_set_x): Added
+ initializers for field_type, since EGCS so desparately wants to
+ play dumb
+ * debug.h (scm_make_gloc, scm_gloc_p, scm_make_iloc, scm_memcons,
+ scm_mem_to_proc, scm_proc_to_mem, scm_debug_hang): Added prototypes
+ when GUILE_DEBUG is defined.
+ * dynwind.h (scm_wind_chain): Same.
+ * ports.h (scm_pt_size, scm_pt_member): Same.
+ * print.h (scm_current_pstate): Same.
+ * procs.h (scm_make_cclo): Same.
+
+1998-10-14 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Handle short and long long uniform arrays properly. (Thanks to
+ Clark McGrew.)
+ * ramap.c (scm_ra_matchp, scm_array_fill_int, scm_array_index_map_x,
+ raeql_1): Add cases for scm_tc7_svect (short vectors) and
+ scm_tc7_llvect (long long vectors).
+
+ Change the way libguile and boot-9.scm are timestamped, to try to
+ get rid of these spurious mismatch warnings. Now both
+ libguile/versiondat.h and ice-9/version.scm are generated directly
+ by the configuration process, rather than having version.scm
+ generated directly, and libguile/versiondat.h generated by the
+ Makefile, which is generated by configure. It seems that
+ sometimes the Makefile would change, but versiondat.h depends on
+ Makefile.in, not Makefile, so it wouldn't get rebuilt.
+ * Makefile.am (versiondat.h): Target removed; this is generated
+ directly by the configure script now.
+ (BUILT_SOURCES): Remove versiondat.h.
+ * versiondat.h.in: New file, transformed by the configure script
+ into versiondat.h.
+ * Makefile.in: Regenerated.
+
+ * (__scm.h, alist.c, eval.c, feature.c, gsubr.c, numbers.c,
+ options.c): Rename RECKLESS -> SCM_RECKLESS, CAUTIOUS ->
+ SCM_CAUTIOUS; this way, 1) there's only one version of each flag
+ to define (we used to have both RECKLESS and SCM_RECKLESS), and 2)
+ if we want to use them in a header file some day, we can. (Thanks
+ to Michael Livshin.)
+
+ * stime.c (scm_get_internal_real_time): Do the arithmetic using
+ SCM numbers, so we won't have rollover problems; the range of a
+ signed long in milliseconds is about 25 days. (Thanks to Karl
+ Hegbloom.)
+
+ Don't redefine sleep and usleep; fix this problem now.
+ * coop.c (sleep, usleep): Remove declarations; we don't use or
+ redefine these any more.
+ (scm_thread_usleep, scm_thread_sleep): New functions which do the
+ job of usleep and sleep in a thread-friendly way. We can use
+ these in the rest of Guile. Define versions for systems both with
+ and without iselect.
+ * threads.h (scm_thread_usleep, scm_thread_sleep): New declarations.
+ * scmsigs.c (usleep): Clean up oddities declaring usleep; since
+ we're just using it, not redefining it, we can use a K&R style
+ declaration here.
+ (sleep): Declare this, too, if the system hasn't.
+ (scm_sleep, scm_usleep): Use scm_thread_sleep and
+ scm_uthread_sleep if they're available; otherwise, just call the
+ system functions.
+ * scmconfig.h.in: Regenerated.
+
+ * coop.c (scm_thread_sleep): Make `slept' an unsigned long.
+
+ * coop.c (coop_sleephelp): Remove ANSI #ifdef hair.
+
+1998-10-12 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * threads.c: Doc fix.
+
+ The argument type of usleep varies from system to system,
+ as does the return type. We really shouldn't be redefining usleep
+ at all, but I don't have time to clean that up before the 1.3.
+ release. It's on the schedule for afterwards. (Thanks to Julian
+ Satchell.)
+ * coop.c (usleep): Use USLEEP_ARG_TYPE in prototype and
+ definition.
+ * scmsigs.c (usleep): Use USLEEP_ARG_TYPE in prototype.
+ * scmconfig.h: Regenerated.
+
+ * simpos.c (scm_software_type): Procedure deleted. This isn't the
+ right way to handle system variation. Autoconf's approach is the
+ way and the light.
+ * simpos.h (scm_software_type): Declaration deleted.
+
+ * script.c (scm_find_executable): Don't test if unix is #defined
+ here; first, NetBSD doesn't #define it, and second, it's the wrong
+ way to go about these things. (Thanks to Perry Metzger.)
+ (dld_find_executable): Delete this MSDOS support code. This isn't
+ the way we want to support this; it needs to be rethunk at a
+ larger scale.
+
+ * genio.c (scm_do_read_line): Don't just politely check that the
+ line was either non-empty or EOF. Abort if it's empty and not
+ EOF.
+
+1998-10-11 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * scmconfig.h.in: Regenerated.
+
+ * libguile.h: Don't omit the dynamic linking functions. (Thanks
+ to Greg Badros.)
+
+ * genio.c (scm_do_read_line): Count lines correctly when the file
+ doesn't end in a newline.
+
+1998-10-10 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * genio.c (scm_do_read_line): Maintain the line count correctly.
+ (Thanks to Harvey J. Stein and Greg Harvey.)
+
+ * gc.c (scm_return_first): Remove #ifdef __STDC__ garbage; Guile
+ requires ANSI now.
+
+ * numbers.c (big2str): Protect t from garbage collection until
+ we're done. (Thanks to Gary Houston.)
+
+1998-10-09 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.am (libguile_la_LDFLAGS): Increment shared library
+ version number.
+ * Makefile.in: Regenerated.
+
+ * fports.h (scm_setbuf0, scm_setvbuf, scm_setfileno,
+ scm_evict_ports, scm_open_file, scm_stdio_to_port): Get rid of
+ SCM_P macro.
+
+ Do magic to mix reads and writes on stdio FILE-based ports.
+ (Thanks to Christian Lynbech.)
+ * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY):
+ New macros.
+ (pre_read, pre_write): New functions.
+ (local_fgetc, local_fgets, local_ffwrite, local_fputc,
+ local_fputs): Call them.
+ (local_fflush): Mark the port as ready for reading and writing.
+ (scm_stdio_to_port): Set the FPORT_READ_SAFE, FPORT_WRITE_SAFE
+ flags on new port objects. This might not be accurate --- who
+ knows what state the FILE * is in when we get it --- but it won't
+ do extraneous calls to fflush or fseek, so it's no worse than the
+ behavior before this change.
+ * ports.h: Add comment.
+
+ Centralize the creation of port objects based on stdio FILE * in
+ fports.c; don't just throw them together anywhere.
+ * fports.c (scm_stdio_to_port): Make NAME a SCM value, which is
+ what the rest of Guile wants. Don't set the revealed count;
+ that's only appropriate for stdin, stdout, stderr.
+ (scm_standard_stream_to_port): This function does set the revealed
+ count.
+ * init.c (scm_init_standard_ports): Use scm_standard_stream_to_port,
+ not scm_stdio_to_port.
+ * filesys.c (scm_open): Call scm_stdio_to_port; don't write it out.
+ * fports.c (scm_open_file): Same.
+ * posix.c (scm_pipe): Same.
+ * socket.c (scm_sock_fd_to_port): Same.
+ * ioext.c (scm_fdopen): Same.
+ (scm_freopen): Moved from here to...
+ * fports.c (scm_freopen): ... here. This is really something that
+ munges the internals of an fport, so it should go here.
+ * fports.h (scm_stdio_to_port): Adjust prototype.
+ (scm_standard_stream_to_port, scm_freopen): New protoypes.
+ * ioext.h (scm_freopen): Prototype removed.
+
+ * filesys.c (set_element, get_element): This can work on both pipe
+ and file ports, so use SCM_FPORTP to typecheck, instead of testing
+ for scm_tc16_fport.
+
+ * scmconfig.h.in: Regenerated.
+
+ Change the definition of the functions in scm_ptobfuns so that
+ they get passed the port object, not the port's stream.
+ * ports.h (scm_ptobfuns): Rename all `stream' arguments to `port'.
+ * gc.c (scm_gc_sweep): Pass the port itself to the free function.
+ * genio.c (scm_putc, scm_puts, scm_lfwrite, scm_fflush, scm_getc):
+ Pass the port itself to the scm_ptobs function.
+ * ports.c (scm_close_port, scm_force_output, scm_flush_all_ports,
+ scm_generic_fgets): Same.
+ (putc_void_port, puts_void_port, write_void_port, flush_void_port,
+ getc_void_port, fgets_void_port, close_void_port): Just change the
+ argument names; these functions don't really do anything.
+ * fports.c (local_fgetc, local_fgets, local_fclose, local_fflush,
+ local_fputc, local_fputs, local_ffwrite, local_pclose): Take the
+ port as an argument, and use SCM_STREAM to get the stdio FILE *.
+ Also, use prototyped definitions, and get rid of the extra
+ declarations.
+ (scm_fptob, scm_pipob): We don't need casts here any more.
+ * strports.c (prinstpt): Use prototype declarations.
+ (stputc, stwrite, stputs, stgetc): Take the port as an argument,
+ and use SCM_STREAM to get the string info. Also, use prototyped
+ definitions, and get rid of the extra declarations.
+ * vports.c (sfputc, sfwrite, sfputs, sfflush, sfgetc, sfclose,
+ noop0): Same.
+
+ * ports.h (scm_ptobfuns): Replace uses of SCM_P with a straight
+ prototype; it's okay (preferred, even!) to use ANSI C in Guile.
+
+ * fports.c (local_fgetc, local_fgets): Renamed from scm_fgetc and
+ scm_fgets, for consistency.
+ (scm_fptop, scm_pipob): References updated.
+
+1998-10-08 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Include the source location in error messages for scripts.
+ * init.c (scm_boot_guile_1): Use scm_internal_lazy_catch, so the
+ stack is still there when we catch the error.
+ * throw.c (handler_message): If we are handling an error with a
+ message, then put together the proper arguments and call
+ scm_display_error, instead of scm_display_error_message. That
+ displays source location, if it can find it.
+
+1998-10-07 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * gc.c (scm_unprotect_object): Change this so that calls to
+ scm_protect_object and scm_unprotect_object nest properly.
+ (scm_protect_object): Doc fixes.
+
+ * strings.c (scm_string_set_x): Require the argument to be a
+ writable string, not a substring or a symbol.
+ * strings.h (SCM_RWSTRINGP, SCM_NRWSTRINGP): New predicates.
+ (Thanks to John Redford and Charbel Jacquin.)
+
+ * scmconfig.h.in: Regenerated; ../acconfig.h has changed.
+
+1998-10-07 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * eval.c (safe_setjmp): Remove this misunderstanding.
+ (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Replace with references to
+ ordinary setjmp.
+
+1998-10-06 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * libguile.h: Mark these as C declarations, for compilation by C++
+ compilers.
+
+ * snarf.h (SCM_PROC, SCM_PROC1): Remove very odd code in #ifdef
+ __cplusplus clause. I seriously doubt this ever worked the way
+ the author seems to have intended.
+
+1998-10-05 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Utterly needless cleanups to hopelessly messy code.
+ * ports.c: Doc fixes.
+ (scm_fflush): Moved to ...
+ * genio.c (scm_fflush): ... here, amongst all the other port
+ method invocation functions.
+ * genio.h, ports.h: The prototype moves too.
+
+1998-10-04 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * backtrace.c (display_error_body): The current frame does not
+ always have a parent frame; consider a function called directly
+ from the MAIN_FUNC passed to scm_boot_guile. (Thanks to Maciej
+ Stachowiak.)
+
+ * alloca.c (alloca): Undo yesterday's changes, and simply call
+ malloc directly for storage, and abort if we don't get what we
+ want. The situation is much simpler --- just call malloc. Emacs
+ has bizarre/evil requirements (signal handlers might malloc unless
+ you set this global flag, so you have to set the flag around all
+ calls to malloc) which we are certainly not going to conform to,
+ so we can do the simple and obvious thing.
+
+ * coop.c (coop_condition_variable_wait): Make this function
+ static. It's only useful internally --- you should never just
+ wait on a condition variable.
+ * coop-defs.h (coop_condition_variable_wait): Delete prototype.
+
+1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * unif.c (scm_array_set_x): Accept any kind of number as an
+ element for a uniform vector of doubles. This is more consistent
+ with Scheme's view of numbers. (Thanks to Miroslav Silovic.)
+
+ * alloca.c: Use scm_must_malloc to obtain storage. Hopefully this
+ works; I can't conveniently test it myself. (Thanks to Dvid
+ Tillman for the bug report.)
+
+ * init.c: Doc fixes.
+
+ * init.c (invoke_main_func): Load the startup files (boot-9.scm)
+ from here, not from scm_compile_shell_switches (which is a pretty
+ dumb place to do it).
+ (scm_load_startup_files): New function.
+ (scm_ice_9_already_loaded): Variable moved to here from script.c.
+ * script.c (scm_compile_shell_switches): Don't load the startup
+ files here.
+ (scm_ice_9_already_loaded): Variable moved.
+ * init.c (scm_load_startup_files): Prototype for new function.
+ * gh_init.c (gh_enter): Doc fix.
+
+1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Some anti-warning changes from Greg Harvey.
+ * gh_data.c (gh_scm2doubles): Initialize m, to avoid compiler
+ warnings when it doesn't understand our NORETURN declarations in
+ error.h.
+ * posix.c (scm_mknod): Similar.
+
+1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * posix.c (scm_getpwuid): If we can't find an entry, return our
+ own message, instead of using scm_syserror --- the getpwMUMBLE
+ functions don't set `errno' to anything interesting.
+
+1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Get rid of warnings from the cooperative threading system.
+ * threads.h (scm_single_thread_p, scm_yield,
+ scm_call_with_new_thread, scm_join_thread, scm_make_mutex,
+ scm_lock_mutex, scm_unlock_mutex, scm_make_condition_variable,
+ scm_wait_condition_variable, scm_signal_condition_variable): Add
+ prototypes for these Scheme-visible functions.
+ * coop-defs.h (coop_next_runnable_thread,
+ coop_wait_for_runnable_thread_now, coop_wait_for_runnable_thread):
+ Prototypes for these here, even though they're from iselect.c.
+ (coop_condition_variable_wait, coop_join): Add prototypes.
+ * coop-threads.c (scm_threads_free_thread, scm_threads_free_mutex,
+ scm_threads_free_condvar): Make these smob functions static.
+ * coop-threads.h (coop_init): Give this a real prototype.
+ * coop.c: #include <unistd.h>, if we have it, for `usleep' and `sleep'.
+ (coop_next_runnable_thread): No need to provide prototype; it's in
+ coop-defs.h.
+
+ * scmconfig.h.in: .detarenegeR
+
+ * iselect.c, threads.c: Doc fixes.
+
+1998-10-03 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.in: Regenerated with a patched automake, to get
+ dependency generation right when using EGCS.
+
+ * inet_aton.c (inet_aton): Add prototype, to remove compiler
+ warning. (Thanks to Robert Pluim.)
+
+ * inet_aton.c (inet_aton): Reassure the compiler that the
+ arguments to the <ctype.h> macros are all unsigned characters, not
+ signed characters.
+
+1998-10-03 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Getting rid of more warnings...
+ * iselect.c: Test for MISSING_BZERO_DECL, not DECLARE_BZERO; see
+ today's change to ../configure.in.
+ * scmsigs.c: Test for MISSING_USLEEP_DECL, not DECLARE_USLEEP.
+ * scmconfig.h.in: Regenertaded.de.,.__
+ * stime.c (strptime): Declare this, #ifdef MISSING_STRPTIME_DECL.
+ (scm_localtime, scm_mktime): Use a const char * to manipulate the
+ time zone name.
+
+ * readline.c: Doc fix.
+ (rl_cleanup_after_signal, rl_free_line_state): Make these static.
+ * readline.h (scm_filename_completion_function): Add prototype.
+ (scm_init_readline): Make this into a prototype.
+
+ * readline.c (scm_filename_completion_function): Use SCM_PROC to
+ declare this, instead of calling scm_make_subr manually.
+
+1998-10-02 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * readline.h (scm_init_readline): Add prototype for this.
+ (scm_init_readline): Make this a real prototype.
+
+1998-09-30 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Warning fixes from Maciej Stachowiak:
+ * backtrace.h (scm_display_application, scm_backtrace): Add
+ prototypes.
+ * debug.c (scm_m_start_stack): Make this function static.
+ * fluids.h (scm_fluid_p): Add prototype.
+ * procprop.c (scm_i_procedure_arity): Make this function static.
+ * regex-posix.c (scm_regexp_error_msg): Make this function static.
+ * regex-posix.h (scm_init_regex_posix): Use prototype, not K&R decl.
+ * root.h (scm_dynamic_root): Add external prototype.
+ * scmsigs.h (scm_usleep): Add external prototype.
+ * script.h (scm_init_script): Use prototype, not K&R decl.
+ * stacks.h (scm_stack_id): Add external prototype.
+ * symbols.h (scm_sysintern0_no_module_lookup): Add external prototype.
+
+1998-09-30 Mark Galassi <rosalia@cygnus.com>
+
+ * gh.h: took out the definitions of vset and vref, since they are
+ replaced by the proper vector routines that correspond to the R4RS
+ procedures.
+
+1998-09-29 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * snarf.h (SCM_VCELL_INIT, SCM_GLOBAL_VCELL_INIT): New macros;
+ these are analogous to SCM_VCELL and SCM_GLOBAL_VCELL but take a
+ third argument, a C expression that should result in a SCM value,
+ which is used to initialize the variable. Reimplemented
+ SCM_CONST_LONG in terms of SCM_VCELL_INIT. (Thanks to Maciej
+ Stachowiak.)
+
+ * version.h (scm_libguile_config_stamp): Add prototype.
+ (From Maciej Stachowiak.)
+
+1998-09-26 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * eval.c (scm_force): Assert that x is SCM_NIMP to fix segv when
+ (force 9) is tried. (Thanks to Karl M. Hegbloom.)
+
+1998-09-06 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * print.c (scm_iprin1): Rather than having one i, and using it in
+ several places, declare a fresh i local to each block where it is
+ used, and give it a signedness appropriate to its use in each case.
+ (scm_iprlist): Same.
+
+ * print.c (scm_iprin1): Add cast to avoid unsigned/signed
+ comparison warnings.
+
+ * print.c (ENTER_NESTED_DATA): Make i an unsigned long, to avoid
+ signed/unsigned clashes.
+
+ * posix.h (scm_tmpnam): Added prototype.
+
+ * objects.h (scm_set_object_procedure_x, scm_make_class_object,
+ scm_make_subclass_object): Add external prototypes.
+
+ * numbers.c (scm_mkbig): Add cast, and note that signed/unsigned
+ comparison is okay here.
+
+ * numbers.c (scm_istr2int): Add cast; len is known to be positive.
+
+ * numbers.c (scm_bigcomp): Clarify logic, and avoid relying on the
+ (true, but confusing) fact that -1 == ((unsigned) 0 - 1).
+
+ * numbers.c (scm_adjbig): Make nsiz an scm_sizet, to avoid mixing
+ signed/unsigned.
+
+ * load.c (swap_port): Make this function static.
+
+ * load.c (scm_search_path): Make max_path_len and max_ext_len
+ unsigned, since they're compared against string sizes.
+
+ * load.c (init_build_info): Make i unsigned.
+
+ * ioext.h (scm_read_line): Add prototype.
+
+ * hashtab.c (scm_hash_fn_get_handle, scm_hash_fn_create_handle_x,
+ scm_hash_fn_remove_x): Make hash bucket index local variable k
+ unsigned. Use scm_ulong2num to pass it to SCM_ASSERT as
+ accurately as possible.
+
+ * gh_data.c (gh_set_substr): Add casts to avoid signed/unsigned
+ comparisons, and range checking to make sure those casts are
+ harmless.
+
+ * stackchk.h (SCM_STACK_OVERFLOW_P): Change definition to avoid
+ signed/unsigned comparisons.
+
+ * smob.c (scm_numsmob): Make this an int, not an scm_sizet, to
+ avoid signed/unsigned comparisons.
+ * smob.h (scm_numsmob): Change extern declaration to match.
+
+ * ports.c (scm_numptob): Make this an int, not an scm_sizet, to
+ avoid signed/unsigned comparisons.
+ * ports.h (scm_numptob): Change extern declaration to match.
+ (scm_current_load_port, scm_set_port_line_x,
+ scm_set_port_column_x): New prototypes.
+
+ * gsubr.c (GSUBR_TEST): Don't #define this. Nobody's using the
+ test code, and it causes warnings.
+
+ * gh.h (gh_int2scmb, gh_uniform_vector_length,
+ gh_uniform_vector_ref): Added prototypes.
+
+ * Makefile.am (libguile_la_SOURCES): Include Scheme-level
+ debugging support unconditionally. That's backtrace.c, stack.c,
+ debug.c, and srcprop.c.
+ (EXTRA_libguile_la_SOURCES): Omit those from here.
+ * Makefile.in: Regenerated.
+
+1998-08-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * options.c (scm_options): Bugfix: Allow empty list of options!
+
+ * debug.c, debug.h (scm_single_step): Removed.
+ (scm_with_traps): New procedure. This procedure could easily be
+ written in Scheme but needs to be highly optimized.
+
+ * eval.h, eval.c: New evaluator trap flag: SCM_TRAPS_P.
+
+ * eval.c (SCM_CEVAL, SCM_APPLY): Removed resetting of trap flags.
+ Check SCM_TRAPS_P before trapping.
+
+1998-07-30 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Changes to avoid signed/unsigned comparison warnings.
+ * gc.c (scm_mtrigger, scm_heap_size): Make these unsigned longs.
+ (scm_gc_sweep): Make n and j local to the blocks they're used in,
+ so they can have appropriate types for each application. Make i
+ signed. Use initializers in some spots. I'll probably pay for
+ all this tweaking.
+ (scm_must_malloc, scm_must_realloc): Use scm_sizet for size args.
+ (scm_must_realloc): Make nm unsigned.
+ (init_heap_seg): Make new_seg_index and n_new_objects signed.
+ (scm_init_storage): Use prototype-style definition, and make the
+ argument unsigned.
+ * gc.h (scm_heap_size, scm_mtrigger, scm_must_malloc,
+ scm_must_realloc, scm_init_storage): Adjust prototype accordingly.
+
+ * filesys.c (scm_readlink): Make local vars rv and size ints, to
+ avoid signed/unsigned comparison warnings, and because the return
+ value of readlink may be -1. Don't bother casting the third
+ argument to readlink.
+
+ * filesys.c (scm_dirname, scm_basename): Move these to their own
+ page, at the end of the file.
+ * filesys.h (scm_dirname, scm_basename): Add prototypes for these.
+
+ * eval.h (scm_eval_options_interface): Add external prototype for this.
+ * eval.c (scm_eval_options_interface): Use prototype-style def'n.
+
+ * eval.c (scm_lookupcar1): Make this static.
+
+ * dynl.h (scm_registered_modules, scm_clear_registered_modules):
+ Make these prototype declarations, not K&R-style.
+
+ * chars.c (scm_tables_prehistory): Add cast, to remove signed/
+ unsigned comparison warning.
+
+ * appinit.c: File removed. It had a single function in it, empty,
+ whose reason for existence is explained in no documentation or
+ comment. I think it's there as a default for some Tcl-style
+ initialization, but Tcl abandoned that approach a while ago.
+ * Makefile.am (libguile_la_SOURCES): Remove appinit.c.
+ (BUILT_SOURCES): Remove appinit.x.
+ * Makefile.in: Regenerated.
+
+1998-07-29 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.in: Regenerated using the last public version of
+ automake, not the hacked Cygnus version.
+
+1998-07-28 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Remove Totoro kludge.
+ * Makefile.in, scmconfig.h.in: Regenerated.
+ * init.c, readline.c: Don't check if TOTORO is #defined.
+
+1998-07-26 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.am: Adjust for new thread configuration system.
+ (INCLUDES): Include the value of THREAD_CPPFLAGS.
+ (guile_LDADD, check_ldadd): THREAD_LIBS_LOCAL has been renamed from
+ THREAD_LIBS.
+ (THREAD_LIBS): Definition deleted; automake will generate such
+ things automatically.
+ * Makefile.in: Regenerated.
+
+1998-07-23 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ Simplify smob and port marking; set the mark bit in the generic
+ marking code, and make marker routines only responsible for
+ turning up outgoing pointers.
+ * gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
+ before calling the marking function. Don't call the marking
+ function if it's zero.
+ * markers.c (scm_mark0): Just return #f. This function isn't
+ necessary at all now, but it's harmless to call it. We'll leave
+ it in so other folks' code doesn't croak at link time.
+ (scm_markcdr): Don't call SCM_SETGC8MARK.
+ * async.c (mark_async): Don't call SCM_SETGC8MARK.
+ * dynl.c (mark_dynl_obj): Same.
+ * root.c (mark_root): Same.
+ * srcprop.c (marksrcprops): Same.
+ * unif.c (markra): Same.
+ * variable.c (scm_markvar): Same.
+ * ports.c (scm_markstream): Same.
+ (void_port_ptob): Specify zero for our marking function.
+ * debug.c (debugobjsmob): Same.
+ * dynwind.c (guardsmob): Same.
+ * filesys.c (dir_smob): Same.
+ * fluids.c (fluid_smob): Same.
+ * fports.c (scm_fptob, scm_pipob): Same.
+ * mallocs.c (mallocsmob): Same.
+ * regex-posix.c (regex_t_smob): Same.
+ * smob.c (freecell, flob, bigob): Same.
+ * threads.c (thread_smob, mutex_smob, condvar_smob): Same.
+ * throw.c (jbsmob, lazy_catch_funs): Same.
+
+1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * eval.c (scm_copy_tree): Reverted last change: `eval' uses
+ scm_copy_tree on code in order not to let memoized code to leak
+ out. Thus, scm_copy_tree needs to copy vectors as well since
+ quasiquote can introduce evaluated code also inside vector
+ constants.
+
+1998-07-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * eval.c (scm_copy_tree): Removed ability to copy vectors.
+
+ * gh_data.c, gh.h (gh_ints2scm, gh_longs2ivect,
+ gh_ulongs2uvect): New procedures. (Complements gh_doubles2scm and
+ gh_doubles2dvect.)
+
+ * unif.c: Say that ivect and uvect are of type signed and unsigned
+ long instead of int in commentary so that it correctly describes
+ the implementation.
+
+1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * stime.c: Removed declaration of strptime. (It should be
+ declared by the system headers. If it turns out that some systems
+ don't, we'll handle that then.) (Thanks to Greg Troxel.)
+
+ * stime.h: Renamed TIMEH --> STIMEH
+
+ * backtrace.c (scm_display_error, scm_display_backtrace): In order
+ to increase portability, don't use structure assignment.
+ (Thanks to Nicolas Neuss.)
+
+ * iselect.c: Use LONG_MAX instead of ULONG_MAX for increased
+ portability.
+ (finalize_fd_sets): Added empty statement after last case label.
+ (Thanks to Nicolas Neuss.)
+
+ * gc.c (scm_igc): Changed //-comment into /*-comment. (Thanks to
+ Nicolas Neuss.)
+
+Sat Jul 11 22:08:21 1998 Mikael Djurfeldt <mdj@totoro.red-bean.com>
+
+ * init.c, readline.c: OK, I won't have these readline.x bug
+ reports anymore. We've had them since April. The current reason
+ is a completely unintelligible failure of totoro.red-bean.com to
+ do the test for rl_getc_function in libreadline correctly. This
+ kludge overrides the test if we're on totoro so that the snapshot
+ generation process can work.
+
+ * readline.c: Define a strdup replacement if not existent on system.
+
+1998-07-12 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * vectors.c, vectors.h (scm_make_vector): Removed third argument.
+ This change makes scm_make_vector R5RS compatible. We cannot keep
+ the third argument since people want to be able to deduce the form
+ of the C function call only by looking at R5RS. (At the same time
+ we have removed some unnecessary complexity!)
+
+ * eval.c, filesys.c, fluids.c, gc.c, gh_data.c, init.c, kw.c,
+ net_db.c, posix.c, print.c, regex-posix.c, scmsigs.c, socket.c,
+ stime.c, symbols.c, unif.c, vectors.c, weaks.c: Removed third
+ argument in call to scm_make_vector.
+
+1998-07-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * numbers.h (SCM_NUM2DBL): New macro. Complements SCM_NUMBERP.
+ This macro is useful in applications.
+
1998-06-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
* load.c (scm_internal_parse_path): Renamed from scm_parse_path.
1998-05-11 Mikael Djurfeldt <mdj@kenneth>
+ * readline.c (scm_readline): Defer interrupts while we're calling
+ readline.
+
* readline.c (scm_add_history): Bugfix: Do strdup before giving
away the string to add_history.
(completion_function): Do completion for readline. (Thanks to
Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-* * eval.c (macro?, macro-type, macro-name, macro-transfomer): New
+ * eval.c (macro?, macro-type, macro-name, macro-transformer): New
procedures;
(prinmacro): Removed. The code has been moved/merged into print.c
in order to decrease code redundancy. We want macros to print in
scm_macro_transformer): New prototypes.
(scm_tc16_macro): Declared.
-* * print.c (scm_iprin1): Added code for printing of macros. Macros
+ * print.c (scm_iprin1): Added code for printing of macros. Macros
are now printed in a way equivalent to procedures.
Sat Sep 6 12:20:42 1997 Mikael Djurfeldt <mdj@kenneth>