summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg J. Badros <gjb@cs.washington.edu>2000-01-05 01:44:04 +0000
committerGreg J. Badros <gjb@cs.washington.edu>2000-01-05 01:44:04 +0000
commit339999c72ef6e401528e7f8ded4b3e1b63f385e9 (patch)
tree333c957844691462f2efd69123127bf41e48f03a
parent3b5345d934fb224e90620b62ff21617b15fbd4c4 (diff)
Moved old ChangeLog text to ChangeLog-1996-1999 (added that file)
and made new ChangeLog with the entries from the new year only.
-rw-r--r--libguile/ChangeLog9829
-rw-r--r--libguile/ChangeLog-1996-19999828
2 files changed, 9829 insertions, 9828 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 27583e023..f73bf6905 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -26,9831 +26,4 @@ Mon Jan 3 08:25:19 2000 Greg J. Badros <gjb@cs.washington.edu>
SCM_NIMP tests that were redundant are now eliminated. Patches
from Dirk Hermann applied by hand.
-1999-12-28 Gary Houston <ghouston@arglist.com>
-
- * posix.c (scm_waitpid): move the HAVE_WAITPID test out of the
- procedure body, so that the procedure is left undefined if waitpid
- is not available. previously in this case the procedure was
- defined but would raise a system-error when called, which is
- pointless. I intend to make the same change for other procedures
- and deprecate SCM_SYSMISSING and scm_sysmissing.
-
-1999-12-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * feature.c (s_scm_add_hook_x): Call scm_wrong_type_arg instead of
- scm_misc_error when add-hook! is passed a procedure of wring
- arity. (Thanks to Greg Harvey.)
-
-1999-12-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * macros.c (scm_make_synt): Use scm_make_subr_opt to make the
- transformer subr. (Thanks to Bill Schottstaedt.)
-
-1999-12-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * objects.c (scm_class_of): Bugfix: Inserted missing SCM_CDR
- setting struct table class.
-
-Sun Dec 19 10:22:34 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * threads.c, mit-pthreads.c, list.c, coop.c: Remove K&R
- prototypes; just use ANSI C prototypes. I'm not sure how
- mit-pthreads.c ever compiled -- it still doesn't for me, but the
- normal make procedure does not try to build it anyway (even
- --with-threads I get the other threads code building) so I'm not
- too worried about it.
-
-Sat Dec 18 16:58:34 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * tags.h (SCM_CONSP, SCM_NCONSP): Define these in terms of
- SCM_SLOPPY_CONSP and SCM_SLOPPY_NCONSP. (SCM_CONSP) Define this
- in terms of SCM_SLOPPY_NCONSP instead of repeating the
- expression.
-
- * symbols.h (SCM_SLOPPY_SUBSTRP, SCM_SUBSTRP): Added former, and
- define latter in terms of sloppy variant.
-
- * strings.h (SCM_SLOPPY_STRINGP, SCM_STRINGP): Added former, and
- define latter in terms of sloppy variant.
-
- * scm_validate.h (SCM_MAKE_VALIDATE): Added this macro to factor
- out the commonality of the various basic SCM_VALIDATE_foop
- macros. Use SCM_MAKE_VALIDATE macro where possible. Fix
- SCM_VALIDATE_INT_COPY to not use scm_num2ulong -- that does
- coercion to an integer which is more advanced than desired and
- SCM_NUM2ULONG provides that functionality. Use SCM_ASSERT_RANGE
- appropriately for the various _MIN, _MAX, _RANGE macros. Drop
- some superfluous "SCM_NIMP &&" where possible. Eliminate obsoleted
- SCM_VALIDATE_NIMCONS (SCM_VALIDATE_CONS now does the NIMP test as
- part of its SCM_CONSP test).
-
- * socket.c, ports.c, pairs.c, list.c, lang.c, async.c: Use
- SCM_VALIDATE_CONS, not obsoleted SCM_VALIDATE_NIMCONS.
-
-Sat Dec 18 15:33:05 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * dynl.c: Added #include "scm_validate.h"
-
-Sat Dec 18 15:22:10 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * alist.c, chars.c, dynl.c, net_db.c, numbers.c, unif.c: Use
- SCM_NUM2ULONG instead of scm_num2ulong; SCM_NUM2LONG instead of
- scm_num2long; SCM_WTA instead of scm_wta. Only done for when
- FUNC_NAME was used as an argument of the macro and the formal
- argument name was the explicit argument in the old function call.
- These were just missed in my first pass of changes.
-
-1999-12-18 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * guile-doc-snarf.in (filename): Strip path to source dir before
- touching the .x-files.
-
-1999-12-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * debug.c (scm_reverse_lookup): Bugfix: Reinserted SCM_NIMP.
-
- * eval.c (SCM_CEVAL): Removed check for unbound slot in
- SCM_IM_SLOT_REF. (This is now handled in a smarter way in GOOPS.)
-
-1999-12-17 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * tags.h (SCM_SLOPPY_NCONSP, SCM_SLOPPY_CONSP): New macros.
- (SCM_ECONSP): Version which doesn't mix && and || without
- parenthesis.
- (SCM_NECONSP): Bugfree version.
-
-Fri Dec 17 12:09:11 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * tags.h (SCM_ECONSP, SCM_NECONSP): Fix these macros to have the
- SCM_NIMP test integrated into an || clause that I'd missed before
- and was causing a segfault in the regression tests.
-
- * symbols.h (SCM_ROUCHARS): Make cast be to (unsigned char *), not
- (char *); fixes a problem reported by the regression test
- ports.test.
-
- * ports.c: Fixed a couple of arg/number mismatches in
- SCM_VALIDATE_ macros.
-
- Now passes the (not-comprehensive) guile-modules test-suite again!
-
-Thu Dec 16 12:41:22 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * coop-threads.c: Remove K&R function headers.
-
- * scm_validate.h: Added SCM_VALIDATE_THREAD.
-
- * *.c: Remove SCM_NIMP(X) when it is an extraneous pre-test given
- that SCM_FOOP macros all now include SCM_NIMP in their expansion.
- This simplifies lots of code, making it far more readable.
-
-Wed Dec 15 19:45:14 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * *.h: Use SCM_NIMP(X) && in all the FOOP macros.
-
- * *.[ch]: Use do { ... } while (0) idiom in macros that expanded
- to a bare block.
-
-Tue Dec 14 10:53:14 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * snarf.h: Put SCM_PROC and SCM_PROC1 back in for
- backward-compatibility of packages that use Guile. Internally
- Guile should not use them, though. (Maybe enforce this with a new
- -DBUILDING_GUILE compile-time flag?).
-
-Tue Dec 14 09:41:01 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * backtrace.c (scm_set_print_params_x): Renamed from
- set_print_params_x.
-
- * guile-doc-snarf.in: Use guile-snarf.awk, not
- guile-doc-snarf.awk. Pass the basename of $filename
-
- * load.h: Added prototypes for scm_sys_library_dir,
- scm_sys_site_dir.
-
- * load.c (scm_sys_library_dir, scm_sys_site_dir): Added these
- functions, and took out the old scm_library_dir, scm_site_dir,
- scm_pkgdata_dir. Now the primitives are %package-data-dir
- (already existed), %library-dir, and %site-dir.
-
- * debug.c: Use SCM_MISC_ERROR when possible instead of using
- s_scm_* in a scm_misc_error() call.
-
- * Makefile.am: Use guile-snarf.awk, not guile-doc-snarf.awk. Make
- using guile-doc-snarf send stdout to $@ to create the .x file like
- guile-snarf does.
-
- * guile-snarf.awk.in: Added.
-
- * guile-doc-snarf.awk.in: Removed (sorry to back out a recent
- commit; if we're going to switch to guile-snarf I figure it makes
- sense to get this right now-- I'd already had the change in my
- working copy when the below commit happened).
-
-1999-12-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * guile-doc-snarf.awk: Removed.
-
- * guile-doc-snarf.awk.in: Added.
-
- * ports.c (s_scm_pt_member): Fixed validation.
-
- * guile-doc-snarf.in (filename): Use basename in order to strip
- away path.
-
- * debug.c (scm_make_iloc, s_scm_proc_to_mem): Added missing
- semicolon.
- (scm_memcons, scm_memcons, mem_to_proc): Renamed function name
- strings to new form.
-
- * backtrace.c (set_print_params_x): Fixed GUILE_PROC macro.
-
- * tags.h (SCM_UNBOUND): New iflag which is needed for some time to
- mark the unboundness of a GOOPS slot. (Added now in order to
- correct a oversight. Should probably be removed again and
- replaced with SCM_UNDEFINED when the corresponding code in GOOPS
- is rewritten.)
-
- * print.c (scm_isymnames): Added printed representation for
- SCM_UNBOUND.
-
- * eval.c (SCM_CEVAL): Bugfix: Added check for unbound slot in
- SCM_IM_SLOT_REF.
-
-Mon Dec 13 17:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * strings.c: Fixed mistaken default value in
- scm_make_shared_substring; thanks Eric Moore!
-
-Mon Dec 13 16:29:13 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * guile-doc-snarf.awk: Use sub instead of gsub in ^ anchored
- replacement for docstrings. Fixes problem Ryan Yeske observed
- with using mawk on his system. Thanks Ryan!
-
-Mon Dec 13 13:30:06 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * guile-doc-snarf.in: Do not echo to stdout since the output now
- gets stuck directly in the files instead of redirected from
- stdout.
-
- * guile-doc-snarf.awk: Escape a literal ) -- thanks Ryan
- Yeske. Use print instead of printf to prime the .x file since
- AIX's cpp has problems with #include-ing empty files (according to
- the old guile-snarf.in file).
-
-Sun Dec 12 19:39:00 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * Makefile.am: Fix ETAGS_ARGS to recognize GUILE_PROC,
- GUILE_PROC1. Build guile-procedures.txt, and add that file to
- pkgdata_DATA.
-
- * load.c: Added `pkgdata-dir', `site-dir', `library-dir'
- primitives.
-
- * guile-doc-snarf.awk: Drop trailing space when no arguments:
- e.g., "(foo )" is now "(foo)".
-
- * *.c, alist.c: moved all the documentation for primitives from
- guile-doc/ref/{appendices,posix,scheme}.texi into the source code.
- This leaves about half of the primitives undocumented. Also, all
- the markup is currently still texinfo. I don't have a problem
- with texinfo per se, but the markup is not very descriptive or
- accurate.
-
-Sun Dec 12 16:50:26 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * scm_validate.h: Drop the SCM_DOCSTRING_SNARF for turning off
- SCM_VALIDATE macros; the SCM_VALIDATE macros should be checked for
- argument mismatches (along with the FUNC_NAME macro checking) by a
- static tool that runs directly over the .c files.
-
- * snarf.h: Handle SCM_REGISTER_PROC better when snarfing. The
- docstring is still missing from the .doc file; it just gives the
- name of the C function that gets called instead.
-
- * guile-doc-snarf.awk: Be sure to touch the output files to help
- make out. Also handle SCM_REGISTER_PROC better, and change the
- output format slightly.
-
-Sun Dec 12 15:33:40 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * snarf.h: Drop SCM_PROC, SCM_PROC1. Added extra output for
- guile-doc-snarf script.
-
- * guile-doc-snarf.in, guile-doc-snarf.awk: New, simple doc
- extraction system. Builds foo.x, foo.doc from foo.{c,cc}.
- There are dependencies between these files and snarf.h. This
- replaces guile-snarf.
-
- * guile-snarf.in: Drop everything after $$$ for the new snarf.h
- macros. This is obsoleted by guile-doc-snarf, but kept here for
- now for good measure.
-
- * Makefile.am: Added guile-doc-snarf, guile-doc-snarf.awk to
- bin_SCRIPTS. Added .doc to SUFFIXES, and give rule for creating
- .doc files to use guile-doc-snarf. Update the rule for creating
- .x files to use guile-doc-snarf.
-
-Sun Dec 12 12:31:38 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * *.c: Finish replacing K&R style prototypes with ANSI C
- prototypes.
-
- * eval.c: Make scm_m_mody's 3rd argument be a const char *, not a
- char *. ANSI prototypes caught this.
-
- * strorder.c: Use GUILE_PROC1 for the couple SCM_PROC1 expansions
- that I missed.
-
- * scm_validate.h: Use SCM_BOOLP for validating bools. Do not
- expand macros if SCM_DOCSTRING_SNARF.
-
-Sun Dec 12 11:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * *.c, srcprop.h: Use SCM_BOOL(f) instead of (f? SCM_BOOL_T:
- SCM_BOOL_F) and use SCM_NEGATE_BOOL(f) instead of (f? SCM_BOOL_F:
- SCM_BOOL_T).
-
-Sun Dec 12 11:08:51 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * boolean.h: Added SCM_BOOL, SCM_NEGATE_BOOL, SCM_BOOLP to here,
- from scm_validate.h.
-
- * scm_validate.h: Moved above out into boolean.h, fix typo in
- SCM_VALIDATE_NIM macro.
-
-Sun Dec 12 10:29:12 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * *.c, scm_validate.h: Use SCM_VALIDATE_NIM, not SCM_VALIDATE_NIMP
- (none of the other validate macros have the trailing P).
-
-Sun Dec 12 10:07:29 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * scm_validate.h: Added the FSF copyright to the top.
-
- * strings.c: Use SCM_ASSERT_RANGE in a couple of places instead of
- SCM_ASSERT w/ SCM_OUT_OF_RANGE.
-
-Sat Dec 11 18:34:12 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * Makefile.am: Added scm_validate.h to modinclude_HEADERS.
-
- * *.c: Pervasive software-engineering-motivated rewrite of
- function headers and argument checking. Switched SCM_PROC,
- SCM_PROC1 macros to be GUILE_PROC, GUILE_PROC1 (may change names
- later, but was useful to keep old versions around while migrate)
- that has docstrings and argument lists embedded in the GUILE_PROC
- macro invocations that expand into a function header. Use lots of
- new SCM_VALIDATE_* macros to simplify error checking and reduce
- tons of redundancy. This is very similar to what I did for Scwm.
-
- Note that none of the extraction of the docstrings, nor software
- engineering checks of Scwm is yet added to Guile. I'll work on
- that tomorrow, I expect.
-
- * chars.c: Added docstrings for the primitives defined in here.
-
- * snarf.h: Added GUILE_PROC, GUILE_PROC1. Added
- SCM_REGISTER_PROC to be like old SCM_PROC, though old SCM_PROC
- still remains for now. Changed naming convention for the s_foo
- string name of the primitive to be s_scm_foo for ease of use with
- the macro.
-
- * scm_validate.h: Lots of new SCM_VALIDATE macros to simplify
- argument checking through guile. Maybe some of these should be
- folded into the header file for the types they check, but for now
- it was easiest to just stick them all in one place.
-
-1999-12-10 Greg Harvey <Greg.Harvey@thezone.net> (applied --12/10/99 gjb)
-
- * smob.c (scm_smob_prehistory): initialize allocated smob
-
- * tags.h: new tag: scm_tc16_allocated
-
- * gc.c (scm_gc_for_newcell): set the car of the new cell
- to scm_tc16_allocated
- * pairs.h (SCM_NEWCELL): set the car to scm_tc16_allocated
- (scm_gc_mark): mark allocated cells.
-
-1999-12-09 Greg J. Badros <gjb@cs.washington.edu>
-
- * strports.h, strports.c (scm_eval_0str): Fix constness. Some
- thanks to Dirk Hermann.
-
- * gh_eval.c (gh_eval_str, gh_eval_file, gh_eval_str_with_catch,
- gh_eval_str_with_standard_handler,
- gh_eval_str_with_stack_saving_handler): Fix constness. Some
- thanks to Dirk Hermann.
-
- * gh_data.c (gh_str02scm): Fix constness.
-
- * gh.h: Fix constness of prototypes for the above.
-
- * vectors.c: Include "unif.h" to avoid a warning about missing
- prototype for scm_uniform_element_size().
-
-1999-12-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * vectors.c (scm_vector_length, scm_vector_ref, scm_vector_set_x):
- Turned into primitive generics.
-
-1999-12-04 Gary Houston <ghouston@freewire.co.uk>
-
- * ports.c (scm_port_closed_p): new procedure, implements
- "port-closed?" suggested by Bernard Urban.
- ports.h: added prototype, removed the SCM_P macros.
-
-1999-11-30 Gary Houston <ghouston@freewire.co.uk>
-
- * unif.h: added some comments, removed the SCM_P macros.
-
-1999-11-29 Gary Houston <ghouston@freewire.co.uk>
-
- * vports.c (sf_write): use scm_makfromstr, not scm_makfrom0str
- (thanks to Daniel Skarda).
-
-1999-11-22 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * gscm.c, gscm.h: Deleted. They were unused.
-
-1999-11-20 Gary Houston <ghouston@freewire.co.uk>
-
- * unif.c (scm_list_to_uniform_array): call
- scm_dimensions_to_uniform_array with a third argument of
- SCM_UNDEFINED instead of SCM_EOL.
-
-1999-11-19 Gary Houston <ghouston@freewire.co.uk>
-
- * the following changes allow guile to be built with the array
- "module" omitted. some of this stuff is just tc7 type support,
- which wouldn't be needed if uniform array types were converted
- to smobs.
-
- * tag.c (scm_utag_bvect ... scm_utag_cvect): don't define unless
- HAVE_ARRAYS.
- (scm_tag): don't check array types unless HAVE_ARRAYS.
-
- * sort.c (scm_restricted_vector_sort_x, scm_sorted_p):
- remove the unused array types.
- * (scm_stable_sort, scm_sort): don't support vectors if not
- HAVE_ARRAYS. a bit excessive.
-
- * random.c (vector_scale, vector_sum_squares,
- scm_random_solid_sphere_x, scm_random_hollow_sphere_x,
- scm_random_normal_vector_x): don't define unless HAVE_ARRAYS.
-
- * gh_data.c (makvect, gh_chars2byvect, gh_shorts2svect,
- gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect, gh_doubles2dvect,
- gh_uniform_vector_length, gh_uniform_vector_ref):
- don't define unless HAVE_ARRAYS.
- (gh_scm2chars, gh_scm2shorts, gh_scm2longs, gh_scm2floats,
- gh_scm2doubles):
- don't check vector types if not HAVE_ARRAYS.
-
- * eq.c (scm_equal_p), eval.c (SCM_CEVAL), print.c (scm_iprin1),
- gc.c (scm_gc_mark, scm_gc_sweep), objects.c (scm_class_of):
- don't support the array types unless HAVE_ARRAYS is defined.
-
- * tags.h: make nine tc7 types conditional on HAVE_ARRAYS.
-
- * read.c (scm_lreadr): don't check for #* unless HAVE_ARRAYS is
- defined (this should use read-hash-extend).
-
- * ramap.c, unif.c: don't check whether ARRAYS is defined.
-
- * vectors.c (scm_vector_set_length_x): moved here from unif.c. call
- scm_uniform_element_size if HAVE_ARRAYS.
- vectors.h: prototype too.
-
- * unif.c (scm_uniform_element_size): new procedure.
-
- * init.c (scm_boot_guile_1): don't call scm_init_ramap or
- scm_init_unif unless HAVE_ARRAYS is defined.
-
- * __scm.h: don't define ARRAYS.
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): unif.c and ramap.c
- moved here from libguile_la_SOURCES.
-
-1999-11-18 Gary Houston <ghouston@freewire.co.uk>
-
- * socket.c (scm_htons, scm_ntohs, scm_htonl, scm_ntohl): new
- functions for network data conversion.
-
- * numbers.c (scm_num2long, scm_num2longlong):
- throw out-of-range instead of wrong-type-arg if appropriate.
- (scm_iint2str): handle -2^31 correctly.
- (scm_num2long): handle -2^31 bignum correctly.
- (scm_num2long_long): rewrite the bigdig case: basically copied
- from scm_num2long.
- numbers.h: (SCM_BITSPERLONGLONG): deleted.
-
- * unif.c (rapr1): use sprintf instead of intprint for unsigned
- longs: intprint can't cope with large values.
-
- * numbers.c (scm_num2ulong): check more consistently that the
- input is not negative. if it is, throw out-of-range instead of
- wrong-type-arg.
-
- * ramap.c (scm_array_fill_int): don't limit fill to INUM for
- uvect, ivect or llvect.
- Check that fill doesn't overflow short uniform array.
-
- * __scm.h: add another long to the definition of long_long and
- ulong_long.
-
- * unif.c (scm_raprin1): use 'l' instead of "long_long" in the
- print representation of llvect. read can't handle more than
- one character.
- (scm_dimensions_to_uniform_array): make "fill" an optional argument
- instead of a rest argument.
-
- * tags.h (scm_tc7_llvect): wasn't defined anywhere, so use the free
- tag 29 for now.
-
- * __scm.h: don't mention LONGLONGS.
-
- * unif.c, numbers.c, eq.c, gc.c, print.c, eval.c, ramap.c:
- replace LONGLONGS with HAVE_LONG_LONGS as set by configure.
-
-1999-11-17 Gary Houston <ghouston@freewire.co.uk>
-
- * net_db.c (scm_inet_aton): throw errors using the misc-error key
- instead of system-error. inet_aton doesn't set errno.
- system-error isn't right in gethost either, since it's throwing
- the value of h_errno instead of errno. so:
- (scm_host_not_found_key, scm_try_again_key,
- scm_no_recovery_key, scm_no_data_key): new error keys.
- (scm_resolv_error): new procedure, use the new keys.
- (scm_gethost): call scm_resolv_error not scm_syserror_msg.
-
-1999-11-16 Gary Houston <ghouston@freewire.co.uk>
-
- * error.c: (various): use scm_cons instead of scm_listify
- to build short lists.
-
-1999-11-03 Gary Houston <ghouston@freewire.co.uk>
-
- * socket.c (scm_fill_sockaddr): zero the address structure before
- use, in case it has a sin_len field and the OS doesn't like random
- values (thanks to Bertrand Petit).
-
-1999-10-26 Mark Galassi <rosalia@lanl.gov>
-
- * gh.h, gh_data.c (gh_symbol2scm): changed gh_symbol2scm() to take
- a const char * argument, upon suggestion from Lynn Winebarger.
-
-1999-10-26 Gary Houston <ghouston@freewire.co.uk>
-
- * strports.c (st_end_input): avoid dubious pointer arithmetic.
-
-1999-10-24 Gary Houston <ghouston@freewire.co.uk>
-
- * Move the responsibility for resetting port buffers from the
- caller of the ptob seek procedure to the implementation. This
- gives more control in general to the ptob seek: in particular the
- change of 1999-10-20 can be made to work without breaking seek on
- string ports. There's a comment in NEWS about upgrading port
- types.
-
- * ports.c (scm_seek): don't reset the port buffers here.
-
- * fports.c (fport_seek): reset the buffers, except for the
- 0 SEEK_CUR case.
-
- * strports.c (st_end_input): (bug fix): decrement pt->read_pos by
- offset. check that it's not less than read_buf.
- (st_seek): reset the buffers first, unless it's the 0 SEEK_CUR
- case and currently reading.
-
-1999-10-20 Gary Houston <ghouston@freewire.co.uk>
-
- * ports.c (scm_seek): Add a special case for SEEK_CUR, offset 0,
- so that unread chars are not needlessly discarded. (thanks to
- Roland Orre).
-
-1999-10-18 Gary Houston <ghouston@freewire.co.uk>
-
- * fports.c (scm_fdes_to_port): always set rw_random if the fdes is
- random access. rw_active needs to be maintained even for single
- directional ports, otherwise scm_seek and probably other things are
- broken. (thanks to Roland Orre).
-
- * strports.c (scm_mkstrport): set rw_random to 1 unconditionally.
-
- * ports.c (scm_add_to_port_table): initialise rw_random to 0.
-
- * ports.h (scm_port): change the comments on rw_random and rw_active.
-
-1999-10-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * ioext.c: Added #include "feature.h".
-
- These changes turns `delay' into a memoizing macro. This is
- because it may be expanded before evaluation if it occurs at the
- beginning of a body. (Thanks to Lauri Alanko.)
-
- * eval.c, eval.h (scm_sym_delay): New global symbol.
-
- * tags.h (SCM_IM_DELAY): New immediate symbol.
-
- * print.c (scm_isymnames): Printed representation.
-
- * eval.c (unmemocopy, SCM_CEVAL): Handle SCM_IM_DELAY.
- (scm_m_delay): Turned into a memoizing macro.
-
- * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version.
-
-1999-10-11 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * gh_data.c (gh_ints2scm, gh_doubles2scm): Make sure elements are
- protected from GC while building the vector. (Thanks to Bernard
- Urban and Greg Harvey.)
-
-1999-10-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * throw.c (handler_message): Display backtrace if backtraces
- enabled.
-
-1999-10-05 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * Makefile.in, scmconfig.h.in: Deleted from CVS repository. Run
- the autogen.sh script to create generated files like these.
-
- * numbers.c (scm_string_to_number): Signal an error if radix is
- less than two. (Thanks to Jorgen Schaefer.)
-
- * print.c (scm_write, scm_display, scm_newline, scm_write_char):
- Don't assume that the current output port is valid. Somebody
- might close it. (Thanks to Bernard Urban.)
-
-1999-10-02 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * scmconfig.h.in: Regenerated.
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): fix typo.
-
-Mon Sep 27 17:15:14 1999 Greg J. Badros <gjb@cs.washington.edu>
-
- * __scm.h: Fix a bunch of macros that were missing do-while(0)
- sandwiches.
-
- * debug.c, eval.c: Fix buggy uses of SCM_ALLOW_INTS (missing
- semicolon) exposed by the above change.
-
-1999-09-27 Greg J. Badros <gjb@cs.washington.edu>
-
- * stacks.c: Avoid compiler warning re: unitialized var.
-
- * scmconfig.h.in: Added DEBUG_FREELIST
-
- * pairs.h: Fix macro that was not do-while(0) sandwiched.
-
- * gc.h, gc.c: Added scm_gc_set_debug_check_freelist_x,
- scm_map_free_list
-
-1999-09-23 Gary Houston <ghouston@freewire.co.uk>
-
- * ioext.c (scm_init_ioext): enable "i/o-extensions" feature here
- instead of in scm_init_filesys.
-
- * init.c (scm_boot_guile_1): don't call scm_init_posix or
- scm_init_filesys unless HAVE_POSIX is defined.
- don't call scm_init_netdb or scm_init_socket unless
- HAVE_NETWORKING is defined.
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): filesys.c, posix.c,
- net_db.c, socket.c: moved here from libguile_la_SOURCES.
-
-1999-09-25 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * root.c (scm_make_root): Initialize all the fields of the new
- root. GC could happen any time, you know. (Thanks to Greg
- Harvey.)
-
- * numbers.c (scm_number_to_string): Signal an error if radix is
- less than two. (Thanks to Jorgen Schaefer.)
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): Add memmove.c here,
- so automake will actually generate rules for it.
- * Makefile.in: Regenerated.
-
-1999-09-21 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * backtrace.c: #include "_scm.h" before testing whether
- HAVE_UNISTD_H is #defined.
-
-1999-09-20 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * read.c (scm_read): Don't assume that scm_cur_inp is always open.
- * ports.c (scm_read_char): Same.
- * ioext.c (scm_read_line): Same.
- (Thanks to Bernard Urban.)
-
-1999-09-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * vectors.c (scm_vector_move_right_x): Bugfix: Remove side effect
- in SCM_ASSERT macro.
- numbers.c: Removed #ifndef SCM_RECKLESS at places where type
- checking may invoke a generic. (Thanks to Michael Livshin.)
-
- * __scm.h (SCM_WTA_DISPATCH_0, SCM_GASSERT0): New macros.
-
- * numbers.c (scm_max, scm_min, scm_sum, scm_difference,
- scm_product, scm_divide): Bugfix: Don't pass SCM_UNDEFINED to the
- generic function if the asubr is called with only one arg.
-
-1999-09-20 Gary Houston <ghouston@freewire.co.uk>
-
- * scmsigs.c (scm_sigaction): add SA_RESTART to flags only if
- HAVE_RESTARTABLE_SYSCALLS.
- (scm_init_scmsigs): use siginterrupt if it's available. not
- everyone who has restartable syscalls has SA_RESTART it seems.
-
- (scm_sigaction): use scm_num2long/scm_long2num when converting
- SIG_DFL/SIG_IGN, in case it doesn't fit in an INUM. use
- scm_integer_p to test the type.
-
-1999-09-18 Gary Houston <ghouston@freewire.co.uk>
-
- * _scm.h, scmsigs.c: replace HAVE_RESTARTS with
- HAVE_RESTARTABLE_SYSCALLS.
-
- * strports.c (scm_strport_to_string): create the string from
- pt->read_buf instead of an expression that evaluates to the
- same thing.
-
- * gdbint.c (gdb_print): don't just use SCM_CHARS to get a C string
- from the port: the port's buffer may not be NUL terminated.
-
-1999-09-16 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * Makefile.am (.c.x): Added missing semicolon after `false'.
-
-1999-09-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * print.c (scm_iprin1): Turn `write' and `display' into
- primitive generics and use their associated generic functions in
- scm_iprin1 for GOOPS objects.
-
- * backtrace.c: #include <unistd.h> if present.
-
-1999-09-14 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * Makefile.am (.c.x): Don't create a subshell just to delete the
- .x file and return false.
- * Makefile.in: Regenerated.
-
-1999-09-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * feature.c (scm_create_hook): New function. Replaces
- scm_make_named_hook which is now deprecated.
- (scm_make_hook_with_name): New primitive.
- (print_hook): Hooks now print in a fancy way.
-
-1999-09-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * __scm.h, backtrace.c, backtrace.h, debug.c, debug.h, dynl-dld.c,
- dynwind.c, dynwind.h, eval.h, evalext.c, evalext.h, feature.c,
- feature.h, hashtab.c, hashtab.h, objects.c, objects.h, print.c,
- procs.c, procs.h, smob.c, smob.h, srcprop.c, strorder.c, struct.c,
- struct.h: Updated copyright notices.
-
- * srcprop.c (scm_source_property): Bugfix: Use SCM_NECONSP instead
- of SCM_NCONSP. (Thanks to Greg Badros.)
-
- * gsubr.c (scm_make_gsubr): Use scm_make_subr_opt for creation of
- the self subr.
-
- * eval.c, debug.h (SCM_BACKTRACE_WIDTH): New debug option: width.
-
- * backtrace.c: Keep backtraces within specified width by
- adaptively adjusting fancy printing parameters and cut output if
- necessary.
- (scm_display_application): Check args.
-
-1999-09-11 Jim Blandy <jimb@savonarola.red-bean.com>
-
- Change the name of the objects returned by OPENDIR from
- "directory" to "directory stream". A predicate named "directory?"
- would be confusing.
- * filesys.c (scm_directory_stream_p): Renamed from scm_directory_p.
- At the Scheme level, "directory?" -> "directory-stream?".
- (scm_dir_print): Use the phrase "directory stream" in printed form.
- * filesys.h (scm_directory_stream_p): Prototype renamed
- accordingly.
-
- * Makefile.am (CLEANFILES): Remove versiondat.h; that should only
- be removed by `make distclean', since it's generated by configure.
- * Makefile.in: Regenerated.
- (Thanks to Robert Bihlmeyer.)
-
- * strop.c (scm_substring_move_x): Signal an error if start1
- doesn't come before end1. (Thanks to Karoly Lorentey).
-
- * numbers.c (scm_istr2flo): Don't call SCM_INEXP without first
- calling SCM_NIMP. (Thanks to Karoly Lorentey).
-
- * version.c (scm_libguile_config_stamp): Deleted. See
- corresponding change to ../ice-9/boot-9.scm.
- * versiondat.h.in: Remove definition for GUILE_STAMP.
- * version.h: Delete prototype.
- * Makefile.in: Regenerated.
-
-1999-09-11 Gary Houston <ghouston@easynet.co.uk>
-
- * filesys.c (scm_directory_p): new procedure "directory?" Returns
- a boolean indicating whether its argument is a directory
- port as returned by opendir (thanks to Dirk Herrmann for the
- suggestion.)
-
-1999-09-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * backtrace.c (display_frame_expr): Don't print a newline.
- (display_frame): Print the newline here instead.
- (display_backtrace_body): Don't print "Backtrace:".
- (scm_backtrace): Print "Backtrace:" here instead.
-
-1999-09-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * procs.c (scm_setter): Signal WTA if handed an entity or operator
- lacking a setter.
-
- * feature.c, feature.h: (scm_hook_p, scm_hook_empty_p): New
- primitives. (Thanks to Greg Badros);
- (scm_hook_to_list): New primitive; Hooks are now smobs.
-
-1999-09-08 Gary Houston <ghouston@easynet.co.uk>
-
- * stime.c (bdtime2c): rewrite the ASSERTs. Accept a value
- of #f for the 10th vector element to avoid an exception
- seen by Bernard Urban.
- (scm_mktime): unneeded ASSERT removed.
-
-1999-09-07 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * eval.c (scm_map, scm_for_each): Converted to dispatch on generic
- if args don't match.
-
- * __scm.h (SCM_WTA_DISPATCH_n, SCM_GASSERTn): New macros.
-
-1999-09-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * numbers.c: Converted comparison operations to dispatch on
- generic if args don't match.
-
- * Makefile.am (ETAGS_ARGS): Added support for GPROC and GPROC1.
-
-1999-09-06 James Blandy <jimb@mule.m17n.org>
-
- * guile-snarf.c: Deleted. Snarfing should respect CPP
- conditionals, so it needs to actually run CPP. Bleah.
-
-1999-09-05 James Blandy <jimb@mule.m17n.org>
-
- Handle errors properly in guile-snarf. (Thanks to Han-Wen Nienhuys.)
- * guile-snarf.in: Be sure to exit with an error if CPP does.
- * Makefile.am (.c.x): Delete the .x file and exit with an error
- status if guile-snarf exits with an error status.
- * Makefile.in: Regenerated.
-
- * snarf.h (SCM_GLOBAL_KEYWORD): Call scm_c_make_keyword, not
- scm_makekey, which doesn't exist any more. Guess nobody's using
- this.
-
- * guile-snarf.c: New implementation of guile-snarf, meant to be
- more robust than the shell script. I think it's complete, but I
- haven't tested it at all, and I haven't changed the build process
- to actually use it. We should compare its output against that of
- the existing shell script, for all source files.
-
- * guile-snarf.c (parse_args): Abort if we haven't handled some
- character type.
-
-1999-09-03 James Blandy <jimb@mule.m17n.org>
-
- * load.c (scm_search_path): If the filename has any extension at
- all, ignore the entire list of extensions. Also, don't check whether
- the file is accessible. If the file exists, accessible or not, we
- should return it. Inaccessible files should cause an error later.
- (Thanks to Keisuke Nishida for the suggestions.)
-
-1999-09-02 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * gc.c (cleanup, scm_init_storage): Use on_exit if present and
- atexit not available. (sunos4.1.4 needs it.)
-
-1999-09-01 James Blandy <jimb@mule.m17n.org>
-
- I take it all back --- bcopy does handle overlapping source and
- destination areas correctly. At least on every system I could
- find. But it is better to use AC_REPLACE_FUNCS than to introduce
- new CPP conditionals.
- * memmove.c: New file, implementing memmove in terms of bcopy.
- * scmconfig.h.in: Regenerated.
-
- Allocators should use the `void *' type for generic pointers.
- * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Change
- argument and return types.
- * gc.h: Corresponding changes to prototypes.
- (Thanks to Forcer.)
-
-1999-08-31 James Blandy <jimb@mule.m17n.org>
-
- * numbers.c (scm_init_numbers): Claim to support the `complex'
- feature, as expected by (ice-9 format). (Thanks to Ceri Storey.)
-
- * Makefile.am (check-local): Set GUILE_LOAD_PATH so the tests can
- find (ice-9 boot-9) when Guile was compiled in a separate
- directory from the source. (Thanks to Rodney Brown.)
- * Makefile.in: Regenerated.
-
- * procs.c (scm_make_subr_opt): Fix typo. Remember to multiply
- table lengths by the size of a single element when growing the
- table. (Thanks to Bill Schottstaedt.)
-
-1999-08-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Duplicated the method dispatch code at the
- SCM_IM_DISPATCH form instead of calling scm_mcache_lookup_cmethod
- since that cuts down the time for type dispatch by 50%.
-
-1999-08-30 James Blandy <jimb@mule.m17n.org>
-
- * gh_data.c (gh_set_substr): Revert change of 1999-08-29; bcopy is
- not a correct substitute for memmove, because it doesn't handle
- overlapping source and destination areas on many platforms.
- Overlaps are the primary reason to use memmove in the first place.
- * ports.c (scm_ungetc): Same.
- * strop.c (scm_substring_move_x): Same.
-
-1999-08-30 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * gc.c (scm_init_storage): Skip registration of cleanup on systems
- which lack atexit. (Is it important that cleanup is made
- properly? Maybe we should replace all `exit' with `scm_exit' and
- call cleanup there?)
-
- * struct.c, struct.h (scm_struct_free_0, scm_struct_free_light,
- scm_struct_free_standard, scm_struct_free_entity): Declared to
- return scm_sizet instead of size_t.
-
- * gdbint.c, strports.c: #include <unistd.h>. (SEEK_SET is defined
- there on sunos4.1.4.)
-
-1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * numbers.c (scm_lcm): Bugfix: BIGDIG --> SCM_BIGDIG;
- Account for the case when second argument is unbound.
-
- * strorder.c (scm_string_less_p, scm_string_ci_less_p): Bugfix.
- (Thanks to Karoly Lorentey.)
-
- * gh_data.c, ports.c, strop.c: Alternatively use bcopy if memmove
- isn't present. (Thanks to Suzuki Toshiya.)
-
- * ports.c: Use ANSI C prototypes in definitions. (Thanks to
- Bernard Urban.)
-
- * filesys.c (scm_stat2scm): Conditionally use S_ISLNK. (Thanks to
- Bernard Urban.)
-
- * dynl-dl.c (RTLD_GLOBAL): Define if non-existent. (Thanks to
- Bernard Urban and Ian Grant.)
-
- * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version
- again. (1.3.4 will be binary incompatible with 1.3.2 because of a
- change in the representation of entities and operators.)
-
-1999-08-29 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_ungetc): bugfix: if putback_buf is NULL
- don't allocate zero bytes (thanks to Bill Schottstaedt).
-
-1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * procs.c (scm_setter): Converted to use generic dispatch.
-
- * eval.c, eval.h: Bugfix: scm_sym_apply was not initialized
- correctly.
-
- * load.c (scm_search_path): Don't try extensions which already are
- present at the end of the filename.
- (scm_init_load): Check .scm first. (Thanks to Keisuke Nishida.)
-
- * stacks.c (scm_sym_apply): Removed. (Thanks to Ken Raeburn.)
-
- Cleanup and simplification of generic method dispatch.
- Also, the quadruple representation of entity and operator
- procedures has been replaced with single.
-
- * tags.h (SCM_IM_HASH_DISPATCH): Removed.
-
- * print.c (scm_isymnames): Removed #@hash-dispatch.
-
- * objects.c, objects.h (scm_mcache_lookup_cmethod): Moved here
- from eval.c; Support 0 arity methods.
- (scm_set_object_procedure_x): Removed scm_sym_atdispatch;
- (scm_apply_generic_env): Removed.
- Replaced slots proc0-3 with procedure.
-
- * objects.h (SCM_OPERATOR_PROC_0, SCM_OPERATOR_PROC_1,
- SCM_OPERATOR_PROC_2, SCM_OPERATOR_PROC_3): Replaced by
- SCM_OPERATOR_PROCEDURE.
- (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_1, SCM_ENTITY_PROC_2,
- SCM_ENTITY_PROC_3): Replaced by SCM_ENTITY_PROCEDURE.
-
- * struct.c, struct.h: Replace 4 procedure slots with one.
- (scm_struct_i_procedure): Replaces scm_struct_i_procedure.
-
- * gc.c (scm_gc_mark): Mark 1 procedure slot in entities instead of
- 4.
-
- * eval.c (scm_sym_args): Removed.
- (SCM_CEVAL): Simplified entity application.
- Moved dispatch code to objects.c.
-
- * procprop.c (scm_i_procedure_arity): Bugfix: Handle generics.
-
-1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * sort.c (closureless): Use scm_eval_body.
-
- * eval.c (SCM_APPLY): Fixed serious evaluator bug: If a closure
- with a symbol as last form was first called normally and then via
- `map' or some other mechanism using primitive apply, an ILOC was
- returned.
-
-1999-08-26 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- This change extends the representation of primitive procedures
- with more data fields, e.g. a place for documentation and true
- procedure properties.
-
- * procs.c, procs.h (scm_subr_entry): New type: Stores data
- associated with subrs.
- (SCM_SUBRNUM, SCM_SUBR_ENTRY, SCM_SUBR_GENERIC, SCM_SUBR_PROPS,
- SCM_SUBR_DOC): New macros.
- (scm_subr_table): New variable.
- (scm_mark_subr_table): New function.
-
- * init.c (scm_boot_guile_1): Call scm_init_subr_table.
-
- * gc.c (scm_gc_mark): Don't mark subr names here.
- (scm_igc): Call scm_mark_subr_table.
-
-
- This change implements a scheme for letting a generic work as a
- shadow for a primitive procedure. If the primitive procedure
- can't dispatch on its arguments, control is left over to the
- generic. Normal wrong type arg errors will be generated until the
- user has hung the first method on the primitive.
-
- * snarf.h (SCM_GPROC, SCM_GPROC1): New macros.
-
- * procs.c, procs.h (scm_subr_p): New function (used internally).
-
- * gsubr.c, gsubr.h (scm_make_gsubr_with_generic): New function.
-
- * objects.c, objects.h (scm_primitive_generic): New class.
-
- * objects.h (SCM_CMETHOD_CODE, SCM_CMETHOD_ENV): New macros.
-
- * print.c (scm_iprin1): Print primitive-generics.
-
- * __scm.h (SCM_WTA_DISPATCH_1, SCM_GASSERT1,
- SCM_WTA_DISPATCH_2, SCM_GASSERT2): New macros.
-
- * eval.c (SCM_CEVAL, SCM_APPLY): Replace scm_wta -->
- SCM_WTA_DISPATCH_1 for scm_cxr's (unary floating point
- primitives). NOTE: This means that it is now *required* to use
- SCM_GPROC1 when creating float scm_cxr's (float scm_cxr's is an
- obscured representation that will be removed in the future anyway,
- so backward compatibility is no problem here).
-
- * numbers.c: Converted most numeric primitives (all but bit
- comparison operations and bit operations) to dispatch on generic
- if args don't match.
-
-
- Better support for applying generic functions.
-
- * eval.c, eval.h (scm_eval_body): New function.
-
- * objects.c (scm_call_generic_0, scm_call_generic_1,
- scm_call_generic_2, scm_call_generic_3, scm_apply_generic): New
- functions.
-
-
- Optimization of the generic function dispatch mechanism.
-
- * eval.c (SCM_CEVAL): Apply the cmethod directly after having
- called scm_memoize_method instead of doing a second lookup.
-
- * objects.h (scm_memoize_method): Now returns the memoized cmethod.
-
-
- Bugfix
-
- * procs.c (scm_make_subr_opt): Use scm_sysintern0 instead of
- scm_sysintern so that the binding connected with the subr name
- isn't cleared when we give set = 0.
-
-
-1999-08-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- More transparent handling of ports with print states.
-
- * print.h (SCM_PORT_WITH_PS_P, SCM_PORT_WITH_PS_PORT,
- SCM_PORT_WITH_PS_PS): Represent ports with print states as a smob
- instead of a pair of a port and a print state. We'll need to cons
- once extra in scm_printer_apply but the type system will be
- cleaner, it will mix better with GOOPS, and, it will be even more
- transparent to the user.
-
- * print.c (scm_get_print_state): New procedure: Given an output
- port, return the print state associated to it in the current print
- chain, if one exists;
- (scm_port_with_print_state): New procedure: Associate a
- print-state with a port.
- (scm_valid_oport_value_p): Use SCM_PORT_WITH_PS_P;
- (scm_printer_apply): Wrap port and pstate as a smob;
- (print_state_printer): Removed.
-
- * objects.c (scm_class_of): Treat scm_tc16_port_with_ps as ports.
-
- * eval.c (scm_init_eval): Use scm_make_smob_type instead of
- scm_newsmob.
-
- * ports.c (scm_output_port_p): Bugfix: Coerce output port before
- testing (otherwise the port-print-state trick won't be transparent
- to the user; one example where this caused problems was in the
- (ice-9 format) module).
-
-1999-08-23 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Let the SCM_IM_SLOT_SET_X form return
- SCM_UNSPECIFIED instead of the set value.
-
-1999-08-20 James Blandy <jimb@mule.m17n.org>
-
- * load.c (scm_init_load_path): Remove support for SCHEME_LOAD_PATH.
-
- * ports.h (enum scm_port_rw_active): New enum, containing
- SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
- zero). The debugger knows about enums, but doesn't know about
- #defines.
- (typedef scm_port): Declare rw_active member to be an enum
- scm_port_rw_active.
- * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
- instead of zero.
- * ports.c (scm_add_to_port_table): Same.
- * strports.c (st_flush, st_end_input): Same.
-
- * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
- scm_must_realloc, and scm_done_malloc as appropriate.
-
-1999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * sort.c (quicksort): Added condition to protect the algorithm
- from crashing the interpreter if the less predicate is buggy.
-
-1999-08-19 Gary Houston <ghouston@easynet.co.uk>
-
- * fports.c (fport_write): fix line-buffering mode again.
- (scm_open_file): recognise 'l' for line-buffering.
- (scm_setvbuf): recognise _IOLBF for line-buffering.
-
-1999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * Makefile.am (libguile_la_LDFLAGS): Increased the version number
- of libguile to 5.0.
-
- * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
- evaluating closures.
-
-1999-08-18 Gary Houston <ghouston@easynet.co.uk>
-
- * fports.c (fport_write): use memcpy instead of strncpy, in case
- the data contains NUL.
-
-1999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
-
- * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
- read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
- scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
- scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
- scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
- scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
- scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
- scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
- scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
- scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
- scm_sym_ as prefix for symbols.
-
- * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
-
- * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
- scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
- scm_sym_define, scm_sym_letrec, scm_sym_atapply,
- scm_sym_atcall_cc): Made global.
-
-1999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (scm_sym_args): Made global.
-
- * objects.c (scm_set_object_procedure_x): Disallow setting of
- procedures for pure generic functions.
-
-1999-08-12 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_seek): one more: was scm_lseek. Also changed the
- Scheme name from lseek to seek, but lseek was added recently so
- it shouldn't be a big problem.
- * ports.c, gdbint.c, ioext.c: changed callers.
-
-1999-08-11 Gary Houston <ghouston@easynet.co.uk>
-
- * fports.c (fport_input_waiting): if select is used, return 1
- instead of whatever FD_ISSET expands to. maybe it will be useful
- to interpret the value from the input_waiting ptob procedure as a
- lower bound on the number of bytes available.
-
- * Mikael asked for a few names to be changed...
-
- * ports.c (scm_make_port_type): take the write procedure as the
- second argument instead of the flush procedure.
- * ports.h (scm_ptob_descriptor): rename the ptob procedures:
- fflush -> flush, read_flush -> end_input, fclose -> close,
- fill_buffer -> fill_input, ftruncate -> truncate,
- input_waiting_p -> input_waiting.
-
- * ports.c (end_input_void_port): was read_flush_void_port.
- (scm_set_port_end_input): was scm_set_port_flush_input.
- (scm_set_port_flush): was scm_set_port_write.
- (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
- (scm_end_input): was scm_read_flush.
- (scm_fill_input): was scm_fill_buffer.
- (scm_flush): was scm_fflush.
- * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
- (fport_end_input): was local_read_flush.
- (fport_flush): was local_fflush.
- (fport_close): was local_fclose.
- (fport_truncate): was local_ftruncate.
- (fport_seek): was local_seek.
- (fport_free): was local_free.
- (fport_fill_input): was fport_fill_buffer.
- * strports.c (st_end_input): was st_read_flush.
- (st_truncate): was st_ftruncate.
- * vports.c: (sf_flush): was sfflush.
- (sf_close): was sfclose.
- (sf_fill_input): was sf_fill_buffer.
-
- * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
- change callers.
-
-1999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
- forms now contain the expressions to be dispatched upon instead of
- depending on a surrounding lambda or let; Generic function
- dispatch has been optimized; `apply' on a generic function now
- works a little bit strangely. It uses a trick so that the type
- dispatch code in SCM_CEVAL can be reused.
-
- * objects.h, objects.c (scm_apply_generic_env): Added (used by
- apply).
- (scm_operator_p): Added.
- (scm_sym_atdispatch): Added.
- (scm_set_object_procedure_x): Modified to handle the new style
- generic functions.
- (scm_object_procedures): New debugging procedure.
-
-1999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c, eval.h (scm_sym_args): Added.
-
- * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
-
- * feature.c, feature.h (scm_c_run_hook): Added.
-
- * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
- cdrxnoap and loopnoap instead of begin and loop.
-
-1999-08-04 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_putc, scm_puts),
- * unif.c (scm_uniform_array_write): use scm_lfwrite.
- * ports.c (scm_putc): change type of first argument from int to char.
-
-1999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
- SCM_IM_HASH_DISPATCH.
-
- * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
- (scm_si_redfined, scm_si_hashsets): Moved.
-
- * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
- flag which combines type and status info so that the class
- redefinition protocol has zero cost during normal execution.
-
-1999-08-03 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (scm_ptob_descriptor): include a write procedure again.
- it's more efficient for unbuffered fports (e.g., sockets.)
-
- * ports.c (scm_puts): use ptob->write.
- * vports.c (scm_make_sfptob): set write proc in ptob.
- * strports.c (scm_make_stptob): set write proc in ptob.
- * ports.c (write_void_port): new procedure.
- * vports.c (sf_write): new procedure.
- * ports.c (scm_lfwrite): use ptob->write.
- * strports.c (st_write): new procedure.
- * fports.c (fport_write): new procedure.
- (scm_make_fptob): set write in ptob to fport_write.
- * ports.h: prototype for scm_set_port_write.
- * ports.c (scm_make_port_type): initialise ptob write procedure.
- (scm_set_port_write): new proc.
-
-1999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
- until we've verified that it is actually a port. (Thanks to
- Lorentey Karoly.)
-
-1999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
- code, particularly an unnecessary test (len != size, where len ==
- size). (Was this leftovers from debugging code, or have I missed
- something profound?)
-
- * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
- size. (Thanks to James Dean Palmer.)
-
- * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
- (Thanks to Lorentey Karoly.)
-
-1999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (scm_m_expand_body): Use scm_cons_source.
-
- * struct.c (scm_print_struct): Use vtable name.
-
- * print.c (scm_init_print): Set name of print state type.
-
- * stacks.c (scm_init_stacks): Set name of stack type.
-
-1999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Removed old implementation of internal
- define.
-
- * gsubr.c, procprop.h (scm_i_inner_name): Removed.
-
- * debug.c, debug.h (scm_reverse_lookup): Added.
- (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
- internal procedure definitions; Don't use scm_i_inner_name.
-
- * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
- New isym operations.
-
- * eval.h: Added prototypes for multi language support functions.
-
- * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
- improper lists in the low-level representation, since that will
- cause a begin to be prepended at macro expansion.
-
- * eval.c (scm_cons_source): Version of cons which copies source
- properties from an existing cell.
- (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
-
- * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
- procedure source before calling scm_unmemocopy instead of faking
- an environment.
-
-1998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
-
- Ported `internal defines' fix from SCM. Original ChangeLog entry:
-
- 1998-07-09 Radey Shouman <radey@colorage.com>
-
- * eval.c (ceval_1): Modifications to allow rewriting of interal
- DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
- body of which it is the CAR is macro expanded by m_expand_body,
- which rewrites internal DEFINE.
-
- (m_expand_body): Added.
-
- (m_macroexp1): Added argument to control error checking:
- m_expand_body may speculatively expand forms in the wrong
- environments. Made argument number checks conditional on
- RECKLESS.
-
- (m_body): Added, error checks bodies and inserts the ISYM tokens.
-
- (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
- call m_body.
-
- (m_cond): (m_case): (m_quote): Modified to avoid destructively
- changing their argument forms. Since m_expand_body
- speculatively macro expands forms the process must be
- reversible.
-
- (m_ident_eqp): Fixed to use proper environment.
-
- (renamed_ident): Added DEFER_INTS_EGC.
-
- Added prototypes for static functions.
-
- * eval.c
-
- (undef_cell): New.
-
- (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
- is false, do not produce an error for unbound variables, return a
- pointer to cell_undef instead.
-
- (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
-
- (scm_m_body): New.
-
- (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
- destructively changing their argument forms. Since m_expand_body
- speculatively macro expands forms the process must be reversible.
-
- (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
- SCM_IM_LET introduced by named lets.
-
- (scm_m_letstar): Use scm_m_body instead of bodycheck.
-
- (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
- scm_letrec. scm_letrec1 does not check for a null binding and
- takes an additional argument to specify the ISYM of the body. Use
- scm_m_body instead of bodycheck.
-
- (scm_m_let): Use scm_m_body instead of bodycheck.
-
- (scm_m_expand_body, scm_macroexp): New.
-
- (unmemocopy): Account for ISYMs introduced by scm_m_body.
-
- (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
- check=1. Throw error for internal defined that have not been
- rewritten by scm_m_expand_body.
-
- * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
- Removed prototype for SCM_APPLY.
-
- * tags.h: Added extern declaration of scm_isymnames.
-
-1999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
-
- * lang.c: New file: Beginning of multi-language support.
-
- * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
-
- * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
- (scm_dynamic_wind): Added argument checking for the after guard so
- that we don't add garbage on the dynwind chain.
- (scm_swap_bindings): Added.
-
- * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
- SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
- (scm_isymnames): New isyms for multi-language support.
-
- * eval.c (scm_nil, scm_t): New symbols.
- (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
- forms for multi-language support.
-
-1999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
- Added.
- Renamed functions in the random function library interface
- from scm_i_XXX --> scm_c_XXX.
-
-1999-07-25 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_putc): fix line-buffering.
-
-1999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
- scm_set_ptob_XXX --> scm_set_port_XXX.
-
-1999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * ports.c, ports.h (scm_make_port_type): New interface for
- creation of port types (replaces scm_newptob). Just as for the
- smobs, we need to separate the internal representation of smob
- types from the interface, so that we easily can add new fields and
- rearrange things without caring about backward compatibility.
- This change was forced by the need in GOOPS to create classes
- representing port types.
- (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
- scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
- scm_set_ptob_seek, scm_set_ptob_truncate,
- scm_set_ptob_input_waiting_p): New setters.
- (scm_newptob): Rewritten to use scm_make_port_type. For backward
- compatibility.
- (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
- (scm_prinport): Removed.
- (scm_port_print): Added.
- (scm_print_port_mode): Added.
- (void_port_ptob, print_void_port, close_void_port, noop0):
- Removed. Removed #include "genio.h" Added #include "objects.h",
- #include "smobs.h"
-
- * fports.c (prinfport): Moved code from ports.c.
- (local_free): Added.
- (scm_fptob): Removed. Instead use new interface.
- (scm_make_fptob): Added. (Need to create basic ports in a
- specific order in ports.c.)
-
- * strports.c (scm_stptob, prinstpt, noop0): Removed
- (scm_make_stptob): Added.
-
- * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
- (scm_make_sfport): Added.
-
- * filesys.c (scm_dir_print): Don't use the port printing code.
- Instead provide specific directory printer.
-
- * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
-
- * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
- scm_ptob_descriptor.
-
- * smob.c (scm_smob_print): Handle non-existing type name nicely.
- Removed #include "genio.h"
-
- * objects.c (scm_make_port_classes): New function ptr.
-
-1999-07-24 Gary Houston <ghouston@easynet.co.uk>
-
- * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
-
- * ports.c (scm_truncate_file): renamed from scm_ftruncate.
- allow the 1st argument to be a fdes or filename as well as a
- port (as in the filesys.c version).
-
- * filesys.c (scm_truncate_file): removed.
-
-1999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
-
- * readline.c, readline.h: Removed.
-
- * objects.c, objects.h (scm_port_class): Added.
- (scm_class_of): Look up port class in scm_port_class.
- (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
- SCM_INOUT_PCLASS_INDEX): Added.
-
-
- * Makefile.am: Removed genio.c, genio.x.
-
- * genio.c: Removed.
-
-1999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * init.c: Make sure that scm_post_boot_init_modules is called only
- once. (Important when using a dumped image.; Thanks to Bernard
- Urban.)
-
-1999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * guardians.c (scm_guardian_zombify): Separate scanning for
- zombies from marking the pairs of the free list.
-
- * guardians.c (scm_guardian_zombify): Don't set marks manually ---
- use the macros. (Thanks to Michael Livshin.)
-
- * eval.c (scm_m_lambda): Let bodycheck check the body of the
- lambda. Let your sins be purified by the blood of the lambda.
- (Thanks to Eric Hanchrow.)
-
- * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
- (Thanks to Valdis Kletnieks.)
-
- Fixes for EMX from Mikael Ståldal.
-
- * filesys.c: #include <io.h>, if we have it.
- * scmconfig.h.in: Regenerated.
-
- * stime.c (ftime): Delete declaration for this function --- let
- the system supply it.
-
- Cleanups from John Bley.
-
- * gdbint.c: Don't include <stdio.h> and "_scm.h" twice.
-
- * gsubr.c: Don't include "gsubr.h" twice.
-
- Cleanups for compilation on Irix 6, from David Kaelbling.
-
- * regex-posix.c (scm_regexp_error_msg): Change `rx' argument to
- regex_t pointer. This is what the callers have, mostly.
- (scm_regexp_exec): Don't forget to pass the `rx' argument to
- scm_regexp_error_msg.
-
- * scmsigs.c (scm_sigaction): Cast SIG_DFL and SIG_IGN to SCM, not
- int. That way, if we get a warning on this line, it's more likely
- that we're really missing bits we care about.
-
- * snarf.h (SCM_CONST_LONG): Remove trailing semicolon from
- definition.
-
- * tags.h (SCM_IMP, SCM_NCONSP, SCM_NCELLP, SCM_ITAG3, SCM_TYP3,
- SCM_TYP7, SCM_TYP7S, SCM_TYP16, SCM_TYP16S, SCM_GCTYP16,
- SCM_GCMARKP, SCM_GC8MARKP): Don't cast to int. Either SCM or no
- cast at all is more appropriate in every case. At the moment, we
- assume everywhere that SCM is an integral type anyway.
-
-1999-07-14 Gary Houston <ghouston@easynet.co.uk>
-
- * unif.c (scm_uniform_array_read_x), ports.c (scm_getc): increment
- read_pos after scm_fill_buffer.
-
- * ioext.c (scm_do_read_line): simplify by ignoring the fill_buffer
- return char.
-
- * vports.c (sf_fill_buffer), strports.c (stfill_buffer),
- fports.c (fport_fill_buffer): implement the interface change.
-
- * ports.c (scm_fill_buffer): interface change: no longer increments
- read_pos past the character that's returned. it seems clearer to
- leave it to the caller to decide what to do (thanks Jim).
-
- * vports.c (sf_fill_buffer): put the read char into the buffer
- as well as returning it.
-
- * ports.c (scm_grow_port_cbuf): residue of this deleted procedure
- deleted.
-
-1999-07-13 Gary Houston <ghouston@easynet.co.uk>
-
- * strports.c (scm_strprint_obj): simplify. start with initial
- buffer size of 0.
- (st_seek): don't allow string to be extended if seeking past
- the end of a read-only port.
-
-1999-07-12 Gary Houston <ghouston@easynet.co.uk>
-
- * strports.c (st_seek): change the resize checks.
-
- * ports.c (scm_ftruncate): throw error if offset works out negative.
-
- * strports.c (st_flush): increase string size in blocks of
- SCM_WRITE_BLOCK instead of 1. set read_end to read_pos if
- it's greater and reset read_buf_size.
- (scm_mkstrport): set rw_randow if only writing, since read_buf needs
- to be maintained for output ports too (it holds the written
- part of the string, while write_buf may have unwritten buffer
- chars.)
- (st_truncate): rewritten.
- (top of file): added a few notes.
-
-1999-07-10 Jim Blandy <jimb@savonarola.red-bean.com>
-
- Patch from Greg Badros:
- * snarf.h (SCM_PROC, SCM_PROC1): Use __cplusplus or
- GUILE_CPLUSPLUS_SNARF macros to force adding a cast to the last
- (function pointer) argument to scm_make_gsubr and scm_make_subr
- calls. This avoids warnings in C++ programs using guile-snarf.
-
-1999-07-06 Gary Houston <ghouston@easynet.co.uk>
-
- * strports.c (st_grow_port): set pt->read_pos. set
- pt->read_buf_size one less than pt->write_buf_size if there's
- an unwritten char at the end of the string. similarly for
- pt->read_end.
- (st_resize_port): renamed from st_grow_port.
- (st_seek): simplify by assuming that pt->write_pos == pt->read_pos.
- seek from read_end instead of write_end for SEEK_END.
- (st_ftruncate): calculate current length using readbuf, not write
- buf.
- (scm_strport_to_string): use read_buf_size for length.
- (stfill_buffer): don't re-initialise the readbuf.
-
-1999-07-05 Gary Houston <ghouston@easynet.co.uk>
-
- * strports.c (scm_strport_to_string): new procedure.
- (scm_call_with_output_string, scm_strprint_obj): use
- scm_strport_to_string.
- used SCM_INUM0 instead of SCM_MAKINUM (0) in a few places.
-
-1999-07-08 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * symbols.c (scm_gensym): Bugfix. (Thanks to Johannes Hjorth.)
-
-Fri Jun 25 22:14:32 1999 Greg Badros <gjb@cs.washington.edu>
-
- * smob.c: added scm_make_smob_type_mfpe (), scm_set_smob_mfpe ();
- use scm_make_smob_type_mfpe to initialize "free", "flo", "bigpos",
- and "bigneg" smob types.
-
- * smob.h: Add do ... while(0) idiom to SCM_NEWSMOB. Added
- SCM_RETURN_NEWSMOB macro. Added protos for new functions in
- smob.c.
-
- * *.c: Use scm_make_smob_type_mfpe, instead of scm_newsmob, and
- use SCM_NEWSMOB or SCM_RETURN_NEWSMOB in constructors instead of
- SCM_NEWCELL and setting the CAR/CDR by hand.
-
-1999-07-04 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_putc): call scm_read_flush.
- (scm_puts): likewise.
- (scm_lfwrite): likewise.
- (scm_lseek): likewise.
- (scm_ftruncate): likewise.
- * unif.c (scm_uniform_array_write): likewise.
- * ioext.c (scm_redirect_port): likewise.
-
- * ports.c (scm_fill_buffer): don't take pt argument. change callers.
- (read_flush_void_port): new proc, for void port ptob.
-
- * vports.c (sf_read_flush): likewise.
- * strports.c (st_read_flush): take offset arg.
- * fports.c (local_read_flush): use offset, don't reset putback
- buffer here.
-
- * ports.h (scm_ptobfuns): let read_flush take an offset argument,
- which is the number of chars from the putback buffer.
-
- * ports.c (scm_read_flush): new procedure, resets the putback
- buffer before calling the ptob routine.
-
- * strports.c (scm_strprint_obj): bug fix: get pt from the port,
- not from the parameter obj. (Thanks to Eric Moore.)
-
- * ports.h: SCM_CRDY, SCM_CUC, SCM_CRDYP, SCM_SETRDY, SCM_CUNGET,
- SCM_CGETUN, SCM_CLRDY, SCM_TRY_CLRDY, SCM_N_READY_CHARS: deleted.
-
- * strings.c (scm_make_string): throw error if 2nd arg isn't
- a char.
-
- * unif.c (scm_uniform_array_read_x): fix reading from a port.
- allow non-fports.
- (scm_uniform_array_write): likewise.
-
-1999-06-29 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_drain_input): rewritten.
-
- * fports.c (local_fclose): check putback_buf.
- (local_read_flush): likewise.
-
- * ports.c (scm_remove_from_port_table): maybe free putback_buf.
-
- * ports.h (scm_port): replace cbuf/cbufend/cp with putback_buf/
- putback_buf_size.
- (SCM_INITIAL_PUTBACK_BUF_SIZE): renamed from SCM_INITIAL_CBUF_SIZE.
-
- * ports.c (scm_grow_port_cbuf): deleted.
- (scm_add_to_port_table): initialise putback_buf to 0. remove cbuf
- stuff.
- (scm_char_ready_p): check putback_buf
- (scm_fill_buffer): likewise.
- (scm_ungetc): rewritten.
-
-1999-06-27 Gary Houston <ghouston@easynet.co.uk>
-
- * fports.c (local_fclose): account for push-back buffer.
-
- * ports.c (scm_char_ready_p): check the push-back buffer in
- a new way.
-
- * ioext.c (scm_do_read_line): remove the extra code to handle
- the push-back buffer.
-
- * ports.c (scm_getc): don't use SCM_CRDYP etc.
-
- * ioext.c (scm_do_read_line): call scm_fill_buffer.
-
- * ports.c (scm_ungetc): don't call SCM_CUNGET. reset the
- read buffer pointers.
- scm_fill_buffer: new procedure.
- (scm_getc): call scm_fill_buffer.
-
- * ports.h (struct scm_port): saved_read_buf, saved_read_pos,
- saved_read_end: new fields.
-
-1999-06-24 Mikael Djurfeldt <mdj@orjan.nada.kth.se>
-
- * dynl-dl.c (sysdep_dynl_link): Added parenthesis around the
- trinary conditional in order for the flag computation to be
- correct.
-
-1999-06-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * struct.c, struct.h:
-
- In order to support different kinds of deallocation, a destructor
- slot has been added to struct vtables. This allows for structs
- containing pointers to other memory blocks.
-
- (scm_struct_i_free): New hidden struct slot. Holds destructor for
- instances to this vtable.
- (scm_struct_free_0): New destructor: Doesn't deallocate data.
- (scm_struct_free_light): New destructor: Deallocates a light
- struct (i.e. a struct without hidden slots).
- (scm_struct_free_standard): New destructor: Deallocates standard
- structs.
- (scm_struct_free_entity): New destructor: Deallocates entity
- structs.
- (SCM_SET_VTABLE_DESTRUCTOR): New macro.
-
- Changes to hidden slots:
-
- (scm_struct_i_size): scm_struct_i_flags now shares space with
- scm_struct_i_size which holds the size of light structs.
- (scm_struct_i_n_words): This slot has changed meaning. Previously
- it included hidden slots. Now it indicates visible slots.
- (scm_alloc_struct): Clear flags.
- (SCM_STRUCTF_MASK): 4 new flag positions added => 12 bits.
-
- (struct_num, scm_struct_i_tag): Removed.
- (scm_struct_vtable_tag): Base tag on the pointer to mallocated
- memory.
- (scm_struct_ihashq): Base hash value on pointer to struct handle.
-
- * tag.c (scm_tag): Base tag on vtable pointer.
-
- * objects.c (scm_init_objects): Initialize destructor slot of the
- primordial entity class.
-
- * objects.h (SCM_SET_CLASS_DESTRUCTOR,
- SCM_SET_CLASS_INSTANCE_SIZE): New macros.
-
- * gc.c (scm_gc_sweep): Call struct free slot.
-
- * keywords.c, keywords.h (scm_c_make_keyword): New function.
- (We should remove the use of the prefix '-'.)
-
- * snarf.h (SCM_KEYWORD, SCM_GLOBAL_KEYWORD): New macros.
-
- * libguile.h: #include "objects.h"
-
-1999-06-22 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c (DYNL_GLOBAL): New.
- (sysdep_dynl_link): Added `flags' argument.
- (kw_global, sym_global): New.
- (scm_dynamic_link): Handle keyword arguments. Pass suitable flags
- to sysdep_dynl_link.
- * dynl-dl.c (sysdep_dynl_link): Handle new `flags' argument by
- conditrionally adding RTLD_GLOBAL to DLOPEN_MODES.
- * dynl-shl.c (sysdep_dynl_link): Add and ignore new flags
- argument.
- * dynl-dld.c (sysdep_dynl_link): Add and ignore new flags
- argument.
- * dynl.h (scm_dynamic_link): Added rest argument.
-
-1999-06-21 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c (sysdep_dynl_unlink, sysdep_dynl_func): Use const
- qualifier for char* argument, to match prototypes. Thanks to Mark
- Elbrecht.
-
-1999-06-21 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * dynl.c (no_dynl_error, sysdep_dynl_link, sysdep_dynl_unlink,
- sysdep_dynl_func): Use ANSI declarations, and const char *
- pointers. (Thanks to Mark Elbrecht.)
-
-1999-06-19 Jim Blandy <jimb@savonarola.red-bean.com>
-
- Patch from Greg Harvey:
- * eq.c, eval.c, list.c, ramap.c, vectors.c: Always write parens
- around the condition of an `if', `while', etc., even if the
- condition is a macro invocation that expands to something
- surrounded by parens. It's more readable.
-
- * eval.c (scm_map, scm_for_each): Verify that all arguments are
- proper lists, and of the appropriate lengths.
- (check_map_args): New function. (Thanks to Greg Harvey for the
- bug report.)
-
-1999-06-19 Michael Livshin <mike@olan.com>
-
- * guardians.c (guardian_t): `next' - new field to be used for
- chaining the live guardians in a single-linked list during the GC
- mark phase.
- (GUARDIAN_NEXT): convenience macro to access the `next' field.
- (guardians, guardians_size, n_guardians): deleted.
- (first_live_guardian, current_link_field): new globals used to
- point to the head of the live guardian list and current `next'
- field, respectively.
- (g_mark): append the guardian to the live guardian list.
- (scm_guardian_gc_init): zero the live guardian list.
- (scm_guardian_zombify): iterate through the live guardian list.
-
- (Applied by Jim Blandy.)
-
-1999-06-16 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * gc.c (scm_mallocated): Just make this signed.
- (scm_igc): Check for underflow by seeing if this is negative.
- Much cleaner.
- * gc.h (scm_mallocated): Fix declaration.
- (Thanks to Greg Harvey.)
-
- * ports.h: #include <sys/types.h>, to get a definition for `off_t'.
-
-1999-06-15 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * stime.c (bdtime2c): Initialize lt->gmtoff and lt->tm_zone from
- sbd_time. (Thanks to Eric Hanchrow.)
-
- Fix from Ken Raeburn <raeburn@raeburn.org>:
- * weaks.c (scm_make_weak_vector): Add another extra slot before
- vector contents, to be used only during garbage collection.
- * weaks.h (SCM_WVECT_GC_CHAIN): New macro to access it.
- * gc.c (scm_weak_vectors): Now a SCM instead of a SCM*, and now
- static.
- (scm_weak_size, scm_n_weak): Deleted.
- (scm_igc): Use SCM_WVECT_GC_CHAIN to build up a chain of weak
- vectors without allocating new storage during GC, using
- scm_weak_vectors as the head of the chain.
- (scm_mark_weak_vector_spines): Walk SCM_WVECT_GC_CHAIN chain
- instead of stepping through an array.
- (scm_gc_sweep): Update offset used to find start of weak vector to
- free it.
- (scm_init_storage): Set scm_weak_vectors to EOL.
-
- Fix from Ken Raeburn <raeburn@raeburn.org>:
- * gc.c (already_in_gc): New variable.
- (scm_igc): Set and clear already_in_gc; abort if it's set at
- entry.
-
-1999-06-14 Jim Blandy <jimb@savonarola.red-bean.com>
-
- Fix from Gary Houston:
- * fports.c (local_seek): Signal an error if the seek fails.
- * ports.c (scm_lseek): Don't check return value of port's seek
- function; it's its job to signal an error if there's a problem.
-
-1999-06-12 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * strports.c (scm_call_with_output_string): Don't include the
- extra character at the end of the string in the result.
-
- * ioext.c (scm_read_line): Switch to reading properly.
-
- * fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
- scmsigs.c, strports.c, vports.c: Install the sources which
- actually correspond to the changes described below. I got the
- ChangeLog entries and the patch from two different places...
-
-1999-06-09 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * gc.c (scm_igc): Check for scm_mallocated underflow. Otherwise,
- it shows up as terrible performance, as we GC constantly.
-
- * ioext.c (scm_do_read_line): Rewritten to use memchr to find the
- newline. A bit faster, and definitely hairier.
- (scm_read_line): Count newlines here instead.
-
- * strings.c (scm_take_str): New function.
- (scm_take0str): Reimplement in terms of scm_take_str. * strings.h
- (scm_take_str): New declaration. * ioext.c (scm_read_line): Use
- scm_take_str, to avoid copying the string.
-
- Add some simple-minded support for line buffered ports.
- * ports.h (SCM_BUFLINE): New flag for ports.
- * init.c (scm_init_standard_ports): Request line-buffering on
- the standard output port.
- * ports.c (scm_mode_bits): Recognize 'l' as a request for line
- buffering.
- (scm_putc, scm_puts, scm_lfwrite): If the port is line-buffered,
- and there's a newline to be written, flush the port.
-
- Gary Houston's open-buffer port patches:
-
- 1999-04-26 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c: (scm_lseek): clear buffers even if just reading current
- position.
-
- * fports.c (local_fclose): call local_fflush unconditionally.
- (various): don't use the scm_must... memory procs.
-
- 1999-04-25 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (scm_port): make read_pos a pointer to const.
- strports.c: take care of rw_active and rw_randow.
- fports.c: scm_fport_drain_input: removed. do it all in ports.c.
- strports.c (scm_mkstrport): check that pos is reasonable.
- ioext.c (scm_ftell, scm_fseek): use lseek.
- (SCM_CLEAR_BUFFERS): macro deleted.
- ioext.c (redirect_port: use ptob fflush, read_flush.
- ports.h (scm_ptobfuns): add ftruncate.
- ports.c (scm_newptob): set ftruncate.
- adjust ptob tables.
- ports.c (scm_ftruncate): new procedure.
- fports.c (local_ftrunate), strports.c (str_ftruncate): new procs.
- strports.c (st_seek, st_grow_port): new procs.
- fports.h (scm_port): change size types from int to off_t.
- ports.c (scm_init_ports): initialise the seek symbols here
- instead of in ioext.c.
- strports.c (scm_call_with_output_string): start with an empty
- string, so seek and ftruncate can be used.
-
- gdbint.c: adjust string port usage.
-
- 1999-04-24 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (scm_ptobfuns): add a read_flush procedure which is the
- equivalent to fflush for the read buffer.
- * ports.c (scm_newptob): set read_flush.
- ports.c (void_port_ptob): set read_flush.
- fports.c (local_read_flush): new proc. add to ptob.
- strport.c (st_read_flush): likewise.
- vport.c (sf_read_flush): likewise.
- fports.h (struct scm_fport): remove random member. there's nothing
- left but fdes. leaving it as a struct to allow for future changes.
- fports.c: replace usage of scm_fport::random with scm_port::rw_random.
- ports.c: (scm_putc, scm_puts, scm_lfwrite): call the read_flush
- ptob proc if the read buffer is filled.
-
- 1999-04-23 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (scm_port): add a rw_random member and replace
- reading and writing members with rw_active member.
- SCM_PORT_READ/SCM_PORT_WRITE: new values.
-
- 1999-04-22 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (struct scm_port_table): add writing and reading members
- to replace write_needs_seek: it isn't good enough for non-fports.
- ports.c, ioext.c, fports.c: corresponding changes.
- (struct scm_port_table): give it a typedef and rename to scm_port.
- ports.c, fports.c, strports.c, vports.c, ioext.c, ports.h:
- corresponding changes.
-
- 1999-04-20 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.c (scm_newptob): bugfix: set seek member.
- * (scm_lseek): new procedure, using code from ioext.c:scm_fseek
- and generalised to all port types.
-
- 1999-04-18 Gary Houston <ghouston@easynet.co.uk>
-
- * scmsigs.c (scm_init_scmsigs): set the SA_RESTART flag for all
- signals (it was only being done for handlers installed from Scheme).
- Otherwise (for example) SIGSTOP followed by SIGCONT on an interpreter
- waiting for input caused an EINTR error from read.
-
- 1999-04-07 Gary Houston <ghouston@easynet.co.uk>
-
- * ports.h (struct scm_port_table): make all the char members
- unsigned, so they convert to int without becoming negative if large.
-
- 1999-03-14 Gary Houston <ghouston@easynet.co.uk>
-
- * fports.c (scm_fdes_wait_for_input): forgot to check compilation
- with threads enabled. rename this procedure to
- fport_wait_for_input and take a port instead of a fdes.
- use scm_fport_input_waiting_p instead of scm_fdes_waiting_p.
-
- * readline.c (scm_readline): Applied a patch from Greg Harvey to
- get readline support working again: use fdopen to get FILE objects.
-
- 1999-02-26 Gary Houston <ghouston@easynet.co.uk>
-
- * gc.c (scm_init_storage): install an atexit proc to flush the
- ports.
- (cleanup): the new proc. it sets a global variable which can be
- checked by the ptob flush procs to avoid trying to throw
- exceptions during exit. not very pleasant but it seems more reliable.
- * fports.c (local_fflush): check terminating variable and if set
- don't throw exception.
- * CHECKME: that the atexit proc is installed if unexec used.
-
- * throw.c (scm_handle_by_message): don't flush all ports here.
- it still causes bus errors.
-
- * fports.h (SCM_FPORT_CLEAR_BUFFERS): rename to SCM_CLEAR_BUFFERS
- and move to ioext.c.
-
- * fports.c (scm_fdes_waiting_p): merged into fport_input_waiting_p.
-
- * ports.c (scm_char_ready_p): check the port buffer and call the
- ptob entry if needed.
-
- * ports.h (scm_ptobfuns): input_waiting_p added. change all the
- ptob initialisers. use it in char-ready
-
- * ioext.c (scm_do_read_line): moved from ports.c. make it static.
-
- * vports.c (sfflush): modified to write a char (since softports
- currently use shortbuf.)
-
- * fports.c (scm_standard_stream_to_port): moved to init.c and
- made static.
-
- * init.c (scm_init_standard_ports): make stdout and stderr
- unbuffered if connected to a terminal. with stdio they
- were line-buffered by default.
-
- (scm_ptobfuns): fputc, fputs, fwrite, fgetc, fgets removed.
- update ptob tables.
-
- * ports.h (scm_ptobfuns): change fflush return to void.
- change flush proc definitions.
-
- * strports.c (scm_call_with_output_string): get size from
- buffer instead of port stream.
- (st_flush): new proc.
-
- * ports.h (struct scm_port_table): added write_end member,
- as an optimisation. set it where write_buf_size is set.
-
- * ports.h (struct scm_port_table): change stream from void *
- back to SCM. SCM presumably must be large enough to hold a
- pointer (and probably vice versa but who knows.)
- (SCM_SSTREAM): deleted. change users back to SCM_STREAM.
-
- (scm_puts): rewritten
- * fports.c (local_ffwrite, local_fputs): removed.
- * strports.c (stputc, stputs, stwrite): dyked out (FIXME)
- * vports.c (sfputc, sfputs, sfwrite) likewise.
- * ports.c (write_void_port, puts_void_port): removed.
- (putc_void_port, getc_void_port, fgets_void_port): likewise.
-
- * ports.c (scm_lfwrite): rewritten using fport.c version.
-
- * fports.c (local_fputc): deleted.
-
- * ports.c (scm_add_to_port_table): initialise write_needs_seek.
-
- * ports.h (scm_ptobfuns): add seek function pointer.
- * fports.c: set it to local_seek, new procedure.
-
-
- * fports.h (SCM_MAYBE_DRAIN_INPUT): moved to ports.c.
- use ptob for seek. take ptob instead of fport arg.
-
- * ports.h (struct scm_port_table): new member write_needs_seek,
- replaces reading member in fport struct.
-
- * vports.c (sfgetc): store the getted char into the buffer.
- rename to sf_fill_buffer and install it for fill-buffer in ptob.
- the Scheme interface is still a procedure that gets a char.
- (scm_make_soft_port): set up the port buffer (shortbuf).
-
- * fports.c (local_fgetc, local_fgets): deleted.
- * strports.c (stgetc): likewise.
- * ports.c: scm_generic_fgets: likewise.
-
- * ports.h (scm_ptobfuns): add fill_buffer.
- * ports.c (scm_newptob): assign it.
- * strports.c (scm_mkstrport): set up the buffer.
- put just the string into the stream, not cons (pos stream).
- (stfill_buffer): new proc.
-
- * ports.h: fport buffer moved into port table: to be
- used for all port types.
-
- 1998-12-20 Gary Houston <ghouston@easynet.co.uk>
-
- * throw.c (scm_handle_by_message): flush ports at exit.
-
- * socket.c (scm_sock_fd_to_port): use scm_fdes_to_port.
- (scm_getsockopt, scm_setsockopt, scm_shutdown, scm_connect,
- scm_bind, scm_listen, scm_accept, scm_getsockname,
- scm_getpeername, scm_recv, scm_send, scm_recvfrom,
- scm_sendto,
- use SCM_FPORT_FDES. use SCM_OPFPORTP not SCM_FPORTP.
-
- * posix.c (scm_getgroups): use SCM_ALLOW/DEFER_INTS.
- (scm_ttyname): use SCM_FPORT_FDES.
- (scm_tcgetpgrp, scm_tcsetpgrp): likewise.
-
- * filesys.c (scm_chown): use SCM_FPORT_FDES.
- (scm_chmod, scm_stat, scm_truncate_file: likewise.
-
- * ioext.c (scm_isatty_p): use SCM_FPORT_FDES.
- (scm_fdes_to_ports): modified.
- (scm_fdopen): use scm_fdes_to_port.
-
- * ports.c (scm_init_ports): don't try to flush ports using
- atexit(). it's too late, errors will cause SEGV.
-
- * fports.c (scm_fport_buffer_add): new procedure.
-
- * fports.h (SCM_FDES_RANDOM_P): new macro. use it in
- scm_fdes_to_port and scm_redirect_port.
-
- * ioext.c (scm_redirect_port): use setvbuf to set buffers in the
- new port. reset fp->random.
-
- * fports.c (scm_fdes_to_port), ports.c (scm_void_port),
- filesys.c (scm_opendir):
- restore defer interrupts while the port is constructed.
- (scm_setvbuf): if mode is _IOFBF and size is not supplied,
- derive buffer size from fdes or use a default.
- (scm_fdes_to_port): use setvbuf instead of creating the buffers
- directly.
-
- vports.c (various places): use SCM_SSTREAM.
- strports.c: likewise.
- * gdbint.c: likewise.
- * ports.h (SCM_SSTREAM): new macro.
-
- * fports.c (scm_input_waiting_p): use scm_return_first, since port
- may be removed from the stack by the tail call to scm_fdes_waiting_p.
-
- * fports.h (SCM_CLEAR_BUFFERS): new macro.
-
- * filesys.c (scm_fsync): use SCM_FDES.
-
- * ports.c (scm_force_output): call scm_fflush.
-
- * print.c (scm_newline): don't check errno for EPIPE (it wouldn't
- reach this point.) don't flush port (if scm_cur_outp).
-
- * fports.h (SCM_FPORT_FDES): new macro.
-
- * filesys.c (scm_fcntl): get fdes from fport.
- (set_element, get_element): likewise.
-
- * vports.c (sfflush): don't need to set errno.
-
- * ports.c: install scm_flush_all_ports to be run on exit.
-
- * filesys.c (scm_open): adjust port_mode for O_APPEND and O_CREAT.
-
- ports.c fports.c ioext.c posix.c socket.c net_db.c filesys.c:
- removed all uses of SCM_DEFER/ALLOW ints for now. they were mainly
- just protecting errno. some may need to be put back.
-
- * scmsigs.c (take_signal): save and restore errno while this
- proc runs.
-
- *fports.c (print_pipe_port, local_pclose, scm_pipob): deleted.
- open-pipe, close-pipe are emulated in (ice-9 popen)
- ports.c (scm_ports_prehistory): don't init scm_pipob.
- ports.h (scm_tc16_pipe): deleted.
- posix.c (scm_open_pipe, scm_close_pipe): deleted.
-
- * ioext.c (scm_primitive_move_to_fdes): use fport.
- * fport.c (scm_fport_fill_buffer): flush write buffer if needed.
- change arg type from scm_fport to SCM port.
- fport.h (SCM_SETFDES): removed.
- (SCM_MAYBE_DRAIN_INPUT): new macro.
-
- * fport.h (struct scm_fport): added 'random'.
- fport.c (scm_open_file): set random if lseek works.
-
- * ioext.c (scm_dup_to_fdes): use SCM_FSTREAM.
- (scm_ftell): always use lseek and account for the buffer.
- (scm_fileno): use fport buffer.
- (scm_fseek): clear fport buffers. always use lseek.
-
- * posix.c (scm_pipe): use fport buffer.
- * unif.c: include fports.h instead of genio.h.
- * fports.c (scm_fdes_wait_for_input, scm_fport_fill_buffer): new
- procedures.
- (local_fgetc): use them.
- (local_ffwrite): use buffer.
- (local_fgets): use buffer.
- (scm_setbuf0): deleted.
- (scm_setvbuf): set the buffer.
- (scm_setfileno): deleted.
- (scm_evict_ports): set fdes directly.
- (scm_freopen): deleted. doesn't seem useful in Guile.
- (scm_stdio_to_port): deleted.
- fports.h (struct scm_fport): add shortbuf member to avoid separate
- code for unbuffered ports.
- (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP): moved
- from ports.h.
-
- * genio.c, genio.h: move contents into ports.c, ports.h. The
- division wasn't useful.
-
- * fports.c, fports.h (scm_fport_drain_input): new procedure.
- * ports.c (scm_drain_input): call scm_fport_drain_input.
- * scm_fdes_waiting_p: new procedure.
- * fports.c (scm_fdes_to_port): allocate read and/or write buffers.
- (scm_input_waiting_p): check the buffer.
- (local_fgetc, local_fflush, local_fputc): likewise.
-
- * fports.h (scm_fport): read/write_buf,_pos,_buf_end,,_buf_size:
- new members.
- * init.c (scm_init_standard_ports): pass fdes instead of FILE *.
-
- * ports.c (scm_drain_input): new procedure.
- ports.h: prototype.
- * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
- pre_read, pre_write): removed.
- (local_fputc, local_fputs, local_ffwrite): use write, not stdio.
- (scm_standard_stream_to_port): change first arg from FILE * to
- int fdes.
- (local_fflush): flush fdes, not FILE *.
- * fports.h (SCM_NOFTELL): removed.
- * genio.c, ports.c: don't include filesys.h.
- * genio.c (scm_getc): don't use scm_internal_select if FPORT.
- do it in fports.c:local_fgetc.
- * genio.c: don't use SCM_SYSCALL when calling ptob procedures.
- do it where it's needed in the port smobs.
- * filesys.c (scm_input_waiting_p): moved to fports.c, stdio
- buffer support removed. take SCM arg, not FILE *.
- * filesys.h: prototype moved too.
- * fports.c (scm_fdes_to_port): new procedure.
- (local_fgetc): use read not fgetc.
- (local_fclose): use close, not fclose.
- (local_fgets): use read, not fgets
- * fports.h: prototype for scm_fdes_to_port.
- * fports.h (scm_fport): new struct.
- * fports.c (scm_open_file): use open, not fopen.
- #include fcntl.h
- * ports.h (struct scm_port_table): change stream from SCM to void *.
- * ports.c (scm_add_to_port_table): check for memory allocation error.
- (scm_prinport): remove MSDOS hair.
- (scm_void_port): set stream to 0 instead of SCM_BOOL_F.
- (scm_close_port): don't throw errors: do it in fports.c.
-
-1999-06-04 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
-
- * numbers.c: Added #include "feature.h".
-
-1999-05-23 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * smob.c, smob.h (scm_make_smob_type): New interface to smob
- types (supersedes scm_newsmob).
- (scm_set_smob_mark, scm_set_smob_free, scm_set_smob_print,
- scm_set_smob_equalp): New functions. Sets smob functions.
- (SCM_NEWSMOB): New macro. Creates smob objects.
- (scm_make_smob): New function. Creates smob objects and
- mallocates memory.
- (scm_smob_free, scm_smob_print): Default free and print
- functions.
-
- * Makefile.am: Removed markers.c, markers.x, markers.h.
-
- * markers.c, markers.h: Removed. (Contents moved to smob.c,
- smob.h.)
-
- * arbiters.c, async.c, regex-posix.c: Use new smob interface.
-
- * eval.c, fports.c, libguile.h, ports.c: Removed #include
- "markers.h".
-
- * fluids.c, guardians.c, srcprop.c, threads.c: Added #include
- "genio.h".
-
- * regex-posix.c, regex-posix.h: Renamed scm_tc16_regex_t -->
- scm_tc16_regex.
-
-1999-05-09 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * strop.c (scm_string_capitalize_x): Use the SCM object `s' in
- error messages, not the uninitialized string `str'. Love that
- typechecking.
-
- * strop.c (scm_substring_move_x): New function, which can handle
- arbitrary overlapping substrings.
- (substring-move-left!, substring-move-right!): These are
- now just synonyms for substring-move!.
- * strop.h (scm_substring_move_x): New prototype.
- (scm_substring_move_left_x, scm_substring_move_right_x):
- #define these as synonyms for scm_substring_move_x.
-
- Fixes, cleanups, and new functions from Greg Harvey.
-
- 1999-05-03 Greg Harvey <Greg.Harvey@thezone.net>
-
- * strop.c (scm_string_capitalize_x, scm_string_capitalize): new
- functions; capitalize the first letter of each word in the
- argument string, and downcase the rest.
- (scm_string_ci_to_symbol): string->symbol, such that the same
- symbol is returned for any argument where the only difference
- between strings is in capitalization.
- (scm_string_upcase, scm_string_downcase): non-destructive
- versions.
-
- 1999-01-13 Greg Harvey <Greg.Harvey@thezone.net>
-
- * strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
- changed to use memmove.
- * strop.c (scm_i_index): removed the pos arguments (it's only
- called twice, and each time it's SCM_ARG1, SCM_ARG2, SCM_ARG3,
- SCM_ARG4).
-
- 1999-01-11 Greg Harvey <Greg.Harvey@thezone.net>
-
- * strop.h: fixed prototypes.
-
- * strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
- changed to have 5 required args, rather than 2 required, and 3 required
- rest args. Also modified to allow str1 & str2 to overlap.
- (scm_substring_fill_x): changed to 4 args, rather than 2 args and
- 2 required rest args.
-
-1999-05-02 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * procs.h: Doc fix.
-
- * Makefile.am (modinclude_HEADERS): Add kw.h, so the new version
- gets installed.
- * Makefile.in: Regenerated.
-
- * numbers.c: If we're supporting floating-point, provide the
- feature "inexact".
-
- * scmconfig.h.in: Regenerated; see today's change to
- ../configure.in.
-
-1999-04-17 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * Makefile.in: Regenerated.
-
- Remove readline support, to avoid copyright confusion.
- * Makefile.am: Remove readline files from lists.
- * init.c: Don't initialize readline.
- * scmconfig.h.in: Regenerated.
-
- * numbers.c (s_bignum): Renamed to s_bignum, and made static.
- Libguile should not be exporting random little strings.
- * numbers.h (s_bignum): Extern declaration removed.
-
- More const changes from Ken Raeburn.
- * numbers.c (scm_s_bignum, fx): Now const.
- (scm_logtab, scm_ilentab, s_adjbig): Now static and const.
- * numbers.h (scm_s_bignum): Update declaration.
- * eval.c (bodycheck): Argument WHAT now points to const.
- * snarf.h (SCM_SYNTAX): Name is const.
-
- * eval.c (scm_i_let): Make this globally visible, to avoid dynamic
- linking crashes on NetBSD. (Thanks to Ken Raeburn.)
-
-1999-03-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * numbers.c (isfinite): Define this macro if not defined: Return a
- non-zero value if X is finite. (From ISO C 9x standard.)
- (scm_inexact_to_exact): Bugfix: Don't pass NaNs to scm_dbl2big.
- (Thanks to Jon Trowbridge and Greg Harvey.)
-
-1999-03-22 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * keywords.c (scm_tc16_kw): Added for backward compatibility.
- Will be removed in next release.
-
- * Makefile.am (modinclude_HEADERS): Added kw.h;
-
- * kw.h: New file.
-
- * libguile.h: #include "libguile/kw.h"
-
-1999-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * pairs.c (scm_set_car_x, scm_set_cdr_x): Return SCM_UNSPECIFIED.
-
-1999-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * print.c (scm_isymnames): Added #@dispatch and #@hash-dispatch.
-
- * hashtab.c, hashtab.h (scm_hash_fold, scm_internal_hash_fold):
- Place the table argument last.
-
-1999-03-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * modules.c: #include "procprop.h"
- (scm_system_module_env_p): Assume root environment is no lookup
- closure is found.
-
- * debug.c, eval.c, evalext.c, gdbint.c stacks.c:
- #include "modules.h".
-
- * modules.c, modules.h, eval.c, eval.h (scm_env_top_level,
- scm_top_level_env, scm_system_module_env_p): Moved to modules.c.
-
- * eval.c, eval.h (scm_top_level_lookup_closure): Removed.
-
-1999-03-18 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * error.c (scm_wta): Pass SCM_LIST1 (arg) instead of SCM_EOL to
- scm_misc_error when pos is a string. This allows for dispatching
- arbitrary error messages with one argument via SCM_ASSERT:
- SCM_ASSERT (<cond>, obj, "Undigestable object: %S", <subr>);
-
-1999-03-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * list.c (scm_reverse): Report an error if given a circular list
- instead of filling memory.
- * list.c (scm_reverse_x): Check args.
-
-1999-03-14 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- Most of this batch of changes is about how to deal with extended
- types when an object system is loaded into Guile. A nice object
- system is capable of representing Guile's types as class objects.
-
- For example, we want a regular expression to be of class <regex>.
- But regular expressions are smobs which aren't under direct
- control of the object system, so there has to be some mechanism
- which informs the object system that a new class should be created
- which can represent the smob type. I call this a "wrapper class".
-
- * objects.c: #include "smob.h";
- (scm_class_keyword): Removed. (Class is automatically created by
- make_smob_classes.)
- (scm_smob_class): Array of smob classes indexed by smobnum.
- (scm_make_extended_class): "Plugin" function pointer for creation
- of wrapper classes for smob and struct types.
- (scm_class_of): Handle compiled closures. (Currently regarded as
- <procedure>.);
- Use scm_smob_class to handle smob types;
- Handle scm_tc16_bigpos, scm_tc16_bigneg, and, scm_tc16_keyword
- through scm_smob_class;
- Handle structs.
-
- * smob.c (scm_newsmob): Also create a wrapper class if
- scm_smob_class has been initialized.
-
- * smob.h (SCM_TC2SMOBNUM): New macro for conversion between tc16
- type code and smobnum.
-
- * struct.c: #include "alist.h", "weaks.h", "hashtab.h";
- (scm_struct_table): Weak key table with auxilliary information for
- struct types. Currently used for names and wrapper classes.
- (scm_struct_ihashq): Hash function for structs.
- (scm_struct_create_handle): Get/create entry in scm_struct_table.
- (scm_struct_vtable_name, scm_set_struct_vtable_name_x): Procedures
- for accessing names of vtables. The record implementation in
- boot-9.scm currently uses the setter to record the name of record
- types. When the object system is initialized, it can use this
- information to create wrapper classes with suitable names.
- (scm_init_struct): Allocate scm_struct_table.
- (scm_alloc_struct): Don't initialize scm_struct_i_tag here.
- (struct tags are a finite resource and we might want to restrict
- the use of tags to vtables only. E.g., Goops only uses tags for
- classes.)
- (scm_make_struct): Use scm_struct_entity_n_extra_words instead of
- magic number 5.
- (scm_struct_vtable_tag): Use scm_struct_i_tag instead of magic
- number -1.
-
- * struct.h (SCM_STRUCT_TABLE_NAME, SCM_SET_STRUCT_TABLE_NAME,
- SCM_STRUCT_TABLE_CLASS, SCM_SET_STRUCT_TABLE_CLASS): New macros.
- Used for access of struct table entries.
-
- * hashtab.c, hashtab.h (scm_internal_hash_fold): New function.
- (scm_hash_fold): New procedure. Used to process all entries in a
- hash table (in no particular order).
-
- Argh! For the umpteenth time I got compilation errors because of
- the "intuitive" name `kw'. This has to have an end:
-
- * Makefile.am, init.c, libguile.h, objects.c, root.h: Replaced
- "kw" --> "keywords" everywhere.
- (I doubt that this will cause big compatibility problems since the
- application interface is unaffected.)
-
- * keywords.c, keywords.h: Files renamed from kw.c, kw.h.
-
-1999-03-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * srcprop.c (scm_set_source_property_x): Bugfix: Convert line and
- column inums to native form.
-
- Improvement of backtraces: Introduces a new stack narrowing
- specifier, #t, for the inner cut. (See further in the comments in
- stacks.c:narrow_stack ().)
-
- * procprop.c, procprop.h (scm_sym_system_procedure): New symbol.
- (Used to flag certain system procedures which shouldn't turn up in
- backtraces.)
-
- * eval.c (scm_sym_system_module): New symbol. (Used to flag
- modules which aren't "user" modules and the code of which
- shouldn't turn up in backtraces.)
-
- * eval.c, eval.h (scm_top_level_lookup_closure): New function:
- Extract the lookup closure from an environment.
- (scm_system_module_env_p): New function: Return non-#f if MODULE
- is a system module.
-
- * stacks.c: #include "eval.h"; #include "procprop.h";
- (narrow_stack): Handle new narrowing specifier #t.
-
- * debug.c (scm_procedure_name): Use name property in the default
- case.
-
- * gc.c, gc.h (scm_object_address): Renamed from scm_object_addr ().
-
- * objects.h (scm_si_redefined, scm_si_hashsets): Shifted.
-
- * eval.c, procs.c, procs.h, procprop.c: Renamed getter ->
- procedure throughout.
-
- * print.c (scm_iprin1): Removed extraneous space when printing
- procedure-with-setters.
-
- Entity and operator setter slots were introduced as a complement
- to the <procedure-with-setter> type in order to support entities
- and operators with setters in a reasonable and efficient way.
- * procs.c (scm_procedure, scm_setter): Handle entity and operator
- setter slots.
-
- * objects.h (SCM_OPERATOR_SETTER, SCM_ENTITY_SETTER): New macros.
- (struct scm_metaclass_operator): New setter slot.
-
- * gc.c (scm_gc_mark): Mark struct setter slot.
-
- * struct.c (scm_make_struct): Allocate one word more for
- entities and initialize the new slot.
-
- * struct.h (scm_struct_i_setter): New constant.
-
-1999-03-08 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * objects.h (SCM_OBJ_CLASS_REDEF): New macro: Find class slots
- directly through the instance.
-
- * objects.c (scm_class_of): Use SCM_OBJ_CLASS_REDEF.
-
- * gc.c (scm_gc_sweep): Bugfix: Look for SCM_STRUCT_F_LIGHT flag at
- scm_struct_i_flags instead of scm_vtable_index_layout!
-
- * list.c (scm_list_star): New procedure.
-
-1999-02-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * debug.c (scm_init_debug): Added scheme level constant
- SCM_IM_DISPATCH.
-
-1999-02-12 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * __scm.h (SCM_FENCE): Fix `asm volatile' warnings for EGCS.
-
- * gc.c (scm_gc_sweep): Properly properly record the size of a
- freed structure. (Thanks to Greg Harvey.)
-
-1999-02-07 Jim Blandy <jimb@savonarola.red-bean.com>
-
- * gc.c (scm_gc_sweep): Properly record the size of a freed
- structure. (Thanks to Michael Livshin.)
-
-1999-02-06 Jim Blandy <jimb@savonarola.red-bean.com>
-
- Readline paren matching from Greg Harvey, with modifications from
- Mikael Djurfeldt:
-
- * readline.c (in_readline, reentry_barrier_mutex): Make these
- static.
-
- * readline.c: #include <sys/time.h> and "iselect.h", so we can
- control how long we're paused, and threads will run while we're
- paused.
- (match_paren, find_matching_paren, init_bouncing_parens): New
- functions.
- (scm_init_readline): Call init_bouncing_parens.
- (scm_readline_opts): Add the bounce-parens option.
- * readline.h (SCM_READLINE_BOUNCE_PARENS): New readline option.
- (SCM_N_READLINE_OPTIONS): Adjust.
-
-1999-02-06 Jim Blandy <jimb@zwingli.cygnus.com>
-
- All the below are changes from Ken Raeburn, to get Guile to use
- const where it can.
-
- * chars.c (scm_lowers, scm_uppers, scm_charnames, scm_charnums),
- eval.c (s_expression, s_test, s_body, s_bindings, s_variable,
- s_clauses, s_formals): Variables now const.
-
- * eval.c (promsmob): Now const.
- * macros.c (macrosmob): Now const.
- * smob.c (scm_newsmob): Smobfuns argument now points to const.
- (freecell, flob, bigob): Now const.
-
- * dynl.c (scm_make_argv_from_stringlist, scm_coerce_rostring),
- error.c (scm_error, scm_syserror, scm_syserror_msg,
- scm_num_overflow, scm_out_of_range, scm_wrong_type_arg,
- scm_memory_error, scm_misc_error, scm_wta), macros.c
- (scm_make_synt), feature.c (scm_add_feature), filesys.c
- (scm_input_waiting_p), gc.c (scm_gc_start, scm_igc,
- scm_must_malloc, scm_must_realloc), gsubr.c (scm_make_gsubr),
- numbers.c (scm_num2dbl, scm_two_doubles, scm_num2long,
- scm_num2long_long, scm_num2ulong),
- options.c (scm_options), posix.c (scm_convert_exec_args,
- environ_list_to_c), procs.c (scm_make_subr_opt, scm_make_subr),
- ramap.c (scm_ramapc), read.c (scm_flush_ws), socket.c
- (scm_sock_fd_to_port, scm_fill_sockaddr, scm_addr_vector), stime.c
- (setzone, restorezone, bdtime2c), strop.c (scm_i_index),
- strports.c (scm_mkstrport), symbols.c (scm_intern_obarray_soft,
- scm_intern_obarray, scm_intern, scm_intern0,
- scm_sysintern0_no_module_lookup, scm_sysintern, scm_sysintern0,
- scm_symbol_value0), unif.c (scm_aind, scm_shap2ra): Argument
- indicating calling subr, error message text, reason for error,
- symbol name or feature name are now pointer to const.
- * snarf.h (SCM_PROC, SCM_PROC1): String variables are now const.
-
- * procs.c (scm_init_iprocs): iproc argument now points to const.
- * pairs.c (cxrs): Now const.
-
- * chars.h, error.h, feature.h, filesys.h, gc.h, gsubr.h, macros.h,
- numbers.h, options.h, procs.h, ramap.h, read.h, smob.h,
- strports.h, symbols.h, unif.h: Update variable declarations and
- function prototypes for above changes.
-
- * dynl.c, dynl-dld.c, dynl-dl.c, dynl-shl.c (sysdep_dynl_link,
- sysdep_dynl_unlink, sysdep_dynl_func): Arguments FNAME, SUBR, and
- SYMB now point to const.
-
-1999-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * print.c (scm_iprin1): Use scm_procedure_name instead of
- scm_procedure_property for compiled closures.
-
- * tags.h (scm_tc7_pws): New procedure type. Four representations
- for procedure-with-setters were considered before selecting this
- one:
-
- 1. A closure where the CODE and ENV slots are used to represent
- the getter and a new SETTER slot is used for the setter. The
- original getter is stored as a `getter' procedure property. For
- closure getters, the CODE and ENV slots contains a copy of the
- getter's CODE and ENV slots. For subr getters, the CODE contains
- a call to the subr.
-
- 2. A compiled closure with a call to the getter in the cclo
- procedure. The getter and setter are stored in slots 1 and 2.
-
- 3. An entity (i.e. a struct with an associated procedure) with a
- call to the getter in the entity procedure and the setter stored
- in slot 0. The original getter is stored in slot 1.
-
- 4. A new primitive procedure type supported in the evaluator. The
- getter and setter are stored in a GETTER and SETTER slot. A call
- to this procedure type results in a retrieval of the getter and a
- jump back to the correct eval dispatcher.
-
- Representation 4 was selected because of efficiency and
- simplicity.
-
- Rep 1 has the advantage that there is zero penalty for closure
- getters, but primitive getters will get considerable overhead
- because the procedure-with-getter will be a closure which calls
- the getter.
-
- Rep 3 has the advantage that a GOOPS accessor can be a subclass of
- <procedure-with-setter>, but together with rep 2 it suffers from a
- three level dispatch for non-GOOPS getters:
-
- cclo/struct --> dispatch proc --> getter
-
- This is because the dispatch procedure must take an extra initial
- argument (cclo for rep 2, struct for rep 3).
-
- Rep 4 has the single disadvantage that it uses up one tc7 type
- code, but the plan for uniform vectors will very likely free tc7
- codes, so this is probably no big problem. Also note that the
- GETTER and SETTER slots can live directly on the heap, using the
- new four-word cells.
-
- * procs.c, procs.h (SCM_PROCEDURE_WITH_SETTER_P, SCM_GETTER,
- SCM_SETTER): New macros.
- (scm_procedure_with_setter_p, scm_make_procedure_with_setter,
- scm_getter, scm_setter): New procedures.
-
- * eval.c, print.c (scm_iprin1): Added entries for scm_tc7_pws.
-
- * gc.c (scm_gc_mark, scm_gc_sweep): Added case labels for
- scm_tc7_pws.
-
- * objects.c, objects.h (scm_class_of,
- scm_class_procedure_with_setter): Added.
-
- * procprop.c (scm_i_procedure_arity), procs.c (scm_thunk_p): Added
- entry for scm_tc7_pws.
-
- * procs.c (scm_procedure_p): Added case label for scm_tc7_pws.
-
-1999-01-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * evalext.c, evalext.h (scm_m_generalized_set_x): New memoizing
- macro.
- (scm_init_evalext): Call scm_make_gsubr for
- scm_m_generalized_set_x.
-
- * eval.c, debug.c, tags.h (SCM_IM_SET_X): Renamed from SCM_IM_SET.
-
- * eval.h: Declare scm_s_set_x, scm_sym_set_x;
-
- * eval.c: Renamed "set" --> "set_x" in various names for
- consistency of name correspondence between Scheme and C;
- Renamed scm_i_set_x --> scm_sym_set_x and made global.
- Renamed s_set_x --> scm_s_set_x and made global.
-
-1999-01-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * random.c (scm_i_random_bignum): Made independent of endianness.
-
-1999-01-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Added ENTER_APPLY in code for SCM_IM_APPLY.
- (Thanks to Eric Hanchrow.)
-
-1999-01-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * objects.c, objects.h (SCM_CLASS_REDEF): Renamed from CLASS_REDEF.
-
- * random.c: Bugfix: Retrieve and store most significant 32 bits in
- different order if the machine is bigendian.
- (scm_init_random): Added safety check for bignum digit size.
-
-1999-01-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * random.c, random.h (scm_i_make_rstate): New function: Makes
- scm_rstate from seed.
- (scm_copy_random_state, scm_seed_to_random_state): New functions.
- (scm_make_random_state): Removed.
-
- * random.c (scm_make_random_state): Use scm_i_make_rstate().
-
-1999-01-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * random.c: Bugfix: Retrieve and store most significant 32 bits in
- different order if the machine is bigendian.
- (scm_init_random): Added safety check for bignum digit size.
-
-1999-01-11 Roland Orre <mdj@mdj.nada.kth.se>
-
- * sort.c (scm_merge, scm_merge_list_x): Bugfix: Place elements
- from first arg before equal elements in second arg in result.
- (scm_merge_list_step): Bugfix: Don't presume that arguments in a C
- function call are executed in a well defined order.
-
-1999-01-11 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * alloca.c (alloca): Cast value returned by malloc. (Thanks to
- Christian Lynbech.)
-
-1999-01-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * random.c: Removed alloca includes.
-
-1999-01-11 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * Makefile.in: This changed, for some reason I don't really
- understand, when I ran automake in the top level directory. This
- may be contamination by Cygnus internal releases. If you re-run
- automake and this change gets reverted, don't worry about it.
-
-1999-01-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * sort.c, sort.h: New files: Implement slib's and scsh's sort
- interfaces. Author: Roland Orre.
-
- * Makefile.am: Added sort.c, sort.h, sort.x.
-
- * init.c: #include "sort.h";
- (scm_boot_guile_1): Call scm_init_sort ().
-
- * numbers.h: Added #include "libguile/print.h".
-
- * numbers.c: Formatted according to Guile conventions;
- Renamed s_bignum --> scm_s_bignum.
-
- * random.c, random.h: New files: Random number support.
- Interface same as slib's.
-
- * Makefile.am: Added random.c, random.h, random.x.
-
- * init.c: #include "random.h";
- (scm_boot_guile_1): Call scm_init_random ().
-
-1998-12-23 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * Makefile.am: New files: guardians.c, guardians.x, guardians.h
-
- * guardians.c, guardians.h (scm_make_guardian,
- scm_guardian_gc_init, scm_guardian_zombify, scm_guard,
- scm_get_one_zombie, scm_init_guardian): This is an implementation
- of guardians as described in R. Kent Dybvig, Carl Bruggeman, and
- David Eby (1993) "Guardians in a Generation-Based Garbage
- Collector" ACM SIGPLAN Conference on Programming Language Design
- and Implementation, June 1993 ftp://ftp.cs.indiana.edu
- /pub/scheme-repository/doc/pubs/guardians.ps.gz
- Author: Michael N. Livshin.
-
- * gc.h (SCM_MARKEDP, SCM_NMARKEDP): New macros.
-
- * gc.c (scm_igc): Call scm_guardian_gc_init and
- scm_guardian_zombify.
-
- * init.c (scm_boot_guile_1): Call scm_init_guardian.
-
-1998-12-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * macros.c (scm_makacro, scm_makmacro, scm_makmmacro): Added
- argument checking.
-
-1998-12-15 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- Move the procedure slots of entities to invisible slots (so that
- we can have operator class objects which themselves are entities).
- * struct.h (scm_struct_i_proc, scm_struct_i_flags,
- SCM_STRUCTF_ENTITY): New constants.
-
- * struct.c (scm_make_struct): Allocate "invisible" room for
- procedures if SCM_STRUCTF_ENTITY is set in vtable.
-
- * gc.c (scm_gc_mark): Mark entity procedures.
-
- * struct.c, struct.h (scm_alloc_struct): Renamed from alloc_struct
- and made global.
- (scm_struct_init): Renamed from init_struct and made global.
-
- * objects.h (SCM_ENTITY, scm_entity): Removed.
- (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0,
- SCM_ENTITY_PROC_3): Adjusted for new location of procedure slots.
-
-Mon Dec 14 18:10:12 1998 Maciej Stachowiak <mstachow@mit.edu>
-
- * snarf.h (SCM_SYNTAX): New macro to allow convenient declaration
- of syntactic forms, similar to SCM_PROC.
- * debug.c, eval.c, evalext.c: use SCM_SYNTAX to declare all special
- forms, and SCM_SYMBOL or SCM_GLOBAL_SYMBOL to delcare C variables
- for the name symbols when needed.
-
-1998-12-14 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * Makefile.in: Regenerated.
-
-1998-12-05 Jim Blandy <jimb@zwingli.cygnus.com>
-
- * pairs.h (SCM_NEWCELL): When DEBUG_FREELIST is defined, don't
- take the address of _into; it might be a register. Just have
- scm_debug_newcell return the new cell.
- * gc.c (scm_debug_newcell): Just return the new cell, instead of
- taking the address of a place to store it as an argument.
- * gc.h (scm_debug_newcell): Change declaration.
- (Thanks to Greg Harvey.)
-
-1998-12-08 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * ramap.c (array-copy-in-order!, array-map-in-order): New names.
- Replaces old names serial-array-copy! and serial-array-map!.
-
- * evalext.c (map-in-order): New name. Replaces serial-map.
-
-1998-12-05 Jim Blandy <jimb@totoro.red-bean.com>
-
- * smob.c (freeprint): New function.
- (freecell): Use it to print freed objects, for slightly easier
- debugging.
-
-1998-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * backtrace.c (display_frame): Made more robust. Doesn't throw an
- error if no source properties can be found for a frame. (Thanks
- to Christian Lynbech.)
-
-1998-11-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * objects.h: Removed slots direct_supers and direct_slots from the
- definitions of the rudimentary classes described by objects.h.
-
- * objects.c, objects.h (scm_entity_p): New procedure. Together
- with the predicates scm_procedure_p and scm_struct_p, this
- predicate makes it possible to differ between structs, entities
- and operators.
-
- * modules.c, modules.h (scm_resolve_module): New function.
-
-1998-11-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * objects.h (SCM_METACLASS_STANDARD_LAYOUT,
- SCM_METACLASS_OPERATOR_LAYOUT): Removed slots `direct_supers' and
- `direct_slots'.
-
- * objects.c (scm_entity_p): New procedure.
-
- * procprop.c (scm_i_procedure_arity): Bugfix: Return correct value
- for asubrs, rpsubrs, lsubrs and lsubr_2s.
-
-1998-11-26 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * procprop.h (scm_i_procedure_arity): Added declaration.
-
- * procprop.c (scm_i_procedure_arity): Made global; New code to
- handle operators and entities.
- (scm_procedure_property): No need to call scm_procedure_p since
- scm_i_procedure_arity now does all necessary type checking.
- Added #include "objects.h".
-
- * feature.c (scm_remove_hook_x): Bugfix: Changed reference to
- s_add_hook_x --> s_remove_hook_x.
- (scm_add_hook_x, scm_remove_hook_x): Hooks now takes arguments.
- Added #include "procprop.h"
-
- * feature.c, feature.h (scm_reset_hook_x): New procedure.
- (scm_make_hook): Optional argument defines number of arguments to
- the hook.
- (scm_make_named_hook): Take number of args as second arg.
- (scm_run_hook): Renamed from scm_run_hooks (old name defined in
- boot-9.scm for a while); First arg is the hook. The rest are
- arguments passed on to the hook procedures.
-
-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.
- (scm_parse_path, scm_search_path): New Scheme level procedures.
-
- * load.h (scm_internal_parse_path, scm_parse_path,
- scm_search_path): Declared.
-
-1998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * filesys.c (dirname, basename): New procedures.
-
- * init.c (scm_boot_guile_1): Removed condition around
- scm_init_options.
-
- * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
- new data type (guards) for representation of C level guards and
- data on the wind chain.
- (scm_internal_dynamic_wind): New function.
-
- * dynwind.h: Declare scm_internal_dynamic_wind.
-
- * root.h (scm_root_state): Added scm_cur_loadp.
-
- * root.c (mark_root): Added comment about cur_loadp.
-
- * load.c: #include "dynwind.h";
- (scm_primitive_load): Use scm_inner_dynamic_wind to update
- scm_cur_loadp.
-
- * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
-
- * ports.c (current-load-port): New procedure.
-
-1998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
- not a tty, return #f.
-
- * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
- to Julian Satchell and Roland Kaufmann.)
-
- * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
- (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
-
-1998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
-
- * debug.h, debug.c (scm_start_stack): New function. Implements
- the guts of old scm_m_start_stack.
-
- * debug.c (scm_m_start_stack): Use scm_start_stack.
-
- * init.c (scm_start_stack, scm_restart_stack): Renamed to
- start_stack and restart_stack. (These have static scope.)
-
-1998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
- readline functions to come in release 2.3. (Thanks to Chet
- Ramey.)
- (handle_errors): Use the above functions.
-
-1998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * readline.c: Improvements for readline support: Handle errors
- better; Implement before-read-hook.
-
-1998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * init.c (scm_boot_guile_1), readline.c: Test for
- HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
- assure that we have version >= 2.1.)
-
-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
- Andrew Archibald.)
- (scm_filename_completion_function): New procedure: Filename
- completer.
- (current_input_getc): New function. Use this one instead of
- standard getc from readline.
-
- * throw.c, throw.h (scm_handle_by_throw): New function: This
- handler throws errors to next handler on the dynwind chain.
-
-1998-05-09 Mikael Djurfeldt <mdj@kenneth>
-
- * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
- used.
-
-1998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * procprop.c (scm_i_procedure_arity): New function. Returns arity
- of procedure.
- (scm_procedure_properties): Modified to return arity together with
- other properties.
- (scm_procedure_property): Added the read-only property `arity'.
- (scm_set_procedure_property_x): It is an error to set the `arity'
- property.
-
- * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
- prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
-
- * procprop.h (scm_sym_arity): New symbol.
-
- * objects.c (scm_set_object_procedure_x): New procedure: Use this
- to set the dispatch procedure of an operator or entity object.
-
- * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
- Made procedure slots read-only.
-
- * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
- scm_tcs_cons_gloc case in zero args switch; Fixed args
- construction for operators in scm_tcs_cons_gloc case in two args
- switch.
-
-1998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * fluids.c: Removed use of assert.h (in order to avoid
- __eprintf).
-
- * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
-
- * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
-
- * eval.c (SCM_CEVAL): Do more thorough argument checking. This
- change makes the evaluator safer at the cost of evaluation speed.
- It handles the case when the user has added a non-immediate
- improper end of the application form, e.g., `(+ 0 . x)'.
- (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
- minimize the extra cost as much as possible. The new code is
- enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
- problem with structs planted directly in the code (e.g. by a
- macro). This no longer causes segmentation fault. (Thanks to
- Eric Hanchrow.)
-
- * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
- arg `proc' in order to be able to throw errors; New argument
- checking code.
-
- * Removed extra #include "debug.h"
-
-1998-04-25 Mikael Djurfeldt <mdj@kenneth>
-
- * scmsigs.c: Declare usleep as returning void on some systems.
- (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
- Satchell.)
-
- * coop.c (usleep): Return void on some systems.
-
-1998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
-
- * coop.c: Changed return type of usleep to int.
-
- * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
- isn't found in the OS.
-
- * iselect.h: #define scm_internal_select select if GUILE_ISELECT
- isn't enabled. (Thought that I had made this change ages ago...)
-
- * iselect.c: Declare bzero if not defined by OS.
-
-1998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
- condition. (Thanks to John Tobey.)
-
- * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
- scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
- A section.
-
- * __scm.h: Start the long-term project of moving to POSIX threads.
- Phase 1: Classification of all critical sections.
- (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
- for A sections. (See comments in __scm.h for details.)
-
- * dynl.c: Only check that HAVE_DLOPEN is defined before loading
- dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
-
-1998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
- cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
- (libpath.h, versiondat.h): Replaced dependency on Makefile with
- dependencies on $(srcdir)/Makefile.in
- $(top_builddir)/config.status in order to avoid circularity.
-
- * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
- from argc if argc was 0 initially.
-
- * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
- in generation of libpath.h.
-
-1998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
- libguile from 2 to 3.
-
-1998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
-
-1998-04-13 Mikael Djurfeldt <mdj@kenneth>
-
- * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
- scm_set_port_column_x, scm_port_filename,
- scm_set_port_filename_x): Removed optional arguments. Added
- proper argument checking.
-
- * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
- stack size in machine words.
-
- * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
- rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
- to Ole Myren Röhne.)
-
-1998-04-12 Mikael Djurfeldt <mdj@kenneth>
-
- * socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
- UNIX_DOMAIN_SOCKETS. (Thanks to Lauri Alanko.)
-
- * gc.c (scm_gc_sweep): Count cells correctly. (Thanks to Ben
- Caradoc-Davies.)
-
- * eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
- procedure apply: Copy argument lists before pushing them unto the
- environment so that the environment won't get mutated due to
- manipulation of procedure arguments. This should perhaps be
- regarded as a temporary solution until someone finds a more
- efficient one. (Thanks to Maciej Stachowiak.)
-
-1998-04-10 Mikael Djurfeldt <mdj@kenneth>
-
- * script.c (scm_compile_shell_switches): Use "guile" as default
- zero arg if argc is NULL.
-
-1998-04-02 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * script.c (scm_compile_shell_switches): Allow NULL argv if argc
- is zero. (Thanks to Dirk Herrmann.)
-
-1998-03-30 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * ports.c (scm_add_to_port_table): First line is now line 0
- (was 1). (Interface changed according to suggestion by Per
- Bothner.)
-
- * backtrace.c (display_header): Add 1 to line and column numbers
- when presenting them to the user.
-
- * eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
- from debug.c --> eval.c
-
- * eval.h, eval.c (scm_eval_options_interface): New options
- interface.
- (SCM_EVAL_STACK): New option: Size of newly created stacks,
- i.e. stacks for new threads.
-
- * coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK.
-
- * eval.c (unsafe_setjmp): Removed with #if 0.
-
- * gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
- warning.
-
- * eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
- to avoid compiler warnings.
-
- * dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
-
-1998-03-28 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * throw.c (handler_message): Print message on current error port
- instead of default error port. (Thanks to Maciej Stachowiak.)
-
-Mon Mar 2 21:35:02 1998 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.c (scm_add_to_port_table): allocate in units of
- struct scm_port_table *, not struct scm_port_table.
- * posix.c (scm_close_pipe): remove the port from the port table
- and mark as closed.
- Thanks to Rob Engle for both fixes.
-
-1998-02-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
- coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
-
-1998-02-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * throw.h: Removed jmpbuf arg in scm_catch_body_t.
-
- * backtrace.c (display_error_body, display_backtrace_body),
- coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
- gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
- (invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
- scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
- functions.
-
- * throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
- don't receive the jmpbuf arg anylonger.
- (scm_catch): Don't accept a #f tag.
- (scm_throw): Check that key is a symbol.
- (scm_ithrow): Don't take a jmpbuf as key. Don't check key arg.
-
-Fri Jan 30 22:28:07 1998 Mikael Djurfeldt <mdj@kenneth>
-
- * async.c (async_pending): Removed declaration.
-
-1998-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * dynwind.c (scm_wind_chain): New debug function.
-
- * coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
- scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
- c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
- extra layer of functions around the body and handler of a thread.
- This extra layer makes sure that the handler is called in the
- dynamic context of the surround (= empty dynwind list), but under
- the *dynamic root* of the body. We can not use the dynamic root
- of the surround since that root belongs to another thread => stack
- is not handled correctly. It may seem ugly to use this extra
- layer, but the extra cost in terms of execution time is really
- negligible compared to the total amount of time required to create
- a thread, and it would reduce maintainability to duplicate the
- crucial and complicated steps performed by cwdr.
-
- * __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
- (SCM_ALLOW_INTS): Added thread switching code before interrupts
- get re-enabled. The important effect of this is that interrupts
- are blocked during thread switching so that thread data structures
- don't risk getting messed up by an unfortunate signal.
- (SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
- seems to do more aggressive optimization which actually move
- instructions around in these macros in a fatal way. Therefore:
- Introduce Anthony's SCM_FENCE macro! (And I who thought he was
- just superstitious...)
- (SCM_TICK): Maybe do a context switch and take care of asyncs.
- This macro should be used instead of SCM_ASYNC_TICK since the
- latter doesn't do context switches any more.
-
- * eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
- instead of SCM_ASYNC_TICK.
-
- * coop.c, iselect.c: Since thread switches are now performed with
- interrupts masked, we can't use the old mechanism of delivering
- signals immediately when they arrive. Signals must instead be
- delivered when the asyncs run *after* the end of the critical
- section in scm_internal_select. But this also means after context
- switch so that the signal will be delivered to a different thread.
- To avoid this, I have changed the protocol of
- coop_wait_for_runnable_thread and friends so that they are allowed
- to return the original thread. So, if a signal arrives during
- scm_internal_select, we won't any longer be forced do a context
- switch, but can remain in the same thread and deliver the signal
- to it.
-
- * async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
- scm_asyncs_pending and made it global.
-
- * iselect.c: Small fixes.
-
- * coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
- coop_condition_variable_init, coop_condition_variable_wait,
- coop_condition_variable_signal): Changed return type from `void'
- to `int'. This is to adhere closer to the pthreads interface.
- This, in turn, is part of an attempt to provide C versions of the
- mutex and condition variable primitives which can be part of a
- frontend to COOP or pthreads.
-
- * coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
- coop_condition_variable_destroy): New functions.
-
- * coop-threads.c (scm_wait_condition_variable): Use
- coop_condition_variable_wait_mutex.
-
- * coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
- Definitions moved to coop-defs.h.
-
- * coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
- scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
- scm_cond_destroy): New C interface to mutecis and cond vars.
-
-1998-01-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7.
-
- * iselect.c: Now several threads can wait on the same file
- descriptor. The behaviour is compatible with OS select: All
- threads waiting for the fd return with the same status.
-
-1998-01-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * coop-threads.c, threads.h (scm_spawn_thread): New function.
- Can spawn a thread from application C code.
-
-1998-01-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
- gh_doubles2scm): New functions.
-
-1998-01-15 Mark Galassi <rosalia@nis.lanl.gov>
-
- * gh_eval.c (gh_eval_str): cleanup -- threw out the old
- commented-out version of gh_eval_str()
-
-Sun Jan 4 02:23:36 1998 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.c (scm_bind): free soka after use.
-
-Sat Jan 3 20:55:07 1998 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.c (tzvar): new variable.
- (setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
- avoid memory leaks when allocating.
-
-1998-01-03 Jim Blandy <jimb@totoro.red-bean.com>
-
- * iselect.h: Some systems require <sys/types.h> to get the FD_SET
- macro definitions.
-
- * gc.c, tags.h: Doc fixes.
-
-1998-01-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c (macro-eval!): Removed. This function was a design bug.
- It allowed memoized code to leak out to the scheme level. Most
- things that you could do with `macro-eval!' can be done with
- `local-eval'.
-
-1997-12-20 Tim Pierce <twp@skepsis.com>
-
- * fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
- scm_fgets now depends on ftell(3) to know how many bytes were
- read. Sigh.
-
-1997-12-15 Tim Pierce <twp@skepsis.com>
-
- * gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
- dealing with strings.
-
-1997-12-13 Tim Pierce <twp@skepsis.com>
-
- Make %read-line more suitable for implementing read-line efficiently.
- * ioext.c (scm_read_line): Strip the terminating newline from a
- string, and return a cons of the string and its terminator.
-
- * fports.c, fports.h (scm_fgets): Add `len' argument. The length
- of the string that is read is stored in this memory location.
- * ports.c, ports.h (scm_generic_fgets, fgets_void_port): Same.
- * genio.c, genio.h (scm_do_read_line): Update caller.
- * ports.h (scm_ptobfuns): Update typedef.
- * fports.c (scm_fptob, scm_pipob): Update struct.
-
-1997-12-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * filesys.c (set_element): Return file descriptor.
- (fill_select_type): Return the highest file descriptor.
- (scm_select): Tell select about the highest file descriptor. On
- some systems the SELECT_SET_SIZE can be as much as 128 bytes.
- Therefore the extra overhead for calculating the maximum fd seems
- to be more than compensated. Is this correct? In any case,
- scm_internal_select will be much faster with this info.
- (scm_select, fill_select_type, set_element): Don't accept any kind
- of object in the file descriptor list or vector.
-
-1997-12-07 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * iselect.c (finalize_fd_sets): Bugfix.
-
-1997-12-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * filesys.c (scm_select): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS
- when using scm_internal_select (since we might switch to another
- thread).
-
-Sun Dec 7 01:43:56 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * simpos.c (scm_system): always define: use sysmissing if not
- available. Check for HAVE_SYSTEM instead of _Windows (does
- Windows lack system or does it have an unusable one?).
- Check for error conditions -1 and 127. Use SCM_DEFER_INTS.
- Let the argument be optional: if not supplied, call system(NULL).
-
- * ports.c (scm_close_port): relax the type check from OPPORTP to
- PORTP; closing a closed port is allowed.
-
-1997-12-04 Tim Pierce <twp@ppp39.Nantucket.net>
-
- * fports.c (scm_fgets): Return if the last char in a chunk is
- newline. When fgets returns a string whose length is `size-1', it
- is ambiguous whether a whole line was retrieved, so we must check
- explicitly whether a line terminator is present.
-
-1997-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * print.h (SCM_COERCE_OUTPORT): Check that the object is a pair
- before taking the CDR. (Thanks to Harald Meland.)
-
- * filesys.c (scm_stat): Slightly optimized.
-
-Wed Dec 3 12:23:06 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * ports.c (scm_close_port): Make sure the port is open before
- trying to close it.
-
- * guile-snarf.in: Pass args through to gcc in a way that preserves
- whitespace boundaries. (Thanks to Greg Badros.)
-
-1997-12-02 Tim Pierce <twp@skepsis.com>
-
- * stacks.c (scm_frame_procedure): Reverse the logic in the return
- statement. (Thanks to Doug Evans for pointing this out.)
-
-1997-12-01 Tim Pierce <twp@skepsis.com>
-
- * scmconfig.h.in: Regenerated for USCORE change in ../acconfig.h.
-
-Sun Nov 30 11:29:18 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * coop-defs.h (struct coop_t): Renamed errno --> _errno to prevent
- errno macro expansion of this field name. (errno is a C
- preprocessor macro on some systems.)
-
-1997-11-29 Tim Pierce <twp@skepsis.com>
-
- * iselect.c: Doc fix.
-
-Sat Nov 29 01:16:53 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * init.c (scm_start_stack): Removed initialization of
- scm_the_last_stack_var.
-
- * backtrace.h: Declare scm_the_last_stack_var.
-
- * backtrace.c: Define scm_the_last_stack_var.
-
- * root.c (mark_root): Don't mark the_last_stack_var.
-
- * root.h (scm_root_state): Removed the_last_stack_var.
-
- * throw.c: Added #include "fluids.h"
- (ss_handler): `the-last-stack' is now a fluid.
-
- * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
- --> the_last_stack_fluid.
-
- * backtrace.c: Added #include "fluids.h"
- (scm_init_backtrace): Initialize `the-last-stack' to a fluid.
- (scm_backtrace): `the-last-stack' is now a fluid.
-
- * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
- after scm_init_fluids.
-
-1997-11-28 Tim Pierce <twp@skepsis.com>
-
- * iselect.c: #ifdef USE_THREADS around thread-related includes.
-
- * dynl-dl.c (sysdep_dynl_func): Check both USCORE and
- DLSYM_ADDS_USCORE to decide whether to add an underscore.
-
-1997-11-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * iselect.c (coop_next_runnable_thread,
- coop_wait_for_runnable_thread): Disable interrupts so that no
- async is executed before a potential error_revive.
- (scm_internal_select): Disable interrupts during the parts of the
- code which manipulate the sleep queue and the file descriptors.
-
-1997-11-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * Makefile.am: Added iselect.c and iselect.h.
-
- * coop.c (coop_qinit): Initialize fields used by
- scm_internal_select.
- (coop_qget, coop_qget, coop_tmp_queue): Made global.
- (coop_next_runnable_thread): If GUILE_ISELECT enabled, use
- replacement in iselect.c.
- (coop_mutex_lock, coop_condition_variable_wait, coop_abort,
- coop_join): If GUILE_ISELECT enabled, use
- coop_wait_for_runnable_thread instead of
- coop_next_runnable_thread.
- (usleep, sleep): New replacements for system functions if
- GUILE_ISELECT is enabled.
-
- * coop-threads.h: Declare coop_wait_for_runnable_thread.
-
- * coop-defs.h (coop_t): Added fields used by scm_internal_select.
-
- * filesys.c: Added #include "iselect.h". Moved FD-macros to
- iselect.h. Implement Scheme level `select' using
- scm_internal_select. (See NEWS.)
-
- * genio.c (scm_getc): Block with scm_internal_select. (See NEWS.)
-
- * init.c: Call scm_init_iselect.
-
- * iselect.h, iselect.c: New files. Implements
- scm_internal_select. (See NEWS.)
-
-1997-11-27 Tim Pierce <twp@skepsis.com>
-
- Fix a memory leak in scm_read_line and a type cast bug in the ptob.
- * fports.c (scm_fgets): Use malloc/free rather than scm_must_malloc
- and scm_must_free, since ultimately the string returned will be copied
- by scm_makfrom0str anyway. Also, read any characters that may have
- been pushed onto the port with scm_ungetc.
- * ports.c (scm_generic_fgets): Same as for scm_fgets.
- * ioext.c (scm_read_line): Free string after Guilifying it.
- * ports.h (scm_ptobfuns): fgets method returns a char *, not a char.
-
-1997-11-26 Anthony Green <green@hoser.cygnus.com>
-
- * gh_data.c (gh_set_substr): Strings can be longer than 256 bytes.
-
- * gh.h: Safely wrap prototypes for c++ usage.
-
-1997-11-25 Mark Galassi <rosalia@cygnus.com>
-
- * gh_test_repl.c (main_prog): changed invocation of gh_repl() to
- gh_repl (argc, argv).
-
-1997-11-24 Mark Galassi <rosalia@nis.lanl.gov>
-
- * gh_init.c (gh_repl): modified gh_repl() to accept argc and argv
- and to invoke scm_shell().
- (gh_launch_pad): took out the loading of boot-9.scm from here,
- since it is probably best to let the user control that. In fact,
- gh_repl() now invokes scm_shell() which does that.
-
-1997-11-23 Mark Galassi <rosalia@cygnus.com>
-
- * gh_test_repl.c (main_prog): added argc and argv to the gh_repl()
- invocation.
-
-1997-11-22 Tim Pierce <twp@twp.tezcat.com>
-
- * dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
- yesterday's underscore patch. (Thanks to Marius Vollmer for
- spotting this.)
-
-1997-11-21 Tim Pierce <twp@twp.tezcat.com>
-
- * dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
- DLSYM_ADDS_USCORE is not defined.
-
-1997-11-17 Mark Galassi <rosalia@nis.lanl.gov>
-
- * gh_data.c (gh_uniform_vector_length):
- (gh_uniform_vector_ref): started implementing the uniform types in
- the gh_ interface.
-
-1997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
- of 0; size_t --> scm_size_t. Thanks to Bernard Urban.
-
-1997-10-26 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
- configure.in was changed).
-
-Sun Oct 26 02:20:11 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * Makefile.am (modinclude_HEADERS): Include readline.h here.
- * Makefile.in: Regenerated.
-
-1997-10-25 Marius Vollmer <mvo@zagadka.ping.de>
-
- * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
- OPORT is an `open' port, not an output port.
-
- * filesys.c (scm_close, set_element, get_element, scm_chown,
- scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
- SCM_COERCE_OUTPORT to cope with the printstate/port magic.
- * ports.c (scm_port_revealed, scm_set_port_revealed_x,
- scm_close_port, scm_port_line, scm_set_port_line_x,
- scm_port_column, scm_set_port_column_x, scm_port_filename,
- scm_set_port_filename_x, scm_port_mode,
- scm_close_all_ports_except, scm_set_current_output_port,
- scm_set_current_error_port): Likewise
- * ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
- scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
- Likewise
- * posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
- * backtrace.c (display_backtrace_body): Likewise
- * fports (scm_setvbuf): Likewise
- * socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
- scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
- scm_getpeername, scm_send, scm_sendto): Likewise
- * unif.c (scm_uniform_array_write): Likewise
-
-Sat Oct 25 02:52:58 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- Minor problems with substring-related tag changes.
- * symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
- exactly what we want to leave in to detect substrings.
- (SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
- * tags.h: Fix diagrams and comments describing the S tag bit;
- remove vestigial remarks about the D tag bit.
- (SCM_TYP7, SCM_TYP7S): Rephrased for readability.
- * strings.c: Formatting tweaks.
-
- * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
- variable first; then SCHEME_LOAD_PATH, with a warning message.
- (scm_parse_path): New function.
- * script.c: Doc fixes.
-
-Thu Oct 23 01:02:03 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- Readline support, from Daniel Risacher.
- * readline.c, readline.h: New files.
- * init.c: #include "readline.h".
- (scm_boot_guile_1): Call scm_init_readline, if we have it.
- * Makefile.am (libguile_la_SOURCES): Include readline.c.
- * Makefile.in: Regenerated.
- * scmconfig.h.in: Regenerated, after change to ../configure.
-
-1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
-
- * gh.h: gh_vector_set -> gh_vector_set_x
-
-1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
-
- * gh_data.c (gh_vector_set_x): changed name to make it consistent
- with the ! -> _x mapping when going from Scheme to C.
-
-1997-10-19 Mark Galassi <rosalia@cygnus.com>
-
- * gh.h (gh_reverse):
- (gh_list_tail):
- (gh_list_ref):
- (gh_memq):
- (gh_memv):
- (gh_member):
- (gh_assq):
- (gh_assv):
- (gh_assoc): added these gh_ functions implemented as macros.
-
- * gh_predicates.c (gh_null_p):
- (gh_string_equal_p): added these two missing predicates.
-
- * gh_list.c (gh_append):
- (gh_append2):
- (gh_append3):
- (gh_append4):
- (gh_set_car_x):
- (gh_set_cdr_x): added these routines as I go through and try to
- complete the picture R4RS functions that should be mirrored in the
- gh_ interface.
-
-Sat Oct 18 01:52:51 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * tags.h (scm_tc7_substring): Changed the comment and code to
- conform with the changes below. Folks! We have suddenly two new
- free tc7 codes!!! Jummy, jummy!
-
-Tue Oct 14 22:03:06 1997 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.in: Rebuilt.
- * Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
- mbstrings.c.
- (modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
- * unif.c (scm_vector_set_length_x): Don't handle multibyte
- strings.
- * tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
- (scm_tag): Don't handle multibyte strings.
- * read.c: Don't include mbstrings.h.
- (scm_lreadr): Don't handle multibyte ports.
- * kw.c: Don't include mbstrings.h.
- * init.c: Don't include mbstrings.h.
- (scm_boot_guile_1): Don't init mbstrings module.
- * hash.c (scm_hasher): Don't handle mbstrings.
- * gscm.c (gscm_run_scm): Don't init mbstrings module.
- * gc.c (scm_gc_mark): Don't handle mbstrings.
- (scm_gc_sweep): Likewise.
- * eval.c (SCM_CEVAL): Don't handle mbstrings.
- * eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
- * tags.h (SCM_TYP7SD): Removed.
- (SCM_TYP7D): Removed.
- (scm_tc7_mb_string): Removed.
- (scm_tc7_mb_substring): Removed.
- * print.c (scm_iprin1): Handle char printing directly. Don't
- handle mbstrings.
- Don't include "mbstrings.h".
- * symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
- scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
- multi-byte flag.
- Don't include "mbstrings.h".
- * symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
- (SCM_SYMBOL_SLOTS): Define as 4.
- (SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
- * arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
- gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
- print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
- struct.c, threads.c, throw.c, unif.c, variable.c: Use new
- ("gen"-less) I/O function names.
- * ports.c (scm_add_to_port_table): Don't set port's
- representation.
- * ports.h (scm_port_representation_type): Removed.
- (scm_string_representation_type): Removed.
- (struct scm_port_table ): Removed representation field.
- (SCM_PORT_REPRESENTATION): Removed.
- (SCM_SET_PORT_REPRESENTATION): Removed.
- * genio.h: Use new function names.
- * genio.c: Don't include "extchrs.h".
- (scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
- Removed.
- (scm_putc, scm_puts, scm_lfwrite): No longer static.
- (scm_getc): No longer static; handle line and column changes.
- (scm_ungetc): Renamed from scm_gen_ungetc.
- (scm_do_read_line): Renamed from scm_gen_read_line.
- * libguile.h: Don't include "extchrs.h" or "mbstrings.h"
- * extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
-
-1997-10-12 Mark Galassi <rosalia@cygnus.com>
-
- * gh_test_repl.c (c_vector_test): same as gh_test_c.c
-
- * gh_test_c.c (c_vector_test): some improvements on the vector
- routines test.
-
- * gh.h (gh_vector): this used to exist but do the wrong thing.
- Now it (almost) does the right thing, though it takes a list
- instead of the individual arguments. I need to see how it could
- be done right.
- (gh_list_to_vector): added this function as a macro. Corresponds
- to Scheme's (list->vector ...).
- (gh_vector_to_list): added this function as a macro. Corresponds
- to Scheme's (vector->list ...).
-
- * gh_data.c (gh_vector_ref): renamed from gh_vref to
- gh_vector_ref, so that it resembles the Scheme routines more.
- (gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
- resembles the Scheme routines more.
- (gh_make_vector): this used to be (stupidly) called gh_vector().
- This is the right name, since it does the same thing as the Scheme
- (make-vector ...) procedure.
-
-Sun Oct 12 14:41:39 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * ports.h: #include "libguile/print.h"
-
- * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
- Some indentation fixes.
-
- * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
- longer a user field; New field: class_flags.
-
- * objets.c, objects.h: New metaclass: scm_metaclass_operator.
-
-Tue Oct 7 09:37:24 1997 Mark Galassi <rosalia@cygnus.com>
-
- * gh_data.c (gh_bool2scm): new function which replaces
- gh_int2scmb(), which is now tagged as obsolete.
-
-1997-10-03 Mikael Djurfeldt <mdj@nada.kth.se>
-
- * print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test. (NIMP
- macros should by convention not test for NIMPness.)
- (SCM_COERCE_OPORT): Adjust indentation.
-
- * print.c (scm_valid_oport_value_p): Adjusted indentation; Added
- SCM_NIMP test before SCM_PRINT_STATE_P.
-
- * struct.c, struct.h, gc.c: Renamed:
- scm_struct_i_layout --> scm_vtable_index_layout
- scm_struct_i_vcell --> scm_vtable_index_vcell
- scm_struct_i_vtable --> scm_vtable_index_vtable
- scm_struct_i_printer --> scm_vtable_index_printer
- scm_struct_i_vtable_offset --> scm_vtable_offset_user
-
- * struct.c (scm_print_struct): Use new printer slot; Default
- printing: Also output hex code of vtable so that type identity
- will be indicated as well.
- (scm_init_struct): Updated required_vtable_fields to "pruosrpw";
- Removed struct_printer_var; Removed struct-vtable-offset;
- (vtable-index-layout, vtable-index-vtable, vtable-index-printer,
- vtable-offset-user): New constants.
-
- * struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
- (scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
- If this slot contains a procedure, use that to print structures of
- the type represented by this vtable.
-
- * print.c (scm_iprin1): Don't print arguments of macro
- transformers. (They are always: exp env.); Bugfix: Unmemoize
- transformer source with correct environment.
-
-1997-10-02 Marius Vollmer <mvo@zagadka.ping.de>
-
- Streamlining of call-with-dynamic-root:
-
- * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
- there is now only one catch.
- (cwdr_outer_body): Removed.
- (cwdr_handler): New function.
- (scm_internal_cwdr): New function to perform the function of cwdr
- but take args that are more useful to C code. Also, the handler
- is now invoked *outside* of the new dynamic root, like the docs
- say. We no longer have to catch absolutely all errors, the caller
- is responsible for using a handler that does not throw, if he
- wants that.
- (cwdr): Reimplemented in terms of scm_internal_cwdr.
- * root.h (scm_internal_cwdr): New prototype.
-
- Even more but risky streamlining:
-
- * root.c (USE_STACKJMPBUF): New define to activate a stack-based
- allocation of the jumpbuf of a root continuation. The changes
- below are controlled by it. They are now deactivated.
- (scm_internal_cwdr): Allocate the scm_contregs on the stack. Set
- the JMPBUF of the scm_rootcont to NULL before returning.
-
- * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
- when they are non-NULL.
- (scm_gc_mark): Likewise, mark only when non-NULL.
-
- Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
- * dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
-
- * gc.c (scm_done_malloc): New function.
- gc.h (scm_done_malloc): New prototype.
-
- * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
- (struct scm_print_state) [revealed]: New field.
- (scm_print_state_vtable): Make visible to the outside world for
- type checking purposes.
- (scm_valid_oport_value_p): New prototype.
-
- * print.c (scm_valid_oport_value_p): New function to check whether
- a certain value is acceptable as a port argument.
- (scm_print_state_vtable): New variable.
- (scm_free_print_state): Set `revealed' field to false.
- (scm_iprin1): Call user supplied closure printer with
- scm_printer_apply. Print in the traditional way when there isn't
- one or when it returns #f.
- (scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
- Accept a port/print-state pair in addition to just a port.
- (scm_prin1): Don't return the print_state to the pool when it has
- been `revealed'.
- (scm_printer_apply): Set `revealed' field of print_state to true.
- (scm_init_print): Set scm_print_state_vtable.
- (print_state_fluid, print_state_fluid_num): Removed.
-
- * throw.h (scm_handle_by_proc_catching_all): New prototype
- throw.c (scm_handle_by_proc_catching_all): New function
-
-Mon Sep 29 23:54:09 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * Makefile.in: Regenerated with automake 1.2c.
-
-Sun Sep 28 21:35:42 1997 Radey Shouman <shouman@zianet.com>
-
- * ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
- was looping endlessly.
-
-Sun Sep 28 00:04:29 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * strports.c (scm_eval_string): Don't close the port.
-
- * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
- former returns a nice normal integer. (Thanks to Daniel
- Risacher.)
-
-Sat Sep 27 20:19:34 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
- makefile variable as a build parameter called LIBS. The
- build-guile program will use this, for the time being.
- * Makefile.in: Regenerated.
-
- Thanks to Shiro Kawai:
- * gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
- * ports.h (scm_ptobfuns): The fgets method returns a char *, not
- an SCM.
-
- * Makefile.in: Regenerated with automake 1.2a.
-
- * script.c (scm_compile_shell_switches): If we hit the -c or --
- arguments, don't set the car of (command-line) to scm_usage_name,
- the prettified name of the guile executable; give it the full
- path, the way shells usually handle $0.
-
-Wed Sep 24 22:09:52 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * ramap.c (scm_array_map): Renamed to scm_array_map_x. Removed
- Scheme-level name `array-map' and renamed `serial-array-map' to
- `serial-array-map!'.
-
- * backtrace.c: Introduced exception handlers which now enclose
- `display-error' and `display-backtrace' so that error reporting
- won't get into infinite loops if an error occurs during displaying
- of the error. This can very easily happen with user supplied
- print call-back routines.
-
-Tue Sep 23 12:43:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * ramap.c: Added alias `array-map!' for `array-map'. (Probably,
- the names `serial-array-map' and `array-map' should be removed.)
-
-Mon Sep 22 01:21:54 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * init.c (scm_boot_guile_1): Added scm_init_objects ().
- Added #include "objects.h"
-
- * eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
- Add #include "feature.h".
-
- * Makefile.am (libguile_la_SOURCES): Added objects.c.
- (modinclude_HEADERS): Added objects.h.
-
- * ports.h (SCM_EOF_OBJECT_P): New macro predicate.
- This test is needed at many places in the code and should be
- abstracted. (Motivated by the need of this test in libguiletk.)
-
- * ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
- (scm_eval_string), load.c (scm_primitive_load,
- scm_read_and_eval_x), gh_eval.c (gh_eval_str):
- Use SCM_EOF_OBJECT_P.
-
- * eval.c (scm_init_eval): Add feature `delay'.
-
-Tue Sep 16 02:12:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * scmhob.h: Removed.
-
-Mon Sep 15 20:42:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * list.h (SCM_LISTn): New macros. Make list creation in C code
- prettier. The idea comes from STk.
-
- * sequences.h, sequences.c, append.h, append.c: Removed. These
- files implemented non-R4RS operations which would encourage
- non-portable programming style and less easy-to-read code.
-
- * Makefile.am (sequences.h, sequences.c, append.h, append.c):
- Removed.
-
- * libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
- sequences.h, #include append.h.
-
- * init.c (scm_boot_guile_1): Removed calls to scm_init_append and
- scm_init_sequences.
-
- * gh.h, gh_list.c: Renamed gh_list_length --> gh_length.
-
- * list.h, list.c: Renamed scm_list_length --> scm_length, scm
-
- * stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
-
-Sat Sep 13 00:21:41 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c: Added #include "objects.h"
-
- * tags.h (scm_tc16_object, scm_tc16_entity): Smobtags for objects
- and entities.
-
- * smob.c (scm_smob_prehistory): Create two objectsmobs with
- adjacent smob numbers.
-
-Thu Sep 11 00:59:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * procprop.h: Added declaration of scm_i_inner_name.
-
- * gsubr.c: New global symbol scm_i_inner_name.
-
- * debug.c (scm_procedure_name): Try procedure property
- `inner-name' if `name' fails.
-
- * print.c (scm_iprin1): Use scm_macro_name.
-
- * eval.c (scm_m_define): Give names to macros as well; Only the
- first top-level definition gives a procedure/macro a name.
- Otherwise confusing names can turn up in backtraces.
- (SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
- `name'; Give names to macros as well.
-
- * procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
- (scm_macro_transformer): Use SCM_CLOSUREP instead of
- scm_closure_p.
-
-Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * 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
- a way equivalent to procedures, and it would be silly to duplicate
- the required code. (We don't want to maintain two places.)
- (macrosmob): Print field is now a NULL pointer.
-
- * eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
- scm_macro_transformer): New prototypes.
- (scm_tc16_macro): Declared.
-
- * 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>
-
- * procs.h (scm_closure_p): Added declaration.
-
-Fri Sep 5 13:36:14 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
- Shouldn't pass "heap" as the subr name.
-
-Tue Sep 2 18:14:30 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * gh_predicates.c (gh_boolean_p, gh_symbol_p, gh_char_p,
- gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
- gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
- gh_equal_p): Use SCM_NFALSEP, instead of testing against
- SCM_BOOL_T. Any non-false value is true.
-
-Tue Sep 2 00:27:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * symbols.h (scm_builtin_bindings, scm_builtin_weak_bindings,
- scm_gensym): Added prototypes.
-
- * symbols.c (scm_gensym): New function. This will speed up
- certain types of applications (such as macro systems) which
- generate lots of symbols.
-
-Mon Sep 1 22:30:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * numbers.c (logand, logior, logxor): Handle 0 or 1 arguments.
-
-Sat Aug 30 18:56:19 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * unif.c (scm_shap2ra): tighten the checking of the array dimension
- specifier, since (2) or (2 . 3) would cause SEGV.
- (scm_transpose_array): more argument checking fixes.
-
-Thu Aug 28 23:48:53 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * Makefile.in: Regenerated.
-
-Wed Aug 27 17:44:44 1997 Jim Blandy <jimb@totoro.red-bean.com>
-
- * Makefile.in: Regenerated, so it uses "tar", not "gtar".
-
-Mon Aug 25 13:47:25 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * error.c, error.h (scm_error_callback): Removed (see NEWS).
-
-Sun Aug 24 01:25:35 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * regex-posix.c: If <regex.h> can't be found, try <rxposix.h> or
- <rx/rxposix.h>. (This is in order to accomodate for the GNU Rx
- library.)
-
- * ramap.c (scm_ra_matchp, scm_array_fill_int, racp, ramap_1,
- ramap_2o, scm_array_index_map_x, raeql_1, scm_array_equal_p),
- unif.c (scm_vector_set_length_x, scm_uniform_vector_length,
- scm_array_p, scm_array_rank, scm_array_dimensions,
- scm_enclose_array, scm_array_in_bounds_p, scm_uniform_vector_ref,
- scm_cvref, scm_array_set_x, scm_array_contents, scm_array_to_list,
- scm_array_prototype): Added case scm_tc7_wvect.
-
-Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * errno.h: prototype for scm_strerror.
- * error.c (scm_strerror): new procedure.
-
-Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * list.c (scm_list_append_x): Allow non-pair as last argument.
- This is consistent with the R4RS append and is probably the
- correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
-
-Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.h: prototype for scm_times.
- * stime.c (scm_times): new procedure.
- * ioext.c (scm_fseek): if the first argument is a file descriptor
- call lseek.
- (scm_ftell): if the first argument is a file descriptor call lseek
- (sic).
- * filesys.h: prototypes for scm_open_fdes, scm_fsync.
- * filesys.c (scm_chmod): if the first argument is a file descriptor,
- call fchmod.
- (scm_chown): if the first argument is a port or file descriptor,
- call fchown.
- (scm_truncate_file): new procedure.
- Add DEFER/ALLOW INTS to a few other procedures.
- (scm_fsync): new procedure.
- (scm_open_fdes): new procedure.
- (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
- now be used.
- (scm_fcntl): the first argument can now be a file descriptor. The
- third argument is now optional.
-
- * posix.c (scm_execl, scm_execlp): make the filename argument
- compulsory, since omitting it causes SEGV.
- (scm_sync): return unspecified instead of #f.
- (scm_execle): new procedure.
- (environ_list_to_c): new procedure.
- (scm_environ): use environ_list_to_c. disable interrupts.
- (scm_convert_exec_args): take pos and subr arguments and
- improve error checking.
-
-1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
- (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
- argument to SCM_ASSERT. Furthermore, the name of the function
- should be passed as first argument when signalling
- SCM_WNA. (Thanks to Thomas Morgan)
-
- * gsubr.c (scm_gsubr_apply): From Radey Shouman
- <shouman@zianet.com>: "The switch in scm_gsubr_apply that
- dispatches on the number of actual args has a default case
- reporting an internal error. This is a vestige from a version
- that mallocated a SCM vector to hold the arguments. In the
- current version this check is too late: if it ever happens we will
- have already overstepped the bounds of the array.
-
- Also, the patch [...] adds a check for too many actual arguments."
-
- mdj: Removed check for "internal programming error".
-
-Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * gh_io.c (gh_write): New function.
-
- * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
- throw.c (scm_internal_stack_catch): New sibling to the other catch
- functions. Code moved from gh_eval.c.
- throw.h: Added header.
- gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
- scm_internal_stack_catch.
-
-Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.h: fix up prototypes.
- * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
- Scheme name is now dup->fdes.
- (scm_dup_to_fdes): make the second argument optional and
- fold in the functionality of scm_primitive_dup.
- (scm_primitive_dup): deleted.
-
-Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
- * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
- ultrix are defined. Use setvbuf instead of setbuf.
- (scm_setvbuf): new procedure.
- (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
- (scm_setfileno): moved from ioext.c.
- (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
- (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
-
-Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * fluids.c (scm_fluid_p): New function.
- * fluids.h (scm_fluid_p): New prototype.
-
-Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * print.c (scm_iprin1): Enter printed structures into the print
- state as nested data while they are printed.
- (print_state_fluid, print_state_fluid_num): New variables.
- (scm_init_print): Initialize them.
- (scm_iprin): If print_state_fluid carries a print_state, use that
- instead of creating a new one.
- (scm_printer_apply, apply_stub, struct apply_data): New
- definitions to help with calling printer functions written in
- Scheme.
- * print.h (scm_printer_apply): New prototype.
-
- * struct.c (scm_print_struct): Use scm_printer_apply to call the
- user defined struct printer.
-
- * dynwind.c (scm_dowinds): Handle fluids on the wind list.
- * fluids.h (scm_internal_with_fluids, scm_with_fluids,
- scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
- * fluids.c (scm_internal_with_fluids, scm_with_fluids,
- scm_swap_fluids, scm_swap_fluids_reverse): New functions.
-
-Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
- SCM_ASSERT: arg comes before pos.
-
-Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
- to a list of length zero correctly.
-
-Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
-
- Supply an `fgets' method for port objects to do fast line i/o.
- * ioext.c (scm_read_line): New function.
- * genio.c (scm_gen_read_line): New function.
- * fports.c (scm_fgets): New function.
- (scm_fptob, scm_pipob): Add scm_fgets method.
- * ports.c (fgets_void_port, scm_generic_fgets): New functions.
- (void_port_ptob): Add void fgets method.
- (scm_newptob): Initialize fgets method from ptob struct.
- * ports.h (scm_ptobfuns): Add fgets method.
- * vports.c (scm_sfptob): Supply generic fgets method.
- * strports.c (scm_stptob): Supply generic fgets method.
-
-Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.h: removed scm_duplicate_port prototype.
-
- * ioext.c (scm_primitive_dup2): return the new file descriptor
- instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
- is convenient.
- (scm_fdopen): bug fix: don't try to make port unbuffered until its
- stream has been set.
- (scm_duplicate_port): deleted, there's now an implementation in
- boot-9.scm.
- (scm_primitive_dup2): do nothing if newfd == oldfd.
-
-Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
- argument.
-
- * ioext.h: new prototypes.
- * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
-
- * fluids.c (next_fluid_num): don't do
- SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
-
- * ports.h: prototypes too.
- * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
-
- * fports.h: prototype too.
- * fports.c (scm_evict_ports): moved from ioext.c.
-
-Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.c (scm_close_port): return a boolean instead of unspecified.
- throw an error if an error other than EBADF occurs.
-
- * filesys.h: scm_close prototype.
- * filesys.c (scm_close): new procedure, can close file descriptors
- and ports (scsh compatible).
-
- * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
- optional argument.
-
-Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * fluids.c, fluid.h: New files.
- * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
- (modinclude_HEADERS): Added "fluids.h"
-
- * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
- scm_init_fluids to initialize the fluid machine.
- (scm_start_stack): Initialize the fluids of the first root with
- scm_make_initial_fluids.
-
- * root.h: Added "fluids" member to scm_root_state.
- * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
- (scm_make_root): Call scm_copy_fluids to make fluid bindings
- unique for the new root when it has a parent.
-
- * smob.h: Include "libguile/print.h" to make scm_print_state
- visible.
-
- * dynl.c (free_dynl_obj): New function to free the dynamic object
- data. (dynl_smob): Use it.
- * dynl.c (scm_dynamic_link): Moved allocating of the memory for
- the dynamic object data below the linking of the object to avoid
- memory leak when the linking code throws an error. Now the code
- leaks a whole dynamically linked library when must_malloc throws,
- but that should be much less likely.
-
-Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- Changes to compile under gnu-win32, from Marcus Daniels:
- * stime.c (tzset): If tzset isn't provided, make it a NOP.
- (scm_localtime): Change SCM_EOF to SCM_EOL.
- (scm_mktime): Likewise.
- * socket.c: Don't include sys/un.h unless autoconf tells
- us Unix domain sockets are available.
- (scm_fill_sockaddr): Ignore Unix domain code.
- (scm_addr_vector): Likewise.
- (scm_init_addr_buffer): Likewise.
- (scm_socketpair): Don't include unless socketpair was
- found during autoconf.
- * simpos.c (SYSTNAME): Treat cygwin like Unix.
- * scmsigs.c (scm_pause): Don't include unless pause was found
- during autoconf.
- * posix.c (scm_getgroups): Don't include unless support function
- was found during autoconf (in this case, getgroups).
- (scm_setpwent): For setpwent.
- (scm_setegid): For setegid.
- * net_db.c (scm_inet_netof): Don't include unless support
- function was found during autoconf (in this case, inet_netof).
- (scm_lnaof): For inet_lnaof.
- (scm_inet_makeaddr): For inet_makeaddr.
- (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
- (scm_getproto): For getprotoent.
- (scm_getserv): For getservent.
- (scm_sethost): For sethostent, endhostent.
- (scm_setnet): For setnetent, endnetent.
- (scm_setproto): For setprotoent, endprotoent.
- (scm_setserv): For setservent, endservent.
- * scmconfig.h.in: Regenerated.
-
-Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
- scm_misc_error, not SCM_EOF.
-
- * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
- arguments for formatting the error message, not SCM_BOOL_F. I
- think this is left over from the (eq? '() #f) days.
-
- * read.c (recsexpr): Give this a dummy definition if
- DEBUG_EXTENSIONS isn't #defined.
-
-Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * coop-threads.c (scm_wait_condition_variable): Lock mutex again
- after waiting.
-
-Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
- scm_internal_catch.
-
-Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
-
- * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
- alloca.lo will be included in @LIBLOBJS@. Something better than
- this should be possible.
- * Makefile.in: Regenerated.
-
-Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * simpos.h: prototype for scm_primitive_exit.
- * simpos.c (scm_primitive_exit): new procedure, terminates the
- process without unwinding the stack.
-
-Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
-
- * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
- argument and logior its components together, so the user doesn't
- have to do this explicitly. Also, if regexp/basic is supplied, then
- turn off REG_EXTENDED.
- (scm_init_regex_posix): New regexp/basic symbol.
- (REG_BASIC): #define this if it is not already present.
-
-Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
-
- * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
- (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
- (CLEANFILES): New target, clean versiondat.h, libpath.h.
- (DISTCLEANFILES): New target, clean *.x.
- * Makefile.in: Regenerated.
-
-Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- * script.c (scm_compile_shell_switches): Add 1997 to copyright
- years in usage message.
-
- * Makefile.am (libguile_la_LDFLAGS): Bump library version.
- * Makefile.in: Regenerated.
-
- * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
- flag; I don't think we support it.
- (scm_make_regexp): Make sure the user doesn't pass the
- regexp/nosub flag.
-
- * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
- FLAGS arguments.
- (scm_init_regex_posix): Define constants for the REG_mumble flags;
- name them according to the SCSH convention: regexp/mumble.
-
- * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
-
-Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- * Makefile.am (libpath.h): Include the values of all the standard
- Makefile directory variables. Print a message, but don't print
- all the commands.
- (versiondat.h): Print a message, but don't print all the commands.
- * load.c: #include "alist.h".
- (init_build_info): New function.
- (scm_init_load): Call it.
- * Makefile.in: Regenerated.
-
-Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- * root.c: Establish a reliable catch-all handler for the new root.
- After all the Scheme handler function might signal an error too,
- and we don't want to lose that.
- (cwdr_inner_body): Renamed from cwdr_body.
- (cwdr_outer_body): New function, to establish the user's handler,
- and pass control to cwdr_inner_body.
- (cwdr): Establish the reliable catch-all handler here, and pass
- control to cwdr_outer_body.
- (struct cwdr_body_data): New field, handler, to allow cwdr to pass
- the user's handler through to cwdr_outer_body.
- * throw.c (scm_handle_by_message): Move guts into....
- (handler_message): New static function.
- (scm_handle_by_message_noexit): New function.
- * throw.h (scm_handle_by_message_noexit): New prototype.
-
- * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
- across this. Only works on GCC. Otherwise, we hope for the best.
- (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
- the feeling that real thread systems will not need this...
-
-Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- Try to detect when people are using one version of libguile and a
- different version of ice-9. People have been skewing things and
- sending in bug reports.
- * Makefile.am (versiondat.h): New file to generate.
- * version.c: #include "versiondat.h", to get version info.
- (scm_libguile_config_stamp): New function.
- * script.c: #include "version.h".
- (scm_compile_switches): Call scm_version to get version number.
- * scmconfig.h.in, Makefile.in: Regenerated.
- * Makefile.in: Regenerated.
-
- * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
- primitive definitions under their Scheme names.
-
- * Makefile.am (libguile_la_LDFLAGS): Update library version to
- 1:2. Helps avoid confusion between installed and uninstalled libs.
-
- * scmconfig.h.in: Regenerated. (Needed after June 3 change to
- ../configure.in.)
-
- * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
- backslash from definition; this should be used like: GDB_INTERFACE;
-
-Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.c (scm_duplicate_port): bug fix: don't try to make the
- new port unbuffered until its stream has been set.
-
-Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.h: new prototype.
- * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
-
-Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- Make things compile neatly under Sun's C compiler.
- * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
- * extchrs.c (xmbtowc): Make the second arg a normal char, not
- unsigned, because that's what the ANSI function takes.
- * extchrs.h (xmbtowc): Corresponding change to prototype.
- * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
- uchars here.
- * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
- argument plain char *.
- * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
- char.
- * tag.c (scm_tag): Remove unreachable statement.
- * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
- top of the word, it should be unsigned.
-
- * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
- is defined, to avoid warnings; it's only used in the
- conflict-checking code. Which might go away anyway.
- (SCM_CEVAL): All goto's targeting the `dispatch' label are in
- conditionals; put the label definition in an #if too, to stifle
- warnings.
-
- * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
- ChangeLog-threads in the distribution.
- * Makefile.in: Regenerated.
-
-Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
-
- * guile-snarf.in: Changed regexp to support CPPs that insert
- whitespace between lexical tokens (which munges the `%%%' snarf
- cookie).
-
-Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
-
- * load.c (scm_init_load_path): Append $(datadir)/guile to
- %load-path, so modules do not have to be installed in Guile's
- current version directory.
-
-Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
- function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
- (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
- call the sysdep functions with deferred ints.
- * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
- sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
- deferred interrupts and insert SCM_ALLOW_INTS before throwing an
- error.
-
- * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
- SCM_UNSPECIFIED.
-
-Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
-
-Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
-
- * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
- ../configure.in.
-
-Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * eval.c (scm_lookupcar1): New procedure to cope with a race
- condition during lookup (when using threads).
- (scm_lookupcar): Implement in terms of scm_lookupcar1.
- (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
- place.
-
-Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * regex-posix.c (scm_regexp_exec): Use the `start' argument if
- supplied. (Change from Tim Pierce.)
-
-Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
- 23:47:01 1997" changelog: Slots are now initialized with `#f' by
- default and not `()'. `#f' is the canonical non-value in Scheme,
- right?
-
-Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * struct.c (struct_printer): New variable that holds a handle on
- the Scheme variable *struct-printer*. This variable can be set by
- Scheme code to override the printing of structures.
- (scm_print_struct): If struct_printer is set, call it. If it is
- not set, or returns #f, print the structure in the old fashion.
- Include "eval.h" for scm_apply.
-
-Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * struct.c (scm_struct_ref, scm_struct_set_x): Use
- scm_struct_i_n_words to get the number of fields, not
- -scm_struct_n_extra_words.
-
- On the route to fancier struct printing:
- * struct.c (scm_print_struct): New function to print a structure.
- Include "genio.h" to support it. This function doesn't do
- anything interesting right now, but I think it should be here
- anyway.
- * struct.h: Include "print.h" and add prototype for
- scm_print_struct.
- * print.c (scm_iprin1): Call scm_print_struct instead of trying to
- print structures ourself.
-
-Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
- before applying the handler in case it doesn't return.
-
-Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * scmsigs.h, async.h: updated.
-
- * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
- loop.
-
- * posix.c (scm_uname): interpret only negative values as an error.
- Solaris normally returns a positive value.
-
- * script.c (scm_compile_shell_switches): if we are not going into
- an interactive repl, set scm_mask_ints to zero so that asyncs can
- run.
-
- * simpos.c (scm_system): don't ignore/unignore signals around
- the "system" call.
-
- * posix.c (scm_open_pipe): don't ignore/unignore signals around
- the "popen" call.
-
- * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
- done in boot-9.scm instead.
-
- * scmsigs.c, async.c: Major rewriting of signal handling code.
- (scm_sigaction): new procedure.
- (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
- timing.
- (scm_raise): return unspecified, throw error on failure.
-
-Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * regex-posix.c (scm_init_regex_posix): Register the "regex"
- feature, to help boot-9.scm decide whether to import the regex
- module.
-
-Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * eval.c: Include scmconfig.h at the beginning of the file so that
- HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
- pointing this out.
-
- * regex-posix.c: #include "_scm.h" before conditionally #including
- <regex.h>; the former defines HAVE_REGCOMP.
-
- * regex-posix.c: #include <regex.h> conditionally, so the file is
- CPP'able (for dependency scanning) even on systems that don't have
- a <regex.h> header.
-
-Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- Add new R4RS-compliant syntax for keywords.
- * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
- regardless of the setting of the `keywords' read option.
- * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
- can be re-read no matter what the setting of the `keywords' read
- option.
-
-Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
-
- Add support for POSIX regular expressions.
-
- * regex-posix.c, regex-posix.h: New files. (Some code
- is taken liberally from rx/rgx.c in the old Guile dist.)
-
- * init.c: Include regex-posix.h.
- (scm_boot_guile_1): Call scm_init_regex_posix.
-
- * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
- Add regex-posix.[ch] sources.
- * Makefile.in: Regenerated.
-
- * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
- to do this automatically? It didn't for me, bleh.)
-
-Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * fports.c (print_pipe_port): New function.
- (scm_fptob): Use print_pipe_port instead of scm_prinport; the
- latter doesn't even take the right arguments.
-
- * Makefile.am: Increment shared lib revision number. I think
- sometimes the uninstalled Guile finds the installed shared lib;
- Gord says doing this might help. As things turned out, I can't
- say whether it does.
- * Makefile.in: Regenerated.
-
- * gh_init.c (gh_enter): Cast c_main_prog to a void * before
- passing it as the closure argument to scm_boot_guile. (Bill
- Janssen)
-
- * ports.c (print_void_port, putc_void_port, puts_void_port,
- write_void_port, flush_void_port, getc_void_port, close_void_port,
- noop0): Use ANSI prototypes instead of K&R declarations, so the
- initialization of void_port_ptob gets aggressively type-checked.
- Fix arguments of print_void_port and write_void_port. (Bill
- Janssen)
-
- * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
- appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
- backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
- continuations.c, continuations.h, coop-defs.h, coop-threads.c,
- coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
- coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
- dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
- error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
- filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
- gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
- gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
- gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
- gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
- init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
- list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
- markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
- mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
- objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
- ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
- procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
- read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
- script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
- smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
- stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
- strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
- strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
- tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
- unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
- version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
- address for FSF.
-
-Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * script.c (scm_find_executable): Use prototype-style definition
- here; apparently it's not quite right to have const in a prototype
- and then use a K&R declaration. I wonder if stuff like this will
- go away if we compile with -Wrequire-prototypes, or whatever that
- is... (Bernard URBAN)
-
- * scmhob.h: New text from Bernard URBAN.
-
-Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * script.c: Don't #define const on hpux. Configure takes care of
- this. (Thanks to Larry Schwimmer.)
-
- * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
- decide whether to #include <unistd.h>, instead of listing a bunch
- of systems. Don't #include stdio twice. Removed dyked-out
- definition of scm_find_impl_file.
-
-Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
- library version info to 1:0.
- * Makefile.in: Regenerated.
-
- * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
- gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
- gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
- init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
- script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
- throw.c: Update copyright years; these files have been worked on
- significantly in 1997, but only had copyright years for 1996.
- Also, change name of copyright holder on some from Mikael
- Djurfeldt to Free Software Foundation; he has signed papers
- assigning the changes to the FSF.
-
- * script.c (scm_shell_usage): Pass FATAL to exit. There's no
- reason not to give the user the option.
-
- * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
- Return #f on end-of-file when scanning table (i.e. when called
- with no arguments). Try to catch errors, when we can.
- * posix.c (scm_getgrgid, scm_getpwuid): Same.
-
- * script.h (scm_shell_usage, scm_compile_shell_switches): New
- external declarations. These are useful.
-
-Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * posix.c: don't include <sys/select.h> or define macros for
- select, since they were not used in this file.
-
- * filesys.c (scm_select): make the fifth parameter microseconds,
- not milliseconds. let the fourth parameter be either a real value
- or an integer or #f. The first, second and third arguments can
- now be vectors: the type of the corresponding return set will be
- the same.
- (set_element, get_element): new static procedures.
-
-Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * strports.c (scm_eval_string): New function.
- (scm_eval_0str): Trivially re-implemented in terms of
- scm_eval_string.
- * strports.h (scm_eval_string): New extern decl.
-
- * net_db.c (h_errno): Add extern decl for this.
-
- * fports.c (local_pclose): New function.
- (scm_pipob): Use it in the initializer here.
-
- From Tim Pierce:
- * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
- Use a meaningful error message when signalling an error. For
- this, scm_gethost must check h_errno rather than errno.
-
-Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in: Regenerated, using automake-1.1p.
-
-Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
- not SCM_UNSPECIFIED.
-
- * script.c (scm_compile_shell_switches): don't append (quit) if
- interactive.
- (scm_shell): call scm_exit_status and exit on the result of the
- evaluation.
-
-Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- Ensure that shared substrings are handled properly when passed to
- a system call or other foreign function. Many thanks to Tim
- Pierce!
- * symbols.h (SCM_COERCE_SUBSTR): new macro.
- * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
- scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
- scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
- scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
- scm_strftime), vports.c (scm_make_soft_port), backtrace.c
- (scm_display_error_message): use RO macros when strings may be RO.
- * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
- scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
- scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
- (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
- (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
- (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
- scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
- scm_strftime), vports.c (scm_make_soft_port): use
- SCM_COERCE_SUBSTR to make sure shared substrings are
- null-terminated.
-
-Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * error.c (scm_error): Add newline to error message.
-
- * init.c (scm_init_standard_ports): Doc fix.
-
-Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl-shl.c: Completely replaced with new code from Bernard
- URBAN.
-
- * script.c (scm_ice_9_already_loaded): New variable.
- (scm_compile_shell_switches): Use it.
-
-Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scm_input_waiting_p): add missing third argument to
- scm_misc_error.
-
- * stime.c (scm_localtime): copy the result of localtime before
- calling gmtime in case they share a buffer.
- (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
- nor HAVE_TZNAME.
-
-Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
-
-Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.am (check-local): New target, which causes 'make check'
- to run gh_test_c and gh_test_repl, with some trivial input.
- * Makefile.in: Rgnrtd.
-
-Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
- been unlinked.
-
-Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * async.c (scm_sys_tick_async_thunk): commented out. I'm not
- sure how this was supposed to work.
- (scm_async_click): don't send SCM_TICK_SIGNAL.
- (scm_init_async): don't initialize %tick-thunk.
-
- * the following change doesn't affect the Scheme interface:
- gc-thunk is called at the end of garbage collection. however it's
- no longer implemented by pretending it's a signal.
-
- * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
- system async corresponding to scm_gc_thunk.
- * async.h: declare scm_gc_async.
- * async.c (scm_sys_gc_async_thunk): apply the thunk named by
- gc-thunk directly, instead of going through a signal handler.
- (scm_gc_async): new variable, points to the GC system-async.
- (scm_init_async): save the GC async as scm_gc_async instead
- of using system_signal_asyncs.
- (scm_gc_vcell): new variable, stores the gc-thunk vcell.
-
-Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
- Don't screw up if we're interrupted.
- * Makefile.in: Regeneradet.
-
-Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
-
- * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
- we're not using AM_INIT_GUILE_MODULE any more.
- * Makefile.in: Reneregated.
-
-Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- Functions for finding variable bindings, grace à Tim Pierce.
- * gh_data.c (gh_lookup, gh_module_lookup): New functions.
- * gh.h (gh_lookup, gh_module_lookup): New prototypes.
-
- Get 'make dist' to work again.
- * Makefile.am (EXTRA_DIST): Remove PLUGIN files.
- * Makefile.in: Regenerated, like a surry without a fringe on top.
-
- Changes for reduced Guile distribution: one configure script,
- no plugins.
- * configure.in, configure: Removed.
- * acconfig.h, acinclude.m4: Moved to parent directory, where the
- real configure script lives.
- * Makefile.in, scmconfig.h.in: Regenerated.
-
- * init.c: #include "script.h", to get prototype for script.c's
- init function.
-
-Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
- scm_must_malloc, not raw malloc.
-
- * script.c (scm_compile_shell_switches): Dyke out debugging output
- code.
-
-Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
-
- * stime.c: include both <sys/times.h> and <sys/timeb.h> if the
- system has them. Hope this is safe. Previously
- sys/timeb.h was included if HAVE_FTIME was defined or if
- HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
- but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
-
- * ioext.c (scm_setfileno): add missing third argument to
- scm_misc_error call.
-
-Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * eq.c (scm_equal_p): Correctly compare strings of different
- varieties. (Thanks to Tim Pierce.)
-
-Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * read.c (skip_scsh_block_comment): SCSH says the !# that ends a
- #! block comment must occur on a line all by itself.
-
- Move most of the guts of shell command processing into libguile,
- so guile.c can be very small (and eventuallly auto-generated. (I
- mean, generated mechanically, not self-generated. Hmm.))
- * guile.c, script.c, script.h: New source files.
- * init.c (scm_boot_guile_1): Call scm_init_script.
- * libguile.h: #include "script.h".
- * Makefile.am (bin_PROGRAMS, guile_SOURCES, guile_LDADD): New
- targets, for new executable.
- (libguile_la_SOURCES): Mention script.c.
- (modinclude_HEADERS): Add script.h.
- * configure.in: Always check for -lm, -lsocket, -lnsl, whether or
- not dynamic linking is enabled. This is because we're generating
- executables now. Move CY_AC_WITH_THREADS call after those, so the
- values of cy_cv_threads_libs captures the libs chosen above.
- * Makefile.in, configure, aclocal.m4: Regenerated.
-
- * Makefile.am (EXTRA_DIST): Don't distribute gscm.c or gscm.h.
- We don't maintain this interface any more, and it just confuses
- people.
-
- * alloca.c: #include <scmconfig.h>, not <config.h>.
- * Makefile.am (EXTRA_libguile_la_SOURCES): Mention alloca.c, so
- it'll get included in disties.
-
-Thu Apr 17 17:45:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * gscm.c, gscm.h: These aren't supported any more, and shouldn't
- be distributed, because they confuse people.
- * Makefile.am (EXTRA_DIST): Remove gscm.c, gscm.h.
-
-Sat Apr 19 11:56:18 1997 Tim Pierce <twp@twp.tezcat.com>
-
- * configure.in: check for presence of gethostent (not present on
- OpenBSD by default).
- * net_db.c (scm_gethost): Check HAVE_GETHOSTENT.
- * configure, scmconfig.h.in: Regenerated.
-
-Wed Apr 16 17:52:38 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * backtrace.c (scm_backtrace): Split message string across
- newlines properly. GCC is more tolerant of this than other
- compilers.
-
-Mon Apr 14 20:20:14 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- Merge threads directory into libguile.
- * coop-defs.h, coop-threads.c, coop-threads.h, coop.c, threads.c,
- threads.h: New source files.
- * Makefile.am (EXTRA_libguile_la_SOURCES): Add threads.c.
- (noinst_HEADERS): Add coop-threads.c, coop-threads.h, coop.c
- here; see comment.
- (modinclude_HEADERS): Add threads.h, coop-defs.h.
- (EXTRA_DIST): Add fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
- coop-threads.c.cygnus, coop-threads.h.cygnus.
- * configure.in: If we're using threads, include threads.o in
- LIBOBJS.
- * _scm.h, libguile.h: threads.h lives in this directory now.
- * fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
- coop-threads.c.cygnus, coop-threads.h.cygnus: New files, not
- currently used, but brought along for information's sake.
- * ChangeLog-threads: log from old 'threads' directory.
- * Makefile.in, configure: Rebuilt.
-
-Mon Apr 14 20:15:29 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * stime.c (scm_mktime): #ifndef HAVE_TM_ZONE, Use lt.tm_zone, not
- lt->tm_zone.
-
-Mon Apr 14 01:32:57 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * gh_init.c (gh_standard_handler): Return SCM_BOOL_F, not garbage.
-
- Merge GH interface library into libguile.
- * gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
- gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c: New files.
- * Makefile.am (libguile_la_SOURCES): Add gh_data.c, gh_eval.c,
- gh_funcs.c, gh_init.c, gh_io.c, gh_list.c, gh_predicates.c. Move
- _scm.h to ...
- (EXTRA_libguile_la_SOURCES): ... here.
- (pkginclude_HEADERS): Add variable, to get gh.h installed.
- (THREAD_LIBS, check_ldadd, check_PROGRAMS, gh_test_c_SOURCES,
- gh_test_c_LDADD, gh_test_repl_SOURCES, gh_test_repl_LDADD):
- New variables, describing how to build the gh test programs.
- * configure.in: Check for -lm, -lsocket, -lnsl; we need this to
- build the test programs, and we probably should have been linking
- libguile.la against them all along, to support AIX shared libs.
- Add cflags for threads to CFLAGS; add libs for threads to new
- variable THREAD_LIBS, used in Makefile.am.
- * ChangeLog-gh: log from old `gh' subdirectory.
- * Makefile.in, configure, scmconfig.h.in: Rebuilt.
-
-Sun Apr 13 23:03:55 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * acconfig.h: Undo change of Apr 9; including the definition of
- PACKAGE in the guile headers conflicts with applications' own
- definitions.
- * scmconfig.h.in: Regenerated.
-
-Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * filesys.c (scm_fcntl): New function from Roland McGrath.
- (scm_init_filesys): New symbols for use with fcntl.
- * filesys.h: Added prototype.
-
- * eval.c (SCM_APPLY): Set debug apply frame argument list correctly
- when PROC is receiving no arguments.
-
-Fri Apr 11 19:39:32 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * filesys.c (S_ISSOCK): Define this if it's missing, but we do
- have S_IFSOCK. This is the case under Ultrix.
-
- * posix.c (scm_status_exit_val, scm_status_exit_val,
- scm_status_term_sig, scm_status_stop_sig): Modified to work with
- Ultrix versions of WIFSTOPPED, etc., which assume that their
- arguments are lvalues (hmm).
-
-Thu Apr 10 15:10:07 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * eval.c: Doc fixes.
-
- * throw.c: Doc fixes; rearranged.
-
- * putenv.c: #include "libguile/scmconfig.h", not <config.h>.
-
-Wed Apr 9 18:01:20 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * acconfig.h: Added entry for PACKAGE.
- * scmconfig.h.in: Regenerated.
-
- Changes to work with automake-1.1n, which has better libtool support.
- * Makefile.am: Use lib_LTLIBRARIES instead of lib_PROGRAMS.
- Use libguile_la_LIBADD instead of libguile_la_LDADD. (What's the
- difference here?)
- (libguile_la_SOURCES, modinclude_HEADERS, EXTRA_DIST): Format for
- readability.
- * Makefile.in: Rebuild.
-
-Wed Apr 9 09:08:54 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.c (scm_mktime): take an optional zone argument.
- (scm_localtime): check putenv return value.
- (scm_strftime, scm_strptime): moved from posix.c. move #include
- sequences.h too.
- stime.h, posix.h: update prototypes.
- (bdtime2c, setzone, restorezone): new static procedures.
- (scm_mktime, scm_strftime): use them.
- (scm_strftime): don't call mktime before strftime. Use
- filltime for return value.
- (filltime): convert NULL zname to #f.
- (scm_strptime): return a count of characters consumed, not
- the remaining string.
-
-Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.c (scm_localtime): check HAVE_TM_ZONE and HAVE_TZNAME.
- (scm_mktime): likewise.
- Declare *tzname[].
- Uncomment localtime and mktime.
-
- * configure.in: add AC_STRUCT_TIMEZONE.
-
-Sat Apr 5 23:56:40 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.c (scm_init_stime): don't define ticks/sec.
- (scm_gettimeofday): renamed from scm_time_plus_ticks (avoids multiple
- return value problem and is still portable.)
-
-Sat Apr 5 17:59:24 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * cpp_err_symbols.in: Renamed from cpp_err_symbols, to avoid
- make's implicit cpp_err_symbols: cpp_err_symbols.c rule.
- * cpp_sig_symbols.in: Renamed from cpp_sig_symbols.
- * Makefile.am (check_errnos, check_signals, cpp_sig_symbols.c,
- cpp_err_symbols.c): Corresponding changes.
- * Makefile.in: Regenerated.
-
-Sat Apr 5 02:39:02 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * posix.c (scm_putenv): don't check HAVE_PUTENV.
- * Makefile.am (EXTRA_libguile_la_SOURCES): add putenv.c.
- * configure.in: move putenv from AC_CHECK_FUNCS to AC_REPLACE_FUNCS.
- * putenv.c: new file, from sh-utils 1.12.
-
- * posix.c (scm_environ): use malloc in place of scm_must_malloc
- since allocation isn't for Scheme objects.
- (scm_putenv): copy strings before placing in the environment.
-
- * stime.c (scm_current_time): throw an error if time returns -1,
- instead of returning #f.
- (scm_get_internal_real_time, scm_get_internal_real_time): use
- scm_long2num for return value instead of SCM_MAKINUM.
-
- * stime.h: prototypes updated.
-
- * stime.c (scm_time_in_msec): apparently unused, deleted.
-
-Fri Apr 4 08:53:41 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * configure.in: check for gettimeofday.
-
- * stime.c (scm_time_plus_ticks): new procedure, an scsh interface
- which may be more usefully portable than a gettimeofday interface.
-
-Wed Apr 2 17:11:39 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * Makefile.am (EXTRA_DIST): It's cpp_err_symbols, not
- cpp_err_signals.
- * Makefile.in: Regenerated.
-
-Mon Mar 31 03:22:37 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * stime.c (filltime): recovered static procedure.
- (scm_localtime, scm_gmtime, scm_mktime, scm_tzset): recovered from
- an earlier Guile.
-
- * posix.h: add prototype for scm_close_pipe, remove prototypes for
- scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
-
- * posix.c (scm_mknod): split the mode argument into type and perms
- arguments, like the extra fields returned by stat.
-
- * fports.c (scm_pipob): set the close, free and print procedures.
- (scm_close_pipe): new procedure.
-
- * posix.c (scm_open_input_pipe, scm_open_output_pipe): deleted,
- define them in boot-9.scm
-
-Wed Mar 26 04:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.c (scm_setfileno): throw a runtime error if SET_FILE_FD_FIELD
- wan't defined. Don't include fd.h.
-
- * Previously fd.h was regenerated whenever configure was run,
- forcing a couple of files to be recompiled.
-
- * fd.h.in: deleted, SET_FILE_FD_FIELD moved to ioext.c.
- * configure.in: AC_DEFINE FD_SETTER instead of HAVE_FD_SETTER.
- Check for _fileno as well as _file.
- Don't output fd.h.
- * ioext.c: don't fd.h.
- * acconfig.h: remove duplicate HAVE_FD_SETTER and change the
- other to FD_SETTER.
-
- * Change the stratigy for getting information about errno
- (and now signal number) values, e.g., ENOSYS, SIGKILL. Instead of
- generating lists of symbols during the build process, which will
- not always work, include comprehensive lists in the distribution.
- To help keep the lists up to date, the "check_signals" and
- "check_errnos" make targets can be used.
-
- * configure.in: don't check for a command to extract errno codes.
- * Makefile.am: update file lists, remove errnos.list and errnos.c
- targets, add cpp_err_symbols.c, cpp_sig_symbols.c, check_signals,
- check_errnos targets.
- (CLEANFILES): remove errnos.c and errnos.list, add
- cpp_err_symbols_here cpp_err_symbols_diff cpp_err_symbols_new
- cpp_sig_symbols_here cpp_sig_symbols_diff cpp_sig_symbols_new
- * errnos.default: deleted.
- * cpp_signal.c: new file.
- * cpp_errno.c: renamed from errnos_get.c.
- * cpp_err_symbols, cpp_sig_symbols: new files.
- * cpp_cnvt.awk: renamed from errnos_cnvt_awk.
- * error.c (scm_init_error): #include cpp_err_symbols instead of
- errnos.c.
- * posix.c (scm_init_posix): don't intern signal symbols. #include
- cpp_sig_symbols.c.
-
-Tue Mar 25 04:51:10 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * strop.c (scm_i_index): allow the lower bound to be equal to the
- length of the string, so a null string doesn't always give an error.
-
- * posix.h: new prototypes.
- * posix.c (scm_status_exit_val, scm_status_term_sig,
- scm_status_stop_sig): new functions, as in scsh. They break down
- process status values as returned by waitpid.
-
-Sat Mar 22 18:16:29 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * net_db.c (scm_gethost): don't check HAVE_GETHOSTENT, since
- configure doesn't know about it.
-
-Fri Mar 21 23:49:28 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * snarf.h, backtrace.c: Name change SCM_GLOBAL --> SCM_VCELL.
-
- * snarf.h: Added new macros SCM_GLOBAL_SYMBOL and SCM_GLOBAL_VCELL
- which defines C variables with global linkage.
-
-Mon Mar 17 05:57:11 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * snarf.h (SCM_PROC1): Bugfix: Use (void) rather than (...) for
- zero arg subrs.
-
-Sun Mar 16 11:43:49 1997 Mikael Djurfeldt <mdj@floss.cyclic.com>
-
- * eval.c (safe_setjmp): Temporarily use old setjmp until someone
- has time to check why this doesn't work well with continuations.
-
-Sun Mar 16 05:09:55 1997 Jim Blandy <jimb@totoro.cyclic.com>
-
- * Fix shell syntax error; some shells won't tolerate
- multiple "fi" statements on a single line. (Thanks to Fred Fish.)
-
-Sat Mar 15 01:11:40 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * posix.c (scm_uname): throw an error if uname fails instead
- of returning errno.
-
- * error.h (scm_errno, scm_perror): obsolete prototypes removed.
-
- * error.c (err_head, scm_errno, scm_perror): obsolete procedures
- removed.
-
- * async.c (scm_ints_disabled): definition moved from error.c.
-
-Sat Mar 15 00:06:08 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * acconfig.h: Removed PACKAGE.
-
- * scmconfig.h.in: Regenerated.
-
- * snarf.h: g++ says it's non-portable not to specify the first
- argument in a varargs declaration. I introduced the first
- argument by using preprocessor conditionals.
-
-Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.c (scm_read_delimited_x): use RO string macros for delims.
- (scm_freopen): use RO string macros for filename and modes.
- (scm_duplicate_port, scm_fdopen): use RO string macros for modes.
-
- * posix.c (scm_getgrgid): simplify conversion of name to C string.
- (scm_mknod): use RO string macros for path.
-
- * socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
- use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
-
- * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
- use SCM_ROSTRINGP and SCM_ROCHARS.
-
-Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
- a scm_tc7_byvect.
-
- * ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
- scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
- support for byte vectors.
-
- * print.c (scm_iprin1): Limit number of vector elements printed
- according to pstate->length.
-
-Thu Mar 13 00:12:35 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * backtrace.c (scm_display_error_message): don't segv if message
- is an immediate.
-
- * error.h: prototype for scm_error_scm.
-
- * error.c (scm_error_scm): new procedure, reimplements scm-error
- in C and uses scm_error.
-
-Tue Mar 11 03:51:00 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * read.c (scm_read_hash_extend): make scm_read_hash_procedures a
- pointer to the Scheme variable read-hash-procedures and intern it
- in scm_init_read. Modify scm_read_hash_extend and
- scm_get_hash_procedure to use the pointer.
-
-Mon Mar 10 06:28:54 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
- (SCM_KEYWORD_STYLE): defined.
-
- * read.c (scm_read_opts): add a keywords option. This isn't a
- boolean option, in case someone wants to add support for DSSSL
- keywords too.
- Setup scm_keyword_prefix symbol.
- (scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
- set to 'prefix.
- I've left keyword support disabled by default, since it doesn't
- seem to break the module system and it gives R4RS standard behaviour.
- It can be reactivated with (read-set! keywords 'prefix).
-
-Sun Mar 9 14:14:39 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * arbiters.c (scm_make_arbiter): Bugfix: Must SCM_DEFER_INTS
- before constructing arbiter.
-
- * eval.c (scm_m_define): Bugfix: Check that the object is a
- closure before setting the procedure property!
-
- * ports.h: Removed prototype for scm_ungetc_char_ready_p.
-
- * ports.c: Removed `ungetc-char-ready?'.
-
-Sat Mar 8 00:27:05 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * read.c (scm_init_read): intitialise scm_read_hash_procedures
- (idea from Mikael: make it a pair so scm_permanent object only
- called once.)
- (scm_read_hash_extend): don't call scm_permanent_object.
- (ideas from Mikael): if chr is already in the list, replace its
- procedure instead of appending it again. If proc is #f, remove
- it from the list.
- (scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
-
- * strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
-
- * gdbint.c (gdb_read): update scm_lreadr usage.
-
- * load.h: update prototypes.
-
- * load.c (scm_primitive_load, scm_read_and_eval_x,
- scm_primitive_load_path): remove case_insensitive_p, sharp arguments.
-
- * read.h: add prototype for scm_read_hash_extend. Change args for
- other prototypes.
-
- * read.c (scm_read_hash_procedures): new variable.
- (scm_read_hash_extend): new procedure.
- (scm_get_hash_procedure): new procedure.
- (scm_lreadr): use scm_get_hash_procedure instead of an argument
- for extended # processing.
- (scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
- scm_read_token): remove case_i, sharp arguments. Change callers.
-
-Fri Mar 7 08:58:21 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * read.h (SCM_N_READ_OPTIONS): increase to 3.
- (SCM_CASE_INSENSITIVE_P): define.
-
- * read.c: add case-insensitive option to scm_read_opts.
- (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
- to determine whether to convert symbol case.
- (default_case_i): definition removed.
- * read.c (scm_read_token): if case_i, downcase ic before doing
- anything with it.
-
-Sat Mar 8 03:49:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * configure.in: Added configuration option `guile-debug'.
- Configure with --enable-guile-debug if you want a bunch of extra
- functions used for debugging when developing Guile.
-
- * acconfig.h: Added new preprocessor symbol GUILE_DEBUG.
-
- * procs.c (make-cclo): New undocumented debugging procedure: Make
- compiled closure with internal procedure PROC and length LENGTH.
- Only compiled if GUILE_DEBUG is defined.
-
- * debug.c: Only include `debug-hang' if GUILE_DEBUG is defined.
-
- * print.c: Put #ifdef GUILE_DEBUG around `current-pstate'.
-
- * ports.c: Changed preprocessor symbol DEBUG --> GUILE_DEBUG.
-
- * eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
- with 3 or more args internally to the evaluator.
-
-Fri Mar 7 19:38:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c (SCM_CEVAL): Added code sections for handling of asubrs
- with 3 or more args internally to the evaluator. This is mainly
- because we don't want to pass entry and exit points of the
- debug support twice, but it also seems to increase the speed of
- the evaluator for such calls (e. g. (+ 1 2 3)).
-
- * backtrace.c (scm_display_application): New procedure:
- display-application; Set fancy printing parameters individually
- for different types of display (backtrace, error, application).
- (These should of course be customizable!)
-
- * debug.h (SCM_RESET_DEBUG_MODE): Bugfix: The old code didn't
- clear the CHECK-flags.
-
-Thu Mar 6 00:53:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP.
-
-Wed Mar 5 23:31:21 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
- from pairs with a GLOC in the car.
-
- * symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
- otherwise `symbol-hash' will behave badly.
- (scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
- we get segmentation fault!
-
- * symbols.c: Added #include "weaks.h". New functions:
- `builtin-bindings' and `builtin-weak-bindings'. (These will be
- moved to an extraneous library when we split libguile.)
-
-Tue Mar 4 19:50:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * filesys.c (scm_stat): stat now takes fport arguments too as
- documented in the manual.
-
-Mon Mar 3 07:11:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * debug.c (scm_single_step): Bugfix: Call continuation with
- scm_call_continuation instead of throwing to it.
-
-Mon Mar 3 09:07:56 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
- argument wasn't declared to be optional.
-
-Sun Mar 2 16:34:40 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * stime.c (scm_init_stime): Add feature "current-time".
-
-Sun Mar 2 06:37:31 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * throw.h: prototype for scm_exit_status.
- * throw.c (scm_handle_by_message): if a 'quit is caught, use its
- args to derive an exit status. Allows (quit) to work from a
- script.
- (scm_exit_status): new function.
- #include "eq.h".
-
-Sat Mar 1 00:09:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * eval.c (scm_deval): Removed some old code.
- (ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
- with the others.
- (ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
- exit-frame traps.
-
- * symbols.c (msymbolize): Bugfix: Must initialize property list to
- SCM_EOL.
-
- * procs.c: Introduce the existent C function scm_thunk_p at the
- Scheme level as well.
-
-Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * symbols.c, symbols.h (scm_symbol_value0): New function. Can be
- used from C to easily lookup the value of a symbol in the current
- module.
-
-Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * unif.c (scm_init_unif): Added #include "unif.x". (There are two
- scm_init_unif in this file. This will also fix a previous problem
- with guile-snarf.)
-
- * configure.in: Added AM_MAINTAINER_MODE
-
-Fri Feb 21 23:07:26 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to
- avoid warnings.
-
-Fri Feb 21 18:00:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
- source files that are not always included in libguile but should
- have their dependencies calculated by automake. This variable is
- recognized by automake, no further magic is needed.
- (libguile_la_DEPENDENCIES): Changed to @LIBLOBJS@. Libtool wants
- to deal exclusively with *.lo files, as it seems. The *.o files
- are built automatically when the corresponding *.lo file gets
- built.
-
-Wed Feb 19 14:04:23 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * list.h (scm_list_cdr_ref): Delete prototype; function no longer
- exists.
-
-Thu Feb 13 21:44:07 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * unif.c (scm_array_set_x): minor change to argument error checking.
-
-Tue Feb 11 18:19:47 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.am (libguile_la_SOURCES): Remove backtrace.c, debug.c,
- inet_aton.c, srcprop.c, stacks.c, and strerror.c from this list.
- They should only be included in the library at configure.in's
- discretion.
- (libguile_la_LDADD): Include the appropriate .lo files here.
- (libguile_la_DEPENDENCIES): List the corresponding .o files here,
- so we know when to build them (and their .lo bretheren).
- * configure.in (LIBLOBJS): New substituted variable. We let
- configure decide which .o files to include in LIBOBJS, and then
- put the corresponding list of .lo files in LIBLOBJS. The latter
- is what we pass to libtool.
- * Makefile.in, configure: regenerated.
-
-Mon Feb 10 00:08:08 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * symbols.c (scm_sysintern0): New function. Contains the core of
- old scm_sysintern but doesn't take a second value argument.
- (scm_sysintern): Now uses scm_sysintern0.
- (scm_sysintern_no_module_lookup): Renamed to
- scm_sysintern0_no_module_lookup and doesn't take a second value
- argument any longer.
-
- * symbols.h (scm_sysintern0: Added declaration.
-
- * options.c (scm_init_opts): Use scm_sysintern0 instead of
- scm_sysintern when interning option keys. Otherwise we risk
- destroying the values of already interned variables.
-
- * symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
- scheme-level boolean (use SCM_NFALSEP).
-
- * backtrace.c (scm_init_backtrace): Make Scheme-level variable
- `the-last-stack'.
- (scm_backtrace): New function. (C version of old function from
- boot-9.scm) Motivation: Make it possible to display backtraces
- without depending on boot-9.scm. (I'm uncertain if this
- motivation is good enough...)
-
- * root.h (scm_root_state): Add member the_last_stack_var.
- (scm_the_stack_var): Defined to scm_root->the_last_stack_var.
-
- * root.c (mark_root): Mark scm_the_last_stack_var.
-
- * init.c (scm_start_stack): Initialize scm_the_last_stack_var to
- SCM_BOOL_F.
-
-Sun Feb 9 18:04:41 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * throw.c (mark_lazy_catch, free_lazy_catch): Removed.
- 1. mark_lazy_catch didn't mark the smob.
- 2. Both functions above have standard variants:
- (lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
- free_lazy_catch --> scm_free0.
-
-Fri Feb 7 17:30:26 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * throw.c (scm_internal_lazy_catch): New function.
- (scm_lazy_catch): Rewritten to use it.
- (scm_ithrow): Handle the new lazy catch representation.
- Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry
- that doesn't have a jmpbuf is a lazy catch clause.
- (tc16_lazy_catch, struct lazy_catch, mark_lazy_catch,
- free_lazy_catch, print_lazy_catch, lazy_catch_funs,
- make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new
- smob.
- (scm_init_throw): Register the new lazy-catch smob type.
- * throw.h (scm_internal_lazy_catch): decl for new function.
-
- * throw.c (scm_internal_catch): Doc fixes.
-
- * alloca.c: New file, needed to support the AC_FUNC_ALLOCA call in
- configure.in. Including this might cause problems if applications
- that link against libguile include their own copies of alloca, but
- if they're using autoconf, they should be adding libguile to LIBS
- before calling AC_FUNC_ALLOCA anyway, in which case they'll find
- the copy in libguile, and things will be okay. (I think.)
-
-Thu Feb 6 03:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
- unif.c.
- strop.h: move prototypes too.
-
-Wed Feb 5 08:33:00 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * posix.c (scm_init_posix): don't intern EINTR since it's now done
- elsewhere.
-
- * ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
- etc. I deleted them from filesys.c long ago, but didn't
- notice they were here too (although ineffective since
- sys/stat.h wasn't included).
-
-Tue Feb 4 18:17:50 1997 Tom Tromey <tromey@cygnus.com>
-
- * eval.c: Don't define alloca in GCC case. gcc will automatically
- use __builtin_alloca if appropriate.
-
-Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * eval.c (safe_setjmp): New function: trivial wrapper for setjmp.
- (SCM_CEVAL, SCM_APPLY): Call it, instead of setjmp, to make sure
- that values of automatic variables are preserved. See comments
- for safe_setjmp for details.
-
- Change from Thomas Morgan:
- * variable.c: Include eq.h.
- (var_equal): New function.
- (variable_smob): Use var_equal as the discriminator for variables.
-
- * throw.c (s_throw): Remove extraneous declaration.
-
- * configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
- * eval.c: Add necessary CPP cruft to support that.
- * configure, Makefile.in, scmconfig.h.in: regenerated.
-
- Change from Thomas Morgan:
- * procprop.c (scm_procedure_properties): Convert the Scheme
- boolean returned by scm_procedure_p into a C boolean before using
- it as a condition for SCM_ASSERT.
- (scm_procedure_property): Likewise.
-
- * simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
- indications of Unixness.
- * stime.c: Same.
-
-Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
-
-Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * read.c (scm_lreadr): use scm_misc_error to improve one of the
- "unknown # object" error messages.
-
- * strop.c (scm_i_index, scm_i_rindex): combine into one procedure
- (scm_i_index) and declare it static. Add a 'direction' argument
- to indicate what way the search should go.
- (scm_i_index): throw out-of-range error instead of wrong-type-arg
- if indices are bad.
- (scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
- strop.h: remove scm_i_index, scm_i_rindex prototypes.
-
-Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
-
- * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
- to avoid clash with various scsh forks.
-
-Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
-
- The following two changes (ramap.c, throw.c) are motivated by the
- apparent unportability of forward declarations of static arrays of
- the form `static foo bar[];'.
-
- * ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
- (ra_rpsubrs, ra_asubrs): Moved to the top of array code.
-
- * throw.c (scm_throw): Moved above scm_ithrow.
-
- * options.h: Removed the extern declarations of scm_yes_sym and
- scm_no_sym since these are static.
-
-Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.c: add SCM_PROC declarations for pt-size and pt-member.
-
- * Makefile.am: remove AWK=@AWK@.
- Add a rule for generating errnos.list.
- (CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
-
- * configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
- don't extract errnos, just set a variable (avoids the
- need to recompile error.c just because configure is run.)
-
- * unif.h: update prototypes.
- * unif.c (scm_uniform_array_read,write): change the offset and
- length arguments to start and end, for consistency.
-
- * __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
-
- * ioext.h: update prototypes.
- * ioext.c (scm_read_delimited_x): replaces scm_read_line and
- scm_read_line_x, it's a more general procedure using an
- interface from scsh. read-line and read-line! are now defined
- in boot-9.scm.
- Note that the new read-line trims the terminator
- by default, previously it was appended to the returned string. An
- optional argument specifies how to process the terminator (scsh
- compatible). For the old behaviour: (read-line port 'concat).
- scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
- returns a pair, but is converted to multiple values if the scsh
- module is loaded.
-
- socket.h: update prototypes.
- * socket.c (scm_recvfrom): for consistency with other procedures,
- take start and end as separate optional arguments.
- (scm_recv, scm_recvfrom): don't allow the second argument
- to be a size, only a buffer. Change the scheme names to
- recv! and recvfrom!. Don't return the buffer.
-
- * ioext.h, posix.h: move prototypes too.
- * ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
- moved back from posix.c to ioext.c. Also move #includes of "genio.h"
- "read.h" and "unif.h".
- * ioext.c: include "chars.h"
-
-Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c: The dynamic linking and module registration functions
- are now defined even when dynamic linking is not available for the
- host system. Some of their functionality can be done without
- dynamic linking; when it's really needed, they throw errors.
-
-Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * configure.in: Only define DYNAMIC_LINKING when one of the system
- dependent functions is detected.
- * dynl.c (scm_dynamic_func): New function to get the address of a
- function in a dynamic object.
- (scm_dynamic_call, scm_dynamic_args_call): Accept the values
- produced by scm_dynamic_func as the thing to call.
-
-Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
- (scm_register_module_xxx, scm_registered_modules,
- scm_clear_registered_modules): New functions.
-
-Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * symbols.c (scm_sysintern): Renamed to
- scm_sysintern_no_module_lookup.
- (scm_sysintern): New function to take the place of the old
- scm_sysintern. It uses the current toplevel lookup closure to give
- the symbol its value. This is a temporary hack to put packages
- like gtcltk into their own module.
- (scm_can_use_top_level_lookup_closure_var): New variable to tell
- us whether `scm_top_level_lookup_closure_var' has been initialized
- and is usable.
- * eval.c (scm_init_eval): Set it.
-
-Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * fports.c (scm_open_file): pass errno to scm_syserror_msg.
- * filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
- SCM_FD.
- * filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
- scm_syserror_msg.
- (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
- scm_sys_dup): deleted: FD capability will be added to other
- procedures.
- Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
- scm_fd_free, fd_smob, scm_intern_fd.
- (scm_open): renamed from scm_sys_open. Return a port instead of
- an FD object. Make the mode argument optional.
- (scm_sys_create): deleted, it's just a special case of open.
- (scm_init_filesys): move interning of constants O_CREAT etc.,
- here (were previously using SCM_CONST_LONG macro).
- Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
- don't newsmob fd.
- (numerous _sys_ procedures): remove gratuitous _sys_ from names.
- include "fports.h" and <stdio.h>
- (scm_stat, scm_select): don't support FD objects.
-
- * error.h: adjust scm_syserror_msg prototype.
- * error.c (scm_syserror_msg): take an extra argument for errno.
- Using the global value didn't always work, since it could be
- reset by procedure calls in the message or args arguments.
-
- * fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
- I don't understand why the check was there (and what about the
- ultrix check?)
-
- * strop.c (scm_string_copy): allow shared substrings to be copied.
-
- * unif.h: corresponding change to prototypes.
- * unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
- recognize two new optional arguments: offset and length. Allow
- the port argument to be an integer (file descriptor, for scsh).
- Include <unistd.h> for "read" prototype.
-
-Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.c: don't include filesys.h.
-
-Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * Makefile.am: add AWK=@AWK@ (?)
-
- * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
- errnos_get.c.
- Add a rule to generate errnos.c from errnos.
- * error.c (scm_init_error): include errnos.c.
- * errnos_cnvt.awk: new file, converts the list of errno codes to
- C expressions.
- * errnos_get.c: new file.
- * errnos.default: new file, contains errnos to try if they can't
- be extracted from errno.h.
- * configure.in: if using GCC, try and extract errno codes from
- errno.h.
- Added AC_PROG_AWK.
-
-Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
- * Makefile.am: Made libguile into a libtool library.
- * PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
- Set libtool_libs to indicate that libguile is a libtool library.
- See guile/ChangeLog for details.
- * .cvsignore: ignore "*.lo", the libtool library objects.
-
-Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
- use htons in getservbyport argument.
-
-Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
- * smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
- duplicate.
-
- * objprop.c (scm_object_property): No need to take the CDR of the
- value returned by scm_object_properties, since Aug 20 change.
-
- * configure.in: When checking for struct linger, #include
- <sys/types.h> as well as <sys/socket.h>. I've never known
- <sys/types.h> to cause any portability problems, and Solaris's
- <sys/socket.h> needs it.
- * configure: Rebuilt.
-
- I think the Sun compiler has chosen a perverse way to interpret
- ANSI declarations combined with K&R definitions. We'll
- appease it a little bit. But when it invades France, we fight.
- * print.c (scm_iprlist): Change 'tlr' argument to an int.
- * print.h (scm_iprlist): Here too.
- * numbers.c (scm_divbigdig): Change definition to match
- declaration in numbers.h.
- * unif.c (scm_makflo): Change definition to match declaration in
- unif.h.
-
- * init.c (scm_boot_guile): Don't return the value of
- scm_boot_guile_1. This function doesn't return a value;
- scm_boot_guile_1 doesn't return a value (or return at all).
-
- * eval.c (unmemocopy): Add a semicolon to appease the Sun
- compiler.
-
- * simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
- compile. I have a feeling this function is a bad idea anyway ---
- one should always test for features, not systems.
-
- * smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
- semicolons. Only pure luck kept this from being noticed earlier.
-
-Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
-
- * socket.c (scm_recvfrom): Added missing semicolon.
-
-Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.c (scm_recvfrom): allow buff_or_size to be a list containing
- the buffer and start and end positions for scsh networking
- implementation.
-
-Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
-
- * configure.in: Revert previous change to this file; the problem
- is due to transient automake weirdness.
- * configure: Rebuilt.
-
- * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
- PLUGIN/guile.libs. configure generates the latter from the former.
- * Makefile.in: Rebuilt.
-
- * configure.in: Call AM_PROG_INSTALL; the automake manual says we
- need this if we install scripts, like guile-snarf.
- * configure: Rebuilt.
-
-Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
-
- * Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
-
-Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.c (scm_addr_vector): fix faulty scm_listify.
-
-Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * read.c (scm_lreadr): Encountering EOF after skipping a SCSH
- style block comment is no longer considered an error.
-
-Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * PLUGIN/guile.libs.in: New file.
- * PLUGIN/guile.libs: Removed from repository.
- * configure.in: Create PLUGIN/guile.libs from
- PLUGIN/guile.libs.in. This is for including additonal libraries
- needed for dynamic linking.
- * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
- instead of PLUGIN/guile.libs.
-
- * Makefile.am: Added explicit dependency "dynl.o: dynl.x".
-
-Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
- occurrences of the given element from the list, not just the
- first. This is how the Emacs Lisp functions behave, how the
- analogous Common Lisp functions behave, and (I believe) how the
- older Maclisp functions worked. I realize that this change may
- break code, but it seemed better to break it before the Guile
- release than after.
-
- * gc.c (scm_protect_object, scm_unprotect_object): New functions.
- Their prototypes were already present in gc.h, but they weren't
- implemented.
- (scm_init_storage): Initialize scm_protects.
- * root.c (scm_protects): New element of scm_sys_protects.
-
- * net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
-
-Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * libguile.h: Added #include "libguile/net_db.h".
-
- * libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
- 30 change. That file is only meant for communication between the
- configuration process and load.c. If code linked against libguile
- wants to get at the paths mentioned in libpath.h, it can call
- functions declared in load.h.
-
-Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * libguile.h: Removed #include "libguile/fdsocket.h"
-
- * net_db.c: Added #include <sys/socket.h>.
-
-Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scm_input_waiting_p): use select in preference to
- FIONREAD, since the latter doesn't detect EOF.
- Throw error if neither select nor FIONREAD available.
-
- * socket.c (scm_connect): take a port, not a fd object.
- (scm_fill_sockaddr): throw an error if fam is not recognised.
- (scm_bind): use scm_fill_sockaddr.
- (scm_listen): take a port, not a fd object.
- (scm_accept): take and return a port. return #f in the car if
- address can't be got
- (scm_sock_fd_to_port): new procedure.
- (scm_socket): use scm_sock_fd_to_port.
- (scm_addr_vector): throw error if unrecognised address type.
- take an extra argument with the calling procedure name.
- (scm_getsockname): take a port. return #f if address can't be got.
- (scm_getpeername): take a port. return #f if address can't be got.
- (scm_recvfrom): take a port. return #f for address component if can't
- be got.
- (scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
- scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
-
-Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * throw.c (scm_internal_catch): Make body funcs and handler funcs
- use separate data pointers, to allow them to be designed
- independently and reused.
- (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
- Renamed from catch_body, catch_handler, and uncaught_throw; made
- generically useful.
- (struct scm_catch_body_data): Renamed from catch_body_data; moved
- to throw.h.
- (scm_catch): Use the above.
- (scm_throw): Don't bother printing a message for an uncaught
- throw; we establish a default handler in init.
- * throw.h (scm_internal_catch): Prototype updated.
- (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
- decls.
- (struct scm_body_thunk_data): New structure, used as data
- argument to scm_body_thunk.
- * init.c (struct main_func_closure): New structure, packaging up
- the data to pass to the user's main function.
- (scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
- (scm_boot_guile_1): Pass it through to invoke_main_func. Use
- scm_internal_catch to establish a catch-all handler, using
- scm_handle_by_message. This replaces the special-case code in
- scm_throw.
- (invoke_main_func): Body function for scm_internal_catch; invoke
- the user's main function, using the main_func_closure pointer to
- decide what to pass it.
- * root.c (struct cwdr_body_data): Remove handler_proc member.
- (cwdr): Use scm_handle_by_proc instead of cwdr_handler.
- (cwdr_handler): Removed.
-
-Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * socket.h (SCM_P): update bind prototype.
- * socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
- include "feature.h".
- (scm_socket): return a port, not a file descriptor object.
- include "fports.h" and <unistd.h>
- (scm_bind): take a port, not a file descriptor object.
- take an extra argument for address args.
-
- * net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
- INADDR_NONE, INADDR_LOOPBACK.
-
-Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * init.c: include net_db.h and not fdsocket.h.
- (scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
-
- * Makefile.am: corresponding changes.
- * socket.h: renamed from fdsocket.h, fix names.
- * net_db.h: renamed from socket.h, fix names.
- * socket.c: renamed from fdsocket.c.
- remove _sys from procedure names.
- (scm_init_socket): rename from scm_init_fdsocket. include socket.x.
- add "socket" to features list.
- * net_db.c: renamed from socket.c.
- remove _sys from procedure names.
- (scm_init_net_db): rename from scm_init_socket. include net_db.x.
- add "net-db" to features list.
- include "net_db.h". don't include <sys/socket.h> or
- <sys/un.h>.
-
-Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * tags.h (scm_tags): Removed comma at end of last enumerator.
-
-Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- Don't use GCC extensions to allocate space for debugging frames.
- (Here he goes again! Why do we put up with this?!)
- * debug.h (scm_debug_frame): Make the 'vect' member a pointer to
- an scm_debug_info structure, not an in-line array of them. Add
- 'info' member, to say how many vect elements we've used, for eval
- frames.
- * eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
- a new variable debug_info_end to mark the end of vect, instead of
- the address of the 'info' pointer itself.
- [DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
- &debug to scm_debug_frame *; debug is a real scm_debug_frame now.
- (SCM_APPLY): Explicitly allocate space for debug.vect.
- * debug.c (scm_m_start_stack): Same, for vframe.vect.
- * stacks.c: Adjusted for new debug frame structure.
- (RELOC_INFO, RELOC_FRAME): New macros.
- (stack_depth, read_frames): Use them, and new scm_debug_frame
- element 'info', instead of magically knowing that eval frames have
- an info pointer sitting after vect.
- (scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
- RELOC_FRAME.
- (scm_init_stacks): Formatting tweaks.
-
-Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- Give GCC more control flow information, so it can be sure that
- variables aren't used uninitialized.
- * error.h (scm_error, scm_syserror, scm_syserror_msg,
- scm_sysmissing, scm_num_overflow, scm_out_of_range,
- scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
- scm_misc_error): Tell GCC that these functions never return.
- * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
- out the field type, call abort if SCM_ASSERT returns, to placate
- the optimizer.
- * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
- scm_wta ever returns. We can't handle this case anyway, and this
- gives the optimizer more information.
- * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
- scm_wta ever returns.
-
- In some cases, the code is fine, but GCC isn't smart enough to
- figure that out; this usually happens when one variable is only
- initialized and used when a particular condition holds true, and
- we know that condition will never change within a given invocation
- of the function. In this case, we simply initialize the variables
- to placate the compiler, hopefully to a value which will cause a
- crash if it is ever actually used.
- * print.c (scm_iprin1): Initialize mw_pos.
- * read.c (scm_lreadrecparen): Initialize tl2, ans2.
- * throw.c (scm_ithrow): Initialize dynpair.
- * unif.c (scm_uniform_vector_ref): Initialize cra.
- * struct.c (init_struct): Initialize prot.
- * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
-
- * strports.c (scm_eval_0str): Don't return uninitialized garbage
- if EXPR contains no expressions.
-
-Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
- cause an infinite loop (???). So much for the algebraic
- equivalency of variable-sized arrays and alloca...
-
-Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
- a SCM boolean, not a C boolean.
-
-Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
- (scm_must_malloc, scm_must_realloc): Added a hysteresis to the
- rules for raising scm_mtrigger. Previously, unfortunate but not
- unlikely circumstances could result in almost constant invokation
- of the gc. Now, this situations should be less likely, but they
- are not prevented completely.
-
-Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * numbers.c (scm_fuck): Procedure removed; looks like old test
- code.
- * numbers.h: Prototype removed.
-
-Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * debug.h (scm_debug_frame): Change `vect' member from an in-line
- array to a pointer, to match my Nov 21 change in eval.c.
-
-Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * libguile.h: Added #include "libguile/backtrace.h", #include
- "libguile/stacks.h".
-
- * strings.c (scm_string scm_make_string scm_string_ref
- scm_string_set_x scm_string_equal_p scm_string_append):
- Bugfix according to scm patch from Aubrey Jaffer:
- Corrected long-standing
- (not (eqv? (integer->char 128)
- (string-ref (make-string 1 (integer->char 128)) 0)))
- bug found by John Kozak <jk@noontide.demon.co.uk>.
-
- * strports.c, strports.h: Make scm_eval_0str return the value of
- the last expression evaluated (previously, it returned void).
-
- * strports.c, strports.h: New function: scm_read_0str. Does what
- it sounds like.
-
-Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * simpos.c (scm_getenv): return #f if string can't be found in the
- environment instead of throwing an exception, for compatibility
- with numerous other systems.
-
-Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
-
- * Makefile.am (.c.x): Use guile-snarf.
- * configure.in (AC_OUTPUT): Generate guile-snarf; make it
- executable.
- * guile-snarf.in: New file, resurrected from old guile-snarf.sh.
-
-Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
-
- * backtrace.c (scm_display_error_message): Made non-static, and
- renamed from display_error_message.
- * backtrace.h (scm_display_error_message): Added extern decl.
- * throw.c (uncaught_throw): Use it to display the error message.
-
-Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
-
- * inet_aton.c: Use #if 0, not #ifdef 0.
-
-Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
- to convert the returned value.
- (scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
- the offset argument.
-
-Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
-
- Add new interface to catch/throw, usable from C as well as
- Scheme.
- * throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
- (scm_internal_catch): New function, replaces...
- (scm_catch_apply): Deleted.
- * throw.c (scm_catch_apply): Deleted; replaced with a more general
- mechanism which is a bit more code, but can be used nicely from C
- and implement the Scheme semantics as well.
- (scm_internal_catch): This is the replacement; it's named after
- the analogous function in Emacs.
- (scm_catch): Reimplemented in terms of the above.
- (struct catch_body_data, catch_body, catch_handler): New
- functions, used by scm_catch.
- * root.c (cwdr): Reimplemented in terms of scm_internal_catch.
- (struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
- support for new cwdr.
-
- * Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
- Oct 30.
-
-Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * acconfig.h: Added DYNAMIC_LINKING symbol.
- * configure.in: Add option and checks for dynamic linking.
- * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
- dynl.h: New files for dynamic linking support.
- * Makefile.am (libguile_a_SOURCES):
- Added "dynl.c".
- (modinclude_HEADERS): Added "dynl.h".
- (EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
- "dynl-vms.c".
- * init.c (scm_boot_guile_1): Call
- scm_init_dynamic_linking to initialize dynamic linking support.
-
-Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
- (as we Schemers say). It needs to be global, so that I can tweak
- it for the proper operation of unexec.
- (scm_boot_guile_1_live): New variable, see above.
-
-Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
-
- * guile-snarf.sh: Removed.
- * PLUGIN/guile.libs: Added dependency for -lm.
- * acinclude.m4: Renamed from aclocal.m4.
- * PLUGIN/greet: Removed.
- * Makefile.am, aclocal.m4: New files.
- * configure.in: Updated for Automake.
-
-Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * eval.c (scm_definedp): Use top_level_lookup_closure_var
- and not top_level_lookup_thunk_var.
-
-Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
-
- * Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
-
-Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * eval.c (scm_definedp): Incompatibly changed to be a builtin
- Scheme function, instead of syntax. Single argument is now a
- symbol.
-
-Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
- scm_ra_divide): Properly terminate statements passed as arguments
- to IVDEP macros. (Thanks to Bernard Urban.)
-
- * eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
- with non-constant sizes. (Thanks to Bernard Urban.)
-
-Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- It's an "eval closure", not an "eval thunk." A thunk is a
- function of no arguments.
- * root.h (struct scm_root_state): Renamed
- top_level_lookup_closure_var from top_level_lookup_thunk_var.
- (scm_top_level_lookup_closure_var): Renamed from
- scm_top_level_lookup_thunk_var.
- * root.c (mark_root): Uses changed.
- * gdbint.c (gdb_eval, gdb_binding): Uses changed.
- * init.c (scm_start_stack): Uses changed.
- * eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
- Change scheme-visible name to *top-level-lookup-closure* from
- *top-level-lookup-thunk*.
-
-Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
- pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
-
-Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * gc.c (struct scm_heap_seg_data): Doc fixes.
-
- * gc.c (scm_gc_sweep): Empty all segments' freelists before
- sweeping. Then, prepend each segment's free cells to its
- freelist, rather than wiping out the old value. (Thanks to Marius
- Vollmer.)
-
- * gc.c (which_seg, scm_map_free_list, scm_newcell_count,
- scm_check_freelist, scm_debug_newcell): New functions and
- variables, for debugging freelist problems.
- * pairs.h (SCM_NEWCELL): New debugging version added.
- * gc.h (scm_debug_newcell): Added extern declaration, used by
- debugging version of SCM_NEWCELL.
-
-Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- On some systems <libc.h> conflicts with <unistd.h>, and should not
- be #included at all.
- * aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
- * acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
- * configure.in: Call it.
- * posix.c, filesys.c: Use its results to decide whether or not to
- #include <libc.h>.
- * configure, scmconfig.h.in: Rebuilt with autoconf and
- autoheader.
-
-Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * fports.c (scm_stdio_to_port, scm_open_file): Set the port's
- pointer to the stdio stream before calling scm_setbuf0, so the
- latter will be able to retrieve it. I'm surprised this didn't
- segfault earlier. (Thanks to Christopher Lee.)
-
-Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
- of `lazy-catch'.
-
-Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
- number of stack narrowing specifier pairs. The first specifier in
- a pair controls inner border, the second the outer border. A
- number means cut that number of frames, a procedure object means
- cut until that object is found in operator position in a frame.
-
- * root.c (cwdr): Bugfix.
-
- * read.c: Recording of positions disabled by default.
-
- * procs.c (scm_closure_p): New function.
-
- * posix.c (scm_tmpnam): New function.
-
- * load.c: Added #include "throw.h".
- (scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
- ends with '/'.
-
- * load.c, load.h (scm_read_and_eval_x): New function.
-
- * eval.c: Renamed debug option "deval" to "debug".
-
- (scm_eval_x): `eval!' is no longer accessible from the scheme
- level. Motivation: We can't allow operations which introduce
- glocs into the scheme level. Guile's type system can't handle
- these as data. Use `eval' or `read-and-eval!' as replacement.
-
- * debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
- SCM_CONSP since this is a macro!; Set vframe.prev to
- scm_last_debug_frame instead of 0. In this way we can look
- "above" the virtual start stack frame if we wish.
- (scm_debug_hang): New function: Useful for debugging Guile in
- certain tricky situations. Will probably be removed later...
-
- * debug.h: Changed semantics of debug option "backtrace". This
- option now only indicates whether we want automatic backtrace at
- an error.
-
-Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * ports.c: #include "filesys.h"
- (scm_char_ready_p): input_waiting renamed and moved to filesys.c.
-
- * filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
- Motivation: This is system specific code which is related to file
- I/O. It also may use select. Added code by Gary Houston to
- detect presence of character in stdio buffers.
-
- * libguile.h: #include "libguile/libpath.h"
-
- * Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
- SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
- SCM_SITE_DIR; Install libpath.h among the other include files.
-
- * load.c, load.h (scm_sys_package_data_dir): New function.
-
-Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * stacks.h: Bugfix: Don't use tail-array length field as stack
- length field! This screwed GC.
-
-Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * _scm.h: Added #ifndef around definition of macros min and max.
-
- * __scm.h: Added hooks for threads to plugin to in ints protection
- macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
- SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
- the main code in these macros duplicated and spread over multiple
- files. Renamed SCM_THREADS_SWITCHING_CODE ->
- SCM_THREAD_SWITCHING_CODE.
-
-Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * snarf.h: New file.
- * guile-snarf.sh: New file.
- * Makefile.in (inner_h_files): Added snarf.h
- (ancillary, install, uninstall, distclean): Added actions for
- guile-snarf.
- (.c.x): Use guile-snarf.
- (guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
- (gen_c_files): Note that these depend on guile-snarf.
- * _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
- now in "snarf.h". Added #include "snarf.h" to get them.
- * libguile.h: Added #include "snarf.h".
- (Patches applied and tweaked by Jim Blandy.)
-
-Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * socket.c: Use K&R style declaration for 'close'; the GNU coding
- standards suggest against providing prototypes for system
- functions. Thanks to Greg Troxel.
-
-Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * strports.c (scm_eval_0str): New function.
- #include "read.h", to get prototype for scm_read.
- * Makefile.in (strports.o): Update dependencies.
- * strports.h: New prototype.
-
- * numbers.c (scm_integer_p): Renamed from scm_int_p; change its
- scheme name from "int?" to "integer?". It seems to do the job.
- * numbers.h: Rename prototype too.
- * scmhob.h (intp): Change definition to refer to scm_integer_p. I
- hope this is right.
-
- * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
- scm_num_eq_p): Rename these according to R4RS conventions: call
- them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
- to making libguile R4RS compliant without ice-9...
-
- * load.c (scm_sys_search_load_path): Search for files under all
- extensions listed in the %load-extensions variable. If FILENAME
- is absolute, return it unchanged, without searching the load path.
- (scm_loc_load_extensions): New variable, pointing to
- %load-extensions' value cell.
- (scm_init_load): Initialize it, and the value it points to.
- (scm_primitive_load_path): Improve error reporting.
-
- * load.c (scm_loc_load_hook): New variable, pointing to value cell
- of new Scheme variable %load-hook.
- (scm_primitive_load): Apply %load-hook to filename.
-
-Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * configure.in: add tests for figuring out whether buffered data
- is available in a FILE structure, which is needed by char-ready.
-
- * acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
- FILE_CNT_READPTR.
-
- * simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
- exceptions using misc_error instead of syserror. It seems a bit
- odd to throw an exception if a string can't be found in the
- environment, but it's consistent with open-file, stat etc.
- (simpos.h): remove sys_ from getenv.
-
- * posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
- occurs, throw an error instead of returning errno. Return value
- is now unspecified.
- (numerous in posix.c and posix.h): removed superfluous sys_ from names.
-
-Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scm_stat2scm): derive file type and permissions from
- the stat mode and append them to the returned vector.
- There isn't much overhead in doing this and it avoids the need to
- work with S_IRUSR et al. in Scheme.
- Define symbols scm_sym_regular etc.
- (scm_init_filesys): don't intern S_IRUSR etc.
-
- * load.c: change s_try_load and s_try_load_path to s_primitive_load
- and s_primitive_load_path.
-
- * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
-
- * error.h: don't declare error symbols. prototype for scm_misc_error.
-
- * stackchk.c (scm_stack_overflow_key): defined here instead of in
- error.c.
-
- * error.c: use SCM_SYMBOL to set up error keys.
- scm_misc_error: new procedure.
-
-Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * read.c (scm_lreadr): Recognize SCSH-style block comments; text
- between `#!' and `!#' is ignored.
- (skip_scsh_block_comment): New function.
-
- * feature.c (scm_set_program_arguments): New argument, FIRST.
- * feature.h: Update prototype.
- * init.c (scm_boot_guile_1): Pass new argument to
- scm_set_program_arguments.
-
-Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * init.c (scm_start_stack): Don't initialize scm_progargs here.
- (scm_boot_guile): Call scm_set_program_arguments here, later than
- the old initialization.
-
- * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
- initialization procedure.
- - Delete in, out, err arguments; there are other perfectly good
- ways to override these when desired.
- - Delete result argument; this function shouldn't ever return.
- - Rename init_func argument to main_func, for less confusion.
- - Delete boot_cmd argument; main_func is more general.
- -Add 'closure' argument, to help people pass data to main_func
- without resorting to global variables.
- - Abort if reentered; don't bother returning an error code.
- - Call scm_init_standard_ports to set up the default/current
- standard ports; no need to pass them to scm_start_stack.
- - Remove code to evaluate the boot_cmd, and start the repl; let
- the user do something like that in main_func if they want.
- - Remove code to package up a return value; main_func can do any
- of that as needed.
- - Call exit (0), instead of returning.
- (scm_start_stack): Don't initialize the I/O ports here; that's
- weird. Delete in, out, err arguments. Move guts to
- scm_init_standard_ports, scm_stdio_to_port.
- (scm_init_standard_ports): New function, to set up current and
- default standard ports.
- (scm_start_stack, scm_restart_stack): Make these static.
- * init.h (scm_boot_guile): Adjust declaration.
- (scm_start_stack, scm_restart_stack): Remove externally
- visible declarations for these.
- (enum scm_boot_status): Removed; now scm_boot_guile never returns.
-
- * fports.c (scm_stdio_to_port): New function. Its guts used to be
- written out several times in scm_start_stack.
- * fports.h: New declaration for the above.
-
- * feature.c (scm_set_program_arguments): New function.
- * feature.h: New declaration for the above.
-
- * ports.c: Formatting tweak.
-
-Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
- ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
- for obtaining the address of a car or cdr field. Motivation:
- &SCM_CXR make assumptions about the internal structure of the
- SCM_CXR selectors.
-
- * eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
- Motivation: see SCM_CXRLOC.
-
- * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
- srcprop.h, tags.h, throw.c, unif.c: Added new selectors
- SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
- Motivation: Safer use. Some other macros are defined in terms of
- these operations. If these are defined using the SCM_SETCXR
- (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
- to inefficiency and an <e1> with side-effects could potentially
- break. Also, these particular operations are heavily utilized in
- the garbage collector. In unoptimized code there will be a
- measurable speedup.
-
- * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
- eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
- ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
- pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
- procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
- strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
- vports.c: Cleaned up use of pairs: Don't make any special
- assumptions about the internal structure of selectors and
- mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
- SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
- (Among other things, this change makes it easier to build Guile
- with certain compilers which have problems with casted lvalues.)
-
-Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
-
- * stacks.c: Improve selection of relevant stack frames when making
- a stack object. Introduce one level of indirection in the stack
- object to make it possible to "narrow" to a certain region of the
- stack. This facilitates making use of more clever algorithms (not
- implemented) for selecting relevant frames and gives a cleaner
- design since selection of frames can be done independently of
- extraction of frames from the real stack.
- (scm_stack_id): Also take #t as argument which means look at
- current stack.
-
- * stacks.h: In struct scm_stack: Turn field frames into a pointer.
- Turn n_tail into an integer directly representing current number
- of frames in stack. Add field tail.
-
- * ports.c (scm_port_line_x, scm_port_column_x): New mutators.
-
- * debug.c (scm_make_memoized): Made it available at scheme level.
- (scm_unmemoize, scm_memoized_environment): Bugfix: Check for
- SCM_NIMP before applying heavier predicates in argument checking.
- (scm_local_eval): Also take memoized object as argument.
-
- * backtrace.c (scm_display_error): Just a safety measure: Stacks
- aren't created with zero length, but should such a strange
- creature suddenly turn up...
-
-Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
-
- * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
- `del', for the sake of C++ compilers. (Patch applied by JimB.)
-
-Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * variable.c (scm_make_variable): Make the name hint optional, as
- documented.
- (anonymous_variable_sym): Renamed from variable_sym. All uses
- changed.
-
- * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
- from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
- of scm_primitive_load_path was also changed to
- "primitive-load-path", from "%try-load-path". Callers changed.
- We'd like to respect the convention that a function named
- "try-mumble" should behave just like the function called "mumble",
- but return #f instead of signalling some error.
- * load.h: Rename prototypes.
-
-Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * print.c (make_print_state, grow_print_state), print.h: Modified
- the print state representation: Don't use a tail array for
- recording of circular references. Resizing of the print state
- structure invalidates the print state pointer. To avoid passing
- around an indirect print state reference to all printing
- functions, we instead let the print state reference a resizable
- vector.
-
-Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
- Don't crash when passed an improper list terminated by a
- non-immediate value.
-
-Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- Allocate data for structures on an eight-byte boundary, as
- required by the tagging system.
- * struct.c (alloc_struct): New function.
- (scm_make_struct, scm_make_vtable_vtable): Call it.
- * struct.h (scm_struct_n_extra_words): Bump to 3.
- (scm_struct_i_ptr): New "field".
- * gc.c (scm_gc_sweep): When we need to free the data, use the
- information stored by alloc_struct to find the beginning of the
- block allocated to the structure, so we can free it.
-
-Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * init.c (scm_boot_guile_1): Moved scm_init_struct in front of
- scm_init_stacks.
-
- * debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
- (scm_debug_info): New member: id.
-
- * stacks.c: Stacks are now represented as structs; Stacks have an
- id given to them by `start-stack'.
- (scm_last_stack_frame): Added predicates `stack?' and `frame?'.
-
- * stacks.h: Added declarations of scm_stack_p and scm_frame_p;
- Changed stack representation.
-
- * debug.c (scm_procedure_name): Try procedure property `name' for
- compiled closures aswell.
-
- * gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
-
- * eval.c: scm_i_name moved to gsubr.c
- (scm_m_define): Record names of all kinds of procedure
- objects. (Earlier, only closures were recorded.)
-
- * procprop.h: Added declaration of scm_i_name.
-
- * gsubr.c: Added global scm_i_name. Added #include "procprop.h".
- (scm_make_gsubr): Record names of compiled closures.
-
-Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * debug.c, debug.h: Removed obsolete code.
-
- * continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
- stacks.c: Renamed regs --> scm_contregs.
-
- * print.c (scm_free_print_state): Cleanup print state before
- returning it to pool. It is better to do it here than in
- scm_prin1 since scm_prin1 is called often.
-
- * srcprop.c (scm_source_properties, scm_set_source_properties_x,
- s_set_source_property_x): Check that first argument is a pair or a
- memoized object.
-
- * srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
- scm_i_line, scm_i_column and scm_i_breakpoint global.
-
- * init.c: Added #include "backtrace.h" and #include "stacks.h".
- (scm_boot_guile_1): Added calls to scm_init_backtrace and
- scm_init_stacks.
-
- * debug.h: Added debug object smob declaration and macro
- definitions.
-
- * configure.in: Build with backtrace.o and stacks.o if debug
- support enabled.
-
- * Makefile.in: Added entries for new files: backtrace.c,
- backtrace.h, stacks.c and stacks.h.
-
- * symbols.c (scm_sym2ovcell): Fixed documentation.
-
- * _scm.h (min, max): Added.
-
- * async.c: Moved `min' macro to _scm.h.
-
- * debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
- SCM_BACKTRACE_INDENT.
-
- * eval.c: Added new debug options `maxdepth' and `indent'.
-
- * print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
-
- * print.h: Added selector SCM_PRINT_STATE.
-
- * print.c: New functions: scm_make_print_state,
- scm_free_print_state.
-
- * print.h: Added declarations for scm_make_print_state,
- scm_free_print_state.
-
- * debug.c (scm_m_start_stack): New acro.
-
- * debug.h: Small cleanup.
-
- * init.c (scm_boot_guile_1): Moved scm_init_debug below
- scm_init_eval.
-
-Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
- arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
- chars.c, chars.h, continuations.c, continuations.h, debug.c,
- debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
- eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
- filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
- gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
- hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
- kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
- markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
- objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
- ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
- procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
- root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
- simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
- stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
- strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
- struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
- unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
- version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
- declare functions with prototypes. (Patch thanks to Marius
- Vollmer.)
-
- More prototype-related changes from Marius Vollmer:
- * gdb_interface.h: Wrapped header file in #ifdef/#endif
- * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
- * ports.h (ptobfuns): Added prototypes. This means some casting in
- fports.c.
- * fports.c: Added casts for initializations, since the functions
- are defined to take FILE * as their stream argument, not SCM.
- * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
- * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
- to `char *str_data' to conform to prototype.
-
-Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
-
- * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
-
- * stime.c, stime.h: use SCM_P method.
-
-Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * eval.c (scm_nconc2last): Don't accept an empty list; apply must
- be given at least two arguments. Insist that lst's last element
- be a list, but don't make any requirements of its predecessors.
-
-Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * eval.c (scm_nconc2last): Revert last change; there seems to be
- other stuff going on here.
-
-Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * eval.c (scm_nconc2last): Make sure that each element of lst
- (which is a list of argument lists, except for the tail) is a
- proper list, i.e., finite and terminated by '().
-
-Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * unif.c (scm_ra_set_contp): Localize `inc' declaration.
- Clarifies flow.
-
- * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
- symbolic name for the tag, scm_tc3_cons_gloc, instead of just
- saying "1".
-
- * vectors.c (scm_make_vector): Fill vectors with the undefined
- value, to help make Guile Scheme code more portable to other
- Schemes.
-
- * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
- * symbols.h, tags.h: Doc fixes.
-
-Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * async.c (scm_take_signal): Doc fixes.
-
-Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * numbers.c (scm_divbigint): When the remainder is zero, we don't
- want to subtract it from the modulus; we just want to leave it
- alone.
-
-Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
- `scm_init_threads'.
-
- * throw.h (scm_catch_apply): Removed the `lazyp' argument.
-
- * throw.c (scm_catch_apply): Finished implementation of
- `lazy-catch'.
-
-Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
- check.
- (scm_init_filesys): set "i/o-extensions" feature.
- include feature.h.
-
-Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in (root.o): Correct dependencies.
-
-Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * Makefile.in: Added dependency entry for root.o.
-
- * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
- throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
-
- * init.c (scm_start_stack): Set initial root continuation number
- to 0.
-
- * procs.c: New function: scm_thunk_p.
-
- * procs.h: Added declarations of scm_thunk_p.
-
- * root.c: Renamed `call-with-new-root' -->
- `call-with-dynamic-root'.
- (cwdr): Removed allocation of new root state. This should be done
- separately by use of scm_make_root.
- (scm_apply_with_dynamic_root): New function: Does what it
- sounds like. Needed when spawning threads.
-
- * root.h: Added member last_debug_frame to root state.
- Added #include "libguile/debug.h"
-
- * throw.c: Renamed scm_catch --> scm_catch_apply and added more
- arguments. The motivation is that code in root.c needs catch
- functionality, and we want to avoid code duplication.
- New functions: scm_catch, scm_lazy_catch. These are wrappers for
- scm_catch_apply. scm_lazy_catch is intended to introduce catch
- handlers that run without popping the stack into the dynwind
- chain.
-
- * throw.h: Added prototypes for scm_catch_apply and
- scm_lazy_catch.
-
-Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * root.h (scm_root, scm_set_root): Decouple thread support details
- by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
- SCM_SET_THREAD_LOCAL_DATA.
-
- * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
- and tortoise scanning loop.
-
-Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * Makefile.in: Rebuild dependencies.
-
- * libguile.h: #include "libguile/print.h" before "smob.h", since
- the latter uses the print_state structure.
-
- * throw.c (scm_ithrow): Use the correct variable when checking to
- see if a given element of scm_dynwinds is a valid catch.
-
- * throw.c (scm_ithrow): If scm_dynwinds has invalid list
- structure, abort; don't just silently ignore the garbage.
-
- * _scm.h: #include "print.h" here, since it seems to be used just
- about everywhere.
- * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
- strports.c, unif.h: Don't #include "print.h".
-
-Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * feature.h (scm_loc_features): Removed external declaration.
- (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
-
-Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * feature.c (scm_init_feature): Added threads feature (needs to be
- initialized here, since features doesn't exist when
- scm_init_threads is called).
-
- * libguile.h: Added #include "libguile/../threads/threads.h".
- (This is a kludge to get thread support working. This should be
- fixed.)
-
- * configure.in, acconfig.h: Added flags for thread support.
-
- * scmsigs.c: Define `signal' to be `pthread_signal' if using
- mit-pthreads.
-
- * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
- SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
- root.c:mark_root.
-
- * _scm.h: Added conditional #include "threads.h"
-
- * __scm.h (SCM_ASYNC_TICK): Added call to macro
- SCM_THREADS_SWITCHING_CODE.
-
- * init.c (scm_start_stack): Call `scm_make_root' to dynamically
- allocate the basic dynamic root object.
- (scm_boot_guile): Added call to scm_init_root.
-
- * root.c, root.h: Added root smob.
- (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
- functions: Implements dynamic roots mostly according to spec in
- SCM manual. Main difference is that the second argument is a
- throw handler rather than an error "thunk".
-
- * root.h: Added declaration of scm_init_root.
-
- * root.c: Added #include "genio.h", #include "smob.h", #include
- "pairs.h", #include "throw.h", #include "dynwind.h", #include
- "eval.h"
- (scm_init_root): Added #include "root.x".
-
- * throw.c: Added #include "stackchk.h"
- (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
- SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
- can be used in scm_call_with_new_root; Added reenabling of stack
- checking when catching a throw.
-
-Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
-
- * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
- element is not found, as per R4RS.
-
-Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * list.c: Doc fixes throughout.
-
-Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
- declare the char * to be const. Avoids a warning in rgx.c.
-
- * ports.h: spelling fix.
-
- * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
- error messages.
-
- * load.c (scm_sys_try_load_path): throw an error if file not found
- (like it says it in NEWS).
-
-Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
- PROPS slot to '(), not #f; it's an empty alist.
-
- * throw.h, throw.c: Use SCM_P instead of #if hair.
-
- Remove special support for uncaught throws; see throw.c for
- rationale.
- * throw.c (uncaught_throw): New function.
- (scm_ithrow): Call uncaught_throw if we don't find a throw
- target; don't mess with scm_bad_throw_vcell.
- (scm_bad_throw_vcell): Variable deleted.
- (scm_init_throw): Don't initialize it.
-
- * throw.c (scm_ithrow): Don't let outer key matches shadow inner
- #t catches.
-
-Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * numbers.c (scm_istr2int): If the number is short (as most
- numbers are), just call scm_small_istr2int to deal with it.
- (scm_small_istr2int): New function, created by un-#ifdefing the
- non-bignum version of scm_istr2int and renaming it.
-
-Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * load.c (scm_sys_try_load): don't check whether value returned
- by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
- Change the Scheme name from %try-load to primitive-load.
-
- * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
- Can avoid passing a message, allowing it to be derived in the
- error handler (e.g., if we want to throw to the key both from
- Scheme and C).
-
-Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
- references now have a new appearance which is more compact and
- also gives a clue about what the target of the reference is.
- By setting parameters in the print state, more fancy printing can
- be achieved. This is used by the (not yet commited) backtrace
- code.
-
-Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
- "print.h"
-
- * print.c: Added #include "struct.h". Removed function
- scm_prlist.
-
- * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
- scm_iprin1. Removed prototype for scm_prlist.
-
- * arbiters.c (prinarb),
- async.c (print_async),
- debug.c (prindebugobj, prinmemoized),
- eval.c (prinprom, prinmacro),
- filesys.c (scm_fd_print, scm_dir_print),
- kw.c (print_kw),
- mallocs.c (prinmalloc),
- numbers.c, numbers.h (scm_floprint, scm_bigprint),
- smob.h (scm_smobfuns),
- srcprop.c (prinsrcprops),
- throw.c (prinjb),
- unif.c, unif.h (scm_raprin1, rapr1),
- variable.c (prin_var): Changed argument `int writing' to
- `scm_print_state *pstate'.
-
- * init.c (scm_boot_guile): Moved scm_init_struct upwards so
- that it will be called before scm_init_print.
-
- * print.c (scm_prin1): Print states are now allocated when calling
- scm_prin1 and then passed around to all printing functions as an
- argument. A cache `print_state_pool' enables reuse of print
- states.
- (scm_make_print_state): New function.
- (scm_iprin1): Adaption to print states.
- (scm_iprlist): An initial "hare and tortoise" scan brings down
- time complexity to O (depth * N). (Better time complexity will be
- achieved when the printing code is completely rewritten.)
-
-Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
- AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
- it gets done whether or not the cache variable has a value.
-
-Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- Distinguish #f and ().
- * __scm.h: #undef SICP.
- * pairs.h (SCM_EOL): Delete this definition, equating it with
- SCM_BOOL_F.
- * tags.h (SCM_EOL): Give it a new definition here; I think I found
- the value it used to have. Doc fixes, too.
-
-Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
- scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
- Lord's implementation of structs, allowing for tail arrays as
- described in the manual. Also fixed some bugs. (Both the interface
- and the implementation should be improved.)
-
- * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
-
- * print.c, print.h: Closures now print like #<procedure foo (x)>.
- People who whish to see the source can do `(print-enable 'source)'.
- Removed #ifdef DEBUG_EXTENSIONS.
-
-Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
- integer (assuming for now accepting an integer is a good thing).
-
- * error.c, fports.c: replace use of %S in lgh_error args with %s.
- %S will be used instead for write'ing arguments.
-
- * unif.c (scm_transpose_array): change arguments in the SCM_WNA
- asserts. fix a few other asserts.
- (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
- scm_uniform_vector_ref, scm_array_set_x,
- scm_dimensions_to_unform_array): change args in
- SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
- strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
- scm_substring_fill_x): likewise.
- gsubr.c (scm_gsubr_apply): likewise.
- eval.c (SCM_APPLY): likewise.
-
- * eval.c (4 places): replace scm_everr with lgh_error or
- scm_wrong_num_args.
-
- * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
- scm_memory_error): new procedures.
- scm_everr: deleted. can use scm_wta, dropping first two args.
- scm_error: convert NULL subr to SCM_BOOL_F.
-
- * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
- SCM_ARGERR.
-
- * stackchk.c (scm_report_stack_overflow): use lgh_error instead
- of scm_wta.
-
- * error.c, error.h: new error keys: scm_arg_type_key,
- scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
- scm_misc_error_key.
- scm_wta: reimplement using lgh_error instead of scm_everr.
-
-Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
-
- * gdbint.c: scm_lread now has one more argument.
-
- * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
- scm_port_\1; Added mutator scm_set_port_filename_x (used when
- loading source from non-file ports, which, e. g., happens when
- using the Emacs interface).
-
- * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
- object.
-
- * read.c: Added code for recording of positions of source code
- expressions; New functions: recsexpr, scm_lreadrecparen;
- _scm_make_srcprops --> scm_make_srcprops
- (scm_flush_ws): Removed updating of positions counters. This work
- is already done by scm_gen_getc
-
- * read.h: Added prototype for scm_lreadrecparen
-
- * print.c: Added #include "alist.h"
-
- * eval.c: Added #include "hash.h"
-
- * eq.c: Added #include "ramap.h"
-
- * options.c: Documentation fixes.
-
- * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
- (scm_init_srcprop): Adjusted size of initial source-whash. Name
- changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
- --> scm_make_srcprops
-
- * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
- _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
- function calls in the definition of the whash access macros.
-
-Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
-
- * init.c (scm_boot_guile): Add level of indirection to
- scm_boot_guile_1() to ensure that stack base pointer is properly
- initialized. There was no guarantee that variable i was the
- highest/lowest variable on stack (i.e. the call frame of
- scm_boot_guile was not completely protected from gc).
-
-Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.h (scm_port_table): put back file_name, it will be used to
- support debugging. Undo related changes in fports.c, ioext.c,
- ports.c, gc.c.
-
-Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * ports.h (scm_port_table): remove file_name member for now, it seems
- undesirable.
- * fports.c (scm_open_file): don't set file_name in PTAB.
- (prinfport): don't use file_name in PTAB.
- * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
- * ports.c (scm_add_to_port_table): don't intialize file_name.
- (scm_port_file_name): remove for now.
- * gc.c (scm_gc_mark): don't mark PTAB file_name.
-
- * fports.h (scm_mkfile): prototype deleted.
- * fports.c (scm_mkfile): merged into scm_open_file to simplify.
-
- * debug.c, unif.c: use scm_out_of_range instead of
- wta for range errors (ASSERT still needs work).
-
- * error.c, error.h (scm_out_of_range): new procedure.
-
- * error.c, error.h (scm_out_of_range_key): new key.
-
- * posix.c (scm_sync): #else was missing.
-
- * error.c, error.h: append _key to names scm_num_overflow and
- scm_system_error.
-
- * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
- of consing an empty list.
- (SCM_SYSERROR etc.): move into error.c, make them procedures instead
- of macros, saves code and string space.
- error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
- fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
- lower case. Rename scm_syserror_m to scm_syserror_msg.
- error.h: prototypes for new procedures.
-
-Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
-
- * error.c, error.h: setup scm_num_overflow key.
-
- * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
- Remove definition of SCM_OVSCM_FLOW.
-
- * fports.c (scm_open_file): use SCM_SYSERROR_M.
-
- * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
- explicit message and args.
-
- * error.c, error.h, __scm.h: change system_error_sym to
- scm_system_error.
-
- * error.c (system_error_sym): remove leading %% from the Scheme name
- "%%system-error".
-
- * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
-
-Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
- fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
- numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
- tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
- renamed. (These were introduced by unsupervised name
- substitution.)
-
-Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * print.c: Added code for detection of circular references during
- printing. (init_ref_stack, grow_ref_stack): New functions. Added
- a hook for printing of closures (accessible via print options).
- This leads to a split of calls to scm_iprin1 into two classes:
- elementary print operations (e. g. the code which prints a smob)
- still use scm_iprin1 while top level calls (like scm_display) use
- scm_prin1. scm_prin1 begins by clearing the data structure used
- to record reference information.
-
- * print.h: Added declarations of scm_prin1 and scm_prlist.
-
- * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
-
- * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
-
- * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
-
- * error.c (err_head): scm_iprin1 --> scm_prin1
-
- * debug.c: Adjusted header comment.
-
- * tags.h: Typo.
-
-Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * strerror.c: Doc fix.
-
-Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * gdbint.c (gdb_read): Now possible to run during GC.
- (unmark_port, remark_port): New functions.
-
- * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
-
- * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
- of allocating a new string object. Also, increase size by
- the factor 2 instead of 1.5.
-
-Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
-
- * __scm.h (SCM_P): Corrected to run under traditional C.
-
- * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
- removed.
-
- * async.c: Calls to scm_sysintern corrected.
-
- * async.h (scm_async_clock): Redundant declaration removed.
-
- * continuations.c (scm_dynthrow): Redundant declaration removed.
-
- * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
- Definition typos corrected.
-
- * debug.h: Missing declarations of functions in debug.c added
- (lots).
-
- * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
- Missing declarations to functions in eval.c added.
-
- * filesys.c: Possibly uninitialized variable rv.
-
- * gc.h (scm_object_addr, scm_unhash_name): Missing
- declarations of functions defined in gc.c added.
-
- * genio.c: Possible typos str_data -> wstr_data. ???
-
- * genio.c: Possibly unintended shadowing of local variable
- `int c' (gotos out of scope of inner `c'). ???
-
- * init.c: Uninitialized `SCM last' may be used.
-
- * ioext.h: (scm_sys_isatty_p): Typo.
-
- * list.h (scm_list_head): Missing prototype for function in
- list.c added.
-
- * numbers.c (scm_two_doubles): Changed from extern to static
- (is used only within numbers.c).
-
- * numbers.h: Repeated declarations removed.
-
- * ports.h (scm_close_all_ports_except): Declaration for the
- function defined in ports.c added.
-
- * posix.h: Missing declarations added.
-
- * procs.h (scm_make_subr_opt): Missing declaration added.
-
- * socket.h (scm_sys_gethost): Missing declaration added.
-
- * socket.h: Redundant declarations removed (they are in fdsocket.h).
-
- * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
- Missing declarations added.
-
- * stime.h (scm_get_internal_real_time): Repeated declarations removed.
-
- * struct.c: Uninitialized variable `SCM answer' may be used.
-
- * unif.c (l2ra): Declaration prototype.
-
- * unif.c (scm_array_equal_p): Dummy definition removed (it is
- defined in ramap.c).
-
- * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
- Redundant declarations removed (they are in ramap.h).
-
- * variable.h (scm_make_udvariable,
- scm_make_undefined_variable): Declaration corrected to
- correspond variable.c.
-
- * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
- Missing declarations added.
-
-Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in (distclean): Don't forget to delete fd.h.
-
-Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * fd.h.in, tags.h: Trivial cleanups.
-
- * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
- marksweep.h just declared functions from gc.c.
- * gc.h, libguile.h: Don't #include "marksweep.h".
- * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
- marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
- dependencies updated.
-
- * libguile.h: Don't #include "files.h"; it's been deleted.
-
- * files.c (scm_sys_delete_file): Moved to filesys.c.
- File is now empty; deleted.
- * files.h: Deleted.
- * filesys.c: scm_sys_delete_file is now here. Remove
- #if's; they seem to rely on remnants of an old portability
- regimen. If the problems come up again, solve them properly,
- using autoconf. Specifically: Don't test M_SYSV, and #define
- remove to be unlink if it's #defined; don't use remove just
- because HAVE_STDC_HEADERS is #defined.
- * filesys.h: Add declarations for scm_sys_delete_file.
- * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
- files.o, files.h, files.c, and files.x.
- * init.c: Don't #include "files.h", and don't call scm_init_files.
-
- Use SCM_P instead of PROTO; the latter intrudes on the user's
- namespace.
- * params.h: Deleted; definition of SCM_P moved to...
- * __scm.h: ... here, where it replaces PROTO macro.
- * libguile.h, smob.h: Don't #include "params.h".
- * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
- smob.h: Fix prototypes accordingly.
- * Makefile.in: Update dependencies.
- (inner_h_files): Remove params.h.
-
- * gc.c: #include "gc.h"; every module should include its header,
- to let the compiler cross-check the declarations against the
- definitions.
-
- * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
- simpos.h: #include "libguile/__scm.h".
-
-Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * init.c: Don't forget to #include smob.h and init.h.
- * Makefile.in: Dependencies updated.
-
- * smob.h: Use PROTO instead of #if __STDC__.
-
- * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
-
- * __scm.h: Doc fixes.
-
- * __scm.h, libguile.h: Use "quotes" in the #includes, not
- <angles>; this allows `make depends' to work properly.
-
- * libguile.h: #include smob.h and pairs.h before the others; they
- define typedefs used by other headers.
-
- C files should #include only the header files they need, not
- libguile.h (which #includes all the header files); the pointless
- recompilation was wasting my time.
- * Makefile.in (all .o dependency lists): Regenerated.
- * libguile.h: Don't try to get a definition for size_t here...
- * __scm.h: Do it here.
- * _scm.h: Since this is the internal libguile header, put things
- here that all (or a majority) of the libguile files will want.
- Don't #include <libguile.h> here; that generates dependencies on
- way too much. Instead, get "__scm.h", "error.h", "pairs.h",
- "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
- "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
- "async.h".
- * alist.c: Get "eq.h", "list.h", "alist.h".
- * append.c: Get "append.h", "list.h".
- * arbiters.c: Get "arbiters.h", "smob.h".
- * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
- * boolean.c: Get "boolean.h".
- * chars.c: Get "chars.h".
- * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
- "stackchk.h".
- * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
- "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
- "genio.h", "throw.h", "eval.h".
- * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
- * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
- "stackchk.h".
- * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
- * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
- "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
- "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
- "debug.h".
- * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
- * feature.c: Get "feature.h".
- * files.c: Get "files.h".
- * filesys.c: Get "filesys.h", "smob.h", "genio.h".
- * fports.c: Get "fports.h", "markers.h".
- * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
- "genio.h", "struct.h", "stackchk.h", "stime.h".
- * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
- "read.h", "strports.h", "tag.h".
- * genio.c: Get "genio.h", "chars.h".
- * gsubr.c: Get "gsubr.h", "genio.h".
- * hash.c: Get "hash.h", "chars.h".
- * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
- * init.c: Get everyone who has an scm_init_mumble function:
- "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
- "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
- "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
- "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
- "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
- "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
- "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
- "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
- "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
- "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
- "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
- "async.h", "arbiters.h", "append.h", "alist.h".
- * ioext.c: Get "ioext.h", "fports.h".
- * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
- * list.c: Get "list.h", "eq.h".
- * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
- * mallocs.c: Get "smob.h", "genio.h".
- * markers.c: Get "markers.h".
- * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
- "chars.h".
- * numbers.c: Get "unif.h", "genio.h".
- * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
- * options.c: Get "options.h".
- * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
- "markers.h", "chars.h", "genio.h".
- * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
- "read.h", "scmsigs.h", "genio.h", "fports.h".
- * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
- "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
- "chars.h".
- * procprop.c: Get "procprop.h", "eval.h", "alist.h".
- * procs.c: Get "procs.h".
- * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
- "chars.h", "smob.h", "unif.h".
- * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
- "eval.h", "genio.h", "chars.h".
- * root.c: Get "root.h", "stackchk.h".
- * scmsigs.c: Get "scmsigs.h".
- * sequences.c: Get "sequences.h".
- * simpos.c: Get "simpos.h", "scmsigs.h".
- * smob.c: Get "smob.h".
- * socket.c: Get "socket.h", "feature.h".
- * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
- "alist.h", "smob.h".
- * stackchk.c: Get "stackchk.h", "genio.h".
- * stime.c: Get "stime.h"."libguile/continuations.h".
- * strings.c: Get "strings.h", "chars.h".
- * strop.c: Get "strop.h", "chars.h".
- * strorder.c: Get "strorder.h", "chars.h".
- * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
- * struct.c: Get "struct.h", "chars.h".
- * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
- "variable.h", "eval.h", "chars.h".
- * tag.c: Get "tag.h", "struct.h", "chars.h".
- * throw.c: Get "throw.h", "continuations.h", "debug.h",
- "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
- * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
- "smob.h", "genio.h", "eval.h", "chars.h".
- * variable.c: Get "variable.h", "smob.h", "genio.h".
- * vectors.c: Get "vectors.h", "eq.h".
- * version.c: Get "version.h".
- * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
- * weaks.c: Get "weaks.h".
-
- * stackchk.h: #include "libguile/debug.h",
-
- * print.h, read.h: #include "options.h", since everyone who uses
- either of these files will need that.
-
- * smob.h: #include "ports.h", "genio.h", and "print.h", since
- anyone who uses this file will need them to define the smob
- printing functions. Also, get markers.h, since people will need
- to #define the mark functions.
-
- * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
- * ports.h: ... to here.
-
- * ports.h (scm_port_table_size): Explicitly give type as 'int';
- don't rely on archaic C default type rules.
-
- * fports.h: #include "libguile/ports.h", since you need that in
- order to parse this.
-
- * genio.h: #include "libguile/print.h", because you need that to
- parse this; don't bother #including "ports.h", since print.h gets
- that.
-
- * error.h: Don't #include "pairs.h"; _scm.h will do that now.
-
- * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
- this; it's now a reference to an element of *scm_root.
-
- * debug.h: Don't #include "options.h"; the compiler won't be able
- to find that once the headers are installed; instead, #include
- "libguile/options.h".
- * gc.h: Same, with marksweep.h.
- * mbstrings.h: Same, with symbols.h.
- * scmhob.h: Same, with _scm.h.
- * smob.h: Same, with params.h.
-
- * Makefile.in (depends): Don't nuke scmconfig.h and the generated
- C files; there's no need for this, and it forces recompilations
- unnecessarily.
-
-Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * error.c (scm_error): declare scm_error_callback.
-
- * error.h: prototype for scm_error_callback.
-
- * __scm.h: define lgh_error.
- (SCM_SYSERROR): redefine using lgh_error.
-
-Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * error.c (scm_error): new procedure.
-
- * error.h: prototype for scm_error.
-
- * Makefile.in (install): install scmconfig.h from the current
- directory, not $(srcdir).
-
-Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
- continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
- feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
- hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
- mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
- posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
- sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
- strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
- tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
- vports.h, weaks.h: #include "libguile/__scm.h", not
- <libguile/__scm.h>. This allows 'gcc -MM' to determine which
- dependencies are within libguile properly.
-
-Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in (.c.x): Simplify; there's no need to run this rule
- when scmconfig.h doesn't exist.
-
- * load.c (scm_sys_try_load): Correct spelling.
-
- * feature.c (scm_loc_features): Make this static.
-
- * Makefile.in (libpath.h): Omit trailing slash from path. We
- shouldn't require it of users, so why put it here?
-
- Move code to initialize and search %load-path from ice-9 to C
- code, so we can use the load-path to find the ice-9 boot code;
- this makes it easier to run Guile without installing it. See
- corresponding changes in guile/Makefile.in.
- * feature.c: Move stuff concerned with the load path to load.c.
- (scm_compiled_library_path): Deleted.
- Don't #include libpath.h here.
- * feature.h: Don't mention scm_compiled_library_path.
- * load.c: #include "libpath.h" here, as well as <sys/types.h>,
- <sys/stat.h>, and <unistd.h> (if present).
- (R_OK): #define if the system hasn't deigned to.
- (scm_loc_load_path): New variable.
- (scm_init_load_path, scm_sys_search_load_path,
- scm_sys_try_load_path): New functions.
- (scm_init_load): Initialize scm_loc_load_path to point to the
- value cell of the Scheme %load-path variable.
- * load.h: Add declarations for scm_sys_search_load_path,
- scm_sys_try_load_path.
- * init.c: Call scm_init_load_path.
- * Makefile.in (feature.o, load.o): Dependencies updated.
-
- * load.c, load.h: Rewrite using PROTO macro.
-
-Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * gc.c (scm_cellp): New function: C predicate to determine if an
- SCM value can be regarded as a pointer to a cell on the heap.
-
- * gc.h: Added declaration of scm_cellp.
-
- * gdb_interface.h: New file: The GDB interface header from the GDB
- distribution.
-
- * gdbint.c: New file: GDB interface.
-
- * gdbint.h: New file: GDB interface.
-
- * libguile.h: Added #include <libguile/gdbint.h>.
-
- * init.c (scm_boot_guile): Added scm_init_gdbint.
-
- * Makefile.in: Added gdb_interface.h, gdbint.[hc].
- Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
- found if object files and source are kept separate).
-
-Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
-
-Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * configure.in: Don't substitute the values of TCL_SRC_DIR and
- TK_SRC_DIR; they're not relevant any more.
-
- * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
- * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
-
-Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * PLUGIN/guile.config (xtra_cflags): Include .. in the header
- search path, so we can find the <libguile/MUMBLE.h> headers.
-
- * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
-
- * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
- implicit in the .c.o rule.
- (.c.x): Don't mention ALL_CFLAGS here; its value is included in
- $(CC) already.
-
- Put the library path in a header file, instead of passing it on
- the command line in every compilation.
- * Makefile.in (libpath.h): New target.
- (feature.o): Depend on libpath.h.
- (clean): Delete libpath.h.
- (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
- * feature.c: ... #include "libpath.h" here.
- * .cvsignore: Ignore libpath.h.
-
- Don't install the unwashed masses of Guile header files in the
- main #include path; put most of them in a subdirectory called
- 'libguile'. This avoids naming conflicts between Guile header
- files and system header files (of which there were a few).
- * Makefile.in (pkgincludedir): Deleted.
- (innerincludedir): New variable; this and $(includedir) are enough.
- (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
- (installed_h_files): Divide this up. Now this variable lists
- those header files which should go into $(includedir) (i.e. appear
- directly in the #include path), and ...
- (inner_h_files): ... this new variable says which files appear in
- a subdirectory, and are referred to as <libguile/mumble.h>.
- (h_files): List them both.
- (install): Create innerincludedir, not pkgincludedir. Put
- the installed_h_files and inner_h_files in their proper places.
- (uninstall): Corresponding changes.
- * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
- continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
- feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
- ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
- mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
- print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
- sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
- strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
- tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
- vports.h, weaks.h: Find __scm.h in its new location.
- * __scm.h: Find scmconfig.h and tags.h in their new locations
- (they're both "inner" files).
-
-Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
-
-Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * posix.c: Doc fixes.
-
-Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * socket.c: Don't include a prototype for inet_aton; just use a
- K&R style declaration, to avoid warnings but minimize the chance
- of conflicts with the system.
-
- On NextStep, <utime.h> doesn't define struct utime, unless we
- #define _POSIX_SOURCE before #including it.
- * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
- * acconfig.h: New comment text for above CPP symbol.
- * configure.in: Call it.
- * posix.c: #define _POSIX_SOURCE if it seems necessary.
-
- * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
- in the list.
- * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
- testing for __EMX__.
-
- * posix.c: #include <libc.h>, if it exists.
-
- * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
- don't even know if the latter exists.
-
- * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
- s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
- s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
-
- * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
- header files don't.
- (scm_init_posix): Use them when initializing the Scheme constants
- of the same name.
-
-Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
-
- * Makefile.in (libdir, includedir, bindir): Use the
- autoconf-supplied values, instead of deriving them ourselves.
- (pkgincludedir, datadir, pkgdatadir): New variables.
- (install, uninstall): Put the header files in a special
- subdirectory, not in the main search path.
-
- * Makefile.in (ALL_CFLAGS): Provide the proper value for
- LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
-
- * Makefile.in (IMPLPATH): Deleted; never used.
-
- * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
- on the Tcl/Tk source any more.
- (INCLUDE_CFLAGS): Remove references to the above.
-
- * Makefile.in (version.o): Corrected dependencies.
-
-Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
-
- * libguile.h: #include "version.h"
-
- * init.c (scm_boot_guile): Call scm_init_version.
- * gscm.c (gscm_run_scm): Call scm_init_version.
-
- * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
- GUILE_VERSION): AC_DEFINE these.
- (acconfig.h): #undef the above symbols.
-
- * Makefile.in (libobjs): Add version.o.
- (installed_h_files): Add version.h.
- (c_files): Add version.c.
- (gen_c_files): Add version.x.
- (version.o): New rule.
- (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
- chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
- fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
- genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
- mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
- objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
- procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
- simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
- strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
- throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
- weaks.o): Add version.h to dependency lists.
- (markers.o): Remove duplicate rule.
-
- * version.h: New file.
-
- * version.c: New file.
-
-Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * symbols.c (scm_strhash): scm_downcase is now a function, not an
- array; use it appropriately. Since GCC is quite happy to
- subscript functions, it never warned us about this; we should use
- -Wpointer-arith in the future. I guess we never tested
- case-insensitivity.
-
-Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * socket.c: Doc and copyright fixes.
-
-Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * debug.c: Fixed and improved gdb support.
-
-Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
-
- * 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 <ghouston@actrix.gen.nz>
-
- * 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 <mdj@woody.nada.kth.se>
-
- * 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 <mdj@woody.nada.kth.se>
-
- * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
- Added option STACK_CHECKING.
-
-Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
-
- * 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 <jimb@totoro.cyclic.com>
-
- * 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 <jimb@totoro.cyclic.com>
-
- * 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 <scmconfig.h> before testing
- HAVE_LIMITS_H.
-
- * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
-
-Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
-
- * 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 <jimb@totoro.cyclic.com>
-
- * 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 <ghouston@actrix.gen.nz>
-
- * Fixes motivated by Petr Adamek <adamek@mit.edu>:
-
- * 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 <malloc.h> not "malloc.h".
-
- * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
-
- * fports.c: remove ttyname and tmpnam declarations.
-
- * posix.c: fewer ttyname declarations.
-
- * fports.c: include <string.h> not "string.h".
-
- * init.c, ioext.c: include string.h and unistd.h.
-
- * gc.c: include <malloc.h> 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 <jimb@totoro.cyclic.com>
-
- 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 <libc.h>.
-
- * filesys.c [HAVE_STRING_H]: #include <string.h>, 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 <ghouston@actrix.gen.nz>
-
- * 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 <jimb@totoro.cyclic.com>
-
- * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
- 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 <ghouston@actrix.gen.nz>
-
- * posix.c: include string.h.
-
-Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
-
- * 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 <lord@beehive>
-
- * struct.c (scm_init_struct): new file.
-
-Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
-
-Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * gscm.h: gscm_mkarray eliminated (presumably was not being used
- since its definition was bogus).
-
-Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
-
- * mallocs.[ch]: back again (for rx at least).
-
-Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
-
- * 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 #<unspecified> not #<undefined>.
- (Tom Mckay@avanticorp.com)
-
-Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * list.c (scm_last_pair): map '()=>'()
-
-Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * gscm.c (gscm_run_scm): got rid of objprop.
-
-Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * procs.c (scm_make_subr_opt): new entry point for making
- anonymous subrs.
-
-Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
-
- * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
-
-Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
-
- * numbers.c (scm_exact_p): This function no longer
- implements "integer?".
-
-Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * gsubr.c (scm_gsubr_apply): statically allocate the
- array of arguments (bothner@cygnus.com).
-
-Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
-
- * scmsigs.c: Simplified to use async rountines.
-
- * async.c: New support for interrupt handlers.
-
-Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <mdj@nada.kth.se>)
-
-Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
-
- * 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 <alves@gryphon.com>)
-
- (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 <mdj@nada.kth.se>)
-
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 <lord@beehive>
-
- * 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 type of SCM_ICHR.
-
-Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
-
- * guile.c: Changed init file name from "SCM_INIT_PATH" to
- "GUILE_INIT_PATH"
-
-Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
-
- * 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 <strandh@labri.u-bordeaux.fr>)
-
- * 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 <rosalia@sstcx1.lanl.gov>)
-
- * 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 <grib@arlut.utexas.edu>)
-
- * Makefile.in (X_CFLAGS): defined.
- (William Gribble <grib@arlut.utexas.edu>)
-
- * gscm.h (gscm_2_double): provided now
- (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
-
-Tue Jun 13 01:04:09 1995 gnu
- * Vrooom!
-
-
+The ChangeLog continues in the file: "ChangeLog-1996-1999"
diff --git a/libguile/ChangeLog-1996-1999 b/libguile/ChangeLog-1996-1999
new file mode 100644
index 000000000..d3721d305
--- /dev/null
+++ b/libguile/ChangeLog-1996-1999
@@ -0,0 +1,9828 @@
+1999-12-28 Gary Houston <ghouston@arglist.com>
+
+ * posix.c (scm_waitpid): move the HAVE_WAITPID test out of the
+ procedure body, so that the procedure is left undefined if waitpid
+ is not available. previously in this case the procedure was
+ defined but would raise a system-error when called, which is
+ pointless. I intend to make the same change for other procedures
+ and deprecate SCM_SYSMISSING and scm_sysmissing.
+
+1999-12-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * feature.c (s_scm_add_hook_x): Call scm_wrong_type_arg instead of
+ scm_misc_error when add-hook! is passed a procedure of wring
+ arity. (Thanks to Greg Harvey.)
+
+1999-12-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * macros.c (scm_make_synt): Use scm_make_subr_opt to make the
+ transformer subr. (Thanks to Bill Schottstaedt.)
+
+1999-12-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * objects.c (scm_class_of): Bugfix: Inserted missing SCM_CDR
+ setting struct table class.
+
+Sun Dec 19 10:22:34 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * threads.c, mit-pthreads.c, list.c, coop.c: Remove K&R
+ prototypes; just use ANSI C prototypes. I'm not sure how
+ mit-pthreads.c ever compiled -- it still doesn't for me, but the
+ normal make procedure does not try to build it anyway (even
+ --with-threads I get the other threads code building) so I'm not
+ too worried about it.
+
+Sat Dec 18 16:58:34 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * tags.h (SCM_CONSP, SCM_NCONSP): Define these in terms of
+ SCM_SLOPPY_CONSP and SCM_SLOPPY_NCONSP. (SCM_CONSP) Define this
+ in terms of SCM_SLOPPY_NCONSP instead of repeating the
+ expression.
+
+ * symbols.h (SCM_SLOPPY_SUBSTRP, SCM_SUBSTRP): Added former, and
+ define latter in terms of sloppy variant.
+
+ * strings.h (SCM_SLOPPY_STRINGP, SCM_STRINGP): Added former, and
+ define latter in terms of sloppy variant.
+
+ * scm_validate.h (SCM_MAKE_VALIDATE): Added this macro to factor
+ out the commonality of the various basic SCM_VALIDATE_foop
+ macros. Use SCM_MAKE_VALIDATE macro where possible. Fix
+ SCM_VALIDATE_INT_COPY to not use scm_num2ulong -- that does
+ coercion to an integer which is more advanced than desired and
+ SCM_NUM2ULONG provides that functionality. Use SCM_ASSERT_RANGE
+ appropriately for the various _MIN, _MAX, _RANGE macros. Drop
+ some superfluous "SCM_NIMP &&" where possible. Eliminate obsoleted
+ SCM_VALIDATE_NIMCONS (SCM_VALIDATE_CONS now does the NIMP test as
+ part of its SCM_CONSP test).
+
+ * socket.c, ports.c, pairs.c, list.c, lang.c, async.c: Use
+ SCM_VALIDATE_CONS, not obsoleted SCM_VALIDATE_NIMCONS.
+
+Sat Dec 18 15:33:05 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * dynl.c: Added #include "scm_validate.h"
+
+Sat Dec 18 15:22:10 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * alist.c, chars.c, dynl.c, net_db.c, numbers.c, unif.c: Use
+ SCM_NUM2ULONG instead of scm_num2ulong; SCM_NUM2LONG instead of
+ scm_num2long; SCM_WTA instead of scm_wta. Only done for when
+ FUNC_NAME was used as an argument of the macro and the formal
+ argument name was the explicit argument in the old function call.
+ These were just missed in my first pass of changes.
+
+1999-12-18 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * guile-doc-snarf.in (filename): Strip path to source dir before
+ touching the .x-files.
+
+1999-12-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * debug.c (scm_reverse_lookup): Bugfix: Reinserted SCM_NIMP.
+
+ * eval.c (SCM_CEVAL): Removed check for unbound slot in
+ SCM_IM_SLOT_REF. (This is now handled in a smarter way in GOOPS.)
+
+1999-12-17 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * tags.h (SCM_SLOPPY_NCONSP, SCM_SLOPPY_CONSP): New macros.
+ (SCM_ECONSP): Version which doesn't mix && and || without
+ parenthesis.
+ (SCM_NECONSP): Bugfree version.
+
+Fri Dec 17 12:09:11 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * tags.h (SCM_ECONSP, SCM_NECONSP): Fix these macros to have the
+ SCM_NIMP test integrated into an || clause that I'd missed before
+ and was causing a segfault in the regression tests.
+
+ * symbols.h (SCM_ROUCHARS): Make cast be to (unsigned char *), not
+ (char *); fixes a problem reported by the regression test
+ ports.test.
+
+ * ports.c: Fixed a couple of arg/number mismatches in
+ SCM_VALIDATE_ macros.
+
+ Now passes the (not-comprehensive) guile-modules test-suite again!
+
+Thu Dec 16 12:41:22 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * coop-threads.c: Remove K&R function headers.
+
+ * scm_validate.h: Added SCM_VALIDATE_THREAD.
+
+ * *.c: Remove SCM_NIMP(X) when it is an extraneous pre-test given
+ that SCM_FOOP macros all now include SCM_NIMP in their expansion.
+ This simplifies lots of code, making it far more readable.
+
+Wed Dec 15 19:45:14 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * *.h: Use SCM_NIMP(X) && in all the FOOP macros.
+
+ * *.[ch]: Use do { ... } while (0) idiom in macros that expanded
+ to a bare block.
+
+Tue Dec 14 10:53:14 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * snarf.h: Put SCM_PROC and SCM_PROC1 back in for
+ backward-compatibility of packages that use Guile. Internally
+ Guile should not use them, though. (Maybe enforce this with a new
+ -DBUILDING_GUILE compile-time flag?).
+
+Tue Dec 14 09:41:01 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * backtrace.c (scm_set_print_params_x): Renamed from
+ set_print_params_x.
+
+ * guile-doc-snarf.in: Use guile-snarf.awk, not
+ guile-doc-snarf.awk. Pass the basename of $filename
+
+ * load.h: Added prototypes for scm_sys_library_dir,
+ scm_sys_site_dir.
+
+ * load.c (scm_sys_library_dir, scm_sys_site_dir): Added these
+ functions, and took out the old scm_library_dir, scm_site_dir,
+ scm_pkgdata_dir. Now the primitives are %package-data-dir
+ (already existed), %library-dir, and %site-dir.
+
+ * debug.c: Use SCM_MISC_ERROR when possible instead of using
+ s_scm_* in a scm_misc_error() call.
+
+ * Makefile.am: Use guile-snarf.awk, not guile-doc-snarf.awk. Make
+ using guile-doc-snarf send stdout to $@ to create the .x file like
+ guile-snarf does.
+
+ * guile-snarf.awk.in: Added.
+
+ * guile-doc-snarf.awk.in: Removed (sorry to back out a recent
+ commit; if we're going to switch to guile-snarf I figure it makes
+ sense to get this right now-- I'd already had the change in my
+ working copy when the below commit happened).
+
+1999-12-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * guile-doc-snarf.awk: Removed.
+
+ * guile-doc-snarf.awk.in: Added.
+
+ * ports.c (s_scm_pt_member): Fixed validation.
+
+ * guile-doc-snarf.in (filename): Use basename in order to strip
+ away path.
+
+ * debug.c (scm_make_iloc, s_scm_proc_to_mem): Added missing
+ semicolon.
+ (scm_memcons, scm_memcons, mem_to_proc): Renamed function name
+ strings to new form.
+
+ * backtrace.c (set_print_params_x): Fixed GUILE_PROC macro.
+
+ * tags.h (SCM_UNBOUND): New iflag which is needed for some time to
+ mark the unboundness of a GOOPS slot. (Added now in order to
+ correct a oversight. Should probably be removed again and
+ replaced with SCM_UNDEFINED when the corresponding code in GOOPS
+ is rewritten.)
+
+ * print.c (scm_isymnames): Added printed representation for
+ SCM_UNBOUND.
+
+ * eval.c (SCM_CEVAL): Bugfix: Added check for unbound slot in
+ SCM_IM_SLOT_REF.
+
+Mon Dec 13 17:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * strings.c: Fixed mistaken default value in
+ scm_make_shared_substring; thanks Eric Moore!
+
+Mon Dec 13 16:29:13 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * guile-doc-snarf.awk: Use sub instead of gsub in ^ anchored
+ replacement for docstrings. Fixes problem Ryan Yeske observed
+ with using mawk on his system. Thanks Ryan!
+
+Mon Dec 13 13:30:06 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * guile-doc-snarf.in: Do not echo to stdout since the output now
+ gets stuck directly in the files instead of redirected from
+ stdout.
+
+ * guile-doc-snarf.awk: Escape a literal ) -- thanks Ryan
+ Yeske. Use print instead of printf to prime the .x file since
+ AIX's cpp has problems with #include-ing empty files (according to
+ the old guile-snarf.in file).
+
+Sun Dec 12 19:39:00 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * Makefile.am: Fix ETAGS_ARGS to recognize GUILE_PROC,
+ GUILE_PROC1. Build guile-procedures.txt, and add that file to
+ pkgdata_DATA.
+
+ * load.c: Added `pkgdata-dir', `site-dir', `library-dir'
+ primitives.
+
+ * guile-doc-snarf.awk: Drop trailing space when no arguments:
+ e.g., "(foo )" is now "(foo)".
+
+ * *.c, alist.c: moved all the documentation for primitives from
+ guile-doc/ref/{appendices,posix,scheme}.texi into the source code.
+ This leaves about half of the primitives undocumented. Also, all
+ the markup is currently still texinfo. I don't have a problem
+ with texinfo per se, but the markup is not very descriptive or
+ accurate.
+
+Sun Dec 12 16:50:26 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * scm_validate.h: Drop the SCM_DOCSTRING_SNARF for turning off
+ SCM_VALIDATE macros; the SCM_VALIDATE macros should be checked for
+ argument mismatches (along with the FUNC_NAME macro checking) by a
+ static tool that runs directly over the .c files.
+
+ * snarf.h: Handle SCM_REGISTER_PROC better when snarfing. The
+ docstring is still missing from the .doc file; it just gives the
+ name of the C function that gets called instead.
+
+ * guile-doc-snarf.awk: Be sure to touch the output files to help
+ make out. Also handle SCM_REGISTER_PROC better, and change the
+ output format slightly.
+
+Sun Dec 12 15:33:40 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * snarf.h: Drop SCM_PROC, SCM_PROC1. Added extra output for
+ guile-doc-snarf script.
+
+ * guile-doc-snarf.in, guile-doc-snarf.awk: New, simple doc
+ extraction system. Builds foo.x, foo.doc from foo.{c,cc}.
+ There are dependencies between these files and snarf.h. This
+ replaces guile-snarf.
+
+ * guile-snarf.in: Drop everything after $$$ for the new snarf.h
+ macros. This is obsoleted by guile-doc-snarf, but kept here for
+ now for good measure.
+
+ * Makefile.am: Added guile-doc-snarf, guile-doc-snarf.awk to
+ bin_SCRIPTS. Added .doc to SUFFIXES, and give rule for creating
+ .doc files to use guile-doc-snarf. Update the rule for creating
+ .x files to use guile-doc-snarf.
+
+Sun Dec 12 12:31:38 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * *.c: Finish replacing K&R style prototypes with ANSI C
+ prototypes.
+
+ * eval.c: Make scm_m_mody's 3rd argument be a const char *, not a
+ char *. ANSI prototypes caught this.
+
+ * strorder.c: Use GUILE_PROC1 for the couple SCM_PROC1 expansions
+ that I missed.
+
+ * scm_validate.h: Use SCM_BOOLP for validating bools. Do not
+ expand macros if SCM_DOCSTRING_SNARF.
+
+Sun Dec 12 11:23:22 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * *.c, srcprop.h: Use SCM_BOOL(f) instead of (f? SCM_BOOL_T:
+ SCM_BOOL_F) and use SCM_NEGATE_BOOL(f) instead of (f? SCM_BOOL_F:
+ SCM_BOOL_T).
+
+Sun Dec 12 11:08:51 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * boolean.h: Added SCM_BOOL, SCM_NEGATE_BOOL, SCM_BOOLP to here,
+ from scm_validate.h.
+
+ * scm_validate.h: Moved above out into boolean.h, fix typo in
+ SCM_VALIDATE_NIM macro.
+
+Sun Dec 12 10:29:12 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * *.c, scm_validate.h: Use SCM_VALIDATE_NIM, not SCM_VALIDATE_NIMP
+ (none of the other validate macros have the trailing P).
+
+Sun Dec 12 10:07:29 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * scm_validate.h: Added the FSF copyright to the top.
+
+ * strings.c: Use SCM_ASSERT_RANGE in a couple of places instead of
+ SCM_ASSERT w/ SCM_OUT_OF_RANGE.
+
+Sat Dec 11 18:34:12 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * Makefile.am: Added scm_validate.h to modinclude_HEADERS.
+
+ * *.c: Pervasive software-engineering-motivated rewrite of
+ function headers and argument checking. Switched SCM_PROC,
+ SCM_PROC1 macros to be GUILE_PROC, GUILE_PROC1 (may change names
+ later, but was useful to keep old versions around while migrate)
+ that has docstrings and argument lists embedded in the GUILE_PROC
+ macro invocations that expand into a function header. Use lots of
+ new SCM_VALIDATE_* macros to simplify error checking and reduce
+ tons of redundancy. This is very similar to what I did for Scwm.
+
+ Note that none of the extraction of the docstrings, nor software
+ engineering checks of Scwm is yet added to Guile. I'll work on
+ that tomorrow, I expect.
+
+ * chars.c: Added docstrings for the primitives defined in here.
+
+ * snarf.h: Added GUILE_PROC, GUILE_PROC1. Added
+ SCM_REGISTER_PROC to be like old SCM_PROC, though old SCM_PROC
+ still remains for now. Changed naming convention for the s_foo
+ string name of the primitive to be s_scm_foo for ease of use with
+ the macro.
+
+ * scm_validate.h: Lots of new SCM_VALIDATE macros to simplify
+ argument checking through guile. Maybe some of these should be
+ folded into the header file for the types they check, but for now
+ it was easiest to just stick them all in one place.
+
+1999-12-10 Greg Harvey <Greg.Harvey@thezone.net> (applied --12/10/99 gjb)
+
+ * smob.c (scm_smob_prehistory): initialize allocated smob
+
+ * tags.h: new tag: scm_tc16_allocated
+
+ * gc.c (scm_gc_for_newcell): set the car of the new cell
+ to scm_tc16_allocated
+ * pairs.h (SCM_NEWCELL): set the car to scm_tc16_allocated
+ (scm_gc_mark): mark allocated cells.
+
+1999-12-09 Greg J. Badros <gjb@cs.washington.edu>
+
+ * strports.h, strports.c (scm_eval_0str): Fix constness. Some
+ thanks to Dirk Hermann.
+
+ * gh_eval.c (gh_eval_str, gh_eval_file, gh_eval_str_with_catch,
+ gh_eval_str_with_standard_handler,
+ gh_eval_str_with_stack_saving_handler): Fix constness. Some
+ thanks to Dirk Hermann.
+
+ * gh_data.c (gh_str02scm): Fix constness.
+
+ * gh.h: Fix constness of prototypes for the above.
+
+ * vectors.c: Include "unif.h" to avoid a warning about missing
+ prototype for scm_uniform_element_size().
+
+1999-12-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * vectors.c (scm_vector_length, scm_vector_ref, scm_vector_set_x):
+ Turned into primitive generics.
+
+1999-12-04 Gary Houston <ghouston@freewire.co.uk>
+
+ * ports.c (scm_port_closed_p): new procedure, implements
+ "port-closed?" suggested by Bernard Urban.
+ ports.h: added prototype, removed the SCM_P macros.
+
+1999-11-30 Gary Houston <ghouston@freewire.co.uk>
+
+ * unif.h: added some comments, removed the SCM_P macros.
+
+1999-11-29 Gary Houston <ghouston@freewire.co.uk>
+
+ * vports.c (sf_write): use scm_makfromstr, not scm_makfrom0str
+ (thanks to Daniel Skarda).
+
+1999-11-22 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * gscm.c, gscm.h: Deleted. They were unused.
+
+1999-11-20 Gary Houston <ghouston@freewire.co.uk>
+
+ * unif.c (scm_list_to_uniform_array): call
+ scm_dimensions_to_uniform_array with a third argument of
+ SCM_UNDEFINED instead of SCM_EOL.
+
+1999-11-19 Gary Houston <ghouston@freewire.co.uk>
+
+ * the following changes allow guile to be built with the array
+ "module" omitted. some of this stuff is just tc7 type support,
+ which wouldn't be needed if uniform array types were converted
+ to smobs.
+
+ * tag.c (scm_utag_bvect ... scm_utag_cvect): don't define unless
+ HAVE_ARRAYS.
+ (scm_tag): don't check array types unless HAVE_ARRAYS.
+
+ * sort.c (scm_restricted_vector_sort_x, scm_sorted_p):
+ remove the unused array types.
+ * (scm_stable_sort, scm_sort): don't support vectors if not
+ HAVE_ARRAYS. a bit excessive.
+
+ * random.c (vector_scale, vector_sum_squares,
+ scm_random_solid_sphere_x, scm_random_hollow_sphere_x,
+ scm_random_normal_vector_x): don't define unless HAVE_ARRAYS.
+
+ * gh_data.c (makvect, gh_chars2byvect, gh_shorts2svect,
+ gh_longs2ivect, gh_ulongs2uvect, gh_floats2fvect, gh_doubles2dvect,
+ gh_uniform_vector_length, gh_uniform_vector_ref):
+ don't define unless HAVE_ARRAYS.
+ (gh_scm2chars, gh_scm2shorts, gh_scm2longs, gh_scm2floats,
+ gh_scm2doubles):
+ don't check vector types if not HAVE_ARRAYS.
+
+ * eq.c (scm_equal_p), eval.c (SCM_CEVAL), print.c (scm_iprin1),
+ gc.c (scm_gc_mark, scm_gc_sweep), objects.c (scm_class_of):
+ don't support the array types unless HAVE_ARRAYS is defined.
+
+ * tags.h: make nine tc7 types conditional on HAVE_ARRAYS.
+
+ * read.c (scm_lreadr): don't check for #* unless HAVE_ARRAYS is
+ defined (this should use read-hash-extend).
+
+ * ramap.c, unif.c: don't check whether ARRAYS is defined.
+
+ * vectors.c (scm_vector_set_length_x): moved here from unif.c. call
+ scm_uniform_element_size if HAVE_ARRAYS.
+ vectors.h: prototype too.
+
+ * unif.c (scm_uniform_element_size): new procedure.
+
+ * init.c (scm_boot_guile_1): don't call scm_init_ramap or
+ scm_init_unif unless HAVE_ARRAYS is defined.
+
+ * __scm.h: don't define ARRAYS.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): unif.c and ramap.c
+ moved here from libguile_la_SOURCES.
+
+1999-11-18 Gary Houston <ghouston@freewire.co.uk>
+
+ * socket.c (scm_htons, scm_ntohs, scm_htonl, scm_ntohl): new
+ functions for network data conversion.
+
+ * numbers.c (scm_num2long, scm_num2longlong):
+ throw out-of-range instead of wrong-type-arg if appropriate.
+ (scm_iint2str): handle -2^31 correctly.
+ (scm_num2long): handle -2^31 bignum correctly.
+ (scm_num2long_long): rewrite the bigdig case: basically copied
+ from scm_num2long.
+ numbers.h: (SCM_BITSPERLONGLONG): deleted.
+
+ * unif.c (rapr1): use sprintf instead of intprint for unsigned
+ longs: intprint can't cope with large values.
+
+ * numbers.c (scm_num2ulong): check more consistently that the
+ input is not negative. if it is, throw out-of-range instead of
+ wrong-type-arg.
+
+ * ramap.c (scm_array_fill_int): don't limit fill to INUM for
+ uvect, ivect or llvect.
+ Check that fill doesn't overflow short uniform array.
+
+ * __scm.h: add another long to the definition of long_long and
+ ulong_long.
+
+ * unif.c (scm_raprin1): use 'l' instead of "long_long" in the
+ print representation of llvect. read can't handle more than
+ one character.
+ (scm_dimensions_to_uniform_array): make "fill" an optional argument
+ instead of a rest argument.
+
+ * tags.h (scm_tc7_llvect): wasn't defined anywhere, so use the free
+ tag 29 for now.
+
+ * __scm.h: don't mention LONGLONGS.
+
+ * unif.c, numbers.c, eq.c, gc.c, print.c, eval.c, ramap.c:
+ replace LONGLONGS with HAVE_LONG_LONGS as set by configure.
+
+1999-11-17 Gary Houston <ghouston@freewire.co.uk>
+
+ * net_db.c (scm_inet_aton): throw errors using the misc-error key
+ instead of system-error. inet_aton doesn't set errno.
+ system-error isn't right in gethost either, since it's throwing
+ the value of h_errno instead of errno. so:
+ (scm_host_not_found_key, scm_try_again_key,
+ scm_no_recovery_key, scm_no_data_key): new error keys.
+ (scm_resolv_error): new procedure, use the new keys.
+ (scm_gethost): call scm_resolv_error not scm_syserror_msg.
+
+1999-11-16 Gary Houston <ghouston@freewire.co.uk>
+
+ * error.c: (various): use scm_cons instead of scm_listify
+ to build short lists.
+
+1999-11-03 Gary Houston <ghouston@freewire.co.uk>
+
+ * socket.c (scm_fill_sockaddr): zero the address structure before
+ use, in case it has a sin_len field and the OS doesn't like random
+ values (thanks to Bertrand Petit).
+
+1999-10-26 Mark Galassi <rosalia@lanl.gov>
+
+ * gh.h, gh_data.c (gh_symbol2scm): changed gh_symbol2scm() to take
+ a const char * argument, upon suggestion from Lynn Winebarger.
+
+1999-10-26 Gary Houston <ghouston@freewire.co.uk>
+
+ * strports.c (st_end_input): avoid dubious pointer arithmetic.
+
+1999-10-24 Gary Houston <ghouston@freewire.co.uk>
+
+ * Move the responsibility for resetting port buffers from the
+ caller of the ptob seek procedure to the implementation. This
+ gives more control in general to the ptob seek: in particular the
+ change of 1999-10-20 can be made to work without breaking seek on
+ string ports. There's a comment in NEWS about upgrading port
+ types.
+
+ * ports.c (scm_seek): don't reset the port buffers here.
+
+ * fports.c (fport_seek): reset the buffers, except for the
+ 0 SEEK_CUR case.
+
+ * strports.c (st_end_input): (bug fix): decrement pt->read_pos by
+ offset. check that it's not less than read_buf.
+ (st_seek): reset the buffers first, unless it's the 0 SEEK_CUR
+ case and currently reading.
+
+1999-10-20 Gary Houston <ghouston@freewire.co.uk>
+
+ * ports.c (scm_seek): Add a special case for SEEK_CUR, offset 0,
+ so that unread chars are not needlessly discarded. (thanks to
+ Roland Orre).
+
+1999-10-18 Gary Houston <ghouston@freewire.co.uk>
+
+ * fports.c (scm_fdes_to_port): always set rw_random if the fdes is
+ random access. rw_active needs to be maintained even for single
+ directional ports, otherwise scm_seek and probably other things are
+ broken. (thanks to Roland Orre).
+
+ * strports.c (scm_mkstrport): set rw_random to 1 unconditionally.
+
+ * ports.c (scm_add_to_port_table): initialise rw_random to 0.
+
+ * ports.h (scm_port): change the comments on rw_random and rw_active.
+
+1999-10-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * ioext.c: Added #include "feature.h".
+
+ These changes turns `delay' into a memoizing macro. This is
+ because it may be expanded before evaluation if it occurs at the
+ beginning of a body. (Thanks to Lauri Alanko.)
+
+ * eval.c, eval.h (scm_sym_delay): New global symbol.
+
+ * tags.h (SCM_IM_DELAY): New immediate symbol.
+
+ * print.c (scm_isymnames): Printed representation.
+
+ * eval.c (unmemocopy, SCM_CEVAL): Handle SCM_IM_DELAY.
+ (scm_m_delay): Turned into a memoizing macro.
+
+ * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version.
+
+1999-10-11 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * gh_data.c (gh_ints2scm, gh_doubles2scm): Make sure elements are
+ protected from GC while building the vector. (Thanks to Bernard
+ Urban and Greg Harvey.)
+
+1999-10-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * throw.c (handler_message): Display backtrace if backtraces
+ enabled.
+
+1999-10-05 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * Makefile.in, scmconfig.h.in: Deleted from CVS repository. Run
+ the autogen.sh script to create generated files like these.
+
+ * numbers.c (scm_string_to_number): Signal an error if radix is
+ less than two. (Thanks to Jorgen Schaefer.)
+
+ * print.c (scm_write, scm_display, scm_newline, scm_write_char):
+ Don't assume that the current output port is valid. Somebody
+ might close it. (Thanks to Bernard Urban.)
+
+1999-10-02 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * scmconfig.h.in: Regenerated.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): fix typo.
+
+Mon Sep 27 17:15:14 1999 Greg J. Badros <gjb@cs.washington.edu>
+
+ * __scm.h: Fix a bunch of macros that were missing do-while(0)
+ sandwiches.
+
+ * debug.c, eval.c: Fix buggy uses of SCM_ALLOW_INTS (missing
+ semicolon) exposed by the above change.
+
+1999-09-27 Greg J. Badros <gjb@cs.washington.edu>
+
+ * stacks.c: Avoid compiler warning re: unitialized var.
+
+ * scmconfig.h.in: Added DEBUG_FREELIST
+
+ * pairs.h: Fix macro that was not do-while(0) sandwiched.
+
+ * gc.h, gc.c: Added scm_gc_set_debug_check_freelist_x,
+ scm_map_free_list
+
+1999-09-23 Gary Houston <ghouston@freewire.co.uk>
+
+ * ioext.c (scm_init_ioext): enable "i/o-extensions" feature here
+ instead of in scm_init_filesys.
+
+ * init.c (scm_boot_guile_1): don't call scm_init_posix or
+ scm_init_filesys unless HAVE_POSIX is defined.
+ don't call scm_init_netdb or scm_init_socket unless
+ HAVE_NETWORKING is defined.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): filesys.c, posix.c,
+ net_db.c, socket.c: moved here from libguile_la_SOURCES.
+
+1999-09-25 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * root.c (scm_make_root): Initialize all the fields of the new
+ root. GC could happen any time, you know. (Thanks to Greg
+ Harvey.)
+
+ * numbers.c (scm_number_to_string): Signal an error if radix is
+ less than two. (Thanks to Jorgen Schaefer.)
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Add memmove.c here,
+ so automake will actually generate rules for it.
+ * Makefile.in: Regenerated.
+
+1999-09-21 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * backtrace.c: #include "_scm.h" before testing whether
+ HAVE_UNISTD_H is #defined.
+
+1999-09-20 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * read.c (scm_read): Don't assume that scm_cur_inp is always open.
+ * ports.c (scm_read_char): Same.
+ * ioext.c (scm_read_line): Same.
+ (Thanks to Bernard Urban.)
+
+1999-09-21 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * vectors.c (scm_vector_move_right_x): Bugfix: Remove side effect
+ in SCM_ASSERT macro.
+ numbers.c: Removed #ifndef SCM_RECKLESS at places where type
+ checking may invoke a generic. (Thanks to Michael Livshin.)
+
+ * __scm.h (SCM_WTA_DISPATCH_0, SCM_GASSERT0): New macros.
+
+ * numbers.c (scm_max, scm_min, scm_sum, scm_difference,
+ scm_product, scm_divide): Bugfix: Don't pass SCM_UNDEFINED to the
+ generic function if the asubr is called with only one arg.
+
+1999-09-20 Gary Houston <ghouston@freewire.co.uk>
+
+ * scmsigs.c (scm_sigaction): add SA_RESTART to flags only if
+ HAVE_RESTARTABLE_SYSCALLS.
+ (scm_init_scmsigs): use siginterrupt if it's available. not
+ everyone who has restartable syscalls has SA_RESTART it seems.
+
+ (scm_sigaction): use scm_num2long/scm_long2num when converting
+ SIG_DFL/SIG_IGN, in case it doesn't fit in an INUM. use
+ scm_integer_p to test the type.
+
+1999-09-18 Gary Houston <ghouston@freewire.co.uk>
+
+ * _scm.h, scmsigs.c: replace HAVE_RESTARTS with
+ HAVE_RESTARTABLE_SYSCALLS.
+
+ * strports.c (scm_strport_to_string): create the string from
+ pt->read_buf instead of an expression that evaluates to the
+ same thing.
+
+ * gdbint.c (gdb_print): don't just use SCM_CHARS to get a C string
+ from the port: the port's buffer may not be NUL terminated.
+
+1999-09-16 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * Makefile.am (.c.x): Added missing semicolon after `false'.
+
+1999-09-15 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * print.c (scm_iprin1): Turn `write' and `display' into
+ primitive generics and use their associated generic functions in
+ scm_iprin1 for GOOPS objects.
+
+ * backtrace.c: #include <unistd.h> if present.
+
+1999-09-14 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * Makefile.am (.c.x): Don't create a subshell just to delete the
+ .x file and return false.
+ * Makefile.in: Regenerated.
+
+1999-09-13 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * feature.c (scm_create_hook): New function. Replaces
+ scm_make_named_hook which is now deprecated.
+ (scm_make_hook_with_name): New primitive.
+ (print_hook): Hooks now print in a fancy way.
+
+1999-09-12 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * __scm.h, backtrace.c, backtrace.h, debug.c, debug.h, dynl-dld.c,
+ dynwind.c, dynwind.h, eval.h, evalext.c, evalext.h, feature.c,
+ feature.h, hashtab.c, hashtab.h, objects.c, objects.h, print.c,
+ procs.c, procs.h, smob.c, smob.h, srcprop.c, strorder.c, struct.c,
+ struct.h: Updated copyright notices.
+
+ * srcprop.c (scm_source_property): Bugfix: Use SCM_NECONSP instead
+ of SCM_NCONSP. (Thanks to Greg Badros.)
+
+ * gsubr.c (scm_make_gsubr): Use scm_make_subr_opt for creation of
+ the self subr.
+
+ * eval.c, debug.h (SCM_BACKTRACE_WIDTH): New debug option: width.
+
+ * backtrace.c: Keep backtraces within specified width by
+ adaptively adjusting fancy printing parameters and cut output if
+ necessary.
+ (scm_display_application): Check args.
+
+1999-09-11 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Change the name of the objects returned by OPENDIR from
+ "directory" to "directory stream". A predicate named "directory?"
+ would be confusing.
+ * filesys.c (scm_directory_stream_p): Renamed from scm_directory_p.
+ At the Scheme level, "directory?" -> "directory-stream?".
+ (scm_dir_print): Use the phrase "directory stream" in printed form.
+ * filesys.h (scm_directory_stream_p): Prototype renamed
+ accordingly.
+
+ * Makefile.am (CLEANFILES): Remove versiondat.h; that should only
+ be removed by `make distclean', since it's generated by configure.
+ * Makefile.in: Regenerated.
+ (Thanks to Robert Bihlmeyer.)
+
+ * strop.c (scm_substring_move_x): Signal an error if start1
+ doesn't come before end1. (Thanks to Karoly Lorentey).
+
+ * numbers.c (scm_istr2flo): Don't call SCM_INEXP without first
+ calling SCM_NIMP. (Thanks to Karoly Lorentey).
+
+ * version.c (scm_libguile_config_stamp): Deleted. See
+ corresponding change to ../ice-9/boot-9.scm.
+ * versiondat.h.in: Remove definition for GUILE_STAMP.
+ * version.h: Delete prototype.
+ * Makefile.in: Regenerated.
+
+1999-09-11 Gary Houston <ghouston@easynet.co.uk>
+
+ * filesys.c (scm_directory_p): new procedure "directory?" Returns
+ a boolean indicating whether its argument is a directory
+ port as returned by opendir (thanks to Dirk Herrmann for the
+ suggestion.)
+
+1999-09-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * backtrace.c (display_frame_expr): Don't print a newline.
+ (display_frame): Print the newline here instead.
+ (display_backtrace_body): Don't print "Backtrace:".
+ (scm_backtrace): Print "Backtrace:" here instead.
+
+1999-09-09 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * procs.c (scm_setter): Signal WTA if handed an entity or operator
+ lacking a setter.
+
+ * feature.c, feature.h: (scm_hook_p, scm_hook_empty_p): New
+ primitives. (Thanks to Greg Badros);
+ (scm_hook_to_list): New primitive; Hooks are now smobs.
+
+1999-09-08 Gary Houston <ghouston@easynet.co.uk>
+
+ * stime.c (bdtime2c): rewrite the ASSERTs. Accept a value
+ of #f for the 10th vector element to avoid an exception
+ seen by Bernard Urban.
+ (scm_mktime): unneeded ASSERT removed.
+
+1999-09-07 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * eval.c (scm_map, scm_for_each): Converted to dispatch on generic
+ if args don't match.
+
+ * __scm.h (SCM_WTA_DISPATCH_n, SCM_GASSERTn): New macros.
+
+1999-09-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * numbers.c: Converted comparison operations to dispatch on
+ generic if args don't match.
+
+ * Makefile.am (ETAGS_ARGS): Added support for GPROC and GPROC1.
+
+1999-09-06 James Blandy <jimb@mule.m17n.org>
+
+ * guile-snarf.c: Deleted. Snarfing should respect CPP
+ conditionals, so it needs to actually run CPP. Bleah.
+
+1999-09-05 James Blandy <jimb@mule.m17n.org>
+
+ Handle errors properly in guile-snarf. (Thanks to Han-Wen Nienhuys.)
+ * guile-snarf.in: Be sure to exit with an error if CPP does.
+ * Makefile.am (.c.x): Delete the .x file and exit with an error
+ status if guile-snarf exits with an error status.
+ * Makefile.in: Regenerated.
+
+ * snarf.h (SCM_GLOBAL_KEYWORD): Call scm_c_make_keyword, not
+ scm_makekey, which doesn't exist any more. Guess nobody's using
+ this.
+
+ * guile-snarf.c: New implementation of guile-snarf, meant to be
+ more robust than the shell script. I think it's complete, but I
+ haven't tested it at all, and I haven't changed the build process
+ to actually use it. We should compare its output against that of
+ the existing shell script, for all source files.
+
+ * guile-snarf.c (parse_args): Abort if we haven't handled some
+ character type.
+
+1999-09-03 James Blandy <jimb@mule.m17n.org>
+
+ * load.c (scm_search_path): If the filename has any extension at
+ all, ignore the entire list of extensions. Also, don't check whether
+ the file is accessible. If the file exists, accessible or not, we
+ should return it. Inaccessible files should cause an error later.
+ (Thanks to Keisuke Nishida for the suggestions.)
+
+1999-09-02 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * gc.c (cleanup, scm_init_storage): Use on_exit if present and
+ atexit not available. (sunos4.1.4 needs it.)
+
+1999-09-01 James Blandy <jimb@mule.m17n.org>
+
+ I take it all back --- bcopy does handle overlapping source and
+ destination areas correctly. At least on every system I could
+ find. But it is better to use AC_REPLACE_FUNCS than to introduce
+ new CPP conditionals.
+ * memmove.c: New file, implementing memmove in terms of bcopy.
+ * scmconfig.h.in: Regenerated.
+
+ Allocators should use the `void *' type for generic pointers.
+ * gc.c (scm_must_malloc, scm_must_realloc, scm_must_free): Change
+ argument and return types.
+ * gc.h: Corresponding changes to prototypes.
+ (Thanks to Forcer.)
+
+1999-08-31 James Blandy <jimb@mule.m17n.org>
+
+ * numbers.c (scm_init_numbers): Claim to support the `complex'
+ feature, as expected by (ice-9 format). (Thanks to Ceri Storey.)
+
+ * Makefile.am (check-local): Set GUILE_LOAD_PATH so the tests can
+ find (ice-9 boot-9) when Guile was compiled in a separate
+ directory from the source. (Thanks to Rodney Brown.)
+ * Makefile.in: Regenerated.
+
+ * procs.c (scm_make_subr_opt): Fix typo. Remember to multiply
+ table lengths by the size of a single element when growing the
+ table. (Thanks to Bill Schottstaedt.)
+
+1999-08-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Duplicated the method dispatch code at the
+ SCM_IM_DISPATCH form instead of calling scm_mcache_lookup_cmethod
+ since that cuts down the time for type dispatch by 50%.
+
+1999-08-30 James Blandy <jimb@mule.m17n.org>
+
+ * gh_data.c (gh_set_substr): Revert change of 1999-08-29; bcopy is
+ not a correct substitute for memmove, because it doesn't handle
+ overlapping source and destination areas on many platforms.
+ Overlaps are the primary reason to use memmove in the first place.
+ * ports.c (scm_ungetc): Same.
+ * strop.c (scm_substring_move_x): Same.
+
+1999-08-30 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * gc.c (scm_init_storage): Skip registration of cleanup on systems
+ which lack atexit. (Is it important that cleanup is made
+ properly? Maybe we should replace all `exit' with `scm_exit' and
+ call cleanup there?)
+
+ * struct.c, struct.h (scm_struct_free_0, scm_struct_free_light,
+ scm_struct_free_standard, scm_struct_free_entity): Declared to
+ return scm_sizet instead of size_t.
+
+ * gdbint.c, strports.c: #include <unistd.h>. (SEEK_SET is defined
+ there on sunos4.1.4.)
+
+1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * numbers.c (scm_lcm): Bugfix: BIGDIG --> SCM_BIGDIG;
+ Account for the case when second argument is unbound.
+
+ * strorder.c (scm_string_less_p, scm_string_ci_less_p): Bugfix.
+ (Thanks to Karoly Lorentey.)
+
+ * gh_data.c, ports.c, strop.c: Alternatively use bcopy if memmove
+ isn't present. (Thanks to Suzuki Toshiya.)
+
+ * ports.c: Use ANSI C prototypes in definitions. (Thanks to
+ Bernard Urban.)
+
+ * filesys.c (scm_stat2scm): Conditionally use S_ISLNK. (Thanks to
+ Bernard Urban.)
+
+ * dynl-dl.c (RTLD_GLOBAL): Define if non-existent. (Thanks to
+ Bernard Urban and Ian Grant.)
+
+ * Makefile.am (libguile_la_LDFLAGS): Bumped libguile version
+ again. (1.3.4 will be binary incompatible with 1.3.2 because of a
+ change in the representation of entities and operators.)
+
+1999-08-29 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_ungetc): bugfix: if putback_buf is NULL
+ don't allocate zero bytes (thanks to Bill Schottstaedt).
+
+1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * procs.c (scm_setter): Converted to use generic dispatch.
+
+ * eval.c, eval.h: Bugfix: scm_sym_apply was not initialized
+ correctly.
+
+ * load.c (scm_search_path): Don't try extensions which already are
+ present at the end of the filename.
+ (scm_init_load): Check .scm first. (Thanks to Keisuke Nishida.)
+
+ * stacks.c (scm_sym_apply): Removed. (Thanks to Ken Raeburn.)
+
+ Cleanup and simplification of generic method dispatch.
+ Also, the quadruple representation of entity and operator
+ procedures has been replaced with single.
+
+ * tags.h (SCM_IM_HASH_DISPATCH): Removed.
+
+ * print.c (scm_isymnames): Removed #@hash-dispatch.
+
+ * objects.c, objects.h (scm_mcache_lookup_cmethod): Moved here
+ from eval.c; Support 0 arity methods.
+ (scm_set_object_procedure_x): Removed scm_sym_atdispatch;
+ (scm_apply_generic_env): Removed.
+ Replaced slots proc0-3 with procedure.
+
+ * objects.h (SCM_OPERATOR_PROC_0, SCM_OPERATOR_PROC_1,
+ SCM_OPERATOR_PROC_2, SCM_OPERATOR_PROC_3): Replaced by
+ SCM_OPERATOR_PROCEDURE.
+ (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_1, SCM_ENTITY_PROC_2,
+ SCM_ENTITY_PROC_3): Replaced by SCM_ENTITY_PROCEDURE.
+
+ * struct.c, struct.h: Replace 4 procedure slots with one.
+ (scm_struct_i_procedure): Replaces scm_struct_i_procedure.
+
+ * gc.c (scm_gc_mark): Mark 1 procedure slot in entities instead of
+ 4.
+
+ * eval.c (scm_sym_args): Removed.
+ (SCM_CEVAL): Simplified entity application.
+ Moved dispatch code to objects.c.
+
+ * procprop.c (scm_i_procedure_arity): Bugfix: Handle generics.
+
+1999-08-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * sort.c (closureless): Use scm_eval_body.
+
+ * eval.c (SCM_APPLY): Fixed serious evaluator bug: If a closure
+ with a symbol as last form was first called normally and then via
+ `map' or some other mechanism using primitive apply, an ILOC was
+ returned.
+
+1999-08-26 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ This change extends the representation of primitive procedures
+ with more data fields, e.g. a place for documentation and true
+ procedure properties.
+
+ * procs.c, procs.h (scm_subr_entry): New type: Stores data
+ associated with subrs.
+ (SCM_SUBRNUM, SCM_SUBR_ENTRY, SCM_SUBR_GENERIC, SCM_SUBR_PROPS,
+ SCM_SUBR_DOC): New macros.
+ (scm_subr_table): New variable.
+ (scm_mark_subr_table): New function.
+
+ * init.c (scm_boot_guile_1): Call scm_init_subr_table.
+
+ * gc.c (scm_gc_mark): Don't mark subr names here.
+ (scm_igc): Call scm_mark_subr_table.
+
+
+ This change implements a scheme for letting a generic work as a
+ shadow for a primitive procedure. If the primitive procedure
+ can't dispatch on its arguments, control is left over to the
+ generic. Normal wrong type arg errors will be generated until the
+ user has hung the first method on the primitive.
+
+ * snarf.h (SCM_GPROC, SCM_GPROC1): New macros.
+
+ * procs.c, procs.h (scm_subr_p): New function (used internally).
+
+ * gsubr.c, gsubr.h (scm_make_gsubr_with_generic): New function.
+
+ * objects.c, objects.h (scm_primitive_generic): New class.
+
+ * objects.h (SCM_CMETHOD_CODE, SCM_CMETHOD_ENV): New macros.
+
+ * print.c (scm_iprin1): Print primitive-generics.
+
+ * __scm.h (SCM_WTA_DISPATCH_1, SCM_GASSERT1,
+ SCM_WTA_DISPATCH_2, SCM_GASSERT2): New macros.
+
+ * eval.c (SCM_CEVAL, SCM_APPLY): Replace scm_wta -->
+ SCM_WTA_DISPATCH_1 for scm_cxr's (unary floating point
+ primitives). NOTE: This means that it is now *required* to use
+ SCM_GPROC1 when creating float scm_cxr's (float scm_cxr's is an
+ obscured representation that will be removed in the future anyway,
+ so backward compatibility is no problem here).
+
+ * numbers.c: Converted most numeric primitives (all but bit
+ comparison operations and bit operations) to dispatch on generic
+ if args don't match.
+
+
+ Better support for applying generic functions.
+
+ * eval.c, eval.h (scm_eval_body): New function.
+
+ * objects.c (scm_call_generic_0, scm_call_generic_1,
+ scm_call_generic_2, scm_call_generic_3, scm_apply_generic): New
+ functions.
+
+
+ Optimization of the generic function dispatch mechanism.
+
+ * eval.c (SCM_CEVAL): Apply the cmethod directly after having
+ called scm_memoize_method instead of doing a second lookup.
+
+ * objects.h (scm_memoize_method): Now returns the memoized cmethod.
+
+
+ Bugfix
+
+ * procs.c (scm_make_subr_opt): Use scm_sysintern0 instead of
+ scm_sysintern so that the binding connected with the subr name
+ isn't cleared when we give set = 0.
+
+
+1999-08-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ More transparent handling of ports with print states.
+
+ * print.h (SCM_PORT_WITH_PS_P, SCM_PORT_WITH_PS_PORT,
+ SCM_PORT_WITH_PS_PS): Represent ports with print states as a smob
+ instead of a pair of a port and a print state. We'll need to cons
+ once extra in scm_printer_apply but the type system will be
+ cleaner, it will mix better with GOOPS, and, it will be even more
+ transparent to the user.
+
+ * print.c (scm_get_print_state): New procedure: Given an output
+ port, return the print state associated to it in the current print
+ chain, if one exists;
+ (scm_port_with_print_state): New procedure: Associate a
+ print-state with a port.
+ (scm_valid_oport_value_p): Use SCM_PORT_WITH_PS_P;
+ (scm_printer_apply): Wrap port and pstate as a smob;
+ (print_state_printer): Removed.
+
+ * objects.c (scm_class_of): Treat scm_tc16_port_with_ps as ports.
+
+ * eval.c (scm_init_eval): Use scm_make_smob_type instead of
+ scm_newsmob.
+
+ * ports.c (scm_output_port_p): Bugfix: Coerce output port before
+ testing (otherwise the port-print-state trick won't be transparent
+ to the user; one example where this caused problems was in the
+ (ice-9 format) module).
+
+1999-08-23 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Let the SCM_IM_SLOT_SET_X form return
+ SCM_UNSPECIFIED instead of the set value.
+
+1999-08-20 James Blandy <jimb@mule.m17n.org>
+
+ * load.c (scm_init_load_path): Remove support for SCHEME_LOAD_PATH.
+
+ * ports.h (enum scm_port_rw_active): New enum, containing
+ SCM_PORT_READ, SCM_PORT_WRITE, and SCM_PORT_NEITHER (instead of
+ zero). The debugger knows about enums, but doesn't know about
+ #defines.
+ (typedef scm_port): Declare rw_active member to be an enum
+ scm_port_rw_active.
+ * fports.c (fport_flush, fport_end_input): Use SCM_PORT_NEITHER
+ instead of zero.
+ * ports.c (scm_add_to_port_table): Same.
+ * strports.c (st_flush, st_end_input): Same.
+
+ * ioext.c (scm_do_read_line, scm_read_line): Use scm_must_malloc,
+ scm_must_realloc, and scm_done_malloc as appropriate.
+
+1999-08-20 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * sort.c (quicksort): Added condition to protect the algorithm
+ from crashing the interpreter if the less predicate is buggy.
+
+1999-08-19 Gary Houston <ghouston@easynet.co.uk>
+
+ * fports.c (fport_write): fix line-buffering mode again.
+ (scm_open_file): recognise 'l' for line-buffering.
+ (scm_setvbuf): recognise _IOLBF for line-buffering.
+
+1999-08-19 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * Makefile.am (libguile_la_LDFLAGS): Increased the version number
+ of libguile to 5.0.
+
+ * eval.c (SCM_APPLY), sort.c (closureless): Expand body when
+ evaluating closures.
+
+1999-08-18 Gary Houston <ghouston@easynet.co.uk>
+
+ * fports.c (fport_write): use memcpy instead of strncpy, in case
+ the data contains NUL.
+
+1999-08-17 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * gh.h (gh_vector_to_list): Bugfix. (Thanks to Frank Cieslok.)
+
+ * backtrace.c, debug.c, eval.c, eval.h, gsubr.c, procprop.h,
+ read.c, srcprop.c, srcprop.h (scm_i_filename, scm_i_line,
+ scm_i_column, scm_i_copy, scm_i_name, scm_i_lambda, scm_i_source,
+ scm_i_more, scm_i_procname, scm_i_dot, scm_i_arrow, scm_i_else,
+ scm_i_unquote, scm_i_uq_splicing, scm_i_apply, scm_i_enter_frame,
+ scm_i_apply_frame, scm_i_exit_frame, scm_i_trace, scm_i_quote,
+ scm_i_begin, scm_i_if, scm_i_and, scm_i_or, scm_i_case,
+ scm_i_cond, scm_i_letstar, scm_i_do, scm_i_quasiquote,
+ scm_i_define, scm_i_letrec, scm_i_let, scm_i_atapply,
+ scm_i_atcall_cc, scm_i_breakpoint): Renamed: Consequently use
+ scm_sym_ as prefix for symbols.
+
+ * debug.c (scm_i_proc, scm_i_args, scm_i_eval_args): Removed.
+
+ * eval.c, eval.h (scm_sym_begin, scm_sym_if, scm_sym_and,
+ scm_sym_case, scm_sym_cond, scm_sym_letstar, scm_sym_do,
+ scm_sym_define, scm_sym_letrec, scm_sym_atapply,
+ scm_sym_atcall_cc): Made global.
+
+1999-08-16 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (scm_sym_args): Made global.
+
+ * objects.c (scm_set_object_procedure_x): Disallow setting of
+ procedures for pure generic functions.
+
+1999-08-12 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_seek): one more: was scm_lseek. Also changed the
+ Scheme name from lseek to seek, but lseek was added recently so
+ it shouldn't be a big problem.
+ * ports.c, gdbint.c, ioext.c: changed callers.
+
+1999-08-11 Gary Houston <ghouston@easynet.co.uk>
+
+ * fports.c (fport_input_waiting): if select is used, return 1
+ instead of whatever FD_ISSET expands to. maybe it will be useful
+ to interpret the value from the input_waiting ptob procedure as a
+ lower bound on the number of bytes available.
+
+ * Mikael asked for a few names to be changed...
+
+ * ports.c (scm_make_port_type): take the write procedure as the
+ second argument instead of the flush procedure.
+ * ports.h (scm_ptob_descriptor): rename the ptob procedures:
+ fflush -> flush, read_flush -> end_input, fclose -> close,
+ fill_buffer -> fill_input, ftruncate -> truncate,
+ input_waiting_p -> input_waiting.
+
+ * ports.c (end_input_void_port): was read_flush_void_port.
+ (scm_set_port_end_input): was scm_set_port_flush_input.
+ (scm_set_port_flush): was scm_set_port_write.
+ (scm_set_port_input_waiting): was scm_set_port_input_waiting_p
+ (scm_end_input): was scm_read_flush.
+ (scm_fill_input): was scm_fill_buffer.
+ (scm_flush): was scm_fflush.
+ * fports.c (fport_input_waiting): renamed from fport_input_waiting_p.
+ (fport_end_input): was local_read_flush.
+ (fport_flush): was local_fflush.
+ (fport_close): was local_fclose.
+ (fport_truncate): was local_ftruncate.
+ (fport_seek): was local_seek.
+ (fport_free): was local_free.
+ (fport_fill_input): was fport_fill_buffer.
+ * strports.c (st_end_input): was st_read_flush.
+ (st_truncate): was st_ftruncate.
+ * vports.c: (sf_flush): was sfflush.
+ (sf_close): was sfclose.
+ (sf_fill_input): was sf_fill_buffer.
+
+ * ports.c, fports.c, strports, vports.c, ioext.c, unif.c, filesys.c:
+ change callers.
+
+1999-08-06 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (SCM_IM_DISPATCH): Rewrote dispatch protocol. Dispatch
+ forms now contain the expressions to be dispatched upon instead of
+ depending on a surrounding lambda or let; Generic function
+ dispatch has been optimized; `apply' on a generic function now
+ works a little bit strangely. It uses a trick so that the type
+ dispatch code in SCM_CEVAL can be reused.
+
+ * objects.h, objects.c (scm_apply_generic_env): Added (used by
+ apply).
+ (scm_operator_p): Added.
+ (scm_sym_atdispatch): Added.
+ (scm_set_object_procedure_x): Modified to handle the new style
+ generic functions.
+ (scm_object_procedures): New debugging procedure.
+
+1999-08-05 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c, eval.h (scm_sym_args): Added.
+
+ * objects.h (SCM_CLASSF_PURE_GENERIC): Added.
+
+ * feature.c, feature.h (scm_c_run_hook): Added.
+
+ * eval.c (SCM_CEVAL:SCM_IM_DISPATCH): Bugfix: Jump back to
+ cdrxnoap and loopnoap instead of begin and loop.
+
+1999-08-04 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_putc, scm_puts),
+ * unif.c (scm_uniform_array_write): use scm_lfwrite.
+ * ports.c (scm_putc): change type of first argument from int to char.
+
+1999-08-04 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Improvements to SCM_IM_DISPATCH and
+ SCM_IM_HASH_DISPATCH.
+
+ * objects.h (SCM_CLASSF_GOOPS_VALID): Added.
+ (scm_si_redfined, scm_si_hashsets): Moved.
+
+ * objects.c (scm_class_of): Use the new SCM_CLASSF_GOOPS_VALID
+ flag which combines type and status info so that the class
+ redefinition protocol has zero cost during normal execution.
+
+1999-08-03 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (scm_ptob_descriptor): include a write procedure again.
+ it's more efficient for unbuffered fports (e.g., sockets.)
+
+ * ports.c (scm_puts): use ptob->write.
+ * vports.c (scm_make_sfptob): set write proc in ptob.
+ * strports.c (scm_make_stptob): set write proc in ptob.
+ * ports.c (write_void_port): new procedure.
+ * vports.c (sf_write): new procedure.
+ * ports.c (scm_lfwrite): use ptob->write.
+ * strports.c (st_write): new procedure.
+ * fports.c (fport_write): new procedure.
+ (scm_make_fptob): set write in ptob to fport_write.
+ * ports.h: prototype for scm_set_port_write.
+ * ports.c (scm_make_port_type): initialise ptob write procedure.
+ (scm_set_port_write): new proc.
+
+1999-08-01 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * ports.c (scm_char_ready_p): Don't try to find PORT's ptab entry
+ until we've verified that it is actually a port. (Thanks to
+ Lorentey Karoly.)
+
+1999-07-31 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * gc.c (scm_must_malloc, scm_must_realloc): Removed unnecessary
+ code, particularly an unnecessary test (len != size, where len ==
+ size). (Was this leftovers from debugging code, or have I missed
+ something profound?)
+
+ * hashtab.c: Bugfix: Don't declare s_hash_fold without storage
+ size. (Thanks to James Dean Palmer.)
+
+ * numbers.c (scm_makdbl): Bugfix: Initialize imaginary part.
+ (Thanks to Lorentey Karoly.)
+
+1999-07-30 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (scm_m_expand_body): Use scm_cons_source.
+
+ * struct.c (scm_print_struct): Use vtable name.
+
+ * print.c (scm_init_print): Set name of print state type.
+
+ * stacks.c (scm_init_stacks): Set name of stack type.
+
+1999-07-29 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Removed old implementation of internal
+ define.
+
+ * gsubr.c, procprop.h (scm_i_inner_name): Removed.
+
+ * debug.c, debug.h (scm_reverse_lookup): Added.
+ (scm_procedure_name): Use scm_reverse_lookup to lookup the name of
+ internal procedure definitions; Don't use scm_i_inner_name.
+
+ * eval.c, tags.h, print.c (SCM_IM_SLOT_REF, SCM_IM_SLOT_SET_X):
+ New isym operations.
+
+ * eval.h: Added prototypes for multi language support functions.
+
+ * eval.c (SCM_IM_DISPATCH, SCM_IM_HASH_DISPATCH): Don't use
+ improper lists in the low-level representation, since that will
+ cause a begin to be prepended at macro expansion.
+
+ * eval.c (scm_cons_source): Version of cons which copies source
+ properties from an existing cell.
+ (scm_copy_tree, SCM_CEVAL): Use scm_cons_source.
+
+ * debug.c (scm_procedure_source): Cons SCM_IM_LAMBDA onto
+ procedure source before calling scm_unmemocopy instead of faking
+ an environment.
+
+1998-10-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Ported `internal defines' fix from SCM. Original ChangeLog entry:
+
+ 1998-07-09 Radey Shouman <radey@colorage.com>
+
+ * eval.c (ceval_1): Modifications to allow rewriting of interal
+ DEFINE to LETREC: If an ISYM is evaluated in non-tail position the
+ body of which it is the CAR is macro expanded by m_expand_body,
+ which rewrites internal DEFINE.
+
+ (m_expand_body): Added.
+
+ (m_macroexp1): Added argument to control error checking:
+ m_expand_body may speculatively expand forms in the wrong
+ environments. Made argument number checks conditional on
+ RECKLESS.
+
+ (m_body): Added, error checks bodies and inserts the ISYM tokens.
+
+ (m_lambda): (m_letstar): (m_letrec1): (m_letrec): (m_let): Now
+ call m_body.
+
+ (m_cond): (m_case): (m_quote): Modified to avoid destructively
+ changing their argument forms. Since m_expand_body
+ speculatively macro expands forms the process must be
+ reversible.
+
+ (m_ident_eqp): Fixed to use proper environment.
+
+ (renamed_ident): Added DEFER_INTS_EGC.
+
+ Added prototypes for static functions.
+
+ * eval.c
+
+ (undef_cell): New.
+
+ (scm_lookupcar1, scm_lookupcar): Added CHECK argument. When CHECK
+ is false, do not produce an error for unbound variables, return a
+ pointer to cell_undef instead.
+
+ (EVALCELLCAR, XEVALCAR): Call scm_lookupcar with check=1.
+
+ (scm_m_body): New.
+
+ (scm_m_cond, scm_m_case, scm_m_quote): Modified to avoid
+ destructively changing their argument forms. Since m_expand_body
+ speculatively macro expands forms the process must be reversible.
+
+ (scm_m_lambda): Use scm_m_body instead of bodycheck. Account for
+ SCM_IM_LET introduced by named lets.
+
+ (scm_m_letstar): Use scm_m_body instead of bodycheck.
+
+ (scm_m_letrec1, scm_letrec): Split scm_letrec into scm_letrec1 and
+ scm_letrec. scm_letrec1 does not check for a null binding and
+ takes an additional argument to specify the ISYM of the body. Use
+ scm_m_body instead of bodycheck.
+
+ (scm_m_let): Use scm_m_body instead of bodycheck.
+
+ (scm_m_expand_body, scm_macroexp): New.
+
+ (unmemocopy): Account for ISYMs introduced by scm_m_body.
+
+ (ceval, deval): Call scm_m_expand_body. Call scm_lookupcar with
+ check=1. Throw error for internal defined that have not been
+ rewritten by scm_m_expand_body.
+
+ * eval.h: Added prototypes for scm_m_expand_body and scm_macroexp.
+ Removed prototype for SCM_APPLY.
+
+ * tags.h: Added extern declaration of scm_isymnames.
+
+1999-07-27 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Added lang.c.
+
+ * lang.c: New file: Beginning of multi-language support.
+
+ * init.c (scm_boot_guile_1): Added call to scm_init_lang ().
+
+ * dynwind.c (scm_dowinds): Removed obsolete wind_key #f case.
+ (scm_dynamic_wind): Added argument checking for the after guard so
+ that we don't add garbage on the dynwind chain.
+ (scm_swap_bindings): Added.
+
+ * tags.h, print.c (SCM_IM_NIL_COND, SCM_IM_NIL_IFY, SCM_IM_T_IFY,
+ SCM_IM_0_COND, SCM_IM_0_IFY, SCM_IM_1_IFY), print.c
+ (scm_isymnames): New isyms for multi-language support.
+
+ * eval.c (scm_nil, scm_t): New symbols.
+ (nil-cond, nil-ify, t-ify, 0-cond, 0-ify, 1-ify): New special
+ forms for multi-language support.
+
+1999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * random.c, random.h (scm_c_default_rstate, scm_c_uniform32):
+ Added.
+ Renamed functions in the random function library interface
+ from scm_i_XXX --> scm_c_XXX.
+
+1999-07-25 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_putc): fix line-buffering.
+
+1999-07-25 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * ports.c, ports.h, fports.c, strports.c, vports.c: Renamed
+ scm_set_ptob_XXX --> scm_set_port_XXX.
+
+1999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * ports.c, ports.h (scm_make_port_type): New interface for
+ creation of port types (replaces scm_newptob). Just as for the
+ smobs, we need to separate the internal representation of smob
+ types from the interface, so that we easily can add new fields and
+ rearrange things without caring about backward compatibility.
+ This change was forced by the need in GOOPS to create classes
+ representing port types.
+ (scm_set_ptob_mark, scm_set_ptob_free, scm_set_ptob_print,
+ scm_set_ptob_equalp, scm_set_ptob_flush_input, scm_set_ptob_close,
+ scm_set_ptob_seek, scm_set_ptob_truncate,
+ scm_set_ptob_input_waiting_p): New setters.
+ (scm_newptob): Rewritten to use scm_make_port_type. For backward
+ compatibility.
+ (scm_ptobs): Changed type scm_ptobfuns --> scm_ptob_descriptor.
+ (scm_prinport): Removed.
+ (scm_port_print): Added.
+ (scm_print_port_mode): Added.
+ (void_port_ptob, print_void_port, close_void_port, noop0):
+ Removed. Removed #include "genio.h" Added #include "objects.h",
+ #include "smobs.h"
+
+ * fports.c (prinfport): Moved code from ports.c.
+ (local_free): Added.
+ (scm_fptob): Removed. Instead use new interface.
+ (scm_make_fptob): Added. (Need to create basic ports in a
+ specific order in ports.c.)
+
+ * strports.c (scm_stptob, prinstpt, noop0): Removed
+ (scm_make_stptob): Added.
+
+ * vports.c (scm_sfport, prinsfpt, sf_read_flush, noop0): Removed.
+ (scm_make_sfport): Added.
+
+ * filesys.c (scm_dir_print): Don't use the port printing code.
+ Instead provide specific directory printer.
+
+ * gc.c (scm_gc_sweep): Use value returned from scm_ptobs[].free.
+
+ * ioext.c (scm_redirect_port): Replaced scm_ptobfuns -->
+ scm_ptob_descriptor.
+
+ * smob.c (scm_smob_print): Handle non-existing type name nicely.
+ Removed #include "genio.h"
+
+ * objects.c (scm_make_port_classes): New function ptr.
+
+1999-07-24 Gary Houston <ghouston@easynet.co.uk>
+
+ * gdbint.c (gdb_print, gdb_read): call scm_truncate_file.
+
+ * ports.c (scm_truncate_file): renamed from scm_ftruncate.
+ allow the 1st argument to be a fdes or filename as well as a
+ port (as in the filesys.c version).
+
+ * filesys.c (scm_truncate_file): removed.
+
+1999-07-24 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
+
+ * readline.c, readline.h: Removed.
+
+ * objects.c, objects.h (scm_port_class): Added.
+ (scm_class_of): Look up port class in scm_port_class.
+ (SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
+ SCM_INOUT_PCLASS_INDEX): Added.
+
+
+ * Makefile.am: Removed genio.c, genio.x.
+
+ * genio.c: Removed.
+
+1999-07-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * init.c: Make sure that scm_post_boot_init_modules is called only
+ once. (Important when using a dumped image.; Thanks to Bernard
+ Urban.)
+
+1999-07-19 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * guardians.c (scm_guardian_zombify): Separate scanning for
+ zombies from marking the pairs of the free list.
+
+ * guardians.c (scm_guardian_zombify): Don't set marks manually ---
+ use the macros. (Thanks to Michael Livshin.)
+
+ * eval.c (scm_m_lambda): Let bodycheck check the body of the
+ lambda. Let your sins be purified by the blood of the lambda.
+ (Thanks to Eric Hanchrow.)
+
+ * net_db.c (h_errno): Don't declare this if it's #defined. Eew.
+ (Thanks to Valdis Kletnieks.)
+
+ Fixes for EMX from Mikael Ståldal.
+
+ * filesys.c: #include <io.h>, if we have it.
+ * scmconfig.h.in: Regenerated.
+
+ * stime.c (ftime): Delete declaration for this function --- let
+ the system supply it.
+
+ Cleanups from John Bley.
+
+ * gdbint.c: Don't include <stdio.h> and "_scm.h" twice.
+
+ * gsubr.c: Don't include "gsubr.h" twice.
+
+ Cleanups for compilation on Irix 6, from David Kaelbling.
+
+ * regex-posix.c (scm_regexp_error_msg): Change `rx' argument to
+ regex_t pointer. This is what the callers have, mostly.
+ (scm_regexp_exec): Don't forget to pass the `rx' argument to
+ scm_regexp_error_msg.
+
+ * scmsigs.c (scm_sigaction): Cast SIG_DFL and SIG_IGN to SCM, not
+ int. That way, if we get a warning on this line, it's more likely
+ that we're really missing bits we care about.
+
+ * snarf.h (SCM_CONST_LONG): Remove trailing semicolon from
+ definition.
+
+ * tags.h (SCM_IMP, SCM_NCONSP, SCM_NCELLP, SCM_ITAG3, SCM_TYP3,
+ SCM_TYP7, SCM_TYP7S, SCM_TYP16, SCM_TYP16S, SCM_GCTYP16,
+ SCM_GCMARKP, SCM_GC8MARKP): Don't cast to int. Either SCM or no
+ cast at all is more appropriate in every case. At the moment, we
+ assume everywhere that SCM is an integral type anyway.
+
+1999-07-14 Gary Houston <ghouston@easynet.co.uk>
+
+ * unif.c (scm_uniform_array_read_x), ports.c (scm_getc): increment
+ read_pos after scm_fill_buffer.
+
+ * ioext.c (scm_do_read_line): simplify by ignoring the fill_buffer
+ return char.
+
+ * vports.c (sf_fill_buffer), strports.c (stfill_buffer),
+ fports.c (fport_fill_buffer): implement the interface change.
+
+ * ports.c (scm_fill_buffer): interface change: no longer increments
+ read_pos past the character that's returned. it seems clearer to
+ leave it to the caller to decide what to do (thanks Jim).
+
+ * vports.c (sf_fill_buffer): put the read char into the buffer
+ as well as returning it.
+
+ * ports.c (scm_grow_port_cbuf): residue of this deleted procedure
+ deleted.
+
+1999-07-13 Gary Houston <ghouston@easynet.co.uk>
+
+ * strports.c (scm_strprint_obj): simplify. start with initial
+ buffer size of 0.
+ (st_seek): don't allow string to be extended if seeking past
+ the end of a read-only port.
+
+1999-07-12 Gary Houston <ghouston@easynet.co.uk>
+
+ * strports.c (st_seek): change the resize checks.
+
+ * ports.c (scm_ftruncate): throw error if offset works out negative.
+
+ * strports.c (st_flush): increase string size in blocks of
+ SCM_WRITE_BLOCK instead of 1. set read_end to read_pos if
+ it's greater and reset read_buf_size.
+ (scm_mkstrport): set rw_randow if only writing, since read_buf needs
+ to be maintained for output ports too (it holds the written
+ part of the string, while write_buf may have unwritten buffer
+ chars.)
+ (st_truncate): rewritten.
+ (top of file): added a few notes.
+
+1999-07-10 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Patch from Greg Badros:
+ * snarf.h (SCM_PROC, SCM_PROC1): Use __cplusplus or
+ GUILE_CPLUSPLUS_SNARF macros to force adding a cast to the last
+ (function pointer) argument to scm_make_gsubr and scm_make_subr
+ calls. This avoids warnings in C++ programs using guile-snarf.
+
+1999-07-06 Gary Houston <ghouston@easynet.co.uk>
+
+ * strports.c (st_grow_port): set pt->read_pos. set
+ pt->read_buf_size one less than pt->write_buf_size if there's
+ an unwritten char at the end of the string. similarly for
+ pt->read_end.
+ (st_resize_port): renamed from st_grow_port.
+ (st_seek): simplify by assuming that pt->write_pos == pt->read_pos.
+ seek from read_end instead of write_end for SEEK_END.
+ (st_ftruncate): calculate current length using readbuf, not write
+ buf.
+ (scm_strport_to_string): use read_buf_size for length.
+ (stfill_buffer): don't re-initialise the readbuf.
+
+1999-07-05 Gary Houston <ghouston@easynet.co.uk>
+
+ * strports.c (scm_strport_to_string): new procedure.
+ (scm_call_with_output_string, scm_strprint_obj): use
+ scm_strport_to_string.
+ used SCM_INUM0 instead of SCM_MAKINUM (0) in a few places.
+
+1999-07-08 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * symbols.c (scm_gensym): Bugfix. (Thanks to Johannes Hjorth.)
+
+Fri Jun 25 22:14:32 1999 Greg Badros <gjb@cs.washington.edu>
+
+ * smob.c: added scm_make_smob_type_mfpe (), scm_set_smob_mfpe ();
+ use scm_make_smob_type_mfpe to initialize "free", "flo", "bigpos",
+ and "bigneg" smob types.
+
+ * smob.h: Add do ... while(0) idiom to SCM_NEWSMOB. Added
+ SCM_RETURN_NEWSMOB macro. Added protos for new functions in
+ smob.c.
+
+ * *.c: Use scm_make_smob_type_mfpe, instead of scm_newsmob, and
+ use SCM_NEWSMOB or SCM_RETURN_NEWSMOB in constructors instead of
+ SCM_NEWCELL and setting the CAR/CDR by hand.
+
+1999-07-04 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_putc): call scm_read_flush.
+ (scm_puts): likewise.
+ (scm_lfwrite): likewise.
+ (scm_lseek): likewise.
+ (scm_ftruncate): likewise.
+ * unif.c (scm_uniform_array_write): likewise.
+ * ioext.c (scm_redirect_port): likewise.
+
+ * ports.c (scm_fill_buffer): don't take pt argument. change callers.
+ (read_flush_void_port): new proc, for void port ptob.
+
+ * vports.c (sf_read_flush): likewise.
+ * strports.c (st_read_flush): take offset arg.
+ * fports.c (local_read_flush): use offset, don't reset putback
+ buffer here.
+
+ * ports.h (scm_ptobfuns): let read_flush take an offset argument,
+ which is the number of chars from the putback buffer.
+
+ * ports.c (scm_read_flush): new procedure, resets the putback
+ buffer before calling the ptob routine.
+
+ * strports.c (scm_strprint_obj): bug fix: get pt from the port,
+ not from the parameter obj. (Thanks to Eric Moore.)
+
+ * ports.h: SCM_CRDY, SCM_CUC, SCM_CRDYP, SCM_SETRDY, SCM_CUNGET,
+ SCM_CGETUN, SCM_CLRDY, SCM_TRY_CLRDY, SCM_N_READY_CHARS: deleted.
+
+ * strings.c (scm_make_string): throw error if 2nd arg isn't
+ a char.
+
+ * unif.c (scm_uniform_array_read_x): fix reading from a port.
+ allow non-fports.
+ (scm_uniform_array_write): likewise.
+
+1999-06-29 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_drain_input): rewritten.
+
+ * fports.c (local_fclose): check putback_buf.
+ (local_read_flush): likewise.
+
+ * ports.c (scm_remove_from_port_table): maybe free putback_buf.
+
+ * ports.h (scm_port): replace cbuf/cbufend/cp with putback_buf/
+ putback_buf_size.
+ (SCM_INITIAL_PUTBACK_BUF_SIZE): renamed from SCM_INITIAL_CBUF_SIZE.
+
+ * ports.c (scm_grow_port_cbuf): deleted.
+ (scm_add_to_port_table): initialise putback_buf to 0. remove cbuf
+ stuff.
+ (scm_char_ready_p): check putback_buf
+ (scm_fill_buffer): likewise.
+ (scm_ungetc): rewritten.
+
+1999-06-27 Gary Houston <ghouston@easynet.co.uk>
+
+ * fports.c (local_fclose): account for push-back buffer.
+
+ * ports.c (scm_char_ready_p): check the push-back buffer in
+ a new way.
+
+ * ioext.c (scm_do_read_line): remove the extra code to handle
+ the push-back buffer.
+
+ * ports.c (scm_getc): don't use SCM_CRDYP etc.
+
+ * ioext.c (scm_do_read_line): call scm_fill_buffer.
+
+ * ports.c (scm_ungetc): don't call SCM_CUNGET. reset the
+ read buffer pointers.
+ scm_fill_buffer: new procedure.
+ (scm_getc): call scm_fill_buffer.
+
+ * ports.h (struct scm_port): saved_read_buf, saved_read_pos,
+ saved_read_end: new fields.
+
+1999-06-24 Mikael Djurfeldt <mdj@orjan.nada.kth.se>
+
+ * dynl-dl.c (sysdep_dynl_link): Added parenthesis around the
+ trinary conditional in order for the flag computation to be
+ correct.
+
+1999-06-23 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * struct.c, struct.h:
+
+ In order to support different kinds of deallocation, a destructor
+ slot has been added to struct vtables. This allows for structs
+ containing pointers to other memory blocks.
+
+ (scm_struct_i_free): New hidden struct slot. Holds destructor for
+ instances to this vtable.
+ (scm_struct_free_0): New destructor: Doesn't deallocate data.
+ (scm_struct_free_light): New destructor: Deallocates a light
+ struct (i.e. a struct without hidden slots).
+ (scm_struct_free_standard): New destructor: Deallocates standard
+ structs.
+ (scm_struct_free_entity): New destructor: Deallocates entity
+ structs.
+ (SCM_SET_VTABLE_DESTRUCTOR): New macro.
+
+ Changes to hidden slots:
+
+ (scm_struct_i_size): scm_struct_i_flags now shares space with
+ scm_struct_i_size which holds the size of light structs.
+ (scm_struct_i_n_words): This slot has changed meaning. Previously
+ it included hidden slots. Now it indicates visible slots.
+ (scm_alloc_struct): Clear flags.
+ (SCM_STRUCTF_MASK): 4 new flag positions added => 12 bits.
+
+ (struct_num, scm_struct_i_tag): Removed.
+ (scm_struct_vtable_tag): Base tag on the pointer to mallocated
+ memory.
+ (scm_struct_ihashq): Base hash value on pointer to struct handle.
+
+ * tag.c (scm_tag): Base tag on vtable pointer.
+
+ * objects.c (scm_init_objects): Initialize destructor slot of the
+ primordial entity class.
+
+ * objects.h (SCM_SET_CLASS_DESTRUCTOR,
+ SCM_SET_CLASS_INSTANCE_SIZE): New macros.
+
+ * gc.c (scm_gc_sweep): Call struct free slot.
+
+ * keywords.c, keywords.h (scm_c_make_keyword): New function.
+ (We should remove the use of the prefix '-'.)
+
+ * snarf.h (SCM_KEYWORD, SCM_GLOBAL_KEYWORD): New macros.
+
+ * libguile.h: #include "objects.h"
+
+1999-06-22 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (DYNL_GLOBAL): New.
+ (sysdep_dynl_link): Added `flags' argument.
+ (kw_global, sym_global): New.
+ (scm_dynamic_link): Handle keyword arguments. Pass suitable flags
+ to sysdep_dynl_link.
+ * dynl-dl.c (sysdep_dynl_link): Handle new `flags' argument by
+ conditrionally adding RTLD_GLOBAL to DLOPEN_MODES.
+ * dynl-shl.c (sysdep_dynl_link): Add and ignore new flags
+ argument.
+ * dynl-dld.c (sysdep_dynl_link): Add and ignore new flags
+ argument.
+ * dynl.h (scm_dynamic_link): Added rest argument.
+
+1999-06-21 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (sysdep_dynl_unlink, sysdep_dynl_func): Use const
+ qualifier for char* argument, to match prototypes. Thanks to Mark
+ Elbrecht.
+
+1999-06-21 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * dynl.c (no_dynl_error, sysdep_dynl_link, sysdep_dynl_unlink,
+ sysdep_dynl_func): Use ANSI declarations, and const char *
+ pointers. (Thanks to Mark Elbrecht.)
+
+1999-06-19 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Patch from Greg Harvey:
+ * eq.c, eval.c, list.c, ramap.c, vectors.c: Always write parens
+ around the condition of an `if', `while', etc., even if the
+ condition is a macro invocation that expands to something
+ surrounded by parens. It's more readable.
+
+ * eval.c (scm_map, scm_for_each): Verify that all arguments are
+ proper lists, and of the appropriate lengths.
+ (check_map_args): New function. (Thanks to Greg Harvey for the
+ bug report.)
+
+1999-06-19 Michael Livshin <mike@olan.com>
+
+ * guardians.c (guardian_t): `next' - new field to be used for
+ chaining the live guardians in a single-linked list during the GC
+ mark phase.
+ (GUARDIAN_NEXT): convenience macro to access the `next' field.
+ (guardians, guardians_size, n_guardians): deleted.
+ (first_live_guardian, current_link_field): new globals used to
+ point to the head of the live guardian list and current `next'
+ field, respectively.
+ (g_mark): append the guardian to the live guardian list.
+ (scm_guardian_gc_init): zero the live guardian list.
+ (scm_guardian_zombify): iterate through the live guardian list.
+
+ (Applied by Jim Blandy.)
+
+1999-06-16 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * gc.c (scm_mallocated): Just make this signed.
+ (scm_igc): Check for underflow by seeing if this is negative.
+ Much cleaner.
+ * gc.h (scm_mallocated): Fix declaration.
+ (Thanks to Greg Harvey.)
+
+ * ports.h: #include <sys/types.h>, to get a definition for `off_t'.
+
+1999-06-15 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * stime.c (bdtime2c): Initialize lt->gmtoff and lt->tm_zone from
+ sbd_time. (Thanks to Eric Hanchrow.)
+
+ Fix from Ken Raeburn <raeburn@raeburn.org>:
+ * weaks.c (scm_make_weak_vector): Add another extra slot before
+ vector contents, to be used only during garbage collection.
+ * weaks.h (SCM_WVECT_GC_CHAIN): New macro to access it.
+ * gc.c (scm_weak_vectors): Now a SCM instead of a SCM*, and now
+ static.
+ (scm_weak_size, scm_n_weak): Deleted.
+ (scm_igc): Use SCM_WVECT_GC_CHAIN to build up a chain of weak
+ vectors without allocating new storage during GC, using
+ scm_weak_vectors as the head of the chain.
+ (scm_mark_weak_vector_spines): Walk SCM_WVECT_GC_CHAIN chain
+ instead of stepping through an array.
+ (scm_gc_sweep): Update offset used to find start of weak vector to
+ free it.
+ (scm_init_storage): Set scm_weak_vectors to EOL.
+
+ Fix from Ken Raeburn <raeburn@raeburn.org>:
+ * gc.c (already_in_gc): New variable.
+ (scm_igc): Set and clear already_in_gc; abort if it's set at
+ entry.
+
+1999-06-14 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Fix from Gary Houston:
+ * fports.c (local_seek): Signal an error if the seek fails.
+ * ports.c (scm_lseek): Don't check return value of port's seek
+ function; it's its job to signal an error if there's a problem.
+
+1999-06-12 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * strports.c (scm_call_with_output_string): Don't include the
+ extra character at the end of the string in the result.
+
+ * ioext.c (scm_read_line): Switch to reading properly.
+
+ * fports.c, fports.h, gc.c, gdbint.c, ioext.c, ports.c, ports.h,
+ scmsigs.c, strports.c, vports.c: Install the sources which
+ actually correspond to the changes described below. I got the
+ ChangeLog entries and the patch from two different places...
+
+1999-06-09 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * gc.c (scm_igc): Check for scm_mallocated underflow. Otherwise,
+ it shows up as terrible performance, as we GC constantly.
+
+ * ioext.c (scm_do_read_line): Rewritten to use memchr to find the
+ newline. A bit faster, and definitely hairier.
+ (scm_read_line): Count newlines here instead.
+
+ * strings.c (scm_take_str): New function.
+ (scm_take0str): Reimplement in terms of scm_take_str. * strings.h
+ (scm_take_str): New declaration. * ioext.c (scm_read_line): Use
+ scm_take_str, to avoid copying the string.
+
+ Add some simple-minded support for line buffered ports.
+ * ports.h (SCM_BUFLINE): New flag for ports.
+ * init.c (scm_init_standard_ports): Request line-buffering on
+ the standard output port.
+ * ports.c (scm_mode_bits): Recognize 'l' as a request for line
+ buffering.
+ (scm_putc, scm_puts, scm_lfwrite): If the port is line-buffered,
+ and there's a newline to be written, flush the port.
+
+ Gary Houston's open-buffer port patches:
+
+ 1999-04-26 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c: (scm_lseek): clear buffers even if just reading current
+ position.
+
+ * fports.c (local_fclose): call local_fflush unconditionally.
+ (various): don't use the scm_must... memory procs.
+
+ 1999-04-25 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (scm_port): make read_pos a pointer to const.
+ strports.c: take care of rw_active and rw_randow.
+ fports.c: scm_fport_drain_input: removed. do it all in ports.c.
+ strports.c (scm_mkstrport): check that pos is reasonable.
+ ioext.c (scm_ftell, scm_fseek): use lseek.
+ (SCM_CLEAR_BUFFERS): macro deleted.
+ ioext.c (redirect_port: use ptob fflush, read_flush.
+ ports.h (scm_ptobfuns): add ftruncate.
+ ports.c (scm_newptob): set ftruncate.
+ adjust ptob tables.
+ ports.c (scm_ftruncate): new procedure.
+ fports.c (local_ftrunate), strports.c (str_ftruncate): new procs.
+ strports.c (st_seek, st_grow_port): new procs.
+ fports.h (scm_port): change size types from int to off_t.
+ ports.c (scm_init_ports): initialise the seek symbols here
+ instead of in ioext.c.
+ strports.c (scm_call_with_output_string): start with an empty
+ string, so seek and ftruncate can be used.
+
+ gdbint.c: adjust string port usage.
+
+ 1999-04-24 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (scm_ptobfuns): add a read_flush procedure which is the
+ equivalent to fflush for the read buffer.
+ * ports.c (scm_newptob): set read_flush.
+ ports.c (void_port_ptob): set read_flush.
+ fports.c (local_read_flush): new proc. add to ptob.
+ strport.c (st_read_flush): likewise.
+ vport.c (sf_read_flush): likewise.
+ fports.h (struct scm_fport): remove random member. there's nothing
+ left but fdes. leaving it as a struct to allow for future changes.
+ fports.c: replace usage of scm_fport::random with scm_port::rw_random.
+ ports.c: (scm_putc, scm_puts, scm_lfwrite): call the read_flush
+ ptob proc if the read buffer is filled.
+
+ 1999-04-23 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (scm_port): add a rw_random member and replace
+ reading and writing members with rw_active member.
+ SCM_PORT_READ/SCM_PORT_WRITE: new values.
+
+ 1999-04-22 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (struct scm_port_table): add writing and reading members
+ to replace write_needs_seek: it isn't good enough for non-fports.
+ ports.c, ioext.c, fports.c: corresponding changes.
+ (struct scm_port_table): give it a typedef and rename to scm_port.
+ ports.c, fports.c, strports.c, vports.c, ioext.c, ports.h:
+ corresponding changes.
+
+ 1999-04-20 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.c (scm_newptob): bugfix: set seek member.
+ * (scm_lseek): new procedure, using code from ioext.c:scm_fseek
+ and generalised to all port types.
+
+ 1999-04-18 Gary Houston <ghouston@easynet.co.uk>
+
+ * scmsigs.c (scm_init_scmsigs): set the SA_RESTART flag for all
+ signals (it was only being done for handlers installed from Scheme).
+ Otherwise (for example) SIGSTOP followed by SIGCONT on an interpreter
+ waiting for input caused an EINTR error from read.
+
+ 1999-04-07 Gary Houston <ghouston@easynet.co.uk>
+
+ * ports.h (struct scm_port_table): make all the char members
+ unsigned, so they convert to int without becoming negative if large.
+
+ 1999-03-14 Gary Houston <ghouston@easynet.co.uk>
+
+ * fports.c (scm_fdes_wait_for_input): forgot to check compilation
+ with threads enabled. rename this procedure to
+ fport_wait_for_input and take a port instead of a fdes.
+ use scm_fport_input_waiting_p instead of scm_fdes_waiting_p.
+
+ * readline.c (scm_readline): Applied a patch from Greg Harvey to
+ get readline support working again: use fdopen to get FILE objects.
+
+ 1999-02-26 Gary Houston <ghouston@easynet.co.uk>
+
+ * gc.c (scm_init_storage): install an atexit proc to flush the
+ ports.
+ (cleanup): the new proc. it sets a global variable which can be
+ checked by the ptob flush procs to avoid trying to throw
+ exceptions during exit. not very pleasant but it seems more reliable.
+ * fports.c (local_fflush): check terminating variable and if set
+ don't throw exception.
+ * CHECKME: that the atexit proc is installed if unexec used.
+
+ * throw.c (scm_handle_by_message): don't flush all ports here.
+ it still causes bus errors.
+
+ * fports.h (SCM_FPORT_CLEAR_BUFFERS): rename to SCM_CLEAR_BUFFERS
+ and move to ioext.c.
+
+ * fports.c (scm_fdes_waiting_p): merged into fport_input_waiting_p.
+
+ * ports.c (scm_char_ready_p): check the port buffer and call the
+ ptob entry if needed.
+
+ * ports.h (scm_ptobfuns): input_waiting_p added. change all the
+ ptob initialisers. use it in char-ready
+
+ * ioext.c (scm_do_read_line): moved from ports.c. make it static.
+
+ * vports.c (sfflush): modified to write a char (since softports
+ currently use shortbuf.)
+
+ * fports.c (scm_standard_stream_to_port): moved to init.c and
+ made static.
+
+ * init.c (scm_init_standard_ports): make stdout and stderr
+ unbuffered if connected to a terminal. with stdio they
+ were line-buffered by default.
+
+ (scm_ptobfuns): fputc, fputs, fwrite, fgetc, fgets removed.
+ update ptob tables.
+
+ * ports.h (scm_ptobfuns): change fflush return to void.
+ change flush proc definitions.
+
+ * strports.c (scm_call_with_output_string): get size from
+ buffer instead of port stream.
+ (st_flush): new proc.
+
+ * ports.h (struct scm_port_table): added write_end member,
+ as an optimisation. set it where write_buf_size is set.
+
+ * ports.h (struct scm_port_table): change stream from void *
+ back to SCM. SCM presumably must be large enough to hold a
+ pointer (and probably vice versa but who knows.)
+ (SCM_SSTREAM): deleted. change users back to SCM_STREAM.
+
+ (scm_puts): rewritten
+ * fports.c (local_ffwrite, local_fputs): removed.
+ * strports.c (stputc, stputs, stwrite): dyked out (FIXME)
+ * vports.c (sfputc, sfputs, sfwrite) likewise.
+ * ports.c (write_void_port, puts_void_port): removed.
+ (putc_void_port, getc_void_port, fgets_void_port): likewise.
+
+ * ports.c (scm_lfwrite): rewritten using fport.c version.
+
+ * fports.c (local_fputc): deleted.
+
+ * ports.c (scm_add_to_port_table): initialise write_needs_seek.
+
+ * ports.h (scm_ptobfuns): add seek function pointer.
+ * fports.c: set it to local_seek, new procedure.
+
+
+ * fports.h (SCM_MAYBE_DRAIN_INPUT): moved to ports.c.
+ use ptob for seek. take ptob instead of fport arg.
+
+ * ports.h (struct scm_port_table): new member write_needs_seek,
+ replaces reading member in fport struct.
+
+ * vports.c (sfgetc): store the getted char into the buffer.
+ rename to sf_fill_buffer and install it for fill-buffer in ptob.
+ the Scheme interface is still a procedure that gets a char.
+ (scm_make_soft_port): set up the port buffer (shortbuf).
+
+ * fports.c (local_fgetc, local_fgets): deleted.
+ * strports.c (stgetc): likewise.
+ * ports.c: scm_generic_fgets: likewise.
+
+ * ports.h (scm_ptobfuns): add fill_buffer.
+ * ports.c (scm_newptob): assign it.
+ * strports.c (scm_mkstrport): set up the buffer.
+ put just the string into the stream, not cons (pos stream).
+ (stfill_buffer): new proc.
+
+ * ports.h: fport buffer moved into port table: to be
+ used for all port types.
+
+ 1998-12-20 Gary Houston <ghouston@easynet.co.uk>
+
+ * throw.c (scm_handle_by_message): flush ports at exit.
+
+ * socket.c (scm_sock_fd_to_port): use scm_fdes_to_port.
+ (scm_getsockopt, scm_setsockopt, scm_shutdown, scm_connect,
+ scm_bind, scm_listen, scm_accept, scm_getsockname,
+ scm_getpeername, scm_recv, scm_send, scm_recvfrom,
+ scm_sendto,
+ use SCM_FPORT_FDES. use SCM_OPFPORTP not SCM_FPORTP.
+
+ * posix.c (scm_getgroups): use SCM_ALLOW/DEFER_INTS.
+ (scm_ttyname): use SCM_FPORT_FDES.
+ (scm_tcgetpgrp, scm_tcsetpgrp): likewise.
+
+ * filesys.c (scm_chown): use SCM_FPORT_FDES.
+ (scm_chmod, scm_stat, scm_truncate_file: likewise.
+
+ * ioext.c (scm_isatty_p): use SCM_FPORT_FDES.
+ (scm_fdes_to_ports): modified.
+ (scm_fdopen): use scm_fdes_to_port.
+
+ * ports.c (scm_init_ports): don't try to flush ports using
+ atexit(). it's too late, errors will cause SEGV.
+
+ * fports.c (scm_fport_buffer_add): new procedure.
+
+ * fports.h (SCM_FDES_RANDOM_P): new macro. use it in
+ scm_fdes_to_port and scm_redirect_port.
+
+ * ioext.c (scm_redirect_port): use setvbuf to set buffers in the
+ new port. reset fp->random.
+
+ * fports.c (scm_fdes_to_port), ports.c (scm_void_port),
+ filesys.c (scm_opendir):
+ restore defer interrupts while the port is constructed.
+ (scm_setvbuf): if mode is _IOFBF and size is not supplied,
+ derive buffer size from fdes or use a default.
+ (scm_fdes_to_port): use setvbuf instead of creating the buffers
+ directly.
+
+ vports.c (various places): use SCM_SSTREAM.
+ strports.c: likewise.
+ * gdbint.c: likewise.
+ * ports.h (SCM_SSTREAM): new macro.
+
+ * fports.c (scm_input_waiting_p): use scm_return_first, since port
+ may be removed from the stack by the tail call to scm_fdes_waiting_p.
+
+ * fports.h (SCM_CLEAR_BUFFERS): new macro.
+
+ * filesys.c (scm_fsync): use SCM_FDES.
+
+ * ports.c (scm_force_output): call scm_fflush.
+
+ * print.c (scm_newline): don't check errno for EPIPE (it wouldn't
+ reach this point.) don't flush port (if scm_cur_outp).
+
+ * fports.h (SCM_FPORT_FDES): new macro.
+
+ * filesys.c (scm_fcntl): get fdes from fport.
+ (set_element, get_element): likewise.
+
+ * vports.c (sfflush): don't need to set errno.
+
+ * ports.c: install scm_flush_all_ports to be run on exit.
+
+ * filesys.c (scm_open): adjust port_mode for O_APPEND and O_CREAT.
+
+ ports.c fports.c ioext.c posix.c socket.c net_db.c filesys.c:
+ removed all uses of SCM_DEFER/ALLOW ints for now. they were mainly
+ just protecting errno. some may need to be put back.
+
+ * scmsigs.c (take_signal): save and restore errno while this
+ proc runs.
+
+ *fports.c (print_pipe_port, local_pclose, scm_pipob): deleted.
+ open-pipe, close-pipe are emulated in (ice-9 popen)
+ ports.c (scm_ports_prehistory): don't init scm_pipob.
+ ports.h (scm_tc16_pipe): deleted.
+ posix.c (scm_open_pipe, scm_close_pipe): deleted.
+
+ * ioext.c (scm_primitive_move_to_fdes): use fport.
+ * fport.c (scm_fport_fill_buffer): flush write buffer if needed.
+ change arg type from scm_fport to SCM port.
+ fport.h (SCM_SETFDES): removed.
+ (SCM_MAYBE_DRAIN_INPUT): new macro.
+
+ * fport.h (struct scm_fport): added 'random'.
+ fport.c (scm_open_file): set random if lseek works.
+
+ * ioext.c (scm_dup_to_fdes): use SCM_FSTREAM.
+ (scm_ftell): always use lseek and account for the buffer.
+ (scm_fileno): use fport buffer.
+ (scm_fseek): clear fport buffers. always use lseek.
+
+ * posix.c (scm_pipe): use fport buffer.
+ * unif.c: include fports.h instead of genio.h.
+ * fports.c (scm_fdes_wait_for_input, scm_fport_fill_buffer): new
+ procedures.
+ (local_fgetc): use them.
+ (local_ffwrite): use buffer.
+ (local_fgets): use buffer.
+ (scm_setbuf0): deleted.
+ (scm_setvbuf): set the buffer.
+ (scm_setfileno): deleted.
+ (scm_evict_ports): set fdes directly.
+ (scm_freopen): deleted. doesn't seem useful in Guile.
+ (scm_stdio_to_port): deleted.
+ fports.h (struct scm_fport): add shortbuf member to avoid separate
+ code for unbuffered ports.
+ (SCM_FPORTP, SCM_OPFPORTP, SCM_OPINFPORTP, SCM_OPOUTFPORTP): moved
+ from ports.h.
+
+ * genio.c, genio.h: move contents into ports.c, ports.h. The
+ division wasn't useful.
+
+ * fports.c, fports.h (scm_fport_drain_input): new procedure.
+ * ports.c (scm_drain_input): call scm_fport_drain_input.
+ * scm_fdes_waiting_p: new procedure.
+ * fports.c (scm_fdes_to_port): allocate read and/or write buffers.
+ (scm_input_waiting_p): check the buffer.
+ (local_fgetc, local_fflush, local_fputc): likewise.
+
+ * fports.h (scm_fport): read/write_buf,_pos,_buf_end,,_buf_size:
+ new members.
+ * init.c (scm_init_standard_ports): pass fdes instead of FILE *.
+
+ * ports.c (scm_drain_input): new procedure.
+ ports.h: prototype.
+ * fports.c (FPORT_READ_SAFE, FPORT_WRITE_SAFE, FPORT_ALL_OKAY,
+ pre_read, pre_write): removed.
+ (local_fputc, local_fputs, local_ffwrite): use write, not stdio.
+ (scm_standard_stream_to_port): change first arg from FILE * to
+ int fdes.
+ (local_fflush): flush fdes, not FILE *.
+ * fports.h (SCM_NOFTELL): removed.
+ * genio.c, ports.c: don't include filesys.h.
+ * genio.c (scm_getc): don't use scm_internal_select if FPORT.
+ do it in fports.c:local_fgetc.
+ * genio.c: don't use SCM_SYSCALL when calling ptob procedures.
+ do it where it's needed in the port smobs.
+ * filesys.c (scm_input_waiting_p): moved to fports.c, stdio
+ buffer support removed. take SCM arg, not FILE *.
+ * filesys.h: prototype moved too.
+ * fports.c (scm_fdes_to_port): new procedure.
+ (local_fgetc): use read not fgetc.
+ (local_fclose): use close, not fclose.
+ (local_fgets): use read, not fgets
+ * fports.h: prototype for scm_fdes_to_port.
+ * fports.h (scm_fport): new struct.
+ * fports.c (scm_open_file): use open, not fopen.
+ #include fcntl.h
+ * ports.h (struct scm_port_table): change stream from SCM to void *.
+ * ports.c (scm_add_to_port_table): check for memory allocation error.
+ (scm_prinport): remove MSDOS hair.
+ (scm_void_port): set stream to 0 instead of SCM_BOOL_F.
+ (scm_close_port): don't throw errors: do it in fports.c.
+
+1999-06-04 Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se>
+
+ * numbers.c: Added #include "feature.h".
+
+1999-05-23 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * smob.c, smob.h (scm_make_smob_type): New interface to smob
+ types (supersedes scm_newsmob).
+ (scm_set_smob_mark, scm_set_smob_free, scm_set_smob_print,
+ scm_set_smob_equalp): New functions. Sets smob functions.
+ (SCM_NEWSMOB): New macro. Creates smob objects.
+ (scm_make_smob): New function. Creates smob objects and
+ mallocates memory.
+ (scm_smob_free, scm_smob_print): Default free and print
+ functions.
+
+ * Makefile.am: Removed markers.c, markers.x, markers.h.
+
+ * markers.c, markers.h: Removed. (Contents moved to smob.c,
+ smob.h.)
+
+ * arbiters.c, async.c, regex-posix.c: Use new smob interface.
+
+ * eval.c, fports.c, libguile.h, ports.c: Removed #include
+ "markers.h".
+
+ * fluids.c, guardians.c, srcprop.c, threads.c: Added #include
+ "genio.h".
+
+ * regex-posix.c, regex-posix.h: Renamed scm_tc16_regex_t -->
+ scm_tc16_regex.
+
+1999-05-09 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * strop.c (scm_string_capitalize_x): Use the SCM object `s' in
+ error messages, not the uninitialized string `str'. Love that
+ typechecking.
+
+ * strop.c (scm_substring_move_x): New function, which can handle
+ arbitrary overlapping substrings.
+ (substring-move-left!, substring-move-right!): These are
+ now just synonyms for substring-move!.
+ * strop.h (scm_substring_move_x): New prototype.
+ (scm_substring_move_left_x, scm_substring_move_right_x):
+ #define these as synonyms for scm_substring_move_x.
+
+ Fixes, cleanups, and new functions from Greg Harvey.
+
+ 1999-05-03 Greg Harvey <Greg.Harvey@thezone.net>
+
+ * strop.c (scm_string_capitalize_x, scm_string_capitalize): new
+ functions; capitalize the first letter of each word in the
+ argument string, and downcase the rest.
+ (scm_string_ci_to_symbol): string->symbol, such that the same
+ symbol is returned for any argument where the only difference
+ between strings is in capitalization.
+ (scm_string_upcase, scm_string_downcase): non-destructive
+ versions.
+
+ 1999-01-13 Greg Harvey <Greg.Harvey@thezone.net>
+
+ * strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
+ changed to use memmove.
+ * strop.c (scm_i_index): removed the pos arguments (it's only
+ called twice, and each time it's SCM_ARG1, SCM_ARG2, SCM_ARG3,
+ SCM_ARG4).
+
+ 1999-01-11 Greg Harvey <Greg.Harvey@thezone.net>
+
+ * strop.h: fixed prototypes.
+
+ * strop.c (scm_substring_move_left_x, scm_substring_move_right_x):
+ changed to have 5 required args, rather than 2 required, and 3 required
+ rest args. Also modified to allow str1 & str2 to overlap.
+ (scm_substring_fill_x): changed to 4 args, rather than 2 args and
+ 2 required rest args.
+
+1999-05-02 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * procs.h: Doc fix.
+
+ * Makefile.am (modinclude_HEADERS): Add kw.h, so the new version
+ gets installed.
+ * Makefile.in: Regenerated.
+
+ * numbers.c: If we're supporting floating-point, provide the
+ feature "inexact".
+
+ * scmconfig.h.in: Regenerated; see today's change to
+ ../configure.in.
+
+1999-04-17 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * Makefile.in: Regenerated.
+
+ Remove readline support, to avoid copyright confusion.
+ * Makefile.am: Remove readline files from lists.
+ * init.c: Don't initialize readline.
+ * scmconfig.h.in: Regenerated.
+
+ * numbers.c (s_bignum): Renamed to s_bignum, and made static.
+ Libguile should not be exporting random little strings.
+ * numbers.h (s_bignum): Extern declaration removed.
+
+ More const changes from Ken Raeburn.
+ * numbers.c (scm_s_bignum, fx): Now const.
+ (scm_logtab, scm_ilentab, s_adjbig): Now static and const.
+ * numbers.h (scm_s_bignum): Update declaration.
+ * eval.c (bodycheck): Argument WHAT now points to const.
+ * snarf.h (SCM_SYNTAX): Name is const.
+
+ * eval.c (scm_i_let): Make this globally visible, to avoid dynamic
+ linking crashes on NetBSD. (Thanks to Ken Raeburn.)
+
+1999-03-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * numbers.c (isfinite): Define this macro if not defined: Return a
+ non-zero value if X is finite. (From ISO C 9x standard.)
+ (scm_inexact_to_exact): Bugfix: Don't pass NaNs to scm_dbl2big.
+ (Thanks to Jon Trowbridge and Greg Harvey.)
+
+1999-03-22 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * keywords.c (scm_tc16_kw): Added for backward compatibility.
+ Will be removed in next release.
+
+ * Makefile.am (modinclude_HEADERS): Added kw.h;
+
+ * kw.h: New file.
+
+ * libguile.h: #include "libguile/kw.h"
+
+1999-03-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * pairs.c (scm_set_car_x, scm_set_cdr_x): Return SCM_UNSPECIFIED.
+
+1999-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * print.c (scm_isymnames): Added #@dispatch and #@hash-dispatch.
+
+ * hashtab.c, hashtab.h (scm_hash_fold, scm_internal_hash_fold):
+ Place the table argument last.
+
+1999-03-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * modules.c: #include "procprop.h"
+ (scm_system_module_env_p): Assume root environment is no lookup
+ closure is found.
+
+ * debug.c, eval.c, evalext.c, gdbint.c stacks.c:
+ #include "modules.h".
+
+ * modules.c, modules.h, eval.c, eval.h (scm_env_top_level,
+ scm_top_level_env, scm_system_module_env_p): Moved to modules.c.
+
+ * eval.c, eval.h (scm_top_level_lookup_closure): Removed.
+
+1999-03-18 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * error.c (scm_wta): Pass SCM_LIST1 (arg) instead of SCM_EOL to
+ scm_misc_error when pos is a string. This allows for dispatching
+ arbitrary error messages with one argument via SCM_ASSERT:
+ SCM_ASSERT (<cond>, obj, "Undigestable object: %S", <subr>);
+
+1999-03-17 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * list.c (scm_reverse): Report an error if given a circular list
+ instead of filling memory.
+ * list.c (scm_reverse_x): Check args.
+
+1999-03-14 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ Most of this batch of changes is about how to deal with extended
+ types when an object system is loaded into Guile. A nice object
+ system is capable of representing Guile's types as class objects.
+
+ For example, we want a regular expression to be of class <regex>.
+ But regular expressions are smobs which aren't under direct
+ control of the object system, so there has to be some mechanism
+ which informs the object system that a new class should be created
+ which can represent the smob type. I call this a "wrapper class".
+
+ * objects.c: #include "smob.h";
+ (scm_class_keyword): Removed. (Class is automatically created by
+ make_smob_classes.)
+ (scm_smob_class): Array of smob classes indexed by smobnum.
+ (scm_make_extended_class): "Plugin" function pointer for creation
+ of wrapper classes for smob and struct types.
+ (scm_class_of): Handle compiled closures. (Currently regarded as
+ <procedure>.);
+ Use scm_smob_class to handle smob types;
+ Handle scm_tc16_bigpos, scm_tc16_bigneg, and, scm_tc16_keyword
+ through scm_smob_class;
+ Handle structs.
+
+ * smob.c (scm_newsmob): Also create a wrapper class if
+ scm_smob_class has been initialized.
+
+ * smob.h (SCM_TC2SMOBNUM): New macro for conversion between tc16
+ type code and smobnum.
+
+ * struct.c: #include "alist.h", "weaks.h", "hashtab.h";
+ (scm_struct_table): Weak key table with auxilliary information for
+ struct types. Currently used for names and wrapper classes.
+ (scm_struct_ihashq): Hash function for structs.
+ (scm_struct_create_handle): Get/create entry in scm_struct_table.
+ (scm_struct_vtable_name, scm_set_struct_vtable_name_x): Procedures
+ for accessing names of vtables. The record implementation in
+ boot-9.scm currently uses the setter to record the name of record
+ types. When the object system is initialized, it can use this
+ information to create wrapper classes with suitable names.
+ (scm_init_struct): Allocate scm_struct_table.
+ (scm_alloc_struct): Don't initialize scm_struct_i_tag here.
+ (struct tags are a finite resource and we might want to restrict
+ the use of tags to vtables only. E.g., Goops only uses tags for
+ classes.)
+ (scm_make_struct): Use scm_struct_entity_n_extra_words instead of
+ magic number 5.
+ (scm_struct_vtable_tag): Use scm_struct_i_tag instead of magic
+ number -1.
+
+ * struct.h (SCM_STRUCT_TABLE_NAME, SCM_SET_STRUCT_TABLE_NAME,
+ SCM_STRUCT_TABLE_CLASS, SCM_SET_STRUCT_TABLE_CLASS): New macros.
+ Used for access of struct table entries.
+
+ * hashtab.c, hashtab.h (scm_internal_hash_fold): New function.
+ (scm_hash_fold): New procedure. Used to process all entries in a
+ hash table (in no particular order).
+
+ Argh! For the umpteenth time I got compilation errors because of
+ the "intuitive" name `kw'. This has to have an end:
+
+ * Makefile.am, init.c, libguile.h, objects.c, root.h: Replaced
+ "kw" --> "keywords" everywhere.
+ (I doubt that this will cause big compatibility problems since the
+ application interface is unaffected.)
+
+ * keywords.c, keywords.h: Files renamed from kw.c, kw.h.
+
+1999-03-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * srcprop.c (scm_set_source_property_x): Bugfix: Convert line and
+ column inums to native form.
+
+ Improvement of backtraces: Introduces a new stack narrowing
+ specifier, #t, for the inner cut. (See further in the comments in
+ stacks.c:narrow_stack ().)
+
+ * procprop.c, procprop.h (scm_sym_system_procedure): New symbol.
+ (Used to flag certain system procedures which shouldn't turn up in
+ backtraces.)
+
+ * eval.c (scm_sym_system_module): New symbol. (Used to flag
+ modules which aren't "user" modules and the code of which
+ shouldn't turn up in backtraces.)
+
+ * eval.c, eval.h (scm_top_level_lookup_closure): New function:
+ Extract the lookup closure from an environment.
+ (scm_system_module_env_p): New function: Return non-#f if MODULE
+ is a system module.
+
+ * stacks.c: #include "eval.h"; #include "procprop.h";
+ (narrow_stack): Handle new narrowing specifier #t.
+
+ * debug.c (scm_procedure_name): Use name property in the default
+ case.
+
+ * gc.c, gc.h (scm_object_address): Renamed from scm_object_addr ().
+
+ * objects.h (scm_si_redefined, scm_si_hashsets): Shifted.
+
+ * eval.c, procs.c, procs.h, procprop.c: Renamed getter ->
+ procedure throughout.
+
+ * print.c (scm_iprin1): Removed extraneous space when printing
+ procedure-with-setters.
+
+ Entity and operator setter slots were introduced as a complement
+ to the <procedure-with-setter> type in order to support entities
+ and operators with setters in a reasonable and efficient way.
+ * procs.c (scm_procedure, scm_setter): Handle entity and operator
+ setter slots.
+
+ * objects.h (SCM_OPERATOR_SETTER, SCM_ENTITY_SETTER): New macros.
+ (struct scm_metaclass_operator): New setter slot.
+
+ * gc.c (scm_gc_mark): Mark struct setter slot.
+
+ * struct.c (scm_make_struct): Allocate one word more for
+ entities and initialize the new slot.
+
+ * struct.h (scm_struct_i_setter): New constant.
+
+1999-03-08 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * objects.h (SCM_OBJ_CLASS_REDEF): New macro: Find class slots
+ directly through the instance.
+
+ * objects.c (scm_class_of): Use SCM_OBJ_CLASS_REDEF.
+
+ * gc.c (scm_gc_sweep): Bugfix: Look for SCM_STRUCT_F_LIGHT flag at
+ scm_struct_i_flags instead of scm_vtable_index_layout!
+
+ * list.c (scm_list_star): New procedure.
+
+1999-02-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * debug.c (scm_init_debug): Added scheme level constant
+ SCM_IM_DISPATCH.
+
+1999-02-12 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * __scm.h (SCM_FENCE): Fix `asm volatile' warnings for EGCS.
+
+ * gc.c (scm_gc_sweep): Properly properly record the size of a
+ freed structure. (Thanks to Greg Harvey.)
+
+1999-02-07 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ * gc.c (scm_gc_sweep): Properly record the size of a freed
+ structure. (Thanks to Michael Livshin.)
+
+1999-02-06 Jim Blandy <jimb@savonarola.red-bean.com>
+
+ Readline paren matching from Greg Harvey, with modifications from
+ Mikael Djurfeldt:
+
+ * readline.c (in_readline, reentry_barrier_mutex): Make these
+ static.
+
+ * readline.c: #include <sys/time.h> and "iselect.h", so we can
+ control how long we're paused, and threads will run while we're
+ paused.
+ (match_paren, find_matching_paren, init_bouncing_parens): New
+ functions.
+ (scm_init_readline): Call init_bouncing_parens.
+ (scm_readline_opts): Add the bounce-parens option.
+ * readline.h (SCM_READLINE_BOUNCE_PARENS): New readline option.
+ (SCM_N_READLINE_OPTIONS): Adjust.
+
+1999-02-06 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ All the below are changes from Ken Raeburn, to get Guile to use
+ const where it can.
+
+ * chars.c (scm_lowers, scm_uppers, scm_charnames, scm_charnums),
+ eval.c (s_expression, s_test, s_body, s_bindings, s_variable,
+ s_clauses, s_formals): Variables now const.
+
+ * eval.c (promsmob): Now const.
+ * macros.c (macrosmob): Now const.
+ * smob.c (scm_newsmob): Smobfuns argument now points to const.
+ (freecell, flob, bigob): Now const.
+
+ * dynl.c (scm_make_argv_from_stringlist, scm_coerce_rostring),
+ error.c (scm_error, scm_syserror, scm_syserror_msg,
+ scm_num_overflow, scm_out_of_range, scm_wrong_type_arg,
+ scm_memory_error, scm_misc_error, scm_wta), macros.c
+ (scm_make_synt), feature.c (scm_add_feature), filesys.c
+ (scm_input_waiting_p), gc.c (scm_gc_start, scm_igc,
+ scm_must_malloc, scm_must_realloc), gsubr.c (scm_make_gsubr),
+ numbers.c (scm_num2dbl, scm_two_doubles, scm_num2long,
+ scm_num2long_long, scm_num2ulong),
+ options.c (scm_options), posix.c (scm_convert_exec_args,
+ environ_list_to_c), procs.c (scm_make_subr_opt, scm_make_subr),
+ ramap.c (scm_ramapc), read.c (scm_flush_ws), socket.c
+ (scm_sock_fd_to_port, scm_fill_sockaddr, scm_addr_vector), stime.c
+ (setzone, restorezone, bdtime2c), strop.c (scm_i_index),
+ strports.c (scm_mkstrport), symbols.c (scm_intern_obarray_soft,
+ scm_intern_obarray, scm_intern, scm_intern0,
+ scm_sysintern0_no_module_lookup, scm_sysintern, scm_sysintern0,
+ scm_symbol_value0), unif.c (scm_aind, scm_shap2ra): Argument
+ indicating calling subr, error message text, reason for error,
+ symbol name or feature name are now pointer to const.
+ * snarf.h (SCM_PROC, SCM_PROC1): String variables are now const.
+
+ * procs.c (scm_init_iprocs): iproc argument now points to const.
+ * pairs.c (cxrs): Now const.
+
+ * chars.h, error.h, feature.h, filesys.h, gc.h, gsubr.h, macros.h,
+ numbers.h, options.h, procs.h, ramap.h, read.h, smob.h,
+ strports.h, symbols.h, unif.h: Update variable declarations and
+ function prototypes for above changes.
+
+ * dynl.c, dynl-dld.c, dynl-dl.c, dynl-shl.c (sysdep_dynl_link,
+ sysdep_dynl_unlink, sysdep_dynl_func): Arguments FNAME, SUBR, and
+ SYMB now point to const.
+
+1999-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * print.c (scm_iprin1): Use scm_procedure_name instead of
+ scm_procedure_property for compiled closures.
+
+ * tags.h (scm_tc7_pws): New procedure type. Four representations
+ for procedure-with-setters were considered before selecting this
+ one:
+
+ 1. A closure where the CODE and ENV slots are used to represent
+ the getter and a new SETTER slot is used for the setter. The
+ original getter is stored as a `getter' procedure property. For
+ closure getters, the CODE and ENV slots contains a copy of the
+ getter's CODE and ENV slots. For subr getters, the CODE contains
+ a call to the subr.
+
+ 2. A compiled closure with a call to the getter in the cclo
+ procedure. The getter and setter are stored in slots 1 and 2.
+
+ 3. An entity (i.e. a struct with an associated procedure) with a
+ call to the getter in the entity procedure and the setter stored
+ in slot 0. The original getter is stored in slot 1.
+
+ 4. A new primitive procedure type supported in the evaluator. The
+ getter and setter are stored in a GETTER and SETTER slot. A call
+ to this procedure type results in a retrieval of the getter and a
+ jump back to the correct eval dispatcher.
+
+ Representation 4 was selected because of efficiency and
+ simplicity.
+
+ Rep 1 has the advantage that there is zero penalty for closure
+ getters, but primitive getters will get considerable overhead
+ because the procedure-with-getter will be a closure which calls
+ the getter.
+
+ Rep 3 has the advantage that a GOOPS accessor can be a subclass of
+ <procedure-with-setter>, but together with rep 2 it suffers from a
+ three level dispatch for non-GOOPS getters:
+
+ cclo/struct --> dispatch proc --> getter
+
+ This is because the dispatch procedure must take an extra initial
+ argument (cclo for rep 2, struct for rep 3).
+
+ Rep 4 has the single disadvantage that it uses up one tc7 type
+ code, but the plan for uniform vectors will very likely free tc7
+ codes, so this is probably no big problem. Also note that the
+ GETTER and SETTER slots can live directly on the heap, using the
+ new four-word cells.
+
+ * procs.c, procs.h (SCM_PROCEDURE_WITH_SETTER_P, SCM_GETTER,
+ SCM_SETTER): New macros.
+ (scm_procedure_with_setter_p, scm_make_procedure_with_setter,
+ scm_getter, scm_setter): New procedures.
+
+ * eval.c, print.c (scm_iprin1): Added entries for scm_tc7_pws.
+
+ * gc.c (scm_gc_mark, scm_gc_sweep): Added case labels for
+ scm_tc7_pws.
+
+ * objects.c, objects.h (scm_class_of,
+ scm_class_procedure_with_setter): Added.
+
+ * procprop.c (scm_i_procedure_arity), procs.c (scm_thunk_p): Added
+ entry for scm_tc7_pws.
+
+ * procs.c (scm_procedure_p): Added case label for scm_tc7_pws.
+
+1999-01-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * evalext.c, evalext.h (scm_m_generalized_set_x): New memoizing
+ macro.
+ (scm_init_evalext): Call scm_make_gsubr for
+ scm_m_generalized_set_x.
+
+ * eval.c, debug.c, tags.h (SCM_IM_SET_X): Renamed from SCM_IM_SET.
+
+ * eval.h: Declare scm_s_set_x, scm_sym_set_x;
+
+ * eval.c: Renamed "set" --> "set_x" in various names for
+ consistency of name correspondence between Scheme and C;
+ Renamed scm_i_set_x --> scm_sym_set_x and made global.
+ Renamed s_set_x --> scm_s_set_x and made global.
+
+1999-01-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * random.c (scm_i_random_bignum): Made independent of endianness.
+
+1999-01-22 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Added ENTER_APPLY in code for SCM_IM_APPLY.
+ (Thanks to Eric Hanchrow.)
+
+1999-01-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * objects.c, objects.h (SCM_CLASS_REDEF): Renamed from CLASS_REDEF.
+
+ * random.c: Bugfix: Retrieve and store most significant 32 bits in
+ different order if the machine is bigendian.
+ (scm_init_random): Added safety check for bignum digit size.
+
+1999-01-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * random.c, random.h (scm_i_make_rstate): New function: Makes
+ scm_rstate from seed.
+ (scm_copy_random_state, scm_seed_to_random_state): New functions.
+ (scm_make_random_state): Removed.
+
+ * random.c (scm_make_random_state): Use scm_i_make_rstate().
+
+1999-01-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * random.c: Bugfix: Retrieve and store most significant 32 bits in
+ different order if the machine is bigendian.
+ (scm_init_random): Added safety check for bignum digit size.
+
+1999-01-11 Roland Orre <mdj@mdj.nada.kth.se>
+
+ * sort.c (scm_merge, scm_merge_list_x): Bugfix: Place elements
+ from first arg before equal elements in second arg in result.
+ (scm_merge_list_step): Bugfix: Don't presume that arguments in a C
+ function call are executed in a well defined order.
+
+1999-01-11 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * alloca.c (alloca): Cast value returned by malloc. (Thanks to
+ Christian Lynbech.)
+
+1999-01-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * random.c: Removed alloca includes.
+
+1999-01-11 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.in: This changed, for some reason I don't really
+ understand, when I ran automake in the top level directory. This
+ may be contamination by Cygnus internal releases. If you re-run
+ automake and this change gets reverted, don't worry about it.
+
+1999-01-10 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * sort.c, sort.h: New files: Implement slib's and scsh's sort
+ interfaces. Author: Roland Orre.
+
+ * Makefile.am: Added sort.c, sort.h, sort.x.
+
+ * init.c: #include "sort.h";
+ (scm_boot_guile_1): Call scm_init_sort ().
+
+ * numbers.h: Added #include "libguile/print.h".
+
+ * numbers.c: Formatted according to Guile conventions;
+ Renamed s_bignum --> scm_s_bignum.
+
+ * random.c, random.h: New files: Random number support.
+ Interface same as slib's.
+
+ * Makefile.am: Added random.c, random.h, random.x.
+
+ * init.c: #include "random.h";
+ (scm_boot_guile_1): Call scm_init_random ().
+
+1998-12-23 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * Makefile.am: New files: guardians.c, guardians.x, guardians.h
+
+ * guardians.c, guardians.h (scm_make_guardian,
+ scm_guardian_gc_init, scm_guardian_zombify, scm_guard,
+ scm_get_one_zombie, scm_init_guardian): This is an implementation
+ of guardians as described in R. Kent Dybvig, Carl Bruggeman, and
+ David Eby (1993) "Guardians in a Generation-Based Garbage
+ Collector" ACM SIGPLAN Conference on Programming Language Design
+ and Implementation, June 1993 ftp://ftp.cs.indiana.edu
+ /pub/scheme-repository/doc/pubs/guardians.ps.gz
+ Author: Michael N. Livshin.
+
+ * gc.h (SCM_MARKEDP, SCM_NMARKEDP): New macros.
+
+ * gc.c (scm_igc): Call scm_guardian_gc_init and
+ scm_guardian_zombify.
+
+ * init.c (scm_boot_guile_1): Call scm_init_guardian.
+
+1998-12-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * macros.c (scm_makacro, scm_makmacro, scm_makmmacro): Added
+ argument checking.
+
+1998-12-15 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ Move the procedure slots of entities to invisible slots (so that
+ we can have operator class objects which themselves are entities).
+ * struct.h (scm_struct_i_proc, scm_struct_i_flags,
+ SCM_STRUCTF_ENTITY): New constants.
+
+ * struct.c (scm_make_struct): Allocate "invisible" room for
+ procedures if SCM_STRUCTF_ENTITY is set in vtable.
+
+ * gc.c (scm_gc_mark): Mark entity procedures.
+
+ * struct.c, struct.h (scm_alloc_struct): Renamed from alloc_struct
+ and made global.
+ (scm_struct_init): Renamed from init_struct and made global.
+
+ * objects.h (SCM_ENTITY, scm_entity): Removed.
+ (SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0, SCM_ENTITY_PROC_0,
+ SCM_ENTITY_PROC_3): Adjusted for new location of procedure slots.
+
+Mon Dec 14 18:10:12 1998 Maciej Stachowiak <mstachow@mit.edu>
+
+ * snarf.h (SCM_SYNTAX): New macro to allow convenient declaration
+ of syntactic forms, similar to SCM_PROC.
+ * debug.c, eval.c, evalext.c: use SCM_SYNTAX to declare all special
+ forms, and SCM_SYMBOL or SCM_GLOBAL_SYMBOL to delcare C variables
+ for the name symbols when needed.
+
+1998-12-14 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * Makefile.in: Regenerated.
+
+1998-12-05 Jim Blandy <jimb@zwingli.cygnus.com>
+
+ * pairs.h (SCM_NEWCELL): When DEBUG_FREELIST is defined, don't
+ take the address of _into; it might be a register. Just have
+ scm_debug_newcell return the new cell.
+ * gc.c (scm_debug_newcell): Just return the new cell, instead of
+ taking the address of a place to store it as an argument.
+ * gc.h (scm_debug_newcell): Change declaration.
+ (Thanks to Greg Harvey.)
+
+1998-12-08 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * ramap.c (array-copy-in-order!, array-map-in-order): New names.
+ Replaces old names serial-array-copy! and serial-array-map!.
+
+ * evalext.c (map-in-order): New name. Replaces serial-map.
+
+1998-12-05 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * smob.c (freeprint): New function.
+ (freecell): Use it to print freed objects, for slightly easier
+ debugging.
+
+1998-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * backtrace.c (display_frame): Made more robust. Doesn't throw an
+ error if no source properties can be found for a frame. (Thanks
+ to Christian Lynbech.)
+
+1998-11-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * objects.h: Removed slots direct_supers and direct_slots from the
+ definitions of the rudimentary classes described by objects.h.
+
+ * objects.c, objects.h (scm_entity_p): New procedure. Together
+ with the predicates scm_procedure_p and scm_struct_p, this
+ predicate makes it possible to differ between structs, entities
+ and operators.
+
+ * modules.c, modules.h (scm_resolve_module): New function.
+
+1998-11-26 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * objects.h (SCM_METACLASS_STANDARD_LAYOUT,
+ SCM_METACLASS_OPERATOR_LAYOUT): Removed slots `direct_supers' and
+ `direct_slots'.
+
+ * objects.c (scm_entity_p): New procedure.
+
+ * procprop.c (scm_i_procedure_arity): Bugfix: Return correct value
+ for asubrs, rpsubrs, lsubrs and lsubr_2s.
+
+1998-11-26 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * procprop.h (scm_i_procedure_arity): Added declaration.
+
+ * procprop.c (scm_i_procedure_arity): Made global; New code to
+ handle operators and entities.
+ (scm_procedure_property): No need to call scm_procedure_p since
+ scm_i_procedure_arity now does all necessary type checking.
+ Added #include "objects.h".
+
+ * feature.c (scm_remove_hook_x): Bugfix: Changed reference to
+ s_add_hook_x --> s_remove_hook_x.
+ (scm_add_hook_x, scm_remove_hook_x): Hooks now takes arguments.
+ Added #include "procprop.h"
+
+ * feature.c, feature.h (scm_reset_hook_x): New procedure.
+ (scm_make_hook): Optional argument defines number of arguments to
+ the hook.
+ (scm_make_named_hook): Take number of args as second arg.
+ (scm_run_hook): Renamed from scm_run_hooks (old name defined in
+ boot-9.scm for a while); First arg is the hook. The rest are
+ arguments passed on to the hook procedures.
+
+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.
+ (scm_parse_path, scm_search_path): New Scheme level procedures.
+
+ * load.h (scm_internal_parse_path, scm_parse_path,
+ scm_search_path): Declared.
+
+1998-06-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * filesys.c (dirname, basename): New procedures.
+
+ * init.c (scm_boot_guile_1): Removed condition around
+ scm_init_options.
+
+ * dynwind.c: #include "genio.h"; #include "smob.h"; Implemented a
+ new data type (guards) for representation of C level guards and
+ data on the wind chain.
+ (scm_internal_dynamic_wind): New function.
+
+ * dynwind.h: Declare scm_internal_dynamic_wind.
+
+ * root.h (scm_root_state): Added scm_cur_loadp.
+
+ * root.c (mark_root): Added comment about cur_loadp.
+
+ * load.c: #include "dynwind.h";
+ (scm_primitive_load): Use scm_inner_dynamic_wind to update
+ scm_cur_loadp.
+
+ * init.c (scm_init_standard_ports): Initialize scm_def_loadp.
+
+ * ports.c (current-load-port): New procedure.
+
+1998-06-09 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * ioext.c (scm_isatty_p): Accept any kind of data as argument. If
+ not a tty, return #f.
+
+ * regex-posix.c (scm_regexp_exec): Free malloced memory. (Thanks
+ to Julian Satchell and Roland Kaufmann.)
+
+ * gh.h (gh_memv, gh_member): Fixed typos in macro definitions.
+ (gh_write): Added declaration. (Thanks to Eiichi Takamori.)
+
+1998-06-07 Mikael Djurfeldt <mdj@barbara.nada.kth.se>
+
+ * debug.h, debug.c (scm_start_stack): New function. Implements
+ the guts of old scm_m_start_stack.
+
+ * debug.c (scm_m_start_stack): Use scm_start_stack.
+
+ * init.c (scm_start_stack, scm_restart_stack): Renamed to
+ start_stack and restart_stack. (These have static scope.)
+
+1998-05-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * readline.c (rl_cleanup_after_signals, rl_free_line_state): New
+ readline functions to come in release 2.3. (Thanks to Chet
+ Ramey.)
+ (handle_errors): Use the above functions.
+
+1998-05-12 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * readline.c: Improvements for readline support: Handle errors
+ better; Implement before-read-hook.
+
+1998-05-11 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * init.c (scm_boot_guile_1), readline.c: Test for
+ HAVE_RL_GETC_FUNCTION instead of HAVE_LIBREADLINE. (Need to
+ assure that we have version >= 2.1.)
+
+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
+ Andrew Archibald.)
+ (scm_filename_completion_function): New procedure: Filename
+ completer.
+ (current_input_getc): New function. Use this one instead of
+ standard getc from readline.
+
+ * throw.c, throw.h (scm_handle_by_throw): New function: This
+ handler throws errors to next handler on the dynwind chain.
+
+1998-05-09 Mikael Djurfeldt <mdj@kenneth>
+
+ * scmsigs.c (scm_usleep): Bugfix: Don't define j if it isn't
+ used.
+
+1998-05-03 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * procprop.c (scm_i_procedure_arity): New function. Returns arity
+ of procedure.
+ (scm_procedure_properties): Modified to return arity together with
+ other properties.
+ (scm_procedure_property): Added the read-only property `arity'.
+ (scm_set_procedure_property_x): It is an error to set the `arity'
+ property.
+
+ * gsubr.h, gsubr.c: Moved macros from gsubr.c to gsubr.h and added
+ prefix SCM_; Made f_gsubr_apply global and added prefix scm_.
+
+ * procprop.h (scm_sym_arity): New symbol.
+
+ * objects.c (scm_set_object_procedure_x): New procedure: Use this
+ to set the dispatch procedure of an operator or entity object.
+
+ * objects.h (SCM_METACLASS_OPERATOR_LAYOUT, SCM_ENTITY_LAYOUT):
+ Made procedure slots read-only.
+
+ * eval.c (SCM_CEVAL): Moved scm_tc7_contin case above
+ scm_tcs_cons_gloc case in zero args switch; Fixed args
+ construction for operators in scm_tcs_cons_gloc case in two args
+ switch.
+
+1998-05-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * fluids.c: Removed use of assert.h (in order to avoid
+ __eprintf).
+
+ * Makefile.am (libguile_la_LDFLAGS): Added -export-dynamic.
+
+ * dynl.c (maybe_drag_in_eprintf): Disabled through #ifdef 0.
+
+ * eval.c (SCM_CEVAL): Do more thorough argument checking. This
+ change makes the evaluator safer at the cost of evaluation speed.
+ It handles the case when the user has added a non-immediate
+ improper end of the application form, e.g., `(+ 0 . x)'.
+ (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to
+ minimize the extra cost as much as possible. The new code is
+ enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the
+ problem with structs planted directly in the code (e.g. by a
+ macro). This no longer causes segmentation fault. (Thanks to
+ Eric Hanchrow.)
+
+ * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra
+ arg `proc' in order to be able to throw errors; New argument
+ checking code.
+
+ * Removed extra #include "debug.h"
+
+1998-04-25 Mikael Djurfeldt <mdj@kenneth>
+
+ * scmsigs.c: Declare usleep as returning void on some systems.
+ (scm_usleep): Return SCM_INUM0 on those systems. (Thanks to Julian
+ Satchell.)
+
+ * coop.c (usleep): Return void on some systems.
+
+1998-04-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * Makefile.am (libguile_la_LDFLAGS): Removed redundant -rpath.
+
+ * coop.c: Changed return type of usleep to int.
+
+ * scmsigs.c (scm_usleep): New procedure; Declare usleep if it
+ isn't found in the OS.
+
+ * iselect.h: #define scm_internal_select select if GUILE_ISELECT
+ isn't enabled. (Thought that I had made this change ages ago...)
+
+ * iselect.c: Declare bzero if not defined by OS.
+
+1998-04-19 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * dynl.c (scm_must_free_argv): Fixed memory leak due to negated
+ condition. (Thanks to John Tobey.)
+
+ * continuations.c (scm_make_cont), debug.c (scm_make_memoized,
+ scm_make_debugobj), eval.c (scm_makprom): SCM_DEFER/ALLOW_INTS -->
+ A section.
+
+ * __scm.h: Start the long-term project of moving to POSIX threads.
+ Phase 1: Classification of all critical sections.
+ (SCM_ENTER_A_SECTION, SCM_EXIT_A_SECTION): New macros: Delimiters
+ for A sections. (See comments in __scm.h for details.)
+
+ * dynl.c: Only check that HAVE_DLOPEN is defined before loading
+ dynl-dl.c; Test on HAVE_LIBDLD instead of HAVE_DLD.
+
+1998-04-18 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * Makefile.am (BUILT_SOURCES): Added cpp_err_symbols.c,
+ cpp_sig_symbols.c, libpath.h and versiondat.h to BUILT_SOURCES
+ (libpath.h, versiondat.h): Replaced dependency on Makefile with
+ dependencies on $(srcdir)/Makefile.in
+ $(top_builddir)/config.status in order to avoid circularity.
+
+ * script.c (scm_compile_shell_switches): Bugfix: Don't discount i
+ from argc if argc was 0 initially.
+
+ * Makefile.am (Makefile.am): Replaced THREAD_LIBS --> GUILE_LIBS
+ in generation of libpath.h.
+
+1998-04-15 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * Makefile.am (libguile_la_LDFLAGS): Bumped version number of
+ libguile from 2 to 3.
+
+1998-04-14 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * Makefile.am: Added .x-dependencies to variable BUILT_SOURCES.
+
+1998-04-13 Mikael Djurfeldt <mdj@kenneth>
+
+ * ports.c (scm_port_line, scm_set_port_line_x, scm_port_column,
+ scm_set_port_column_x, scm_port_filename,
+ scm_set_port_filename_x): Removed optional arguments. Added
+ proper argument checking.
+
+ * eval.c, eval.h, coop.c (scm_eval_stack, SCM_EVAL_STACK): Measure
+ stack size in machine words.
+
+ * unif.c (scm_uniform_vector_ref, scm_cvref, scm_array_set_x,
+ rapr1): Use SCM_UCHARS instead of SCM_CHARS for strings. (Thanks
+ to Ole Myren Röhne.)
+
+1998-04-12 Mikael Djurfeldt <mdj@kenneth>
+
+ * socket.c: Check for HAVE_UNIX_DOMAIN_SOCKETS instead of
+ UNIX_DOMAIN_SOCKETS. (Thanks to Lauri Alanko.)
+
+ * gc.c (scm_gc_sweep): Count cells correctly. (Thanks to Ben
+ Caradoc-Davies.)
+
+ * eval.c (SCM_CEVAL, SCM_APPLY): In SCM_IM_APPLY and in the
+ procedure apply: Copy argument lists before pushing them unto the
+ environment so that the environment won't get mutated due to
+ manipulation of procedure arguments. This should perhaps be
+ regarded as a temporary solution until someone finds a more
+ efficient one. (Thanks to Maciej Stachowiak.)
+
+1998-04-10 Mikael Djurfeldt <mdj@kenneth>
+
+ * script.c (scm_compile_shell_switches): Use "guile" as default
+ zero arg if argc is NULL.
+
+1998-04-02 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * script.c (scm_compile_shell_switches): Allow NULL argv if argc
+ is zero. (Thanks to Dirk Herrmann.)
+
+1998-03-30 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * ports.c (scm_add_to_port_table): First line is now line 0
+ (was 1). (Interface changed according to suggestion by Per
+ Bothner.)
+
+ * backtrace.c (display_header): Add 1 to line and column numbers
+ when presenting them to the user.
+
+ * eval.h, eval.c, debug.h, debug.c (scm_evaluator_traps): Moved
+ from debug.c --> eval.c
+
+ * eval.h, eval.c (scm_eval_options_interface): New options
+ interface.
+ (SCM_EVAL_STACK): New option: Size of newly created stacks,
+ i.e. stacks for new threads.
+
+ * coop.c (COOP_STKSIZE): Use SCM_EVAL_STACK.
+
+ * eval.c (unsafe_setjmp): Removed with #if 0.
+
+ * gsubr.c (scm_gsubr_apply): Added dummy return to avoid compiler
+ warning.
+
+ * eval.c, numbers.c, unif.c, srcprop.c: Added a few curly braces
+ to avoid compiler warnings.
+
+ * dynl-dl.c (sysdep_dynl_func): Only define usymb if needed.
+
+1998-03-28 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * throw.c (handler_message): Print message on current error port
+ instead of default error port. (Thanks to Maciej Stachowiak.)
+
+Mon Mar 2 21:35:02 1998 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.c (scm_add_to_port_table): allocate in units of
+ struct scm_port_table *, not struct scm_port_table.
+ * posix.c (scm_close_pipe): remove the port from the port table
+ and mark as closed.
+ Thanks to Rob Engle for both fixes.
+
+1998-02-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * iselect.h, iselect.c, coop.c, coop-threads.c, coop-threads.h,
+ coop-defs.h, throw.c, backtrace.c: Added new copyright year 1998.
+
+1998-02-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * throw.h: Removed jmpbuf arg in scm_catch_body_t.
+
+ * backtrace.c (display_error_body, display_backtrace_body),
+ coop-threads.c (scheme_body_bootstrip, c_body_bootstrip),
+ gh_eval.c (eval_str_wrapper, eval_file_wrapper), init.c
+ (invoke_main_func), root.c (cwdr_body), throw.c (cwss_body,
+ scm_body_thunk, hbpca_body): Removed the second jmpbuf arg on body
+ functions.
+
+ * throw.c (scm_internal_catch, scm_internal_lazy_catch): Bodies
+ don't receive the jmpbuf arg anylonger.
+ (scm_catch): Don't accept a #f tag.
+ (scm_throw): Check that key is a symbol.
+ (scm_ithrow): Don't take a jmpbuf as key. Don't check key arg.
+
+Fri Jan 30 22:28:07 1998 Mikael Djurfeldt <mdj@kenneth>
+
+ * async.c (async_pending): Removed declaration.
+
+1998-01-30 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * dynwind.c (scm_wind_chain): New debug function.
+
+ * coop-threads.c (scheme_launch_data, scheme_body_bootstrip,
+ scheme_handler_bootstrip, scheme_launch_thread, c_launch_data,
+ c_body_bootstrip, c_handler_bootstrip, c_launch_thread): Add an
+ extra layer of functions around the body and handler of a thread.
+ This extra layer makes sure that the handler is called in the
+ dynamic context of the surround (= empty dynwind list), but under
+ the *dynamic root* of the body. We can not use the dynamic root
+ of the surround since that root belongs to another thread => stack
+ is not handled correctly. It may seem ugly to use this extra
+ layer, but the extra cost in terms of execution time is really
+ negligible compared to the total amount of time required to create
+ a thread, and it would reduce maintainability to duplicate the
+ crucial and complicated steps performed by cwdr.
+
+ * __scm.h (SCM_ASYNC_TICK): Removed thread switching code.
+ (SCM_ALLOW_INTS): Added thread switching code before interrupts
+ get re-enabled. The important effect of this is that interrupts
+ are blocked during thread switching so that thread data structures
+ don't risk getting messed up by an unfortunate signal.
+ (SCM_REDEFER_INTS, SCM_REALLOW_INTS): It turned out that gcc-2.8.0
+ seems to do more aggressive optimization which actually move
+ instructions around in these macros in a fatal way. Therefore:
+ Introduce Anthony's SCM_FENCE macro! (And I who thought he was
+ just superstitious...)
+ (SCM_TICK): Maybe do a context switch and take care of asyncs.
+ This macro should be used instead of SCM_ASYNC_TICK since the
+ latter doesn't do context switches any more.
+
+ * eval.c (scm_eval, scm_deval), eq.c (scm_equal_p): Use SCM_TICK
+ instead of SCM_ASYNC_TICK.
+
+ * coop.c, iselect.c: Since thread switches are now performed with
+ interrupts masked, we can't use the old mechanism of delivering
+ signals immediately when they arrive. Signals must instead be
+ delivered when the asyncs run *after* the end of the critical
+ section in scm_internal_select. But this also means after context
+ switch so that the signal will be delivered to a different thread.
+ To avoid this, I have changed the protocol of
+ coop_wait_for_runnable_thread and friends so that they are allowed
+ to return the original thread. So, if a signal arrives during
+ scm_internal_select, we won't any longer be forced do a context
+ switch, but can remain in the same thread and deliver the signal
+ to it.
+
+ * async.c, async.h (asyncs_pending): Renamed asyncs_pending -->
+ scm_asyncs_pending and made it global.
+
+ * iselect.c: Small fixes.
+
+ * coop.c (coop_mutex_init, coop_mutex_lock, coop_mutex_unlock,
+ coop_condition_variable_init, coop_condition_variable_wait,
+ coop_condition_variable_signal): Changed return type from `void'
+ to `int'. This is to adhere closer to the pthreads interface.
+ This, in turn, is part of an attempt to provide C versions of the
+ mutex and condition variable primitives which can be part of a
+ frontend to COOP or pthreads.
+
+ * coop.c (coop_mutex_destroy, coop_condition_variable_wait_mutex,
+ coop_condition_variable_destroy): New functions.
+
+ * coop-threads.c (scm_wait_condition_variable): Use
+ coop_condition_variable_wait_mutex.
+
+ * coop-threads.h, coop-defs.h (coop_q_t, coop_m, coop_c):
+ Definitions moved to coop-defs.h.
+
+ * coop-defs.h (scm_mutex_init, scm_mutex_lock, scm_mutex_unlock,
+ scm_mutex_destroy, scm_cond_init, scm_cond_wait, scm_cond_signal,
+ scm_cond_destroy): New C interface to mutecis and cond vars.
+
+1998-01-24 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * error.c (scm_wta): Added support for SCM_ARG6 and SCM_ARG7.
+
+ * iselect.c: Now several threads can wait on the same file
+ descriptor. The behaviour is compatible with OS select: All
+ threads waiting for the fd return with the same status.
+
+1998-01-23 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * coop-threads.c, threads.h (scm_spawn_thread): New function.
+ Can spawn a thread from application C code.
+
+1998-01-20 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gh.h, gh_data.c (gh_doubles2scm, gh_doubles2dvect,
+ gh_doubles2scm): New functions.
+
+1998-01-15 Mark Galassi <rosalia@nis.lanl.gov>
+
+ * gh_eval.c (gh_eval_str): cleanup -- threw out the old
+ commented-out version of gh_eval_str()
+
+Sun Jan 4 02:23:36 1998 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c (scm_bind): free soka after use.
+
+Sat Jan 3 20:55:07 1998 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.c (tzvar): new variable.
+ (setzone, restorezone, scm_localtime, scm_mktime, scm_strftime):
+ avoid memory leaks when allocating.
+
+1998-01-03 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * iselect.h: Some systems require <sys/types.h> to get the FD_SET
+ macro definitions.
+
+ * gc.c, tags.h: Doc fixes.
+
+1998-01-02 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (macro-eval!): Removed. This function was a design bug.
+ It allowed memoized code to leak out to the scheme level. Most
+ things that you could do with `macro-eval!' can be done with
+ `local-eval'.
+
+1997-12-20 Tim Pierce <twp@skepsis.com>
+
+ * fports.c (scm_pipob): Use scm_generic_fgets for line i/o, since
+ scm_fgets now depends on ftell(3) to know how many bytes were
+ read. Sigh.
+
+1997-12-15 Tim Pierce <twp@skepsis.com>
+
+ * gh_data.c (gh_scm2newstr, gh_get_substr): Use RO macros for
+ dealing with strings.
+
+1997-12-13 Tim Pierce <twp@skepsis.com>
+
+ Make %read-line more suitable for implementing read-line efficiently.
+ * ioext.c (scm_read_line): Strip the terminating newline from a
+ string, and return a cons of the string and its terminator.
+
+ * fports.c, fports.h (scm_fgets): Add `len' argument. The length
+ of the string that is read is stored in this memory location.
+ * ports.c, ports.h (scm_generic_fgets, fgets_void_port): Same.
+ * genio.c, genio.h (scm_do_read_line): Update caller.
+ * ports.h (scm_ptobfuns): Update typedef.
+ * fports.c (scm_fptob, scm_pipob): Update struct.
+
+1997-12-08 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * filesys.c (set_element): Return file descriptor.
+ (fill_select_type): Return the highest file descriptor.
+ (scm_select): Tell select about the highest file descriptor. On
+ some systems the SELECT_SET_SIZE can be as much as 128 bytes.
+ Therefore the extra overhead for calculating the maximum fd seems
+ to be more than compensated. Is this correct? In any case,
+ scm_internal_select will be much faster with this info.
+ (scm_select, fill_select_type, set_element): Don't accept any kind
+ of object in the file descriptor list or vector.
+
+1997-12-07 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * iselect.c (finalize_fd_sets): Bugfix.
+
+1997-12-06 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * filesys.c (scm_select): Don't use SCM_DEFER_INTS/SCM_ALLOW_INTS
+ when using scm_internal_select (since we might switch to another
+ thread).
+
+Sun Dec 7 01:43:56 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * simpos.c (scm_system): always define: use sysmissing if not
+ available. Check for HAVE_SYSTEM instead of _Windows (does
+ Windows lack system or does it have an unusable one?).
+ Check for error conditions -1 and 127. Use SCM_DEFER_INTS.
+ Let the argument be optional: if not supplied, call system(NULL).
+
+ * ports.c (scm_close_port): relax the type check from OPPORTP to
+ PORTP; closing a closed port is allowed.
+
+1997-12-04 Tim Pierce <twp@ppp39.Nantucket.net>
+
+ * fports.c (scm_fgets): Return if the last char in a chunk is
+ newline. When fgets returns a string whose length is `size-1', it
+ is ambiguous whether a whole line was retrieved, so we must check
+ explicitly whether a line terminator is present.
+
+1997-12-04 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * print.h (SCM_COERCE_OUTPORT): Check that the object is a pair
+ before taking the CDR. (Thanks to Harald Meland.)
+
+ * filesys.c (scm_stat): Slightly optimized.
+
+Wed Dec 3 12:23:06 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * ports.c (scm_close_port): Make sure the port is open before
+ trying to close it.
+
+ * guile-snarf.in: Pass args through to gcc in a way that preserves
+ whitespace boundaries. (Thanks to Greg Badros.)
+
+1997-12-02 Tim Pierce <twp@skepsis.com>
+
+ * stacks.c (scm_frame_procedure): Reverse the logic in the return
+ statement. (Thanks to Doug Evans for pointing this out.)
+
+1997-12-01 Tim Pierce <twp@skepsis.com>
+
+ * scmconfig.h.in: Regenerated for USCORE change in ../acconfig.h.
+
+Sun Nov 30 11:29:18 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * coop-defs.h (struct coop_t): Renamed errno --> _errno to prevent
+ errno macro expansion of this field name. (errno is a C
+ preprocessor macro on some systems.)
+
+1997-11-29 Tim Pierce <twp@skepsis.com>
+
+ * iselect.c: Doc fix.
+
+Sat Nov 29 01:16:53 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * init.c (scm_start_stack): Removed initialization of
+ scm_the_last_stack_var.
+
+ * backtrace.h: Declare scm_the_last_stack_var.
+
+ * backtrace.c: Define scm_the_last_stack_var.
+
+ * root.c (mark_root): Don't mark the_last_stack_var.
+
+ * root.h (scm_root_state): Removed the_last_stack_var.
+
+ * throw.c: Added #include "fluids.h"
+ (ss_handler): `the-last-stack' is now a fluid.
+
+ * (backtrace.h, backtrace.c, throw.c): Renamed the_last_stack_var
+ --> the_last_stack_fluid.
+
+ * backtrace.c: Added #include "fluids.h"
+ (scm_init_backtrace): Initialize `the-last-stack' to a fluid.
+ (scm_backtrace): `the-last-stack' is now a fluid.
+
+ * init.c (scm_boot_guile_1): Moved call to scm_init_backtrace
+ after scm_init_fluids.
+
+1997-11-28 Tim Pierce <twp@skepsis.com>
+
+ * iselect.c: #ifdef USE_THREADS around thread-related includes.
+
+ * dynl-dl.c (sysdep_dynl_func): Check both USCORE and
+ DLSYM_ADDS_USCORE to decide whether to add an underscore.
+
+1997-11-28 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * iselect.c (coop_next_runnable_thread,
+ coop_wait_for_runnable_thread): Disable interrupts so that no
+ async is executed before a potential error_revive.
+ (scm_internal_select): Disable interrupts during the parts of the
+ code which manipulate the sleep queue and the file descriptors.
+
+1997-11-27 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * Makefile.am: Added iselect.c and iselect.h.
+
+ * coop.c (coop_qinit): Initialize fields used by
+ scm_internal_select.
+ (coop_qget, coop_qget, coop_tmp_queue): Made global.
+ (coop_next_runnable_thread): If GUILE_ISELECT enabled, use
+ replacement in iselect.c.
+ (coop_mutex_lock, coop_condition_variable_wait, coop_abort,
+ coop_join): If GUILE_ISELECT enabled, use
+ coop_wait_for_runnable_thread instead of
+ coop_next_runnable_thread.
+ (usleep, sleep): New replacements for system functions if
+ GUILE_ISELECT is enabled.
+
+ * coop-threads.h: Declare coop_wait_for_runnable_thread.
+
+ * coop-defs.h (coop_t): Added fields used by scm_internal_select.
+
+ * filesys.c: Added #include "iselect.h". Moved FD-macros to
+ iselect.h. Implement Scheme level `select' using
+ scm_internal_select. (See NEWS.)
+
+ * genio.c (scm_getc): Block with scm_internal_select. (See NEWS.)
+
+ * init.c: Call scm_init_iselect.
+
+ * iselect.h, iselect.c: New files. Implements
+ scm_internal_select. (See NEWS.)
+
+1997-11-27 Tim Pierce <twp@skepsis.com>
+
+ Fix a memory leak in scm_read_line and a type cast bug in the ptob.
+ * fports.c (scm_fgets): Use malloc/free rather than scm_must_malloc
+ and scm_must_free, since ultimately the string returned will be copied
+ by scm_makfrom0str anyway. Also, read any characters that may have
+ been pushed onto the port with scm_ungetc.
+ * ports.c (scm_generic_fgets): Same as for scm_fgets.
+ * ioext.c (scm_read_line): Free string after Guilifying it.
+ * ports.h (scm_ptobfuns): fgets method returns a char *, not a char.
+
+1997-11-26 Anthony Green <green@hoser.cygnus.com>
+
+ * gh_data.c (gh_set_substr): Strings can be longer than 256 bytes.
+
+ * gh.h: Safely wrap prototypes for c++ usage.
+
+1997-11-25 Mark Galassi <rosalia@cygnus.com>
+
+ * gh_test_repl.c (main_prog): changed invocation of gh_repl() to
+ gh_repl (argc, argv).
+
+1997-11-24 Mark Galassi <rosalia@nis.lanl.gov>
+
+ * gh_init.c (gh_repl): modified gh_repl() to accept argc and argv
+ and to invoke scm_shell().
+ (gh_launch_pad): took out the loading of boot-9.scm from here,
+ since it is probably best to let the user control that. In fact,
+ gh_repl() now invokes scm_shell() which does that.
+
+1997-11-23 Mark Galassi <rosalia@cygnus.com>
+
+ * gh_test_repl.c (main_prog): added argc and argv to the gh_repl()
+ invocation.
+
+1997-11-22 Tim Pierce <twp@twp.tezcat.com>
+
+ * dynl-dl.c (sysdep_dynl_func): Fix memory leak created by
+ yesterday's underscore patch. (Thanks to Marius Vollmer for
+ spotting this.)
+
+1997-11-21 Tim Pierce <twp@twp.tezcat.com>
+
+ * dynl-dl.c (sysdep_dynl_func): Prepend symb with underscore if
+ DLSYM_ADDS_USCORE is not defined.
+
+1997-11-17 Mark Galassi <rosalia@nis.lanl.gov>
+
+ * gh_data.c (gh_uniform_vector_length):
+ (gh_uniform_vector_ref): started implementing the uniform types in
+ the gh_ interface.
+
+1997-11-06 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * regex-posix.c (scm_free_regex_t): Return size of regex_t instead
+ of 0; size_t --> scm_size_t. Thanks to Bernard Urban.
+
+1997-10-26 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * scmconfig.h.in: Updated (HAVE_LIBTERMCAP was added when
+ configure.in was changed).
+
+Sun Oct 26 02:20:11 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * Makefile.am (modinclude_HEADERS): Include readline.h here.
+ * Makefile.in: Regenerated.
+
+1997-10-25 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * print.h (SCM_COERCE_OPORT): Renamed to SCM_COERCE_OUTPORT. An
+ OPORT is an `open' port, not an output port.
+
+ * filesys.c (scm_close, set_element, get_element, scm_chown,
+ scm_chmod, scm_stat, scm_truncate_file, scm_fcntl, scm_fsync): Use
+ SCM_COERCE_OUTPORT to cope with the printstate/port magic.
+ * ports.c (scm_port_revealed, scm_set_port_revealed_x,
+ scm_close_port, scm_port_line, scm_set_port_line_x,
+ scm_port_column, scm_set_port_column_x, scm_port_filename,
+ scm_set_port_filename_x, scm_port_mode,
+ scm_close_all_ports_except, scm_set_current_output_port,
+ scm_set_current_error_port): Likewise
+ * ioext.c (scm_redirect_port, scm_dup_to_fdes, scm_freopen,
+ scm_ftell, scm_fileno, scm_isatty_p, scm_primitive_move_to_fdes):
+ Likewise
+ * posix.c (scm_ttyname, scm_tcgetpgrp, scm_tcsetpgrp): Likewise
+ * backtrace.c (display_backtrace_body): Likewise
+ * fports (scm_setvbuf): Likewise
+ * socket.c (scm_getsockopt, scm_setsockopt, scm_shutdown,
+ scm_connect, scm_bind, scm_listen, scm_accept, scm_getsockname,
+ scm_getpeername, scm_send, scm_sendto): Likewise
+ * unif.c (scm_uniform_array_write): Likewise
+
+Sat Oct 25 02:52:58 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ Minor problems with substring-related tag changes.
+ * symbols.h (SCM_SUBSTRP): Don't mask off the S bit; that's
+ exactly what we want to leave in to detect substrings.
+ (SCM_ROSTRINGP, ROUCHARS): Formatting tweaks.
+ * tags.h: Fix diagrams and comments describing the S tag bit;
+ remove vestigial remarks about the D tag bit.
+ (SCM_TYP7, SCM_TYP7S): Rephrased for readability.
+ * strings.c: Formatting tweaks.
+
+ * load.c (scm_init_load_path): Check GUILE_LOAD_PATH environment
+ variable first; then SCHEME_LOAD_PATH, with a warning message.
+ (scm_parse_path): New function.
+ * script.c: Doc fixes.
+
+Thu Oct 23 01:02:03 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ Readline support, from Daniel Risacher.
+ * readline.c, readline.h: New files.
+ * init.c: #include "readline.h".
+ (scm_boot_guile_1): Call scm_init_readline, if we have it.
+ * Makefile.am (libguile_la_SOURCES): Include readline.c.
+ * Makefile.in: Regenerated.
+ * scmconfig.h.in: Regenerated, after change to ../configure.
+
+1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
+
+ * gh.h: gh_vector_set -> gh_vector_set_x
+
+1997-10-20 Mark Galassi <rosalia@nis.lanl.gov>
+
+ * gh_data.c (gh_vector_set_x): changed name to make it consistent
+ with the ! -> _x mapping when going from Scheme to C.
+
+1997-10-19 Mark Galassi <rosalia@cygnus.com>
+
+ * gh.h (gh_reverse):
+ (gh_list_tail):
+ (gh_list_ref):
+ (gh_memq):
+ (gh_memv):
+ (gh_member):
+ (gh_assq):
+ (gh_assv):
+ (gh_assoc): added these gh_ functions implemented as macros.
+
+ * gh_predicates.c (gh_null_p):
+ (gh_string_equal_p): added these two missing predicates.
+
+ * gh_list.c (gh_append):
+ (gh_append2):
+ (gh_append3):
+ (gh_append4):
+ (gh_set_car_x):
+ (gh_set_cdr_x): added these routines as I go through and try to
+ complete the picture R4RS functions that should be mirrored in the
+ gh_ interface.
+
+Sat Oct 18 01:52:51 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * tags.h (scm_tc7_substring): Changed the comment and code to
+ conform with the changes below. Folks! We have suddenly two new
+ free tc7 codes!!! Jummy, jummy!
+
+Tue Oct 14 22:03:06 1997 Tom Tromey <tromey@cygnus.com>
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (libguile_la_SOURCES): Removed extchrs.c,
+ mbstrings.c.
+ (modinclude_HEADERS): Removed extchrs.h, mbstrings.h.
+ * unif.c (scm_vector_set_length_x): Don't handle multibyte
+ strings.
+ * tag.c (scm_utag_mb_string, scm_utag_mb_substring): Removed.
+ (scm_tag): Don't handle multibyte strings.
+ * read.c: Don't include mbstrings.h.
+ (scm_lreadr): Don't handle multibyte ports.
+ * kw.c: Don't include mbstrings.h.
+ * init.c: Don't include mbstrings.h.
+ (scm_boot_guile_1): Don't init mbstrings module.
+ * hash.c (scm_hasher): Don't handle mbstrings.
+ * gscm.c (gscm_run_scm): Don't init mbstrings module.
+ * gc.c (scm_gc_mark): Don't handle mbstrings.
+ (scm_gc_sweep): Likewise.
+ * eval.c (SCM_CEVAL): Don't handle mbstrings.
+ * eq.c (scm_equal_p): Use SCM_TYP7S, not SCM_TYP7SD.
+ * tags.h (SCM_TYP7SD): Removed.
+ (SCM_TYP7D): Removed.
+ (scm_tc7_mb_string): Removed.
+ (scm_tc7_mb_substring): Removed.
+ * print.c (scm_iprin1): Handle char printing directly. Don't
+ handle mbstrings.
+ Don't include "mbstrings.h".
+ * symbols.c (scm_intern_obarray_soft, scm_string_to_symbol,
+ scm_string_to_obarray_symbol, msymbolize): Don't set symbol's
+ multi-byte flag.
+ Don't include "mbstrings.h".
+ * symbols.h (SCM_SYMBOL_MULTI_BYTE_STRINGP): Removed.
+ (SCM_SYMBOL_SLOTS): Define as 4.
+ (SCM_ROSTRINGP): Use SCM_TYP7S, not SCM_TYP7SD.
+ * arbiters.c, backtrace.c, debug.c, dynl.c, eval.c, fluids.c,
+ gc.c, gsubr.c, ioext.c, kw.c, mallocs.c, numbers.c, ports.c,
+ print.c, read.c, regex-posix.c, root.c, srcprop.c, stackchk.c,
+ struct.c, threads.c, throw.c, unif.c, variable.c: Use new
+ ("gen"-less) I/O function names.
+ * ports.c (scm_add_to_port_table): Don't set port's
+ representation.
+ * ports.h (scm_port_representation_type): Removed.
+ (scm_string_representation_type): Removed.
+ (struct scm_port_table ): Removed representation field.
+ (SCM_PORT_REPRESENTATION): Removed.
+ (SCM_SET_PORT_REPRESENTATION): Removed.
+ * genio.h: Use new function names.
+ * genio.c: Don't include "extchrs.h".
+ (scm_gen_putc, scm_gen_puts, scm_gen_write, scm_get_getc):
+ Removed.
+ (scm_putc, scm_puts, scm_lfwrite): No longer static.
+ (scm_getc): No longer static; handle line and column changes.
+ (scm_ungetc): Renamed from scm_gen_ungetc.
+ (scm_do_read_line): Renamed from scm_gen_read_line.
+ * libguile.h: Don't include "extchrs.h" or "mbstrings.h"
+ * extchrs.h, extchrs.c, mbstrings.h, mbstrings.c: Removed.
+
+1997-10-12 Mark Galassi <rosalia@cygnus.com>
+
+ * gh_test_repl.c (c_vector_test): same as gh_test_c.c
+
+ * gh_test_c.c (c_vector_test): some improvements on the vector
+ routines test.
+
+ * gh.h (gh_vector): this used to exist but do the wrong thing.
+ Now it (almost) does the right thing, though it takes a list
+ instead of the individual arguments. I need to see how it could
+ be done right.
+ (gh_list_to_vector): added this function as a macro. Corresponds
+ to Scheme's (list->vector ...).
+ (gh_vector_to_list): added this function as a macro. Corresponds
+ to Scheme's (vector->list ...).
+
+ * gh_data.c (gh_vector_ref): renamed from gh_vref to
+ gh_vector_ref, so that it resembles the Scheme routines more.
+ (gh_vector_set): renamed from gh_vset to gh_vector_set, so that it
+ resembles the Scheme routines more.
+ (gh_make_vector): this used to be (stupidly) called gh_vector().
+ This is the right name, since it does the same thing as the Scheme
+ (make-vector ...) procedure.
+
+Sun Oct 12 14:41:39 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * ports.h: #include "libguile/print.h"
+
+ * eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
+ Some indentation fixes.
+
+ * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no
+ longer a user field; New field: class_flags.
+
+ * objets.c, objects.h: New metaclass: scm_metaclass_operator.
+
+Tue Oct 7 09:37:24 1997 Mark Galassi <rosalia@cygnus.com>
+
+ * gh_data.c (gh_bool2scm): new function which replaces
+ gh_int2scmb(), which is now tagged as obsolete.
+
+1997-10-03 Mikael Djurfeldt <mdj@nada.kth.se>
+
+ * print.h (SCM_PRINT_STATE_P): Removed SCM_NIMP test. (NIMP
+ macros should by convention not test for NIMPness.)
+ (SCM_COERCE_OPORT): Adjust indentation.
+
+ * print.c (scm_valid_oport_value_p): Adjusted indentation; Added
+ SCM_NIMP test before SCM_PRINT_STATE_P.
+
+ * struct.c, struct.h, gc.c: Renamed:
+ scm_struct_i_layout --> scm_vtable_index_layout
+ scm_struct_i_vcell --> scm_vtable_index_vcell
+ scm_struct_i_vtable --> scm_vtable_index_vtable
+ scm_struct_i_printer --> scm_vtable_index_printer
+ scm_struct_i_vtable_offset --> scm_vtable_offset_user
+
+ * struct.c (scm_print_struct): Use new printer slot; Default
+ printing: Also output hex code of vtable so that type identity
+ will be indicated as well.
+ (scm_init_struct): Updated required_vtable_fields to "pruosrpw";
+ Removed struct_printer_var; Removed struct-vtable-offset;
+ (vtable-index-layout, vtable-index-vtable, vtable-index-printer,
+ vtable-offset-user): New constants.
+
+ * struct.h (scm_struct_i_vtable_offset): Bumped from 3 to 4.
+ (scm_struct_i_printer, SCM_STRUCT_PRINTER): New slot in vtables.
+ If this slot contains a procedure, use that to print structures of
+ the type represented by this vtable.
+
+ * print.c (scm_iprin1): Don't print arguments of macro
+ transformers. (They are always: exp env.); Bugfix: Unmemoize
+ transformer source with correct environment.
+
+1997-10-02 Marius Vollmer <mvo@zagadka.ping.de>
+
+ Streamlining of call-with-dynamic-root:
+
+ * root.c (cwdr_inner_body, cwdr_body): Remove "inner" from name,
+ there is now only one catch.
+ (cwdr_outer_body): Removed.
+ (cwdr_handler): New function.
+ (scm_internal_cwdr): New function to perform the function of cwdr
+ but take args that are more useful to C code. Also, the handler
+ is now invoked *outside* of the new dynamic root, like the docs
+ say. We no longer have to catch absolutely all errors, the caller
+ is responsible for using a handler that does not throw, if he
+ wants that.
+ (cwdr): Reimplemented in terms of scm_internal_cwdr.
+ * root.h (scm_internal_cwdr): New prototype.
+
+ Even more but risky streamlining:
+
+ * root.c (USE_STACKJMPBUF): New define to activate a stack-based
+ allocation of the jumpbuf of a root continuation. The changes
+ below are controlled by it. They are now deactivated.
+ (scm_internal_cwdr): Allocate the scm_contregs on the stack. Set
+ the JMPBUF of the scm_rootcont to NULL before returning.
+
+ * gc.c (scm_gc_sweep): Free the SCM_VELTS of a scm_tc7_contin only
+ when they are non-NULL.
+ (scm_gc_mark): Likewise, mark only when non-NULL.
+
+ Make dynamic linking work on Dec Unix. (Thanks to Clark McGrew)
+ * dynl.c: Include "dynl-dl.c" also when HAVE_DLOPEN is defined.
+
+ * gc.c (scm_done_malloc): New function.
+ gc.h (scm_done_malloc): New prototype.
+
+ * print.h (SCM_PRINT_STATE_P, SCM_COERCE_OPORT): New macros.
+ (struct scm_print_state) [revealed]: New field.
+ (scm_print_state_vtable): Make visible to the outside world for
+ type checking purposes.
+ (scm_valid_oport_value_p): New prototype.
+
+ * print.c (scm_valid_oport_value_p): New function to check whether
+ a certain value is acceptable as a port argument.
+ (scm_print_state_vtable): New variable.
+ (scm_free_print_state): Set `revealed' field to false.
+ (scm_iprin1): Call user supplied closure printer with
+ scm_printer_apply. Print in the traditional way when there isn't
+ one or when it returns #f.
+ (scm_prin1, scm_display, scm_write, scm_newline, scm_write_char):
+ Accept a port/print-state pair in addition to just a port.
+ (scm_prin1): Don't return the print_state to the pool when it has
+ been `revealed'.
+ (scm_printer_apply): Set `revealed' field of print_state to true.
+ (scm_init_print): Set scm_print_state_vtable.
+ (print_state_fluid, print_state_fluid_num): Removed.
+
+ * throw.h (scm_handle_by_proc_catching_all): New prototype
+ throw.c (scm_handle_by_proc_catching_all): New function
+
+Mon Sep 29 23:54:09 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * Makefile.in: Regenerated with automake 1.2c.
+
+Sun Sep 28 21:35:42 1997 Radey Shouman <shouman@zianet.com>
+
+ * ramap.c (scm_array_index_map_x): Fixed for zero-rank arguments,
+ was looping endlessly.
+
+Sun Sep 28 00:04:29 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * strports.c (scm_eval_string): Don't close the port.
+
+ * stime.c (bdtime2c): Use SCM_LENGTH, not scm_vector_length; the
+ former returns a nice normal integer. (Thanks to Daniel
+ Risacher.)
+
+Sat Sep 27 20:19:34 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * Makefile.am (libpath.h): Include the value of the THREAD_LIBS
+ makefile variable as a build parameter called LIBS. The
+ build-guile program will use this, for the time being.
+ * Makefile.in: Regenerated.
+
+ Thanks to Shiro Kawai:
+ * gc.c (scm_gc_mark): Pass NULL to scm_wta as the subroutine name.
+ * ports.h (scm_ptobfuns): The fgets method returns a char *, not
+ an SCM.
+
+ * Makefile.in: Regenerated with automake 1.2a.
+
+ * script.c (scm_compile_shell_switches): If we hit the -c or --
+ arguments, don't set the car of (command-line) to scm_usage_name,
+ the prettified name of the guile executable; give it the full
+ path, the way shells usually handle $0.
+
+Wed Sep 24 22:09:52 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * ramap.c (scm_array_map): Renamed to scm_array_map_x. Removed
+ Scheme-level name `array-map' and renamed `serial-array-map' to
+ `serial-array-map!'.
+
+ * backtrace.c: Introduced exception handlers which now enclose
+ `display-error' and `display-backtrace' so that error reporting
+ won't get into infinite loops if an error occurs during displaying
+ of the error. This can very easily happen with user supplied
+ print call-back routines.
+
+Tue Sep 23 12:43:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * ramap.c: Added alias `array-map!' for `array-map'. (Probably,
+ the names `serial-array-map' and `array-map' should be removed.)
+
+Mon Sep 22 01:21:54 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * init.c (scm_boot_guile_1): Added scm_init_objects ().
+ Added #include "objects.h"
+
+ * eval.c (scm_makprom): Added SCM_DEFER_INTS and SCM_ALLOW_INTS.
+ Add #include "feature.h".
+
+ * Makefile.am (libguile_la_SOURCES): Added objects.c.
+ (modinclude_HEADERS): Added objects.h.
+
+ * ports.h (SCM_EOF_OBJECT_P): New macro predicate.
+ This test is needed at many places in the code and should be
+ abstracted. (Motivated by the need of this test in libguiletk.)
+
+ * ports.c (scm_eof_object_p), vports.c (sfgetc), strports.c
+ (scm_eval_string), load.c (scm_primitive_load,
+ scm_read_and_eval_x), gh_eval.c (gh_eval_str):
+ Use SCM_EOF_OBJECT_P.
+
+ * eval.c (scm_init_eval): Add feature `delay'.
+
+Tue Sep 16 02:12:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * scmhob.h: Removed.
+
+Mon Sep 15 20:42:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * list.h (SCM_LISTn): New macros. Make list creation in C code
+ prettier. The idea comes from STk.
+
+ * sequences.h, sequences.c, append.h, append.c: Removed. These
+ files implemented non-R4RS operations which would encourage
+ non-portable programming style and less easy-to-read code.
+
+ * Makefile.am (sequences.h, sequences.c, append.h, append.c):
+ Removed.
+
+ * libguile.h, eval.c, init.c, stime.c, unif.c: Removed #include
+ sequences.h, #include append.h.
+
+ * init.c (scm_boot_guile_1): Removed calls to scm_init_append and
+ scm_init_sequences.
+
+ * gh.h, gh_list.c: Renamed gh_list_length --> gh_length.
+
+ * list.h, list.c: Renamed scm_list_length --> scm_length, scm
+
+ * stime.c (bdtime2c): Changed scm_obj_length --> scm_vector_length.
+
+Sat Sep 13 00:21:41 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c: Added #include "objects.h"
+
+ * tags.h (scm_tc16_object, scm_tc16_entity): Smobtags for objects
+ and entities.
+
+ * smob.c (scm_smob_prehistory): Create two objectsmobs with
+ adjacent smob numbers.
+
+Thu Sep 11 00:59:17 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * procprop.h: Added declaration of scm_i_inner_name.
+
+ * gsubr.c: New global symbol scm_i_inner_name.
+
+ * debug.c (scm_procedure_name): Try procedure property
+ `inner-name' if `name' fails.
+
+ * print.c (scm_iprin1): Use scm_macro_name.
+
+ * eval.c (scm_m_define): Give names to macros as well; Only the
+ first top-level definition gives a procedure/macro a name.
+ Otherwise confusing names can turn up in backtraces.
+ (SCM_CEVAL): SCM_IM_DEFINE: Set `inner-name' property instead of
+ `name'; Give names to macros as well.
+
+ * procs.c (scm_closure_p), print.c (scm_iprin1), eval.c
+ (scm_macro_transformer): Use SCM_CLOSUREP instead of
+ scm_closure_p.
+
+Wed Sep 10 20:52:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * 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
+ a way equivalent to procedures, and it would be silly to duplicate
+ the required code. (We don't want to maintain two places.)
+ (macrosmob): Print field is now a NULL pointer.
+
+ * eval.h (scm_macro_p, scm_macro_type, scm_macro_name,
+ scm_macro_transformer): New prototypes.
+ (scm_tc16_macro): Declared.
+
+ * 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>
+
+ * procs.h (scm_closure_p): Added declaration.
+
+Fri Sep 5 13:36:14 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gc.c (scm_gc_mark): Fixed "rogue pointer in heap" message:
+ Shouldn't pass "heap" as the subr name.
+
+Tue Sep 2 18:14:30 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * gh_predicates.c (gh_boolean_p, gh_symbol_p, gh_char_p,
+ gh_vector_p, gh_pair_p, gh_number_p, gh_string_p, gh_procedure_p,
+ gh_list_p, gh_inexact_p, gh_exact_p, gh_eq_p, gh_eqv_p,
+ gh_equal_p): Use SCM_NFALSEP, instead of testing against
+ SCM_BOOL_T. Any non-false value is true.
+
+Tue Sep 2 00:27:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * symbols.h (scm_builtin_bindings, scm_builtin_weak_bindings,
+ scm_gensym): Added prototypes.
+
+ * symbols.c (scm_gensym): New function. This will speed up
+ certain types of applications (such as macro systems) which
+ generate lots of symbols.
+
+Mon Sep 1 22:30:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * numbers.c (logand, logior, logxor): Handle 0 or 1 arguments.
+
+Sat Aug 30 18:56:19 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * unif.c (scm_shap2ra): tighten the checking of the array dimension
+ specifier, since (2) or (2 . 3) would cause SEGV.
+ (scm_transpose_array): more argument checking fixes.
+
+Thu Aug 28 23:48:53 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * Makefile.in: Regenerated.
+
+Wed Aug 27 17:44:44 1997 Jim Blandy <jimb@totoro.red-bean.com>
+
+ * Makefile.in: Regenerated, so it uses "tar", not "gtar".
+
+Mon Aug 25 13:47:25 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * error.c, error.h (scm_error_callback): Removed (see NEWS).
+
+Sun Aug 24 01:25:35 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * regex-posix.c: If <regex.h> can't be found, try <rxposix.h> or
+ <rx/rxposix.h>. (This is in order to accomodate for the GNU Rx
+ library.)
+
+ * ramap.c (scm_ra_matchp, scm_array_fill_int, racp, ramap_1,
+ ramap_2o, scm_array_index_map_x, raeql_1, scm_array_equal_p),
+ unif.c (scm_vector_set_length_x, scm_uniform_vector_length,
+ scm_array_p, scm_array_rank, scm_array_dimensions,
+ scm_enclose_array, scm_array_in_bounds_p, scm_uniform_vector_ref,
+ scm_cvref, scm_array_set_x, scm_array_contents, scm_array_to_list,
+ scm_array_prototype): Added case scm_tc7_wvect.
+
+Sat Aug 23 18:45:44 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * errno.h: prototype for scm_strerror.
+ * error.c (scm_strerror): new procedure.
+
+Mon Aug 18 14:58:22 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * list.c (scm_list_append_x): Allow non-pair as last argument.
+ This is consistent with the R4RS append and is probably the
+ correct behaviour as specified by R2RS. (Thanks to Radey Shouman)
+
+Sat Aug 16 18:42:15 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.h: prototype for scm_times.
+ * stime.c (scm_times): new procedure.
+ * ioext.c (scm_fseek): if the first argument is a file descriptor
+ call lseek.
+ (scm_ftell): if the first argument is a file descriptor call lseek
+ (sic).
+ * filesys.h: prototypes for scm_open_fdes, scm_fsync.
+ * filesys.c (scm_chmod): if the first argument is a file descriptor,
+ call fchmod.
+ (scm_chown): if the first argument is a port or file descriptor,
+ call fchown.
+ (scm_truncate_file): new procedure.
+ Add DEFER/ALLOW INTS to a few other procedures.
+ (scm_fsync): new procedure.
+ (scm_open_fdes): new procedure.
+ (scm_open): use scm_open_fdes. If mode isn't specified, 666 will
+ now be used.
+ (scm_fcntl): the first argument can now be a file descriptor. The
+ third argument is now optional.
+
+ * posix.c (scm_execl, scm_execlp): make the filename argument
+ compulsory, since omitting it causes SEGV.
+ (scm_sync): return unspecified instead of #f.
+ (scm_execle): new procedure.
+ (environ_list_to_c): new procedure.
+ (scm_environ): use environ_list_to_c. disable interrupts.
+ (scm_convert_exec_args): take pos and subr arguments and
+ improve error checking.
+
+1997-08-14 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stacks.c (scm_make_stack), coop-threads.c, mit-pthreads.c
+ (scm_call_with_new_thread): Bugfix: SCM_WNA should go as third
+ argument to SCM_ASSERT. Furthermore, the name of the function
+ should be passed as first argument when signalling
+ SCM_WNA. (Thanks to Thomas Morgan)
+
+ * gsubr.c (scm_gsubr_apply): From Radey Shouman
+ <shouman@zianet.com>: "The switch in scm_gsubr_apply that
+ dispatches on the number of actual args has a default case
+ reporting an internal error. This is a vestige from a version
+ that mallocated a SCM vector to hold the arguments. In the
+ current version this check is too late: if it ever happens we will
+ have already overstepped the bounds of the array.
+
+ Also, the patch [...] adds a check for too many actual arguments."
+
+ mdj: Removed check for "internal programming error".
+
+Wed Aug 13 15:38:44 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gh_io.c (gh_write): New function.
+
+ * gh_eval.c (catch_with_saved_stack): Removed. Replaced by:
+ throw.c (scm_internal_stack_catch): New sibling to the other catch
+ functions. Code moved from gh_eval.c.
+ throw.h: Added header.
+ gh_eval.c (gh_eval_str_with_stack_saving_handler): Renamed call to
+ scm_internal_stack_catch.
+
+Tue Jul 29 01:03:08 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.h: fix up prototypes.
+ * ioext.c (scm_dup_to_fdes): renamed from scm_primitive_dup2.
+ Scheme name is now dup->fdes.
+ (scm_dup_to_fdes): make the second argument optional and
+ fold in the functionality of scm_primitive_dup.
+ (scm_primitive_dup): deleted.
+
+Mon Jul 28 05:24:42 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * fports.h (SCM_P): prototypes for scm_setvbuf, scm_setfileno.
+ * fports.c (scm_setbuf0): don't disable the setbuf if MSDOS or
+ ultrix are defined. Use setvbuf instead of setbuf.
+ (scm_setvbuf): new procedure.
+ (scm_init_fports): intern _IOFBF, _IOLBF, _IONBF.
+ (scm_setfileno): moved from ioext.c.
+ (scm_fgets): cast SCM_STREAM to (FILE *), remove unused lp variable.
+ (top of file): Delete 25 lines of probably obsolete CPP hair for MSDOS.
+
+Sun Jul 27 10:54:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c (scm_fluid_p): New function.
+ * fluids.h (scm_fluid_p): New prototype.
+
+Sat Jul 26 21:33:37 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * print.c (scm_iprin1): Enter printed structures into the print
+ state as nested data while they are printed.
+ (print_state_fluid, print_state_fluid_num): New variables.
+ (scm_init_print): Initialize them.
+ (scm_iprin): If print_state_fluid carries a print_state, use that
+ instead of creating a new one.
+ (scm_printer_apply, apply_stub, struct apply_data): New
+ definitions to help with calling printer functions written in
+ Scheme.
+ * print.h (scm_printer_apply): New prototype.
+
+ * struct.c (scm_print_struct): Use scm_printer_apply to call the
+ user defined struct printer.
+
+ * dynwind.c (scm_dowinds): Handle fluids on the wind list.
+ * fluids.h (scm_internal_with_fluids, scm_with_fluids,
+ scm_swap_fluids, scm_swap_fluids_reverse): New prototypes.
+ * fluids.c (scm_internal_with_fluids, scm_with_fluids,
+ scm_swap_fluids, scm_swap_fluids_reverse): New functions.
+
+Fri Jul 25 12:05:46 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c (scm_fluid_ref, scm_fluid_set_x): Fixed use of
+ SCM_ASSERT: arg comes before pos.
+
+Fri Jul 25 17:00:38 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (scm_apply): Handle the case when a tc7_sybr_2 is applied
+ to a list of length zero correctly.
+
+Wed Jul 23 16:17:46 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ Supply an `fgets' method for port objects to do fast line i/o.
+ * ioext.c (scm_read_line): New function.
+ * genio.c (scm_gen_read_line): New function.
+ * fports.c (scm_fgets): New function.
+ (scm_fptob, scm_pipob): Add scm_fgets method.
+ * ports.c (fgets_void_port, scm_generic_fgets): New functions.
+ (void_port_ptob): Add void fgets method.
+ (scm_newptob): Initialize fgets method from ptob struct.
+ * ports.h (scm_ptobfuns): Add fgets method.
+ * vports.c (scm_sfptob): Supply generic fgets method.
+ * strports.c (scm_stptob): Supply generic fgets method.
+
+Mon Jul 21 04:03:42 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.h: removed scm_duplicate_port prototype.
+
+ * ioext.c (scm_primitive_dup2): return the new file descriptor
+ instead of SCM_UNSPECIFIED, since similarity to scm_primitive_dup
+ is convenient.
+ (scm_fdopen): bug fix: don't try to make port unbuffered until its
+ stream has been set.
+ (scm_duplicate_port): deleted, there's now an implementation in
+ boot-9.scm.
+ (scm_primitive_dup2): do nothing if newfd == oldfd.
+
+Sun Jul 20 03:55:49 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_close): oops, don't call SCM_INUM twice on the
+ argument.
+
+ * ioext.h: new prototypes.
+ * ioext.c (scm_primitive_dup, scm_primitive_dup2): new procedures.
+
+ * fluids.c (next_fluid_num): don't do
+ SCM_THREAD_CRITICAL_SECTION_START/END unless USE_THREADS is defined.
+
+ * ports.h: prototypes too.
+ * ports.c (scm_mode_bits, scm_port_mode): moved from fports.c.
+
+ * fports.h: prototype too.
+ * fports.c (scm_evict_ports): moved from ioext.c.
+
+Sat Jul 19 04:56:52 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.c (scm_close_port): return a boolean instead of unspecified.
+ throw an error if an error other than EBADF occurs.
+
+ * filesys.h: scm_close prototype.
+ * filesys.c (scm_close): new procedure, can close file descriptors
+ and ports (scsh compatible).
+
+ * ports.c (scm_flush_all_ports): SCM_PROC incorrectly allowed an
+ optional argument.
+
+Fri Jul 18 11:19:53 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * fluids.c, fluid.h: New files.
+ * Makefile.am (libguile_la_SOURCES): Added "fluids.c".
+ (modinclude_HEADERS): Added "fluids.h"
+
+ * init.c: Include "fluids.h". (scm_boot_guile_1): Added call to
+ scm_init_fluids to initialize the fluid machine.
+ (scm_start_stack): Initialize the fluids of the first root with
+ scm_make_initial_fluids.
+
+ * root.h: Added "fluids" member to scm_root_state.
+ * root.c: Include "fluids.h". (scm_mark_root): Mark "fluids".
+ (scm_make_root): Call scm_copy_fluids to make fluid bindings
+ unique for the new root when it has a parent.
+
+ * smob.h: Include "libguile/print.h" to make scm_print_state
+ visible.
+
+ * dynl.c (free_dynl_obj): New function to free the dynamic object
+ data. (dynl_smob): Use it.
+ * dynl.c (scm_dynamic_link): Moved allocating of the memory for
+ the dynamic object data below the linking of the object to avoid
+ memory leak when the linking code throws an error. Now the code
+ leaks a whole dynamically linked library when must_malloc throws,
+ but that should be much less likely.
+
+Fri Jul 11 00:19:47 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Changes to compile under gnu-win32, from Marcus Daniels:
+ * stime.c (tzset): If tzset isn't provided, make it a NOP.
+ (scm_localtime): Change SCM_EOF to SCM_EOL.
+ (scm_mktime): Likewise.
+ * socket.c: Don't include sys/un.h unless autoconf tells
+ us Unix domain sockets are available.
+ (scm_fill_sockaddr): Ignore Unix domain code.
+ (scm_addr_vector): Likewise.
+ (scm_init_addr_buffer): Likewise.
+ (scm_socketpair): Don't include unless socketpair was
+ found during autoconf.
+ * simpos.c (SYSTNAME): Treat cygwin like Unix.
+ * scmsigs.c (scm_pause): Don't include unless pause was found
+ during autoconf.
+ * posix.c (scm_getgroups): Don't include unless support function
+ was found during autoconf (in this case, getgroups).
+ (scm_setpwent): For setpwent.
+ (scm_setegid): For setegid.
+ * net_db.c (scm_inet_netof): Don't include unless support
+ function was found during autoconf (in this case, inet_netof).
+ (scm_lnaof): For inet_lnaof.
+ (scm_inet_makeaddr): For inet_makeaddr.
+ (scm_getnet): For getnetent, getnetbyname, getnetbyaddr.
+ (scm_getproto): For getprotoent.
+ (scm_getserv): For getservent.
+ (scm_sethost): For sethostent, endhostent.
+ (scm_setnet): For setnetent, endnetent.
+ (scm_setproto): For setprotoent, endprotoent.
+ (scm_setserv): For setservent, endservent.
+ * scmconfig.h.in: Regenerated.
+
+Thu Jul 10 00:22:24 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * stime.c (scm_localtime, scm_mktime): Pass SCM_EOL to
+ scm_misc_error, not SCM_EOF.
+
+ * error.c (scm_wta): Pass SCM_EOL to scm_misc_error as the list of
+ arguments for formatting the error message, not SCM_BOOL_F. I
+ think this is left over from the (eq? '() #f) days.
+
+ * read.c (recsexpr): Give this a dummy definition if
+ DEBUG_EXTENSIONS isn't #defined.
+
+Fri Jul 4 23:42:17 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * coop-threads.c (scm_wait_condition_variable): Lock mutex again
+ after waiting.
+
+Thu Jul 3 16:31:24 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * root.c (cwdr_outer_body): Bugfix: Pass `c' instead of `&c' to
+ scm_internal_catch.
+
+Sat Jun 28 16:14:09 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ * Makefile.am (libguile_la_LIBADD): Remove @ALLOCA@, since
+ alloca.lo will be included in @LIBLOBJS@. Something better than
+ this should be possible.
+ * Makefile.in: Regenerated.
+
+Sat Jun 28 03:40:15 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * simpos.h: prototype for scm_primitive_exit.
+ * simpos.c (scm_primitive_exit): new procedure, terminates the
+ process without unwinding the stack.
+
+Sat Jun 28 03:45:25 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ * regex-posix.c (scm_make_regexp): Make `flags' a variable-length
+ argument and logior its components together, so the user doesn't
+ have to do this explicitly. Also, if regexp/basic is supplied, then
+ turn off REG_EXTENDED.
+ (scm_init_regex_posix): New regexp/basic symbol.
+ (REG_BASIC): #define this if it is not already present.
+
+Fri Jun 27 20:36:35 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * Makefile.am (libguile_la_LIBADD): Include @ALLOCA@.
+ (MOSTLYCLEANFILES): New target, changed from CLEANFILES.
+ (CLEANFILES): New target, clean versiondat.h, libpath.h.
+ (DISTCLEANFILES): New target, clean *.x.
+ * Makefile.in: Regenerated.
+
+Tue Jun 24 00:29:07 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * script.c (scm_compile_shell_switches): Add 1997 to copyright
+ years in usage message.
+
+ * Makefile.am (libguile_la_LDFLAGS): Bump library version.
+ * Makefile.in: Regenerated.
+
+ * regex-posix.c (scm_init_regex_posix): Delete the regexp/nosub
+ flag; I don't think we support it.
+ (scm_make_regexp): Make sure the user doesn't pass the
+ regexp/nosub flag.
+
+ * regex-posix.c (scm_make_regexp, scm_regexp_exec): Add optional
+ FLAGS arguments.
+ (scm_init_regex_posix): Define constants for the REG_mumble flags;
+ name them according to the SCSH convention: regexp/mumble.
+
+ * regex-posix.h (scm_make_regexp, scm_regexp_exec): Update prototypes.
+
+Mon Jun 23 18:44:49 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * Makefile.am (libpath.h): Include the values of all the standard
+ Makefile directory variables. Print a message, but don't print
+ all the commands.
+ (versiondat.h): Print a message, but don't print all the commands.
+ * load.c: #include "alist.h".
+ (init_build_info): New function.
+ (scm_init_load): Call it.
+ * Makefile.in: Regenerated.
+
+Sun Jun 22 19:12:58 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * root.c: Establish a reliable catch-all handler for the new root.
+ After all the Scheme handler function might signal an error too,
+ and we don't want to lose that.
+ (cwdr_inner_body): Renamed from cwdr_body.
+ (cwdr_outer_body): New function, to establish the user's handler,
+ and pass control to cwdr_inner_body.
+ (cwdr): Establish the reliable catch-all handler here, and pass
+ control to cwdr_outer_body.
+ (struct cwdr_body_data): New field, handler, to allow cwdr to pass
+ the user's handler through to cwdr_outer_body.
+ * throw.c (scm_handle_by_message): Move guts into....
+ (handler_message): New static function.
+ (scm_handle_by_message_noexit): New function.
+ * throw.h (scm_handle_by_message_noexit): New prototype.
+
+ * __scm.h: (SCM_FENCE): New macro: optimizer will not move code
+ across this. Only works on GCC. Otherwise, we hope for the best.
+ (SCM_DEFER_INTS, SCM_ALLOW_INTS): Use FENCE appropriately. I have
+ the feeling that real thread systems will not need this...
+
+Sun Jun 22 15:46:35 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Try to detect when people are using one version of libguile and a
+ different version of ice-9. People have been skewing things and
+ sending in bug reports.
+ * Makefile.am (versiondat.h): New file to generate.
+ * version.c: #include "versiondat.h", to get version info.
+ (scm_libguile_config_stamp): New function.
+ * script.c: #include "version.h".
+ (scm_compile_switches): Call scm_version to get version number.
+ * scmconfig.h.in, Makefile.in: Regenerated.
+ * Makefile.in: Regenerated.
+
+ * Makefile.am (ETAGS_ARGS): Catch SCM_PROC, etc. so we can find
+ primitive definitions under their Scheme names.
+
+ * Makefile.am (libguile_la_LDFLAGS): Update library version to
+ 1:2. Helps avoid confusion between installed and uninstalled libs.
+
+ * scmconfig.h.in: Regenerated. (Needed after June 3 change to
+ ../configure.in.)
+
+ * gdb_interface.h (GDB_INTERFACE): Remove semicolon and trailing
+ backslash from definition; this should be used like: GDB_INTERFACE;
+
+Sun Jun 22 04:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c (scm_duplicate_port): bug fix: don't try to make the
+ new port unbuffered until its stream has been set.
+
+Sat Jun 21 18:44:03 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.h: new prototype.
+ * ports.c (scm_flush_all_ports): new procedure, scsh compatible.
+
+Sat Jun 21 00:25:03 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ Make things compile neatly under Sun's C compiler.
+ * dynl.c (scm_dynamic_func): Cast return value from sysdep_dynl_func.
+ * extchrs.c (xmbtowc): Make the second arg a normal char, not
+ unsigned, because that's what the ANSI function takes.
+ * extchrs.h (xmbtowc): Corresponding change to prototype.
+ * genio.c (scm_gen_getc): Make buf plain chars. Nobody wants
+ uchars here.
+ * mbstrings.c (scm_mb_ilength): Use ANSI arg syntax. Make DATA
+ argument plain char *.
+ * strings.c (scm_string): Use SCM_ROCHARS, since c is a plain
+ char.
+ * tag.c (scm_tag): Remove unreachable statement.
+ * unif.c (scm_array_to_list): If we want to shift a 1 bit to the
+ top of the word, it should be unsigned.
+
+ * eval.c (scm_lookupcar1): Don't declare var2 unless USE_THREADS
+ is defined, to avoid warnings; it's only used in the
+ conflict-checking code. Which might go away anyway.
+ (SCM_CEVAL): All goto's targeting the `dispatch' label are in
+ conditionals; put the label definition in an #if too, to stifle
+ warnings.
+
+ * Makefile.am (EXTRA_DIST): Include ChangeLog-gh and
+ ChangeLog-threads in the distribution.
+ * Makefile.in: Regenerated.
+
+Fri Jun 20 10:03:41 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * guile-snarf.in: Changed regexp to support CPPs that insert
+ whitespace between lexical tokens (which munges the `%%%' snarf
+ cookie).
+
+Tue Jun 17 13:49:56 1997 Tim Pierce <twpierce@bio-5.bsd.uchicago.edu>
+
+ * load.c (scm_init_load_path): Append $(datadir)/guile to
+ %load-path, so modules do not have to be installed in Guile's
+ current version directory.
+
+Mon Jun 16 17:20:55 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (scm_dynamic_call, scm_dynamic_args_call): Wrap dynamic
+ function call in SCM_DEFER_INTS/SCM_ALLOW_INTS.
+ (scm_dynamic_link, scm_dynamic_unlink, scm_dynamic_func): Always
+ call the sysdep functions with deferred ints.
+ * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c (sysdep_dynl_link,
+ sysdep_dynl_unlink, sysdep_dynl_func): Expect to be called with
+ deferred interrupts and insert SCM_ALLOW_INTS before throwing an
+ error.
+
+ * dynl.c (scm_dynamic_unlink, scm_dynamic_call): Return
+ SCM_UNSPECIFIED.
+
+Sat Jun 14 19:00:58 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.c (sys_deliver_signals): add a comment about a probable bug.
+
+Wed Jun 11 00:33:00 1997 Jim Blandy <jimb@floss.red-bean.com>
+
+ * Makefile.in: Regenerated after xtra_PLUGIN_guile_libs change in
+ ../configure.in.
+
+Sun Jun 8 14:37:26 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_lookupcar1): New procedure to cope with a race
+ condition during lookup (when using threads).
+ (scm_lookupcar): Implement in terms of scm_lookupcar1.
+ (SCM_CEVAL): Use scm_lookupcar1 instead of scm_lookupcar in one
+ place.
+
+Fri Jun 6 19:05:07 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * regex-posix.c (scm_regexp_exec): Use the `start' argument if
+ supplied. (Change from Tim Pierce.)
+
+Thu Jun 5 16:38:19 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (init_struct): Forget to mention this in the "Wed Jun 4
+ 23:47:01 1997" changelog: Slots are now initialized with `#f' by
+ default and not `()'. `#f' is the canonical non-value in Scheme,
+ right?
+
+Wed Jun 4 23:47:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (struct_printer): New variable that holds a handle on
+ the Scheme variable *struct-printer*. This variable can be set by
+ Scheme code to override the printing of structures.
+ (scm_print_struct): If struct_printer is set, call it. If it is
+ not set, or returns #f, print the structure in the old fashion.
+ Include "eval.h" for scm_apply.
+
+Tue Jun 3 23:01:39 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * struct.c (scm_struct_ref, scm_struct_set_x): Use
+ scm_struct_i_n_words to get the number of fields, not
+ -scm_struct_n_extra_words.
+
+ On the route to fancier struct printing:
+ * struct.c (scm_print_struct): New function to print a structure.
+ Include "genio.h" to support it. This function doesn't do
+ anything interesting right now, but I think it should be here
+ anyway.
+ * struct.h: Include "print.h" and add prototype for
+ scm_print_struct.
+ * print.c (scm_iprin1): Call scm_print_struct instead of trying to
+ print structures ourself.
+
+Sun Jun 1 07:58:41 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.c (sys_deliver_signals): bug fix: reset got_signal[i]
+ before applying the handler in case it doesn't return.
+
+Sat May 31 18:57:51 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * scmsigs.h, async.h: updated.
+
+ * _scm.h: if HAVE_RESTARTS is defined then don't use a SYSCALL
+ loop.
+
+ * posix.c (scm_uname): interpret only negative values as an error.
+ Solaris normally returns a positive value.
+
+ * script.c (scm_compile_shell_switches): if we are not going into
+ an interactive repl, set scm_mask_ints to zero so that asyncs can
+ run.
+
+ * simpos.c (scm_system): don't ignore/unignore signals around
+ the "system" call.
+
+ * posix.c (scm_open_pipe): don't ignore/unignore signals around
+ the "popen" call.
+
+ * init.c (scm_boot_guile_1): don't call scm_init_signals, it's
+ done in boot-9.scm instead.
+
+ * scmsigs.c, async.c: Major rewriting of signal handling code.
+ (scm_sigaction): new procedure.
+ (scm_sleep): don't wrap sleep in SCM_SYSCALL, it would mess up the
+ timing.
+ (scm_raise): return unspecified, throw error on failure.
+
+Thu May 29 02:47:36 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * regex-posix.c (scm_init_regex_posix): Register the "regex"
+ feature, to help boot-9.scm decide whether to import the regex
+ module.
+
+Thu May 29 02:19:40 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c: Include scmconfig.h at the beginning of the file so that
+ HAVE_ALLOCA_H may properly be defined. Thanks to Bill Janssen for
+ pointing this out.
+
+ * regex-posix.c: #include "_scm.h" before conditionally #including
+ <regex.h>; the former defines HAVE_REGCOMP.
+
+ * regex-posix.c: #include <regex.h> conditionally, so the file is
+ CPP'able (for dependency scanning) even on systems that don't have
+ a <regex.h> header.
+
+Tue May 27 23:48:38 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Add new R4RS-compliant syntax for keywords.
+ * read.c (scm_lreadr): Recognize `#:' as a prefix for keywords,
+ regardless of the setting of the `keywords' read option.
+ * kw.c (prin_kw): Print keywords using the `#:' syntax, so they
+ can be re-read no matter what the setting of the `keywords' read
+ option.
+
+Tue May 27 22:47:31 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ Add support for POSIX regular expressions.
+
+ * regex-posix.c, regex-posix.h: New files. (Some code
+ is taken liberally from rx/rgx.c in the old Guile dist.)
+
+ * init.c: Include regex-posix.h.
+ (scm_boot_guile_1): Call scm_init_regex_posix.
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES, modinclude_HEADERS):
+ Add regex-posix.[ch] sources.
+ * Makefile.in: Regenerated.
+
+ * scmconfig.h.in: Add HAVE_REGCOMP macro. (automake is supposed
+ to do this automatically? It didn't for me, bleh.)
+
+Mon May 26 18:51:29 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * fports.c (print_pipe_port): New function.
+ (scm_fptob): Use print_pipe_port instead of scm_prinport; the
+ latter doesn't even take the right arguments.
+
+ * Makefile.am: Increment shared lib revision number. I think
+ sometimes the uninstalled Guile finds the installed shared lib;
+ Gord says doing this might help. As things turned out, I can't
+ say whether it does.
+ * Makefile.in: Regenerated.
+
+ * gh_init.c (gh_enter): Cast c_main_prog to a void * before
+ passing it as the closure argument to scm_boot_guile. (Bill
+ Janssen)
+
+ * ports.c (print_void_port, putc_void_port, puts_void_port,
+ write_void_port, flush_void_port, getc_void_port, close_void_port,
+ noop0): Use ANSI prototypes instead of K&R declarations, so the
+ initialization of void_port_ptob gets aggressively type-checked.
+ Fix arguments of print_void_port and write_void_port. (Bill
+ Janssen)
+
+ * COPYING, __scm.h, _scm.h, alist.c, alist.h, append.c, append.h,
+ appinit.c, arbiters.c, arbiters.h, async.c, async.h, backtrace.c,
+ backtrace.h, boolean.c, boolean.h, chars.c, chars.h,
+ continuations.c, continuations.h, coop-defs.h, coop-threads.c,
+ coop-threads.c.cygnus, coop-threads.h, coop-threads.h.cygnus,
+ coop.c, debug.c, debug.h, dynl-dl.c, dynl-dld.c, dynl-shl.c,
+ dynl-vms.c, dynl.c, dynl.h, dynwind.c, dynwind.h, eq.c, eq.h,
+ error.c, error.h, eval.c, eval.h, extchrs.h, feature.c, feature.h,
+ filesys.c, filesys.h, fports.c, fports.h, fsu-pthreads.h, gc.c,
+ gc.h, gdbint.c, gdbint.h, genio.c, genio.h, gh.h, gh_data.c,
+ gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c, gh_list.c,
+ gh_predicates.c, gh_test_c.c, gh_test_repl.c, gscm.c, gscm.h,
+ gsubr.c, gsubr.h, guile.c, hash.c, hash.h, hashtab.c, hashtab.h,
+ init.c, init.h, ioext.c, ioext.h, kw.c, kw.h, libguile.h, list.c,
+ list.h, load.c, load.h, mallocs.c, mallocs.h, markers.c,
+ markers.h, mbstrings.c, mbstrings.h, mit-pthreads.c,
+ mit-pthreads.h, net_db.c, net_db.h, numbers.c, numbers.h,
+ objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
+ ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
+ procprop.h, procs.c, procs.h, putenv.c, ramap.c, ramap.h, read.c,
+ read.h, root.c, root.h, scmhob.h, scmsigs.c, scmsigs.h, script.c,
+ script.h, sequences.c, sequences.h, simpos.c, simpos.h, smob.c,
+ smob.h, snarf.h, socket.c, socket.h, srcprop.c, srcprop.h,
+ stackchk.c, stackchk.h, stacks.c, stacks.h, stime.c, stime.h,
+ strings.c, strings.h, strop.c, strop.h, strorder.c, strorder.h,
+ strports.c, strports.h, struct.c, struct.h, symbols.c, symbols.h,
+ tag.c, tag.h, tags.h, threads.c, threads.h, throw.c, throw.h,
+ unif.c, unif.h, variable.c, variable.h, vectors.c, vectors.h,
+ version.c, version.h, vports.c, vports.h, weaks.c, weaks.h: New
+ address for FSF.
+
+Mon May 26 12:37:30 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * script.c (scm_find_executable): Use prototype-style definition
+ here; apparently it's not quite right to have const in a prototype
+ and then use a K&R declaration. I wonder if stuff like this will
+ go away if we compile with -Wrequire-prototypes, or whatever that
+ is... (Bernard URBAN)
+
+ * scmhob.h: New text from Bernard URBAN.
+
+Sat May 17 17:14:36 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * script.c: Don't #define const on hpux. Configure takes care of
+ this. (Thanks to Larry Schwimmer.)
+
+ * script.c: Use the HAVE_UNISTD_H symbol provided by autoconf to
+ decide whether to #include <unistd.h>, instead of listing a bunch
+ of systems. Don't #include stdio twice. Removed dyked-out
+ definition of scm_find_impl_file.
+
+Fri May 16 03:06:08 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (libguile_la_LDFLAGS): Update libguile's shared
+ library version info to 1:0.
+ * Makefile.in: Regenerated.
+
+ * backtrace.c, backtrace.h, debug.c, debug.h, eq.c,
+ gdb_interface.h, gdbint.c, gdbint.h, gh_data.c, gh_init.c,
+ gh_io.c, gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c,
+ init.c, net_db.c, options.c, options.h, ports.c, print.c, read.c,
+ script.h, snarf.h, srcprop.c, srcprop.h, stacks.c, stacks.h,
+ throw.c: Update copyright years; these files have been worked on
+ significantly in 1997, but only had copyright years for 1996.
+ Also, change name of copyright holder on some from Mikael
+ Djurfeldt to Free Software Foundation; he has signed papers
+ assigning the changes to the FSF.
+
+ * script.c (scm_shell_usage): Pass FATAL to exit. There's no
+ reason not to give the user the option.
+
+ * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
+ Return #f on end-of-file when scanning table (i.e. when called
+ with no arguments). Try to catch errors, when we can.
+ * posix.c (scm_getgrgid, scm_getpwuid): Same.
+
+ * script.h (scm_shell_usage, scm_compile_shell_switches): New
+ external declarations. These are useful.
+
+Thu May 15 05:21:36 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * posix.c: don't include <sys/select.h> or define macros for
+ select, since they were not used in this file.
+
+ * filesys.c (scm_select): make the fifth parameter microseconds,
+ not milliseconds. let the fourth parameter be either a real value
+ or an integer or #f. The first, second and third arguments can
+ now be vectors: the type of the corresponding return set will be
+ the same.
+ (set_element, get_element): new static procedures.
+
+Wed May 14 12:18:12 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * strports.c (scm_eval_string): New function.
+ (scm_eval_0str): Trivially re-implemented in terms of
+ scm_eval_string.
+ * strports.h (scm_eval_string): New extern decl.
+
+ * net_db.c (h_errno): Add extern decl for this.
+
+ * fports.c (local_pclose): New function.
+ (scm_pipob): Use it in the initializer here.
+
+ From Tim Pierce:
+ * net_db.c (scm_gethost, scm_getproto, scm_getnet, scm_getserv):
+ Use a meaningful error message when signalling an error. For
+ this, scm_gethost must check h_errno rather than errno.
+
+Tue May 13 16:40:06 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in: Regenerated, using automake-1.1p.
+
+Tue May 13 04:34:52 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c (scm_addr_vector): use SCM_UNDEFINED in scm_listify,
+ not SCM_UNSPECIFIED.
+
+ * script.c (scm_compile_shell_switches): don't append (quit) if
+ interactive.
+ (scm_shell): call scm_exit_status and exit on the result of the
+ evaluation.
+
+Mon May 12 17:23:58 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Ensure that shared substrings are handled properly when passed to
+ a system call or other foreign function. Many thanks to Tim
+ Pierce!
+ * symbols.h (SCM_COERCE_SUBSTR): new macro.
+ * filesys.c (scm_chmod, scm_rename, scm_delete_file, scm_mkdir,
+ scm_rmdir, scm_opendir, scm_chdir, scm_symlink, scm_readlink,
+ scm_lstat), ports.c (scm_sys_make_void_port), posix.c (scm_utime,
+ scm_putenv, scm_setlocale, scm_mknod), stime.c (setzone,
+ scm_strftime), vports.c (scm_make_soft_port), backtrace.c
+ (scm_display_error_message): use RO macros when strings may be RO.
+ * error.c (scm_error_scm), filesys.c (scm_chown, scm_chmod,
+ scm_rename, scm_delete_file, scm_mkdir, scm_rmdir, scm_opendir,
+ scm_chdir, scm_symlink, scm_readlink, scm_lstat), ioext.c
+ (scm_freopen, scm_duplicate_port, scm_fdopen), net_db.c
+ (scm_gethost, scm_getnet, scm_getproto, scm_getserv), ports.c
+ (scm_sys_make_void_port), posix.c (scm_getgrgid, scm_utime,
+ scm_setlocale, scm_mknod), stime.c (setzone, scm_strptime,
+ scm_strftime), vports.c (scm_make_soft_port): use
+ SCM_COERCE_SUBSTR to make sure shared substrings are
+ null-terminated.
+
+Mon May 12 15:33:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * error.c (scm_error): Add newline to error message.
+
+ * init.c (scm_init_standard_ports): Doc fix.
+
+Thu May 8 14:38:01 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl-shl.c: Completely replaced with new code from Bernard
+ URBAN.
+
+ * script.c (scm_ice_9_already_loaded): New variable.
+ (scm_compile_shell_switches): Use it.
+
+Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_input_waiting_p): add missing third argument to
+ scm_misc_error.
+
+ * stime.c (scm_localtime): copy the result of localtime before
+ calling gmtime in case they share a buffer.
+ (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
+ nor HAVE_TZNAME.
+
+Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
+
+Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (check-local): New target, which causes 'make check'
+ to run gh_test_c and gh_test_repl, with some trivial input.
+ * Makefile.in: Rgnrtd.
+
+Tue Apr 29 19:00:40 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c (print_dynl_obj): Indicate whether the dynamic object has
+ been unlinked.
+
+Mon Apr 28 06:10:14 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * async.c (scm_sys_tick_async_thunk): commented out. I'm not
+ sure how this was supposed to work.
+ (scm_async_click): don't send SCM_TICK_SIGNAL.
+ (scm_init_async): don't initialize %tick-thunk.
+
+ * the following change doesn't affect the Scheme interface:
+ gc-thunk is called at the end of garbage collection. however it's
+ no longer implemented by pretending it's a signal.
+
+ * gc.c (scm_gc_end): don't call scm_take_signal. instead mark the
+ system async corresponding to scm_gc_thunk.
+ * async.h: declare scm_gc_async.
+ * async.c (scm_sys_gc_async_thunk): apply the thunk named by
+ gc-thunk directly, instead of going through a signal handler.
+ (scm_gc_async): new variable, points to the GC system-async.
+ (scm_init_async): save the GC async as scm_gc_async instead
+ of using system_signal_asyncs.
+ (scm_gc_vcell): new variable, stores the gc-thunk vcell.
+
+Mon Apr 28 19:14:44 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (libpath.h, cpp_err_symbols.c, cpp_sig_symbols.c):
+ Don't screw up if we're interrupted.
+ * Makefile.in: Regeneradet.
+
+Sun Apr 27 17:57:15 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * aclocal.m4: Removed; unnecessary, given changes of Apr 24.
+
+ * Makefile.am (modincludedir): Use "ice-9" instead of "@module@";
+ we're not using AM_INIT_GUILE_MODULE any more.
+ * Makefile.in: Reneregated.
+
+Thu Apr 24 00:41:08 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Functions for finding variable bindings, grace à Tim Pierce.
+ * gh_data.c (gh_lookup, gh_module_lookup): New functions.
+ * gh.h (gh_lookup, gh_module_lookup): New prototypes.
+
+ Get 'make dist' to work again.
+ * Makefile.am (EXTRA_DIST): Remove PLUGIN files.
+ * Makefile.in: Regenerated, like a surry without a fringe on top.
+
+ Changes for reduced Guile distribution: one configure script,
+ no plugins.
+ * configure.in, configure: Removed.
+ * acconfig.h, acinclude.m4: Moved to parent directory, where the
+ real configure script lives.
+ * Makefile.in, scmconfig.h.in: Regenerated.
+
+ * init.c: #include "script.h", to get prototype for script.c's
+ init function.
+
+Wed Apr 23 21:25:39 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * gh_data.c (gh_scm2newstr, gh_symbol2newstr): Use
+ scm_must_malloc, not raw malloc.
+
+ * script.c (scm_compile_shell_switches): Dyke out debugging output
+ code.
+
+Mon Apr 21 05:00:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * eq.c (scm_equal_p): use "SCM_TYP7SD", not "SCM (TYP7SD".
+
+ * stime.c: include both <sys/times.h> and <sys/timeb.h> if the
+ system has them. Hope this is safe. Previously
+ sys/timeb.h was included if HAVE_FTIME was defined or if
+ HAVE_SYS_TIMEB_H was defined but HAVE_SYS_TIMES_H was not,
+ but IRIX iris 5.3 apparently has ftime but not sys/timeb.h.
+
+ * ioext.c (scm_setfileno): add missing third argument to
+ scm_misc_error call.
+
+Sun Apr 20 15:09:31 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * eq.c (scm_equal_p): Correctly compare strings of different
+ varieties. (Thanks to Tim Pierce.)
+
+Sat Apr 19 03:59:02 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * read.c (skip_scsh_block_comment): SCSH says the !# that ends a
+ #! block comment must occur on a line all by itself.
+
+ Move most of the guts of shell command processing into libguile,
+ so guile.c can be very small (and eventuallly auto-generated. (I
+ mean, generated mechanically, not self-generated. Hmm.))
+ * guile.c, script.c, script.h: New source files.
+ * init.c (scm_boot_guile_1): Call scm_init_script.
+ * libguile.h: #include "script.h".
+ * Makefile.am (bin_PROGRAMS, guile_SOURCES, guile_LDADD): New
+ targets, for new executable.
+ (libguile_la_SOURCES): Mention script.c.
+ (modinclude_HEADERS): Add script.h.
+ * configure.in: Always check for -lm, -lsocket, -lnsl, whether or
+ not dynamic linking is enabled. This is because we're generating
+ executables now. Move CY_AC_WITH_THREADS call after those, so the
+ values of cy_cv_threads_libs captures the libs chosen above.
+ * Makefile.in, configure, aclocal.m4: Regenerated.
+
+ * Makefile.am (EXTRA_DIST): Don't distribute gscm.c or gscm.h.
+ We don't maintain this interface any more, and it just confuses
+ people.
+
+ * alloca.c: #include <scmconfig.h>, not <config.h>.
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Mention alloca.c, so
+ it'll get included in disties.
+
+Thu Apr 17 17:45:10 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * gscm.c, gscm.h: These aren't supported any more, and shouldn't
+ be distributed, because they confuse people.
+ * Makefile.am (EXTRA_DIST): Remove gscm.c, gscm.h.
+
+Sat Apr 19 11:56:18 1997 Tim Pierce <twp@twp.tezcat.com>
+
+ * configure.in: check for presence of gethostent (not present on
+ OpenBSD by default).
+ * net_db.c (scm_gethost): Check HAVE_GETHOSTENT.
+ * configure, scmconfig.h.in: Regenerated.
+
+Wed Apr 16 17:52:38 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * backtrace.c (scm_backtrace): Split message string across
+ newlines properly. GCC is more tolerant of this than other
+ compilers.
+
+Mon Apr 14 20:20:14 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ Merge threads directory into libguile.
+ * coop-defs.h, coop-threads.c, coop-threads.h, coop.c, threads.c,
+ threads.h: New source files.
+ * Makefile.am (EXTRA_libguile_la_SOURCES): Add threads.c.
+ (noinst_HEADERS): Add coop-threads.c, coop-threads.h, coop.c
+ here; see comment.
+ (modinclude_HEADERS): Add threads.h, coop-defs.h.
+ (EXTRA_DIST): Add fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
+ coop-threads.c.cygnus, coop-threads.h.cygnus.
+ * configure.in: If we're using threads, include threads.o in
+ LIBOBJS.
+ * _scm.h, libguile.h: threads.h lives in this directory now.
+ * fsu-pthreads.h, mit-pthreads.c, mit-pthreads.h,
+ coop-threads.c.cygnus, coop-threads.h.cygnus: New files, not
+ currently used, but brought along for information's sake.
+ * ChangeLog-threads: log from old 'threads' directory.
+ * Makefile.in, configure: Rebuilt.
+
+Mon Apr 14 20:15:29 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * stime.c (scm_mktime): #ifndef HAVE_TM_ZONE, Use lt.tm_zone, not
+ lt->tm_zone.
+
+Mon Apr 14 01:32:57 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * gh_init.c (gh_standard_handler): Return SCM_BOOL_F, not garbage.
+
+ Merge GH interface library into libguile.
+ * gh.h, gh_data.c, gh_eval.c, gh_funcs.c, gh_init.c, gh_io.c,
+ gh_list.c, gh_predicates.c, gh_test_c.c, gh_test_repl.c: New files.
+ * Makefile.am (libguile_la_SOURCES): Add gh_data.c, gh_eval.c,
+ gh_funcs.c, gh_init.c, gh_io.c, gh_list.c, gh_predicates.c. Move
+ _scm.h to ...
+ (EXTRA_libguile_la_SOURCES): ... here.
+ (pkginclude_HEADERS): Add variable, to get gh.h installed.
+ (THREAD_LIBS, check_ldadd, check_PROGRAMS, gh_test_c_SOURCES,
+ gh_test_c_LDADD, gh_test_repl_SOURCES, gh_test_repl_LDADD):
+ New variables, describing how to build the gh test programs.
+ * configure.in: Check for -lm, -lsocket, -lnsl; we need this to
+ build the test programs, and we probably should have been linking
+ libguile.la against them all along, to support AIX shared libs.
+ Add cflags for threads to CFLAGS; add libs for threads to new
+ variable THREAD_LIBS, used in Makefile.am.
+ * ChangeLog-gh: log from old `gh' subdirectory.
+ * Makefile.in, configure, scmconfig.h.in: Rebuilt.
+
+Sun Apr 13 23:03:55 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * acconfig.h: Undo change of Apr 9; including the definition of
+ PACKAGE in the guile headers conflicts with applications' own
+ definitions.
+ * scmconfig.h.in: Regenerated.
+
+Fri Apr 11 14:12:13 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * filesys.c (scm_fcntl): New function from Roland McGrath.
+ (scm_init_filesys): New symbols for use with fcntl.
+ * filesys.h: Added prototype.
+
+ * eval.c (SCM_APPLY): Set debug apply frame argument list correctly
+ when PROC is receiving no arguments.
+
+Fri Apr 11 19:39:32 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * filesys.c (S_ISSOCK): Define this if it's missing, but we do
+ have S_IFSOCK. This is the case under Ultrix.
+
+ * posix.c (scm_status_exit_val, scm_status_exit_val,
+ scm_status_term_sig, scm_status_stop_sig): Modified to work with
+ Ultrix versions of WIFSTOPPED, etc., which assume that their
+ arguments are lvalues (hmm).
+
+Thu Apr 10 15:10:07 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c: Doc fixes.
+
+ * throw.c: Doc fixes; rearranged.
+
+ * putenv.c: #include "libguile/scmconfig.h", not <config.h>.
+
+Wed Apr 9 18:01:20 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * acconfig.h: Added entry for PACKAGE.
+ * scmconfig.h.in: Regenerated.
+
+ Changes to work with automake-1.1n, which has better libtool support.
+ * Makefile.am: Use lib_LTLIBRARIES instead of lib_PROGRAMS.
+ Use libguile_la_LIBADD instead of libguile_la_LDADD. (What's the
+ difference here?)
+ (libguile_la_SOURCES, modinclude_HEADERS, EXTRA_DIST): Format for
+ readability.
+ * Makefile.in: Rebuild.
+
+Wed Apr 9 09:08:54 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.c (scm_mktime): take an optional zone argument.
+ (scm_localtime): check putenv return value.
+ (scm_strftime, scm_strptime): moved from posix.c. move #include
+ sequences.h too.
+ stime.h, posix.h: update prototypes.
+ (bdtime2c, setzone, restorezone): new static procedures.
+ (scm_mktime, scm_strftime): use them.
+ (scm_strftime): don't call mktime before strftime. Use
+ filltime for return value.
+ (filltime): convert NULL zname to #f.
+ (scm_strptime): return a count of characters consumed, not
+ the remaining string.
+
+Sun Apr 6 05:44:11 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.c (scm_localtime): check HAVE_TM_ZONE and HAVE_TZNAME.
+ (scm_mktime): likewise.
+ Declare *tzname[].
+ Uncomment localtime and mktime.
+
+ * configure.in: add AC_STRUCT_TIMEZONE.
+
+Sat Apr 5 23:56:40 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.c (scm_init_stime): don't define ticks/sec.
+ (scm_gettimeofday): renamed from scm_time_plus_ticks (avoids multiple
+ return value problem and is still portable.)
+
+Sat Apr 5 17:59:24 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * cpp_err_symbols.in: Renamed from cpp_err_symbols, to avoid
+ make's implicit cpp_err_symbols: cpp_err_symbols.c rule.
+ * cpp_sig_symbols.in: Renamed from cpp_sig_symbols.
+ * Makefile.am (check_errnos, check_signals, cpp_sig_symbols.c,
+ cpp_err_symbols.c): Corresponding changes.
+ * Makefile.in: Regenerated.
+
+Sat Apr 5 02:39:02 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * posix.c (scm_putenv): don't check HAVE_PUTENV.
+ * Makefile.am (EXTRA_libguile_la_SOURCES): add putenv.c.
+ * configure.in: move putenv from AC_CHECK_FUNCS to AC_REPLACE_FUNCS.
+ * putenv.c: new file, from sh-utils 1.12.
+
+ * posix.c (scm_environ): use malloc in place of scm_must_malloc
+ since allocation isn't for Scheme objects.
+ (scm_putenv): copy strings before placing in the environment.
+
+ * stime.c (scm_current_time): throw an error if time returns -1,
+ instead of returning #f.
+ (scm_get_internal_real_time, scm_get_internal_real_time): use
+ scm_long2num for return value instead of SCM_MAKINUM.
+
+ * stime.h: prototypes updated.
+
+ * stime.c (scm_time_in_msec): apparently unused, deleted.
+
+Fri Apr 4 08:53:41 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * configure.in: check for gettimeofday.
+
+ * stime.c (scm_time_plus_ticks): new procedure, an scsh interface
+ which may be more usefully portable than a gettimeofday interface.
+
+Wed Apr 2 17:11:39 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * Makefile.am (EXTRA_DIST): It's cpp_err_symbols, not
+ cpp_err_signals.
+ * Makefile.in: Regenerated.
+
+Mon Mar 31 03:22:37 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * stime.c (filltime): recovered static procedure.
+ (scm_localtime, scm_gmtime, scm_mktime, scm_tzset): recovered from
+ an earlier Guile.
+
+ * posix.h: add prototype for scm_close_pipe, remove prototypes for
+ scm_open_input_pipe, scm_open_output_pipe, change scm_mknod prototype.
+
+ * posix.c (scm_mknod): split the mode argument into type and perms
+ arguments, like the extra fields returned by stat.
+
+ * fports.c (scm_pipob): set the close, free and print procedures.
+ (scm_close_pipe): new procedure.
+
+ * posix.c (scm_open_input_pipe, scm_open_output_pipe): deleted,
+ define them in boot-9.scm
+
+Wed Mar 26 04:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c (scm_setfileno): throw a runtime error if SET_FILE_FD_FIELD
+ wan't defined. Don't include fd.h.
+
+ * Previously fd.h was regenerated whenever configure was run,
+ forcing a couple of files to be recompiled.
+
+ * fd.h.in: deleted, SET_FILE_FD_FIELD moved to ioext.c.
+ * configure.in: AC_DEFINE FD_SETTER instead of HAVE_FD_SETTER.
+ Check for _fileno as well as _file.
+ Don't output fd.h.
+ * ioext.c: don't fd.h.
+ * acconfig.h: remove duplicate HAVE_FD_SETTER and change the
+ other to FD_SETTER.
+
+ * Change the stratigy for getting information about errno
+ (and now signal number) values, e.g., ENOSYS, SIGKILL. Instead of
+ generating lists of symbols during the build process, which will
+ not always work, include comprehensive lists in the distribution.
+ To help keep the lists up to date, the "check_signals" and
+ "check_errnos" make targets can be used.
+
+ * configure.in: don't check for a command to extract errno codes.
+ * Makefile.am: update file lists, remove errnos.list and errnos.c
+ targets, add cpp_err_symbols.c, cpp_sig_symbols.c, check_signals,
+ check_errnos targets.
+ (CLEANFILES): remove errnos.c and errnos.list, add
+ cpp_err_symbols_here cpp_err_symbols_diff cpp_err_symbols_new
+ cpp_sig_symbols_here cpp_sig_symbols_diff cpp_sig_symbols_new
+ * errnos.default: deleted.
+ * cpp_signal.c: new file.
+ * cpp_errno.c: renamed from errnos_get.c.
+ * cpp_err_symbols, cpp_sig_symbols: new files.
+ * cpp_cnvt.awk: renamed from errnos_cnvt_awk.
+ * error.c (scm_init_error): #include cpp_err_symbols instead of
+ errnos.c.
+ * posix.c (scm_init_posix): don't intern signal symbols. #include
+ cpp_sig_symbols.c.
+
+Tue Mar 25 04:51:10 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * strop.c (scm_i_index): allow the lower bound to be equal to the
+ length of the string, so a null string doesn't always give an error.
+
+ * posix.h: new prototypes.
+ * posix.c (scm_status_exit_val, scm_status_term_sig,
+ scm_status_stop_sig): new functions, as in scsh. They break down
+ process status values as returned by waitpid.
+
+Sat Mar 22 18:16:29 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * net_db.c (scm_gethost): don't check HAVE_GETHOSTENT, since
+ configure doesn't know about it.
+
+Fri Mar 21 23:49:28 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * snarf.h, backtrace.c: Name change SCM_GLOBAL --> SCM_VCELL.
+
+ * snarf.h: Added new macros SCM_GLOBAL_SYMBOL and SCM_GLOBAL_VCELL
+ which defines C variables with global linkage.
+
+Mon Mar 17 05:57:11 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * snarf.h (SCM_PROC1): Bugfix: Use (void) rather than (...) for
+ zero arg subrs.
+
+Sun Mar 16 11:43:49 1997 Mikael Djurfeldt <mdj@floss.cyclic.com>
+
+ * eval.c (safe_setjmp): Temporarily use old setjmp until someone
+ has time to check why this doesn't work well with continuations.
+
+Sun Mar 16 05:09:55 1997 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * Fix shell syntax error; some shells won't tolerate
+ multiple "fi" statements on a single line. (Thanks to Fred Fish.)
+
+Sat Mar 15 01:11:40 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * posix.c (scm_uname): throw an error if uname fails instead
+ of returning errno.
+
+ * error.h (scm_errno, scm_perror): obsolete prototypes removed.
+
+ * error.c (err_head, scm_errno, scm_perror): obsolete procedures
+ removed.
+
+ * async.c (scm_ints_disabled): definition moved from error.c.
+
+Sat Mar 15 00:06:08 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * acconfig.h: Removed PACKAGE.
+
+ * scmconfig.h.in: Regenerated.
+
+ * snarf.h: g++ says it's non-portable not to specify the first
+ argument in a varargs declaration. I introduced the first
+ argument by using preprocessor conditionals.
+
+Thu Mar 13 21:28:25 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c (scm_read_delimited_x): use RO string macros for delims.
+ (scm_freopen): use RO string macros for filename and modes.
+ (scm_duplicate_port, scm_fdopen): use RO string macros for modes.
+
+ * posix.c (scm_getgrgid): simplify conversion of name to C string.
+ (scm_mknod): use RO string macros for path.
+
+ * socket.c (scm_fill_sockaddr, scm_send, scm_sendto):
+ use SCM_ROSTRINGP, SCM_ROCHARS, SCM_ROLENGTH.
+
+ * net_db.c (scm_gethost, scm_getnet, scm_getproto, scm_getserv):
+ use SCM_ROSTRINGP and SCM_ROCHARS.
+
+Thu Mar 13 18:31:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * unif.c (scm_array_set_x): Cast ICHR (obj) to char if storing in
+ a scm_tc7_byvect.
+
+ * ramap.c (scm_ra_matchp, scm_array_fill_int, racp,
+ scm_array_index_map_x, raeql_1, scm_array_equal_p): Completed
+ support for byte vectors.
+
+ * print.c (scm_iprin1): Limit number of vector elements printed
+ according to pstate->length.
+
+Thu Mar 13 00:12:35 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * backtrace.c (scm_display_error_message): don't segv if message
+ is an immediate.
+
+ * error.h: prototype for scm_error_scm.
+
+ * error.c (scm_error_scm): new procedure, reimplements scm-error
+ in C and uses scm_error.
+
+Tue Mar 11 03:51:00 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * read.c (scm_read_hash_extend): make scm_read_hash_procedures a
+ pointer to the Scheme variable read-hash-procedures and intern it
+ in scm_init_read. Modify scm_read_hash_extend and
+ scm_get_hash_procedure to use the pointer.
+
+Mon Mar 10 06:28:54 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * read.h (SCM_N_READ_OPTIONS): increase SCM_N_READ_OPTIONS to 4.
+ (SCM_KEYWORD_STYLE): defined.
+
+ * read.c (scm_read_opts): add a keywords option. This isn't a
+ boolean option, in case someone wants to add support for DSSSL
+ keywords too.
+ Setup scm_keyword_prefix symbol.
+ (scm_lreadr): Only process keywords if SCM_KEYWORD_STYLE is
+ set to 'prefix.
+ I've left keyword support disabled by default, since it doesn't
+ seem to break the module system and it gives R4RS standard behaviour.
+ It can be reactivated with (read-set! keywords 'prefix).
+
+Sun Mar 9 14:14:39 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * arbiters.c (scm_make_arbiter): Bugfix: Must SCM_DEFER_INTS
+ before constructing arbiter.
+
+ * eval.c (scm_m_define): Bugfix: Check that the object is a
+ closure before setting the procedure property!
+
+ * ports.h: Removed prototype for scm_ungetc_char_ready_p.
+
+ * ports.c: Removed `ungetc-char-ready?'.
+
+Sat Mar 8 00:27:05 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * read.c (scm_init_read): intitialise scm_read_hash_procedures
+ (idea from Mikael: make it a pair so scm_permanent object only
+ called once.)
+ (scm_read_hash_extend): don't call scm_permanent_object.
+ (ideas from Mikael): if chr is already in the list, replace its
+ procedure instead of appending it again. If proc is #f, remove
+ it from the list.
+ (scm_get_hash_procedure): take CDR of scm_read_hash_procedures.
+
+ * strports.c (scm_read_0str, scm_eval_0str): update scm_read usage.
+
+ * gdbint.c (gdb_read): update scm_lreadr usage.
+
+ * load.h: update prototypes.
+
+ * load.c (scm_primitive_load, scm_read_and_eval_x,
+ scm_primitive_load_path): remove case_insensitive_p, sharp arguments.
+
+ * read.h: add prototype for scm_read_hash_extend. Change args for
+ other prototypes.
+
+ * read.c (scm_read_hash_procedures): new variable.
+ (scm_read_hash_extend): new procedure.
+ (scm_get_hash_procedure): new procedure.
+ (scm_lreadr): use scm_get_hash_procedure instead of an argument
+ for extended # processing.
+ (scm_read, scm_lreadr, scm_lreadrecparen, scm_lreadparen,
+ scm_read_token): remove case_i, sharp arguments. Change callers.
+
+Fri Mar 7 08:58:21 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * read.h (SCM_N_READ_OPTIONS): increase to 3.
+ (SCM_CASE_INSENSITIVE_P): define.
+
+ * read.c: add case-insensitive option to scm_read_opts.
+ (scm_read_token): use SCM_CASE_INSENSITIVE_P instead of an argument
+ to determine whether to convert symbol case.
+ (default_case_i): definition removed.
+ * read.c (scm_read_token): if case_i, downcase ic before doing
+ anything with it.
+
+Sat Mar 8 03:49:03 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * configure.in: Added configuration option `guile-debug'.
+ Configure with --enable-guile-debug if you want a bunch of extra
+ functions used for debugging when developing Guile.
+
+ * acconfig.h: Added new preprocessor symbol GUILE_DEBUG.
+
+ * procs.c (make-cclo): New undocumented debugging procedure: Make
+ compiled closure with internal procedure PROC and length LENGTH.
+ Only compiled if GUILE_DEBUG is defined.
+
+ * debug.c: Only include `debug-hang' if GUILE_DEBUG is defined.
+
+ * print.c: Put #ifdef GUILE_DEBUG around `current-pstate'.
+
+ * ports.c: Changed preprocessor symbol DEBUG --> GUILE_DEBUG.
+
+ * eval.c (SCM_CEVAL): Added code sections for handling of rpsubrs
+ with 3 or more args internally to the evaluator.
+
+Fri Mar 7 19:38:18 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (SCM_CEVAL): Added code sections for handling of asubrs
+ with 3 or more args internally to the evaluator. This is mainly
+ because we don't want to pass entry and exit points of the
+ debug support twice, but it also seems to increase the speed of
+ the evaluator for such calls (e. g. (+ 1 2 3)).
+
+ * backtrace.c (scm_display_application): New procedure:
+ display-application; Set fancy printing parameters individually
+ for different types of display (backtrace, error, application).
+ (These should of course be customizable!)
+
+ * debug.h (SCM_RESET_DEBUG_MODE): Bugfix: The old code didn't
+ clear the CHECK-flags.
+
+Thu Mar 6 00:53:02 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * tags.h, eval.c (iqq): Fixes to comments about SCM_ECONSP.
+
+Wed Mar 5 23:31:21 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * tags.h (SCM_ECONSP, SCM_NECONSP): Bugfix: Discriminate structs
+ from pairs with a GLOC in the car.
+
+ * symbols.c (msymbolize): Bugfix: Also initialize SCM_SYMBOL_HASH,
+ otherwise `symbol-hash' will behave badly.
+ (scm_symbol_hash): Bugfix: Must msymbolize if tc7_ssymbol, othwise
+ we get segmentation fault!
+
+ * symbols.c: Added #include "weaks.h". New functions:
+ `builtin-bindings' and `builtin-weak-bindings'. (These will be
+ moved to an extraneous library when we split libguile.)
+
+Tue Mar 4 19:50:07 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * filesys.c (scm_stat): stat now takes fport arguments too as
+ documented in the manual.
+
+Mon Mar 3 07:11:33 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * debug.c (scm_single_step): Bugfix: Call continuation with
+ scm_call_continuation instead of throwing to it.
+
+Mon Mar 3 09:07:56 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.c (scm_char_ready_p): bug fix: in SCM_PROC char-ready's
+ argument wasn't declared to be optional.
+
+Sun Mar 2 16:34:40 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stime.c (scm_init_stime): Add feature "current-time".
+
+Sun Mar 2 06:37:31 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * throw.h: prototype for scm_exit_status.
+ * throw.c (scm_handle_by_message): if a 'quit is caught, use its
+ args to derive an exit status. Allows (quit) to work from a
+ script.
+ (scm_exit_status): new function.
+ #include "eq.h".
+
+Sat Mar 1 00:09:15 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * eval.c (scm_deval): Removed some old code.
+ (ENTER_APPLY): Bugfix: Reset apply-frame trap on trap as is done
+ with the others.
+ (ENTER_APPLY, scm_deval): Reset trace flag on apply-frame and
+ exit-frame traps.
+
+ * symbols.c (msymbolize): Bugfix: Must initialize property list to
+ SCM_EOL.
+
+ * procs.c: Introduce the existent C function scm_thunk_p at the
+ Scheme level as well.
+
+Wed Feb 26 12:53:58 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * symbols.c, symbols.h (scm_symbol_value0): New function. Can be
+ used from C to easily lookup the value of a symbol in the current
+ module.
+
+Tue Feb 25 00:14:10 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * unif.c (scm_init_unif): Added #include "unif.x". (There are two
+ scm_init_unif in this file. This will also fix a previous problem
+ with guile-snarf.)
+
+ * configure.in: Added AM_MAINTAINER_MODE
+
+Fri Feb 21 23:07:26 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * gdb_interface.h (GDB_INTERFACE): Added some (void *) casts to
+ avoid warnings.
+
+Fri Feb 21 18:00:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
+ source files that are not always included in libguile but should
+ have their dependencies calculated by automake. This variable is
+ recognized by automake, no further magic is needed.
+ (libguile_la_DEPENDENCIES): Changed to @LIBLOBJS@. Libtool wants
+ to deal exclusively with *.lo files, as it seems. The *.o files
+ are built automatically when the corresponding *.lo file gets
+ built.
+
+Wed Feb 19 14:04:23 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * list.h (scm_list_cdr_ref): Delete prototype; function no longer
+ exists.
+
+Thu Feb 13 21:44:07 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * unif.c (scm_array_set_x): minor change to argument error checking.
+
+Tue Feb 11 18:19:47 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.am (libguile_la_SOURCES): Remove backtrace.c, debug.c,
+ inet_aton.c, srcprop.c, stacks.c, and strerror.c from this list.
+ They should only be included in the library at configure.in's
+ discretion.
+ (libguile_la_LDADD): Include the appropriate .lo files here.
+ (libguile_la_DEPENDENCIES): List the corresponding .o files here,
+ so we know when to build them (and their .lo bretheren).
+ * configure.in (LIBLOBJS): New substituted variable. We let
+ configure decide which .o files to include in LIBOBJS, and then
+ put the corresponding list of .lo files in LIBLOBJS. The latter
+ is what we pass to libtool.
+ * Makefile.in, configure: regenerated.
+
+Mon Feb 10 00:08:08 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * symbols.c (scm_sysintern0): New function. Contains the core of
+ old scm_sysintern but doesn't take a second value argument.
+ (scm_sysintern): Now uses scm_sysintern0.
+ (scm_sysintern_no_module_lookup): Renamed to
+ scm_sysintern0_no_module_lookup and doesn't take a second value
+ argument any longer.
+
+ * symbols.h (scm_sysintern0: Added declaration.
+
+ * options.c (scm_init_opts): Use scm_sysintern0 instead of
+ scm_sysintern when interning option keys. Otherwise we risk
+ destroying the values of already interned variables.
+
+ * symbols.c (scm_sym2vcell): Bugfix: Treat definedp as
+ scheme-level boolean (use SCM_NFALSEP).
+
+ * backtrace.c (scm_init_backtrace): Make Scheme-level variable
+ `the-last-stack'.
+ (scm_backtrace): New function. (C version of old function from
+ boot-9.scm) Motivation: Make it possible to display backtraces
+ without depending on boot-9.scm. (I'm uncertain if this
+ motivation is good enough...)
+
+ * root.h (scm_root_state): Add member the_last_stack_var.
+ (scm_the_stack_var): Defined to scm_root->the_last_stack_var.
+
+ * root.c (mark_root): Mark scm_the_last_stack_var.
+
+ * init.c (scm_start_stack): Initialize scm_the_last_stack_var to
+ SCM_BOOL_F.
+
+Sun Feb 9 18:04:41 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * throw.c (mark_lazy_catch, free_lazy_catch): Removed.
+ 1. mark_lazy_catch didn't mark the smob.
+ 2. Both functions above have standard variants:
+ (lazy_catch_funs): Changed mark_lazy_catch --> scm_mark0,
+ free_lazy_catch --> scm_free0.
+
+Fri Feb 7 17:30:26 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * throw.c (scm_internal_lazy_catch): New function.
+ (scm_lazy_catch): Rewritten to use it.
+ (scm_ithrow): Handle the new lazy catch representation.
+ Use SCM_LAZY_CATCH_P, instead of assuming that any wind list entry
+ that doesn't have a jmpbuf is a lazy catch clause.
+ (tc16_lazy_catch, struct lazy_catch, mark_lazy_catch,
+ free_lazy_catch, print_lazy_catch, lazy_catch_funs,
+ make_lazy_catch, SCM_LAZY_CATCH_P): Support funs, including a new
+ smob.
+ (scm_init_throw): Register the new lazy-catch smob type.
+ * throw.h (scm_internal_lazy_catch): decl for new function.
+
+ * throw.c (scm_internal_catch): Doc fixes.
+
+ * alloca.c: New file, needed to support the AC_FUNC_ALLOCA call in
+ configure.in. Including this might cause problems if applications
+ that link against libguile include their own copies of alloca, but
+ if they're using autoconf, they should be adding libguile to LIBS
+ before calling AC_FUNC_ALLOCA anyway, in which case they'll find
+ the copy in libguile, and things will be okay. (I think.)
+
+Thu Feb 6 03:10:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * strop.c (scm_string_upcase_x, scm_string_downcase_x): moved from
+ unif.c.
+ strop.h: move prototypes too.
+
+Wed Feb 5 08:33:00 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * posix.c (scm_init_posix): don't intern EINTR since it's now done
+ elsewhere.
+
+ * ioext.c (scm_init_ioext): don't intern stat macros, S_IRUSR
+ etc. I deleted them from filesys.c long ago, but didn't
+ notice they were here too (although ineffective since
+ sys/stat.h wasn't included).
+
+Tue Feb 4 18:17:50 1997 Tom Tromey <tromey@cygnus.com>
+
+ * eval.c: Don't define alloca in GCC case. gcc will automatically
+ use __builtin_alloca if appropriate.
+
+Tue Feb 4 16:57:40 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c (safe_setjmp): New function: trivial wrapper for setjmp.
+ (SCM_CEVAL, SCM_APPLY): Call it, instead of setjmp, to make sure
+ that values of automatic variables are preserved. See comments
+ for safe_setjmp for details.
+
+ Change from Thomas Morgan:
+ * variable.c: Include eq.h.
+ (var_equal): New function.
+ (variable_smob): Use var_equal as the discriminator for variables.
+
+ * throw.c (s_throw): Remove extraneous declaration.
+
+ * configure.in: Call AC_FUNC_ALLOCA, to see if we have alloca.
+ * eval.c: Add necessary CPP cruft to support that.
+ * configure, Makefile.in, scmconfig.h.in: regenerated.
+
+ Change from Thomas Morgan:
+ * procprop.c (scm_procedure_properties): Convert the Scheme
+ boolean returned by scm_procedure_p into a C boolean before using
+ it as a condition for SCM_ASSERT.
+ (scm_procedure_property): Likewise.
+
+ * simpos.c (SYSTNAME): Accept both 'unix' and '__unix' as
+ indications of Unixness.
+ * stime.c: Same.
+
+Tue Feb 4 05:07:35 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * net_db.c (scm_lnaof): change scheme name from lnaof to inet-lnaof.
+
+Mon Feb 3 06:12:37 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * read.c (scm_lreadr): use scm_misc_error to improve one of the
+ "unknown # object" error messages.
+
+ * strop.c (scm_i_index, scm_i_rindex): combine into one procedure
+ (scm_i_index) and declare it static. Add a 'direction' argument
+ to indicate what way the search should go.
+ (scm_i_index): throw out-of-range error instead of wrong-type-arg
+ if indices are bad.
+ (scm_string_index, scm_string_rindex): adjust usage of scm_i_index.
+ strop.h: remove scm_i_index, scm_i_rindex prototypes.
+
+Fri Jan 31 04:33:11 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c, ioext.h: remove obsolete _sys_ from 9 procedure names.
+
+ * posix.c (scm_fork): Scheme name changed from fork to primitive-fork,
+ to avoid clash with various scsh forks.
+
+Thu Jan 30 20:14:09 1997 Mikael Djurfeldt <mdj@syk-0606.pdc.kth.se>
+
+ The following two changes (ramap.c, throw.c) are motivated by the
+ apparent unportability of forward declarations of static arrays of
+ the form `static foo bar[];'.
+
+ * ramap.c (scm_array_fill_x): Moved above scm_array_fill_int.
+ (ra_rpsubrs, ra_asubrs): Moved to the top of array code.
+
+ * throw.c (scm_throw): Moved above scm_ithrow.
+
+ * options.h: Removed the extern declarations of scm_yes_sym and
+ scm_no_sym since these are static.
+
+Fri Jan 24 06:16:32 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.c: add SCM_PROC declarations for pt-size and pt-member.
+
+ * Makefile.am: remove AWK=@AWK@.
+ Add a rule for generating errnos.list.
+ (CLEANFILES): put errnos.list here instead of in DISTCLEANFILES.
+
+ * configure.in: add AC_SUBST(AWK) and AC_SUBST(ERRNO_EXTRACT).
+ don't extract errnos, just set a variable (avoids the
+ need to recompile error.c just because configure is run.)
+
+ * unif.h: update prototypes.
+ * unif.c (scm_uniform_array_read,write): change the offset and
+ length arguments to start and end, for consistency.
+
+ * __scm.h: uncomment SCM_ARG6 and SCM_ARG7, I needed SCM_ARG6.
+
+ * ioext.h: update prototypes.
+ * ioext.c (scm_read_delimited_x): replaces scm_read_line and
+ scm_read_line_x, it's a more general procedure using an
+ interface from scsh. read-line and read-line! are now defined
+ in boot-9.scm.
+ Note that the new read-line trims the terminator
+ by default, previously it was appended to the returned string. An
+ optional argument specifies how to process the terminator (scsh
+ compatible). For the old behaviour: (read-line port 'concat).
+ scm_read_line, scm_read_line_x: deleted. (read-line port 'split)
+ returns a pair, but is converted to multiple values if the scsh
+ module is loaded.
+
+ socket.h: update prototypes.
+ * socket.c (scm_recvfrom): for consistency with other procedures,
+ take start and end as separate optional arguments.
+ (scm_recv, scm_recvfrom): don't allow the second argument
+ to be a size, only a buffer. Change the scheme names to
+ recv! and recvfrom!. Don't return the buffer.
+
+ * ioext.h, posix.h: move prototypes too.
+ * ioext.c, posix.c (scm_read_line, scm_read_line_x, scm_write_line:
+ moved back from posix.c to ioext.c. Also move #includes of "genio.h"
+ "read.h" and "unif.h".
+ * ioext.c: include "chars.h"
+
+Mon Jan 20 19:54:49 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c: The dynamic linking and module registration functions
+ are now defined even when dynamic linking is not available for the
+ host system. Some of their functionality can be done without
+ dynamic linking; when it's really needed, they throw errors.
+
+Thu Jan 16 16:39:29 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * configure.in: Only define DYNAMIC_LINKING when one of the system
+ dependent functions is detected.
+ * dynl.c (scm_dynamic_func): New function to get the address of a
+ function in a dynamic object.
+ (scm_dynamic_call, scm_dynamic_args_call): Accept the values
+ produced by scm_dynamic_func as the thing to call.
+
+Sun Jan 12 21:09:42 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c: Restructured.
+ (scm_register_module_xxx, scm_registered_modules,
+ scm_clear_registered_modules): New functions.
+
+Sat Jan 11 21:37:15 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * symbols.c (scm_sysintern): Renamed to
+ scm_sysintern_no_module_lookup.
+ (scm_sysintern): New function to take the place of the old
+ scm_sysintern. It uses the current toplevel lookup closure to give
+ the symbol its value. This is a temporary hack to put packages
+ like gtcltk into their own module.
+ (scm_can_use_top_level_lookup_closure_var): New variable to tell
+ us whether `scm_top_level_lookup_closure_var' has been initialized
+ and is usable.
+ * eval.c (scm_init_eval): Set it.
+
+Sat Jan 18 00:03:31 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * fports.c (scm_open_file): pass errno to scm_syserror_msg.
+ * filesys.h: update prototypes. Remove macros: SCM_FD_P, SCM_FD_FLAGS,
+ SCM_FD.
+ * filesys.c (scm_sys_stat, scm_sys_lstat): pass errno to
+ scm_syserror_msg.
+ (scm_sys_read_fd, scm_sys_write_fd, scm_sys_close, scm_sys_lseek,
+ scm_sys_dup): deleted: FD capability will be added to other
+ procedures.
+ Remove support for the FD object type: scm_tc16_fd, scm_fd_print,
+ scm_fd_free, fd_smob, scm_intern_fd.
+ (scm_open): renamed from scm_sys_open. Return a port instead of
+ an FD object. Make the mode argument optional.
+ (scm_sys_create): deleted, it's just a special case of open.
+ (scm_init_filesys): move interning of constants O_CREAT etc.,
+ here (were previously using SCM_CONST_LONG macro).
+ Add missing constants: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT.
+ don't newsmob fd.
+ (numerous _sys_ procedures): remove gratuitous _sys_ from names.
+ include "fports.h" and <stdio.h>
+ (scm_stat, scm_select): don't support FD objects.
+
+ * error.h: adjust scm_syserror_msg prototype.
+ * error.c (scm_syserror_msg): take an extra argument for errno.
+ Using the global value didn't always work, since it could be
+ reset by procedure calls in the message or args arguments.
+
+ * fports.c (scm_setbuf0): call setbuf even if FIONREAD is not defined.
+ I don't understand why the check was there (and what about the
+ ultrix check?)
+
+ * strop.c (scm_string_copy): allow shared substrings to be copied.
+
+ * unif.h: corresponding change to prototypes.
+ * unif.c (scm_uniform_array_read_x, scm_uniform_array_write_x):
+ recognize two new optional arguments: offset and length. Allow
+ the port argument to be an integer (file descriptor, for scsh).
+ Include <unistd.h> for "read" prototype.
+
+Tue Jan 14 02:42:02 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c: don't include filesys.h.
+
+Mon Jan 13 03:47:04 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * Makefile.am: add AWK=@AWK@ (?)
+
+ * Makefile.am (EXTRA_DIST): add errnos_cnvt.awk, errnos.default,
+ errnos_get.c.
+ Add a rule to generate errnos.c from errnos.
+ * error.c (scm_init_error): include errnos.c.
+ * errnos_cnvt.awk: new file, converts the list of errno codes to
+ C expressions.
+ * errnos_get.c: new file.
+ * errnos.default: new file, contains errnos to try if they can't
+ be extracted from errno.h.
+ * configure.in: if using GCC, try and extract errno codes from
+ errno.h.
+ Added AC_PROG_AWK.
+
+Sat Jan 11 14:47:00 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * configure.in: Replaced AC_PROG_RANLIB with AM_PROG_LIBTOOL.
+ * Makefile.am: Made libguile into a libtool library.
+ * PLUGIN/guile.config: Removed "-L ../libguile" from xtra_cflags.
+ Set libtool_libs to indicate that libguile is a libtool library.
+ See guile/ChangeLog for details.
+ * .cvsignore: ignore "*.lo", the libtool library objects.
+
+Wed Jan 8 06:54:54 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * net_db.c (scm_getserv): add missing SCM_ALLOW_INTS.
+ use htons in getservbyport argument.
+
+Tue Jan 7 18:11:24 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * ports.h (SCM_PTOBNUM): Removed extraneous semicolon.
+ * smob.h: (SCM_PTOBNUM): Removed entirely; this definition is a
+ duplicate.
+
+ * objprop.c (scm_object_property): No need to take the CDR of the
+ value returned by scm_object_properties, since Aug 20 change.
+
+ * configure.in: When checking for struct linger, #include
+ <sys/types.h> as well as <sys/socket.h>. I've never known
+ <sys/types.h> to cause any portability problems, and Solaris's
+ <sys/socket.h> needs it.
+ * configure: Rebuilt.
+
+ I think the Sun compiler has chosen a perverse way to interpret
+ ANSI declarations combined with K&R definitions. We'll
+ appease it a little bit. But when it invades France, we fight.
+ * print.c (scm_iprlist): Change 'tlr' argument to an int.
+ * print.h (scm_iprlist): Here too.
+ * numbers.c (scm_divbigdig): Change definition to match
+ declaration in numbers.h.
+ * unif.c (scm_makflo): Change definition to match declaration in
+ unif.h.
+
+ * init.c (scm_boot_guile): Don't return the value of
+ scm_boot_guile_1. This function doesn't return a value;
+ scm_boot_guile_1 doesn't return a value (or return at all).
+
+ * eval.c (unmemocopy): Add a semicolon to appease the Sun
+ compiler.
+
+ * simpos.c (SYSTNAME): Add case for AIX; otherwise it won't
+ compile. I have a feeling this function is a bad idea anyway ---
+ one should always test for features, not systems.
+
+ * smob.h (SCM_SMOBNUM, SCM_PTOBNUM): Remove extraneous
+ semicolons. Only pure luck kept this from being noticed earlier.
+
+Tue Jan 7 15:04:06 1997 Mikael Djurfeldt <mdj@kenneth>
+
+ * socket.c (scm_recvfrom): Added missing semicolon.
+
+Mon Jan 6 20:39:08 1997 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c (scm_recvfrom): allow buff_or_size to be a list containing
+ the buffer and start and end positions for scsh networking
+ implementation.
+
+Sun Jan 5 13:53:53 1997 Jim Blandy <jimb@floss.cyclic.com>
+
+ * configure.in: Revert previous change to this file; the problem
+ is due to transient automake weirdness.
+ * configure: Rebuilt.
+
+ * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in, not
+ PLUGIN/guile.libs. configure generates the latter from the former.
+ * Makefile.in: Rebuilt.
+
+ * configure.in: Call AM_PROG_INSTALL; the automake manual says we
+ need this if we install scripts, like guile-snarf.
+ * configure: Rebuilt.
+
+Thu Jan 2 01:56:38 1997 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * Makefile.am (EXTRA_DIST): Added DYNAMIC-LINKING
+
+Sat Dec 28 19:14:01 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.c (scm_addr_vector): fix faulty scm_listify.
+
+Sat Dec 28 13:55:58 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * read.c (scm_lreadr): Encountering EOF after skipping a SCSH
+ style block comment is no longer considered an error.
+
+Fri Dec 27 13:44:23 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * PLUGIN/guile.libs.in: New file.
+ * PLUGIN/guile.libs: Removed from repository.
+ * configure.in: Create PLUGIN/guile.libs from
+ PLUGIN/guile.libs.in. This is for including additonal libraries
+ needed for dynamic linking.
+ * Makefile.am (EXTRA_DIST): Distribute PLUGIN/guile.libs.in
+ instead of PLUGIN/guile.libs.
+
+ * Makefile.am: Added explicit dependency "dynl.o: dynl.x".
+
+Sun Dec 22 23:06:14 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * list.c (scm_delq_x, scm_delv_x, scm_delete_x): Delete all
+ occurrences of the given element from the list, not just the
+ first. This is how the Emacs Lisp functions behave, how the
+ analogous Common Lisp functions behave, and (I believe) how the
+ older Maclisp functions worked. I realize that this change may
+ break code, but it seemed better to break it before the Guile
+ release than after.
+
+ * gc.c (scm_protect_object, scm_unprotect_object): New functions.
+ Their prototypes were already present in gc.h, but they weren't
+ implemented.
+ (scm_init_storage): Initialize scm_protects.
+ * root.c (scm_protects): New element of scm_sys_protects.
+
+ * net_db.h (scm_init_net_db): Fix spelling from scm_init_netdb.
+
+Sat Dec 21 15:38:32 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * libguile.h: Added #include "libguile/net_db.h".
+
+ * libguile.h: Don't #include "libguile/libpath.h", contrary to Oct
+ 30 change. That file is only meant for communication between the
+ configuration process and load.c. If code linked against libguile
+ wants to get at the paths mentioned in libpath.h, it can call
+ functions declared in load.h.
+
+Sat Dec 21 14:50:42 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * libguile.h: Removed #include "libguile/fdsocket.h"
+
+ * net_db.c: Added #include <sys/socket.h>.
+
+Sat Dec 21 00:33:03 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_input_waiting_p): use select in preference to
+ FIONREAD, since the latter doesn't detect EOF.
+ Throw error if neither select nor FIONREAD available.
+
+ * socket.c (scm_connect): take a port, not a fd object.
+ (scm_fill_sockaddr): throw an error if fam is not recognised.
+ (scm_bind): use scm_fill_sockaddr.
+ (scm_listen): take a port, not a fd object.
+ (scm_accept): take and return a port. return #f in the car if
+ address can't be got
+ (scm_sock_fd_to_port): new procedure.
+ (scm_socket): use scm_sock_fd_to_port.
+ (scm_addr_vector): throw error if unrecognised address type.
+ take an extra argument with the calling procedure name.
+ (scm_getsockname): take a port. return #f if address can't be got.
+ (scm_getpeername): take a port. return #f if address can't be got.
+ (scm_recvfrom): take a port. return #f for address component if can't
+ be got.
+ (scm_sendto, scm_socketpair, scm_getsockopt scm_shutdown,
+ scm_setsockopt, scm_recv, scm_send): take a port not a fd object.
+
+Fri Dec 20 23:06:53 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * throw.c (scm_internal_catch): Make body funcs and handler funcs
+ use separate data pointers, to allow them to be designed
+ independently and reused.
+ (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message):
+ Renamed from catch_body, catch_handler, and uncaught_throw; made
+ generically useful.
+ (struct scm_catch_body_data): Renamed from catch_body_data; moved
+ to throw.h.
+ (scm_catch): Use the above.
+ (scm_throw): Don't bother printing a message for an uncaught
+ throw; we establish a default handler in init.
+ * throw.h (scm_internal_catch): Prototype updated.
+ (scm_body_thunk, scm_handle_by_proc, scm_handle_by_message): New
+ decls.
+ (struct scm_body_thunk_data): New structure, used as data
+ argument to scm_body_thunk.
+ * init.c (struct main_func_closure): New structure, packaging up
+ the data to pass to the user's main function.
+ (scm_boot_guile): Create one. Pass it to scm_boot_guile_1.
+ (scm_boot_guile_1): Pass it through to invoke_main_func. Use
+ scm_internal_catch to establish a catch-all handler, using
+ scm_handle_by_message. This replaces the special-case code in
+ scm_throw.
+ (invoke_main_func): Body function for scm_internal_catch; invoke
+ the user's main function, using the main_func_closure pointer to
+ decide what to pass it.
+ * root.c (struct cwdr_body_data): Remove handler_proc member.
+ (cwdr): Use scm_handle_by_proc instead of cwdr_handler.
+ (cwdr_handler): Removed.
+
+Thu Dec 19 00:00:26 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * socket.h (SCM_P): update bind prototype.
+ * socket.c (scm_init_socket): intern PF_UNSPEC, PF_UNIX, PF_INET.
+ include "feature.h".
+ (scm_socket): return a port, not a file descriptor object.
+ include "fports.h" and <unistd.h>
+ (scm_bind): take a port, not a file descriptor object.
+ take an extra argument for address args.
+
+ * net_db.c (scm_init_net_db): intern INADDR_ANY, INADDR_BROADCAST,
+ INADDR_NONE, INADDR_LOOPBACK.
+
+Tue Dec 17 22:58:26 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * init.c: include net_db.h and not fdsocket.h.
+ (scm_boot_guile_1): call scm_init_net_db and not scm_init_fdsocket.
+
+ * Makefile.am: corresponding changes.
+ * socket.h: renamed from fdsocket.h, fix names.
+ * net_db.h: renamed from socket.h, fix names.
+ * socket.c: renamed from fdsocket.c.
+ remove _sys from procedure names.
+ (scm_init_socket): rename from scm_init_fdsocket. include socket.x.
+ add "socket" to features list.
+ * net_db.c: renamed from socket.c.
+ remove _sys from procedure names.
+ (scm_init_net_db): rename from scm_init_socket. include net_db.x.
+ add "net-db" to features list.
+ include "net_db.h". don't include <sys/socket.h> or
+ <sys/un.h>.
+
+Thu Dec 19 14:03:24 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * tags.h (scm_tags): Removed comma at end of last enumerator.
+
+Thu Dec 19 02:54:59 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ Don't use GCC extensions to allocate space for debugging frames.
+ (Here he goes again! Why do we put up with this?!)
+ * debug.h (scm_debug_frame): Make the 'vect' member a pointer to
+ an scm_debug_info structure, not an in-line array of them. Add
+ 'info' member, to say how many vect elements we've used, for eval
+ frames.
+ * eval.c (SCM_CEVAL): Use alloca to allocate space for vect. Use
+ a new variable debug_info_end to mark the end of vect, instead of
+ the address of the 'info' pointer itself.
+ [DEVAL] (ENTER_APPLY, SCM_CEVAL, SCM_APPLY): Remove casts of
+ &debug to scm_debug_frame *; debug is a real scm_debug_frame now.
+ (SCM_APPLY): Explicitly allocate space for debug.vect.
+ * debug.c (scm_m_start_stack): Same, for vframe.vect.
+ * stacks.c: Adjusted for new debug frame structure.
+ (RELOC_INFO, RELOC_FRAME): New macros.
+ (stack_depth, read_frames): Use them, and new scm_debug_frame
+ element 'info', instead of magically knowing that eval frames have
+ an info pointer sitting after vect.
+ (scm_make_stack, scm_stack_id, scm_last_stack_frame): Use
+ RELOC_FRAME.
+ (scm_init_stacks): Formatting tweaks.
+
+Wed Dec 18 14:57:57 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ Give GCC more control flow information, so it can be sure that
+ variables aren't used uninitialized.
+ * error.h (scm_error, scm_syserror, scm_syserror_msg,
+ scm_sysmissing, scm_num_overflow, scm_out_of_range,
+ scm_wrong_num_args, scm_wrong_type_arg, scm_memory_error,
+ scm_misc_error): Tell GCC that these functions never return.
+ * struct.c (scm_struct_ref, scm_struct_set_x): If we can't figure
+ out the field type, call abort if SCM_ASSERT returns, to placate
+ the optimizer.
+ * stacks.c (scm_make_stack, scm_last_stack_frame): abort if
+ scm_wta ever returns. We can't handle this case anyway, and this
+ gives the optimizer more information.
+ * unif.c (scm_uniform_vector_ref, scm_array_set_x): Abort if
+ scm_wta ever returns.
+
+ In some cases, the code is fine, but GCC isn't smart enough to
+ figure that out; this usually happens when one variable is only
+ initialized and used when a particular condition holds true, and
+ we know that condition will never change within a given invocation
+ of the function. In this case, we simply initialize the variables
+ to placate the compiler, hopefully to a value which will cause a
+ crash if it is ever actually used.
+ * print.c (scm_iprin1): Initialize mw_pos.
+ * read.c (scm_lreadrecparen): Initialize tl2, ans2.
+ * throw.c (scm_ithrow): Initialize dynpair.
+ * unif.c (scm_uniform_vector_ref): Initialize cra.
+ * struct.c (init_struct): Initialize prot.
+ * mbstrings.c (scm_print_mb_symbol): Initialize mw_pos and inc.
+
+ * strports.c (scm_eval_0str): Don't return uninitialized garbage
+ if EXPR contains no expressions.
+
+Wed Dec 18 11:43:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * eval.c, debug.h: Revert changes of Dec 16 and Nov 21. They
+ cause an infinite loop (???). So much for the algebraic
+ equivalency of variable-sized arrays and alloca...
+
+Tue Dec 17 20:29:03 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * backtrace.c (scm_display_error): Bugfix: scm_procedure_p returns
+ a SCM boolean, not a C boolean.
+
+Sat Dec 14 23:21:45 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * gc.c (SCM_MTRIGGER_HYSTERESIS): New memory management parameter.
+ (scm_must_malloc, scm_must_realloc): Added a hysteresis to the
+ rules for raising scm_mtrigger. Previously, unfortunate but not
+ unlikely circumstances could result in almost constant invokation
+ of the gc. Now, this situations should be less likely, but they
+ are not prevented completely.
+
+Tue Dec 17 16:19:07 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * numbers.c (scm_fuck): Procedure removed; looks like old test
+ code.
+ * numbers.h: Prototype removed.
+
+Mon Dec 16 18:20:32 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * debug.h (scm_debug_frame): Change `vect' member from an in-line
+ array to a pointer, to match my Nov 21 change in eval.c.
+
+Fri Dec 13 16:12:14 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * libguile.h: Added #include "libguile/backtrace.h", #include
+ "libguile/stacks.h".
+
+ * strings.c (scm_string scm_make_string scm_string_ref
+ scm_string_set_x scm_string_equal_p scm_string_append):
+ Bugfix according to scm patch from Aubrey Jaffer:
+ Corrected long-standing
+ (not (eqv? (integer->char 128)
+ (string-ref (make-string 1 (integer->char 128)) 0)))
+ bug found by John Kozak <jk@noontide.demon.co.uk>.
+
+ * strports.c, strports.h: Make scm_eval_0str return the value of
+ the last expression evaluated (previously, it returned void).
+
+ * strports.c, strports.h: New function: scm_read_0str. Does what
+ it sounds like.
+
+Tue Dec 10 23:38:43 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * simpos.c (scm_getenv): return #f if string can't be found in the
+ environment instead of throwing an exception, for compatibility
+ with numerous other systems.
+
+Mon Dec 9 23:23:35 1996 Tom Tromey <tromey@cygnus.com>
+
+ * Makefile.am (.c.x): Use guile-snarf.
+ * configure.in (AC_OUTPUT): Generate guile-snarf; make it
+ executable.
+ * guile-snarf.in: New file, resurrected from old guile-snarf.sh.
+
+Mon Dec 9 18:36:50 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
+
+ * backtrace.c (scm_display_error_message): Made non-static, and
+ renamed from display_error_message.
+ * backtrace.h (scm_display_error_message): Added extern decl.
+ * throw.c (uncaught_throw): Use it to display the error message.
+
+Mon Dec 9 10:10:38 1996 Tom Tromey <tromey@cygnus.com>
+
+ * inet_aton.c: Use #if 0, not #ifdef 0.
+
+Mon Dec 9 06:36:48 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ioext.c (scm_sys_ftell): use scm_long2num instead of SCM_MAKINUM
+ to convert the returned value.
+ (scm_sys_fseek): use scm_num2long instead of SCM_INUM to convert
+ the offset argument.
+
+Sun Dec 8 21:06:38 1996 Jim Blandy <jimb@duality.gnu.ai.mit.edu>
+
+ Add new interface to catch/throw, usable from C as well as
+ Scheme.
+ * throw.h (scm_catch_body_t, scm_catch_handler_t): New types.
+ (scm_internal_catch): New function, replaces...
+ (scm_catch_apply): Deleted.
+ * throw.c (scm_catch_apply): Deleted; replaced with a more general
+ mechanism which is a bit more code, but can be used nicely from C
+ and implement the Scheme semantics as well.
+ (scm_internal_catch): This is the replacement; it's named after
+ the analogous function in Emacs.
+ (scm_catch): Reimplemented in terms of the above.
+ (struct catch_body_data, catch_body, catch_handler): New
+ functions, used by scm_catch.
+ * root.c (cwdr): Reimplemented in terms of scm_internal_catch.
+ (struct cwdr_body_data, cwdr_body, cwdr_handler): New functions;
+ support for new cwdr.
+
+ * Makefile.am (libpath.h): Re-incorporate Mikael's changes of Wed
+ Oct 30.
+
+Sun Dec 8 17:55:34 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * acconfig.h: Added DYNAMIC_LINKING symbol.
+ * configure.in: Add option and checks for dynamic linking.
+ * dynl.c, dynl-dl.c, dynl-dld.c, dynl-shl.c, dynl-vms.c,
+ dynl.h: New files for dynamic linking support.
+ * Makefile.am (libguile_a_SOURCES):
+ Added "dynl.c".
+ (modinclude_HEADERS): Added "dynl.h".
+ (EXTRA_DIST): Added "dynl-dl.c", "dynl-dld.c", "dynl-shl.c" and
+ "dynl-vms.c".
+ * init.c (scm_boot_guile_1): Call
+ scm_init_dynamic_linking to initialize dynamic linking support.
+
+Thu Dec 5 22:47:53 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * init.c (scm_boot_guile_1): Moved `live' variable to the toplevel
+ (as we Schemers say). It needs to be global, so that I can tweak
+ it for the proper operation of unexec.
+ (scm_boot_guile_1_live): New variable, see above.
+
+Sun Dec 1 00:00:49 1996 Tom Tromey <tromey@cygnus.com>
+
+ * guile-snarf.sh: Removed.
+ * PLUGIN/guile.libs: Added dependency for -lm.
+ * acinclude.m4: Renamed from aclocal.m4.
+ * PLUGIN/greet: Removed.
+ * Makefile.am, aclocal.m4: New files.
+ * configure.in: Updated for Automake.
+
+Thu Nov 28 00:23:55 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_definedp): Use top_level_lookup_closure_var
+ and not top_level_lookup_thunk_var.
+
+Wed Nov 27 22:04:19 1996 Jim Blandy <jimb@baalperazim.frob.com>
+
+ * Makefile.in (ancillary): List ChangeLog-scm, not ChangeLog.scm.
+
+Wed Nov 27 14:14:56 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * eval.c (scm_definedp): Incompatibly changed to be a builtin
+ Scheme function, instead of syntax. Single argument is now a
+ symbol.
+
+Thu Nov 21 20:26:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * ramap.c (scm_ra_sum, scm_ra_difference, scm_ra_product,
+ scm_ra_divide): Properly terminate statements passed as arguments
+ to IVDEP macros. (Thanks to Bernard Urban.)
+
+ * eval.c (SCM_CEVAL): Use alloca, not GCC's extensions for arrays
+ with non-constant sizes. (Thanks to Bernard Urban.)
+
+Thu Nov 21 11:17:42 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ It's an "eval closure", not an "eval thunk." A thunk is a
+ function of no arguments.
+ * root.h (struct scm_root_state): Renamed
+ top_level_lookup_closure_var from top_level_lookup_thunk_var.
+ (scm_top_level_lookup_closure_var): Renamed from
+ scm_top_level_lookup_thunk_var.
+ * root.c (mark_root): Uses changed.
+ * gdbint.c (gdb_eval, gdb_binding): Uses changed.
+ * init.c (scm_start_stack): Uses changed.
+ * eval.c (scm_eval, scm_eval_x, scm_init_eval): Rename uses.
+ Change scheme-visible name to *top-level-lookup-closure* from
+ *top-level-lookup-thunk*.
+
+Tue Nov 19 22:43:31 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
+ pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
+
+Sun Nov 10 13:35:05 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * gc.c (struct scm_heap_seg_data): Doc fixes.
+
+ * gc.c (scm_gc_sweep): Empty all segments' freelists before
+ sweeping. Then, prepend each segment's free cells to its
+ freelist, rather than wiping out the old value. (Thanks to Marius
+ Vollmer.)
+
+ * gc.c (which_seg, scm_map_free_list, scm_newcell_count,
+ scm_check_freelist, scm_debug_newcell): New functions and
+ variables, for debugging freelist problems.
+ * pairs.h (SCM_NEWCELL): New debugging version added.
+ * gc.h (scm_debug_newcell): Added extern declaration, used by
+ debugging version of SCM_NEWCELL.
+
+Sat Nov 9 19:02:46 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ On some systems <libc.h> conflicts with <unistd.h>, and should not
+ be #included at all.
+ * aclocal.m4 (GUILE_HEADER_LIBC_WITH_UNISTD): New autoconf macro.
+ * acconfig.h (LIBC_H_WITH_UNISTD_H): New CPP symbol.
+ * configure.in: Call it.
+ * posix.c, filesys.c: Use its results to decide whether or not to
+ #include <libc.h>.
+ * configure, scmconfig.h.in: Rebuilt with autoconf and
+ autoheader.
+
+Wed Nov 6 16:19:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * fports.c (scm_stdio_to_port, scm_open_file): Set the port's
+ pointer to the stdio stream before calling scm_setbuf0, so the
+ latter will be able to retrieve it. I'm surprised this didn't
+ segfault earlier. (Thanks to Christopher Lee.)
+
+Wed Nov 6 16:01:20 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * throw.c (scm_lazy_catch, scm_ithrow): Completed implementation
+ of `lazy-catch'.
+
+Sat Nov 2 21:01:48 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stacks.c, stacks.h (scm_make_stack): Now takes arbitrary
+ number of stack narrowing specifier pairs. The first specifier in
+ a pair controls inner border, the second the outer border. A
+ number means cut that number of frames, a procedure object means
+ cut until that object is found in operator position in a frame.
+
+ * root.c (cwdr): Bugfix.
+
+ * read.c: Recording of positions disabled by default.
+
+ * procs.c (scm_closure_p): New function.
+
+ * posix.c (scm_tmpnam): New function.
+
+ * load.c: Added #include "throw.h".
+ (scm_sys_search_load_path): Bugfix: Don't add an extra '/' if path
+ ends with '/'.
+
+ * load.c, load.h (scm_read_and_eval_x): New function.
+
+ * eval.c: Renamed debug option "deval" to "debug".
+
+ (scm_eval_x): `eval!' is no longer accessible from the scheme
+ level. Motivation: We can't allow operations which introduce
+ glocs into the scheme level. Guile's type system can't handle
+ these as data. Use `eval' or `read-and-eval!' as replacement.
+
+ * debug.c (scm_m_start_stack): Bugfix: Use SCM_ECONSP instead of
+ SCM_CONSP since this is a macro!; Set vframe.prev to
+ scm_last_debug_frame instead of 0. In this way we can look
+ "above" the virtual start stack frame if we wish.
+ (scm_debug_hang): New function: Useful for debugging Guile in
+ certain tricky situations. Will probably be removed later...
+
+ * debug.h: Changed semantics of debug option "backtrace". This
+ option now only indicates whether we want automatic backtrace at
+ an error.
+
+Wed Oct 30 00:31:55 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * ports.c: #include "filesys.h"
+ (scm_char_ready_p): input_waiting renamed and moved to filesys.c.
+
+ * filesys.c, filesys.h (scm_input_waiting_p): Moved from ports.c.
+ Motivation: This is system specific code which is related to file
+ I/O. It also may use select. Added code by Gary Houston to
+ detect presence of character in stdio buffers.
+
+ * libguile.h: #include "libguile/libpath.h"
+
+ * Makefile.in (libpath.h): Renamed definition of: LIBRARY_PATH -->
+ SCM_LIBRARY_DIR; Added definitions of: SCM_PKGDATA_DIR,
+ SCM_SITE_DIR; Install libpath.h among the other include files.
+
+ * load.c, load.h (scm_sys_package_data_dir): New function.
+
+Mon Oct 28 11:43:41 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stacks.h: Bugfix: Don't use tail-array length field as stack
+ length field! This screwed GC.
+
+Tue Oct 22 01:01:00 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * _scm.h: Added #ifndef around definition of macros min and max.
+
+ * __scm.h: Added hooks for threads to plugin to in ints protection
+ macros: SCM_THREAD_DEFER, SCM_THREAD_ALLOW, SCM_THREAD_REDEFER,
+ SCM_THREAD_ALLOW_1, SCM_THREAD_ALLOW_2. Motivation: We don't want
+ the main code in these macros duplicated and spread over multiple
+ files. Renamed SCM_THREADS_SWITCHING_CODE ->
+ SCM_THREAD_SWITCHING_CODE.
+
+Tue Oct 29 14:55:40 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * snarf.h: New file.
+ * guile-snarf.sh: New file.
+ * Makefile.in (inner_h_files): Added snarf.h
+ (ancillary, install, uninstall, distclean): Added actions for
+ guile-snarf.
+ (.c.x): Use guile-snarf.
+ (guile-snarf): New rule, to produce guile-snarf from guile-snarf.sh.
+ (gen_c_files): Note that these depend on guile-snarf.
+ * _scm.h: Removed the snarfing macros (SCM_PROC, etc). They are
+ now in "snarf.h". Added #include "snarf.h" to get them.
+ * libguile.h: Added #include "snarf.h".
+ (Patches applied and tweaked by Jim Blandy.)
+
+Tue Oct 29 13:21:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * socket.c: Use K&R style declaration for 'close'; the GNU coding
+ standards suggest against providing prototypes for system
+ functions. Thanks to Greg Troxel.
+
+Mon Oct 28 16:48:32 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * strports.c (scm_eval_0str): New function.
+ #include "read.h", to get prototype for scm_read.
+ * Makefile.in (strports.o): Update dependencies.
+ * strports.h: New prototype.
+
+ * numbers.c (scm_integer_p): Renamed from scm_int_p; change its
+ scheme name from "int?" to "integer?". It seems to do the job.
+ * numbers.h: Rename prototype too.
+ * scmhob.h (intp): Change definition to refer to scm_integer_p. I
+ hope this is right.
+
+ * numbers.c (scm_less_p, scm_gr_p, scm_leq_p, scm_geq_p,
+ scm_num_eq_p): Rename these according to R4RS conventions: call
+ them <, <=, =, >, and >=, not <?, <=?, =?, >?, and >=?. En route
+ to making libguile R4RS compliant without ice-9...
+
+ * load.c (scm_sys_search_load_path): Search for files under all
+ extensions listed in the %load-extensions variable. If FILENAME
+ is absolute, return it unchanged, without searching the load path.
+ (scm_loc_load_extensions): New variable, pointing to
+ %load-extensions' value cell.
+ (scm_init_load): Initialize it, and the value it points to.
+ (scm_primitive_load_path): Improve error reporting.
+
+ * load.c (scm_loc_load_hook): New variable, pointing to value cell
+ of new Scheme variable %load-hook.
+ (scm_primitive_load): Apply %load-hook to filename.
+
+Mon Oct 28 06:28:28 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * configure.in: add tests for figuring out whether buffered data
+ is available in a FILE structure, which is needed by char-ready.
+
+ * acconfig.h: define FILE_CNT_FIELD, FILE_CNT_GPTR and
+ FILE_CNT_READPTR.
+
+ * simpos.c (scm_getenv): renamed from scm_sys_getenv. Throw
+ exceptions using misc_error instead of syserror. It seems a bit
+ odd to throw an exception if a string can't be found in the
+ environment, but it's consistent with open-file, stat etc.
+ (simpos.h): remove sys_ from getenv.
+
+ * posix.c (scm_putenv): renamed from scm_sys_putenv. If an error
+ occurs, throw an error instead of returning errno. Return value
+ is now unspecified.
+ (numerous in posix.c and posix.h): removed superfluous sys_ from names.
+
+Sun Oct 27 01:22:04 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_stat2scm): derive file type and permissions from
+ the stat mode and append them to the returned vector.
+ There isn't much overhead in doing this and it avoids the need to
+ work with S_IRUSR et al. in Scheme.
+ Define symbols scm_sym_regular etc.
+ (scm_init_filesys): don't intern S_IRUSR etc.
+
+ * load.c: change s_try_load and s_try_load_path to s_primitive_load
+ and s_primitive_load_path.
+
+ * eval.c, load.c, error.c (scm_wta): use scm_misc_error.
+
+ * error.h: don't declare error symbols. prototype for scm_misc_error.
+
+ * stackchk.c (scm_stack_overflow_key): defined here instead of in
+ error.c.
+
+ * error.c: use SCM_SYMBOL to set up error keys.
+ scm_misc_error: new procedure.
+
+Fri Oct 25 01:56:30 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * read.c (scm_lreadr): Recognize SCSH-style block comments; text
+ between `#!' and `!#' is ignored.
+ (skip_scsh_block_comment): New function.
+
+ * feature.c (scm_set_program_arguments): New argument, FIRST.
+ * feature.h: Update prototype.
+ * init.c (scm_boot_guile_1): Pass new argument to
+ scm_set_program_arguments.
+
+Tue Oct 22 20:54:42 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * init.c (scm_start_stack): Don't initialize scm_progargs here.
+ (scm_boot_guile): Call scm_set_program_arguments here, later than
+ the old initialization.
+
+ * init.c: (scm_boot_guile, scm_boot_guile_1): New, simplified
+ initialization procedure.
+ - Delete in, out, err arguments; there are other perfectly good
+ ways to override these when desired.
+ - Delete result argument; this function shouldn't ever return.
+ - Rename init_func argument to main_func, for less confusion.
+ - Delete boot_cmd argument; main_func is more general.
+ -Add 'closure' argument, to help people pass data to main_func
+ without resorting to global variables.
+ - Abort if reentered; don't bother returning an error code.
+ - Call scm_init_standard_ports to set up the default/current
+ standard ports; no need to pass them to scm_start_stack.
+ - Remove code to evaluate the boot_cmd, and start the repl; let
+ the user do something like that in main_func if they want.
+ - Remove code to package up a return value; main_func can do any
+ of that as needed.
+ - Call exit (0), instead of returning.
+ (scm_start_stack): Don't initialize the I/O ports here; that's
+ weird. Delete in, out, err arguments. Move guts to
+ scm_init_standard_ports, scm_stdio_to_port.
+ (scm_init_standard_ports): New function, to set up current and
+ default standard ports.
+ (scm_start_stack, scm_restart_stack): Make these static.
+ * init.h (scm_boot_guile): Adjust declaration.
+ (scm_start_stack, scm_restart_stack): Remove externally
+ visible declarations for these.
+ (enum scm_boot_status): Removed; now scm_boot_guile never returns.
+
+ * fports.c (scm_stdio_to_port): New function. Its guts used to be
+ written out several times in scm_start_stack.
+ * fports.h: New declaration for the above.
+
+ * feature.c (scm_set_program_arguments): New function.
+ * feature.h: New declaration for the above.
+
+ * ports.c: Formatting tweak.
+
+Sun Oct 20 03:29:32 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * pairs.h, eval.c, eval.h, feature.c, gc.c, list.c, load.c,
+ ramap.c, symbols.c: Added new selectors SCM_CARLOC and SCM_CDRLOC
+ for obtaining the address of a car or cdr field. Motivation:
+ &SCM_CXR make assumptions about the internal structure of the
+ SCM_CXR selectors.
+
+ * eval.h, eval.c: Added new selector SCM_GLOC_VAL_LOC.
+ Motivation: see SCM_CXRLOC.
+
+ * pairs.h, eval.c, gc.c, init.c, ioext.c, ports.c, ports.h,
+ srcprop.h, tags.h, throw.c, unif.c: Added new selectors
+ SCM_SETAND_CAR, SCM_SETAND_CDR, SCM_SETOR_CAR and SCM_SETOR_CDR.
+ Motivation: Safer use. Some other macros are defined in terms of
+ these operations. If these are defined using the SCM_SETCXR
+ (<e1>, SCM_CXR (<e1>) <op> <e2>) pattern a complex <e1> will lead
+ to inefficiency and an <e1> with side-effects could potentially
+ break. Also, these particular operations are heavily utilized in
+ the garbage collector. In unoptimized code there will be a
+ measurable speedup.
+
+ * alist.c, arbiters.c, continuations.c, debug.c, debug.h, eval.c,
+ eval.h, feature.c, filesys.c, fports.c, gc.c, gsubr.c, init.c,
+ ioext.c, kw.c, list.c, load.c, mallocs.c, numbers.c, numbers.h,
+ pairs.c, pairs.h, ports.c, ports.h, posix.c, procprop.c, procs.c,
+ procs.h, ramap.c, read.c, root.c, srcprop.c, srcprop.h,
+ strports.c, symbols.c, tags.h, throw.c, unif.c, variable.c,
+ vports.c: Cleaned up use of pairs: Don't make any special
+ assumptions about the internal structure of selectors and
+ mutators: SCM_CXR (<e1>) = <e2> --> SCM_SETCXR (<e1>, <e2>),
+ SCM_CXR (<e1>) &= <e2> --> SCM_SETAND_CXR (<e1>, <e2>) etc.
+ (Among other things, this change makes it easier to build Guile
+ with certain compilers which have problems with casted lvalues.)
+
+Fri Oct 18 01:11:56 1996 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
+
+ * stacks.c: Improve selection of relevant stack frames when making
+ a stack object. Introduce one level of indirection in the stack
+ object to make it possible to "narrow" to a certain region of the
+ stack. This facilitates making use of more clever algorithms (not
+ implemented) for selecting relevant frames and gives a cleaner
+ design since selection of frames can be done independently of
+ extraction of frames from the real stack.
+ (scm_stack_id): Also take #t as argument which means look at
+ current stack.
+
+ * stacks.h: In struct scm_stack: Turn field frames into a pointer.
+ Turn n_tail into an integer directly representing current number
+ of frames in stack. Add field tail.
+
+ * ports.c (scm_port_line_x, scm_port_column_x): New mutators.
+
+ * debug.c (scm_make_memoized): Made it available at scheme level.
+ (scm_unmemoize, scm_memoized_environment): Bugfix: Check for
+ SCM_NIMP before applying heavier predicates in argument checking.
+ (scm_local_eval): Also take memoized object as argument.
+
+ * backtrace.c (scm_display_error): Just a safety measure: Stacks
+ aren't created with zero length, but should such a strange
+ creature suddenly turn up...
+
+Wed Oct 16 11:08:41 1996 Marius Vollmer <mvo@zagadka.ping.de>
+
+ * hashtab.h (scm_hashx_remove_x): Renamed `delete' parameter to
+ `del', for the sake of C++ compilers. (Patch applied by JimB.)
+
+Tue Oct 15 17:06:13 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * variable.c (scm_make_variable): Make the name hint optional, as
+ documented.
+ (anonymous_variable_sym): Renamed from variable_sym. All uses
+ changed.
+
+ * load.c (scm_primitive_load, scm_primitive_load_path): Renamed
+ from scm_sys_try_load and scm_sys_try_load_path. The Scheme name
+ of scm_primitive_load_path was also changed to
+ "primitive-load-path", from "%try-load-path". Callers changed.
+ We'd like to respect the convention that a function named
+ "try-mumble" should behave just like the function called "mumble",
+ but return #f instead of signalling some error.
+ * load.h: Rename prototypes.
+
+Tue Oct 15 05:34:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * print.c (make_print_state, grow_print_state), print.h: Modified
+ the print state representation: Don't use a tail array for
+ recording of circular references. Resizing of the print state
+ structure invalidates the print state pointer. To avoid passing
+ around an indirect print state reference to all printing
+ functions, we instead let the print state reference a resizable
+ vector.
+
+Mon Oct 14 19:25:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * alist.c (scm_sloppy_assq, scm_sloppy_assv, scm_sloppy_assoc):
+ Don't crash when passed an improper list terminated by a
+ non-immediate value.
+
+Mon Oct 14 19:08:33 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ Allocate data for structures on an eight-byte boundary, as
+ required by the tagging system.
+ * struct.c (alloc_struct): New function.
+ (scm_make_struct, scm_make_vtable_vtable): Call it.
+ * struct.h (scm_struct_n_extra_words): Bump to 3.
+ (scm_struct_i_ptr): New "field".
+ * gc.c (scm_gc_sweep): When we need to free the data, use the
+ information stored by alloc_struct to find the beginning of the
+ block allocated to the structure, so we can free it.
+
+Mon Oct 14 17:07:55 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * init.c (scm_boot_guile_1): Moved scm_init_struct in front of
+ scm_init_stacks.
+
+ * debug.h (SCM_VOIDFRAME, SCM_VOIDFRAMEP): New macros.
+ (scm_debug_info): New member: id.
+
+ * stacks.c: Stacks are now represented as structs; Stacks have an
+ id given to them by `start-stack'.
+ (scm_last_stack_frame): Added predicates `stack?' and `frame?'.
+
+ * stacks.h: Added declarations of scm_stack_p and scm_frame_p;
+ Changed stack representation.
+
+ * debug.c (scm_procedure_name): Try procedure property `name' for
+ compiled closures aswell.
+
+ * gc.c (scm_init_storage): Initialize scm_stand_in_procs to SCM_EOL.
+
+ * eval.c: scm_i_name moved to gsubr.c
+ (scm_m_define): Record names of all kinds of procedure
+ objects. (Earlier, only closures were recorded.)
+
+ * procprop.h: Added declaration of scm_i_name.
+
+ * gsubr.c: Added global scm_i_name. Added #include "procprop.h".
+ (scm_make_gsubr): Record names of compiled closures.
+
+Mon Oct 14 04:21:51 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * debug.c, debug.h: Removed obsolete code.
+
+ * continuations.c, continuations.h, debug.c, gc.c, init.c, root.c,
+ stacks.c: Renamed regs --> scm_contregs.
+
+ * print.c (scm_free_print_state): Cleanup print state before
+ returning it to pool. It is better to do it here than in
+ scm_prin1 since scm_prin1 is called often.
+
+ * srcprop.c (scm_source_properties, scm_set_source_properties_x,
+ s_set_source_property_x): Check that first argument is a pair or a
+ memoized object.
+
+ * srcprop.c, srcprop.h: Made scm_i_filename, scm_i_copy,
+ scm_i_line, scm_i_column and scm_i_breakpoint global.
+
+ * init.c: Added #include "backtrace.h" and #include "stacks.h".
+ (scm_boot_guile_1): Added calls to scm_init_backtrace and
+ scm_init_stacks.
+
+ * debug.h: Added debug object smob declaration and macro
+ definitions.
+
+ * configure.in: Build with backtrace.o and stacks.o if debug
+ support enabled.
+
+ * Makefile.in: Added entries for new files: backtrace.c,
+ backtrace.h, stacks.c and stacks.h.
+
+ * symbols.c (scm_sym2ovcell): Fixed documentation.
+
+ * _scm.h (min, max): Added.
+
+ * async.c: Moved `min' macro to _scm.h.
+
+ * debug.h: New debug options SCM_BACKTRACE_MAXDEPTH and
+ SCM_BACKTRACE_INDENT.
+
+ * eval.c: Added new debug options `maxdepth' and `indent'.
+
+ * print.c (make_print_state): Bugfix: Initialize pstate->ceiling.
+
+ * print.h: Added selector SCM_PRINT_STATE.
+
+ * print.c: New functions: scm_make_print_state,
+ scm_free_print_state.
+
+ * print.h: Added declarations for scm_make_print_state,
+ scm_free_print_state.
+
+ * debug.c (scm_m_start_stack): New acro.
+
+ * debug.h: Small cleanup.
+
+ * init.c (scm_boot_guile_1): Moved scm_init_debug below
+ scm_init_eval.
+
+Sun Oct 13 20:14:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * __scm.h, alist.c, alist.h, append.c, append.h, appinit.c,
+ arbiters.c, arbiters.h, async.c, async.h, boolean.c, boolean.h,
+ chars.c, chars.h, continuations.c, continuations.h, debug.c,
+ debug.h, dynwind.c, dynwind.h, eq.c, eq.h, error.c, eval.c,
+ eval.h, extchrs.c, extchrs.h, fdsocket.c, fdsocket.h, filesys.c,
+ filesys.h, fports.c, fports.h, gc.c, gdb_interface.h, gdbint.c,
+ gdbint.h, genio.c, genio.h, gscm.c, gscm.h, gsubr.c, gsubr.h,
+ hash.c, hash.h, hashtab.c, hashtab.h, init.c, ioext.c, ioext.h,
+ kw.c, kw.h, libguile.h, mallocs.c, mallocs.h, markers.c,
+ markers.h, mbstrings.c, mbstrings.h, numbers.c, numbers.h,
+ objprop.c, objprop.h, options.c, options.h, pairs.c, pairs.h,
+ ports.c, ports.h, posix.c, posix.h, print.c, print.h, procprop.c,
+ procprop.h, procs.c, procs.h, ramap.c, ramap.h, read.c, read.h,
+ root.c, scmsigs.c, scmsigs.h, sequences.c, sequences.h, simpos.c,
+ simpos.h, smob.c, socket.c, socket.h, srcprop.c, srcprop.h,
+ stackchk.c, stackchk.h, stime.c, stime.h, strings.c, strings.h,
+ strop.c, strop.h, strorder.c, strorder.h, strports.c, strports.h,
+ struct.c, struct.h, symbols.c, symbols.h, tag.c, tag.h, unif.c,
+ unif.h, variable.c, variable.h, vectors.c, vectors.h, version.c,
+ version.h, vports.c, vports.h, weaks.c, weaks.h: Use SCM_P to
+ declare functions with prototypes. (Patch thanks to Marius
+ Vollmer.)
+
+ More prototype-related changes from Marius Vollmer:
+ * gdb_interface.h: Wrapped header file in #ifdef/#endif
+ * gscm.h (gscm_run_scm): Added prototype for `initfn' paramter.
+ * ports.h (ptobfuns): Added prototypes. This means some casting in
+ fports.c.
+ * fports.c: Added casts for initializations, since the functions
+ are defined to take FILE * as their stream argument, not SCM.
+ * fdsocket.c, fdsocket.h: Made `init_addr_buffer' static.
+ * genio.c (scm_gen_puts): Changed `unsigned char *str_data' parameter
+ to `char *str_data' to conform to prototype.
+
+Sat Oct 12 21:49:29 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * error.c, eval.c, load.c, stackchk.c: use scm_error not lgh_error.
+
+ * __scm.h (lgh_error): removed, lgh shouldn't be in libguile.
+
+ * stime.c, stime.h: use SCM_P method.
+
+Sat Oct 12 16:16:25 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c (scm_nconc2last): Don't accept an empty list; apply must
+ be given at least two arguments. Insist that lst's last element
+ be a list, but don't make any requirements of its predecessors.
+
+Fri Oct 11 03:58:25 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * eval.c (scm_nconc2last): Revert last change; there seems to be
+ other stuff going on here.
+
+Fri Oct 11 02:43:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * eval.c (scm_nconc2last): Make sure that each element of lst
+ (which is a list of argument lists, except for the tail) is a
+ proper list, i.e., finite and terminated by '().
+
+Thu Oct 10 21:09:13 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * unif.c (scm_ra_set_contp): Localize `inc' declaration.
+ Clarifies flow.
+
+ * struct.c (scm_make_struct, scm_make_vtable_vtable): Use the
+ symbolic name for the tag, scm_tc3_cons_gloc, instead of just
+ saying "1".
+
+ * vectors.c (scm_make_vector): Fill vectors with the undefined
+ value, to help make Guile Scheme code more portable to other
+ Schemes.
+
+ * symbols.c (scm_intern_obarray_soft, scm_sysintern): Doc fixes.
+ * symbols.h, tags.h: Doc fixes.
+
+Wed Oct 9 19:39:29 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * async.c (scm_take_signal): Doc fixes.
+
+Mon Oct 7 22:30:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * numbers.c (scm_divbigint): When the remainder is zero, we don't
+ want to subtract it from the modulus; we just want to leave it
+ alone.
+
+Mon Oct 7 00:14:17 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * init.c (scm_boot_guile_1): Bugfix: i --> base in argument to
+ `scm_init_threads'.
+
+ * throw.h (scm_catch_apply): Removed the `lazyp' argument.
+
+ * throw.c (scm_catch_apply): Finished implementation of
+ `lazy-catch'.
+
+Sun Oct 6 05:26:05 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scm_sys_select): move SCM_ALLOW_INTS past the sreturn
+ check.
+ (scm_init_filesys): set "i/o-extensions" feature.
+ include feature.h.
+
+Sat Oct 5 12:22:00 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in (root.o): Correct dependencies.
+
+Sat Oct 5 18:40:42 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * Makefile.in: Added dependency entry for root.o.
+
+ * continuations.c, debug.[ch], eval.c, gscm.c init.c, root.c,
+ throw.c: Renamed last_debug_info_frame -> scm_last_debug_frame.
+
+ * init.c (scm_start_stack): Set initial root continuation number
+ to 0.
+
+ * procs.c: New function: scm_thunk_p.
+
+ * procs.h: Added declarations of scm_thunk_p.
+
+ * root.c: Renamed `call-with-new-root' -->
+ `call-with-dynamic-root'.
+ (cwdr): Removed allocation of new root state. This should be done
+ separately by use of scm_make_root.
+ (scm_apply_with_dynamic_root): New function: Does what it
+ sounds like. Needed when spawning threads.
+
+ * root.h: Added member last_debug_frame to root state.
+ Added #include "libguile/debug.h"
+
+ * throw.c: Renamed scm_catch --> scm_catch_apply and added more
+ arguments. The motivation is that code in root.c needs catch
+ functionality, and we want to avoid code duplication.
+ New functions: scm_catch, scm_lazy_catch. These are wrappers for
+ scm_catch_apply. scm_lazy_catch is intended to introduce catch
+ handlers that run without popping the stack into the dynwind
+ chain.
+
+ * throw.h: Added prototypes for scm_catch_apply and
+ scm_lazy_catch.
+
+Thu Oct 3 11:12:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * root.h (scm_root, scm_set_root): Decouple thread support details
+ by introducing the selector SCM_THREAD_LOCAL_DATA and the mutator
+ SCM_SET_THREAD_LOCAL_DATA.
+
+ * print.c (scm_iprlist): Bugfix: Added SCM_ECONSP tests in hare
+ and tortoise scanning loop.
+
+Thu Oct 3 00:04:53 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * Makefile.in: Rebuild dependencies.
+
+ * libguile.h: #include "libguile/print.h" before "smob.h", since
+ the latter uses the print_state structure.
+
+ * throw.c (scm_ithrow): Use the correct variable when checking to
+ see if a given element of scm_dynwinds is a valid catch.
+
+ * throw.c (scm_ithrow): If scm_dynwinds has invalid list
+ structure, abort; don't just silently ignore the garbage.
+
+ * _scm.h: #include "print.h" here, since it seems to be used just
+ about everywhere.
+ * eval.c, gdbint.c, genio.h, numbers.h, smob.h, srcprop.c,
+ strports.c, unif.h: Don't #include "print.h".
+
+Tue Oct 1 05:15:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * feature.h (scm_loc_features): Removed external declaration.
+ (Bug fix suggested by Petr Adamek <adamek@mit.edu>.)
+
+Tue Oct 1 00:00:10 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * feature.c (scm_init_feature): Added threads feature (needs to be
+ initialized here, since features doesn't exist when
+ scm_init_threads is called).
+
+ * libguile.h: Added #include "libguile/../threads/threads.h".
+ (This is a kludge to get thread support working. This should be
+ fixed.)
+
+ * configure.in, acconfig.h: Added flags for thread support.
+
+ * scmsigs.c: Define `signal' to be `pthread_signal' if using
+ mit-pthreads.
+
+ * gc.c (scm_igc): Added SCM_THREAD_CRITICAL_SECTION_START and
+ SCM_THREAD_CRITICAL_SECTION_END. Moved marking of root data to
+ root.c:mark_root.
+
+ * _scm.h: Added conditional #include "threads.h"
+
+ * __scm.h (SCM_ASYNC_TICK): Added call to macro
+ SCM_THREADS_SWITCHING_CODE.
+
+ * init.c (scm_start_stack): Call `scm_make_root' to dynamically
+ allocate the basic dynamic root object.
+ (scm_boot_guile): Added call to scm_init_root.
+
+ * root.c, root.h: Added root smob.
+ (cwdr, scm_call_with_new_root, scm_dynamic_root, scm_app_wdr): New
+ functions: Implements dynamic roots mostly according to spec in
+ SCM manual. Main difference is that the second argument is a
+ throw handler rather than an error "thunk".
+
+ * root.h: Added declaration of scm_init_root.
+
+ * root.c: Added #include "genio.h", #include "smob.h", #include
+ "pairs.h", #include "throw.h", #include "dynwind.h", #include
+ "eval.h"
+ (scm_init_root): Added #include "root.x".
+
+ * throw.c: Added #include "stackchk.h"
+ (scm_catch): Changed SCM_DEFER_INTS --> SCM_REDEFER_INTS and
+ SCM_ALLOW_INTS --> SCM_REALLOW_INTS. This is so that scm_catch
+ can be used in scm_call_with_new_root; Added reenabling of stack
+ checking when catching a throw.
+
+Mon Sep 30 21:48:11 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * list.c, list.h: Use SCM_P instead of CPP hair. Doc fixes.
+
+ * list.c (scm_member, scm_memv, scm_memq): Return #f if a matching
+ element is not found, as per R4RS.
+
+Sat Sep 28 18:13:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * list.c: Doc fixes throughout.
+
+Sat Sep 28 02:07:43 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * strings.c, strings.h: (scm_makfrom0str, scm_makefrom0str_opt:
+ declare the char * to be const. Avoids a warning in rgx.c.
+
+ * ports.h: spelling fix.
+
+ * filesys.c (scm_sys_stat, scm_sys,lstat): include file name in
+ error messages.
+
+ * load.c (scm_sys_try_load_path): throw an error if file not found
+ (like it says it in NEWS).
+
+Fri Sep 27 18:27:01 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * symbols.c (scm_intern_obarray_soft): Initialize the new symbol's
+ PROPS slot to '(), not #f; it's an empty alist.
+
+ * throw.h, throw.c: Use SCM_P instead of #if hair.
+
+ Remove special support for uncaught throws; see throw.c for
+ rationale.
+ * throw.c (uncaught_throw): New function.
+ (scm_ithrow): Call uncaught_throw if we don't find a throw
+ target; don't mess with scm_bad_throw_vcell.
+ (scm_bad_throw_vcell): Variable deleted.
+ (scm_init_throw): Don't initialize it.
+
+ * throw.c (scm_ithrow): Don't let outer key matches shadow inner
+ #t catches.
+
+Wed Sep 25 04:35:50 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * numbers.c (scm_istr2int): If the number is short (as most
+ numbers are), just call scm_small_istr2int to deal with it.
+ (scm_small_istr2int): New function, created by un-#ifdefing the
+ non-bignum version of scm_istr2int and renaming it.
+
+Tue Sep 24 06:48:38 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * load.c (scm_sys_try_load): don't check whether value returned
+ by scm_open_file is #f, it won't be. Always return SCM_UNSPECIFIED.
+ Change the Scheme name from %try-load to primitive-load.
+
+ * error.c (scm_error): convert a NULL message to SCM_BOOL_F.
+ Can avoid passing a message, allowing it to be derived in the
+ error handler (e.g., if we want to throw to the key both from
+ Scheme and C).
+
+Mon Sep 23 00:42:15 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * print.c (scm_iprin1, scm_prin1, scm_iprlist): Circular
+ references now have a new appearance which is more compact and
+ also gives a clue about what the target of the reference is.
+ By setting parameters in the print state, more fancy printing can
+ be achieved. This is used by the (not yet commited) backtrace
+ code.
+
+Sun Sep 22 17:10:06 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * eval.c, numbers.h, unif.h, smob.h, srcprop.c: Added #include
+ "print.h"
+
+ * print.c: Added #include "struct.h". Removed function
+ scm_prlist.
+
+ * print.h: Modified prototypes for scm_iprlist, scm_prin1 and
+ scm_iprin1. Removed prototype for scm_prlist.
+
+ * arbiters.c (prinarb),
+ async.c (print_async),
+ debug.c (prindebugobj, prinmemoized),
+ eval.c (prinprom, prinmacro),
+ filesys.c (scm_fd_print, scm_dir_print),
+ kw.c (print_kw),
+ mallocs.c (prinmalloc),
+ numbers.c, numbers.h (scm_floprint, scm_bigprint),
+ smob.h (scm_smobfuns),
+ srcprop.c (prinsrcprops),
+ throw.c (prinjb),
+ unif.c, unif.h (scm_raprin1, rapr1),
+ variable.c (prin_var): Changed argument `int writing' to
+ `scm_print_state *pstate'.
+
+ * init.c (scm_boot_guile): Moved scm_init_struct upwards so
+ that it will be called before scm_init_print.
+
+ * print.c (scm_prin1): Print states are now allocated when calling
+ scm_prin1 and then passed around to all printing functions as an
+ argument. A cache `print_state_pool' enables reuse of print
+ states.
+ (scm_make_print_state): New function.
+ (scm_iprin1): Adaption to print states.
+ (scm_iprlist): An initial "hare and tortoise" scan brings down
+ time complexity to O (depth * N). (Better time complexity will be
+ achieved when the printing code is completely rewritten.)
+
+Fri Sep 20 22:01:36 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * aclocal.m4 (GUILE_STRUCT_UTIMBUF): Use AC_CACHE_CHECK instead of
+ AC_CACHE_VAL; #define UTIMBUF_NEEDS_POSIX outside AC_CACHE_VAL, so
+ it gets done whether or not the cache variable has a value.
+
+Thu Sep 19 17:06:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ Distinguish #f and ().
+ * __scm.h: #undef SICP.
+ * pairs.h (SCM_EOL): Delete this definition, equating it with
+ SCM_BOOL_F.
+ * tags.h (SCM_EOL): Give it a new definition here; I think I found
+ the value it used to have. Doc fixes, too.
+
+Thu Sep 19 15:33:51 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * struct.c (scm_make_struct_layout, init_struct, scm_struct_ref,
+ scm_struct_set_x), struct.h, gc.c (scm_gc_mark): Completed Tom
+ Lord's implementation of structs, allowing for tail arrays as
+ described in the manual. Also fixed some bugs. (Both the interface
+ and the implementation should be improved.)
+
+ * read.c (scm_init_read): Removed #ifdef READER_EXTENSIONS
+
+ * print.c, print.h: Closures now print like #<procedure foo (x)>.
+ People who whish to see the source can do `(print-enable 'source)'.
+ Removed #ifdef DEBUG_EXTENSIONS.
+
+Thu Sep 19 00:00:29 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * filesys.c (scsm_sys_stat): don't SIGSEGV if argument is an
+ integer (assuming for now accepting an integer is a good thing).
+
+ * error.c, fports.c: replace use of %S in lgh_error args with %s.
+ %S will be used instead for write'ing arguments.
+
+ * unif.c (scm_transpose_array): change arguments in the SCM_WNA
+ asserts. fix a few other asserts.
+ (scm_aind, scm_enclose_array, scm_array_in_bounds_p,
+ scm_uniform_vector_ref, scm_array_set_x,
+ scm_dimensions_to_unform_array): change args in
+ SCM_WNA SCM_ASSERTS and change scm_wta's to scm_wrong_num_args.
+ strop.c (scm_substring_move_left_x, scm_substring_move_right_x,
+ scm_substring_fill_x): likewise.
+ gsubr.c (scm_gsubr_apply): likewise.
+ eval.c (SCM_APPLY): likewise.
+
+ * eval.c (4 places): replace scm_everr with lgh_error or
+ scm_wrong_num_args.
+
+ * error.c, error.h (scm_wrong_num_args, scm_wrong_type_arg,
+ scm_memory_error): new procedures.
+ scm_everr: deleted. can use scm_wta, dropping first two args.
+ scm_error: convert NULL subr to SCM_BOOL_F.
+
+ * __scm.h: don't define SCM_STACK_OVFLOW, SCM_EXIT, SCM_ARG6, SCM_ARG7,
+ SCM_ARGERR.
+
+ * stackchk.c (scm_report_stack_overflow): use lgh_error instead
+ of scm_wta.
+
+ * error.c, error.h: new error keys: scm_arg_type_key,
+ scm_args_number_key, scm_memory_alloc_key, scm_stack_overflow_key,
+ scm_misc_error_key.
+ scm_wta: reimplement using lgh_error instead of scm_everr.
+
+Wed Sep 18 17:13:35 1996 Mikael Djurfeldt <mdj@kenneth>
+
+ * gdbint.c: scm_lread now has one more argument.
+
+ * ports.c, ports.h: Name change: scm_\(line\|column\)_number -->
+ scm_port_\1; Added mutator scm_set_port_filename_x (used when
+ loading source from non-file ports, which, e. g., happens when
+ using the Emacs interface).
+
+ * fports.c (scm_open_file): Don't call scm_makfrom0str on a scheme
+ object.
+
+ * read.c: Added code for recording of positions of source code
+ expressions; New functions: recsexpr, scm_lreadrecparen;
+ _scm_make_srcprops --> scm_make_srcprops
+ (scm_flush_ws): Removed updating of positions counters. This work
+ is already done by scm_gen_getc
+
+ * read.h: Added prototype for scm_lreadrecparen
+
+ * print.c: Added #include "alist.h"
+
+ * eval.c: Added #include "hash.h"
+
+ * eq.c: Added #include "ramap.h"
+
+ * options.c: Documentation fixes.
+
+ * srcprop.c (scm_finish_srcprop): Bugfix: update ptr.
+ (scm_init_srcprop): Adjusted size of initial source-whash. Name
+ changes: tc16_srcprops --> scm_tc16_srcprops, _scm_make_srcprops
+ --> scm_make_srcprops
+
+ * srcprop.h: Name changes: tc16_srcprops --> scm_tc16_srcprops,
+ _scm_make_srcprops --> scm_make_srcprops; Remove one layer of
+ function calls in the definition of the whash access macros.
+
+Tue Sep 17 11:33:16 1996 Lee Iverson <leei@Canada.AI.SRI.COM>
+
+ * init.c (scm_boot_guile): Add level of indirection to
+ scm_boot_guile_1() to ensure that stack base pointer is properly
+ initialized. There was no guarantee that variable i was the
+ highest/lowest variable on stack (i.e. the call frame of
+ scm_boot_guile was not completely protected from gc).
+
+Tue Sep 17 01:40:56 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.h (scm_port_table): put back file_name, it will be used to
+ support debugging. Undo related changes in fports.c, ioext.c,
+ ports.c, gc.c.
+
+Sun Sep 15 03:58:29 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * ports.h (scm_port_table): remove file_name member for now, it seems
+ undesirable.
+ * fports.c (scm_open_file): don't set file_name in PTAB.
+ (prinfport): don't use file_name in PTAB.
+ * ioext.c (scm_sys_duplicate_port): don't set file_name in PTAB.
+ * ports.c (scm_add_to_port_table): don't intialize file_name.
+ (scm_port_file_name): remove for now.
+ * gc.c (scm_gc_mark): don't mark PTAB file_name.
+
+ * fports.h (scm_mkfile): prototype deleted.
+ * fports.c (scm_mkfile): merged into scm_open_file to simplify.
+
+ * debug.c, unif.c: use scm_out_of_range instead of
+ wta for range errors (ASSERT still needs work).
+
+ * error.c, error.h (scm_out_of_range): new procedure.
+
+ * error.c, error.h (scm_out_of_range_key): new key.
+
+ * posix.c (scm_sync): #else was missing.
+
+ * error.c, error.h: append _key to names scm_num_overflow and
+ scm_system_error.
+
+ * __scm.h (SCM_SYSMISSING, SCM_NUM_OVERFLOW): use SCM_BOOL_F instead
+ of consing an empty list.
+ (SCM_SYSERROR etc.): move into error.c, make them procedures instead
+ of macros, saves code and string space.
+ error.c, fports.c, numbers.c, posix.c, ioext.c, filesys.c, socket.c,
+ fdsocket.c, simpos.c: change names of SCM_SYSERROR etc., to
+ lower case. Rename scm_syserror_m to scm_syserror_msg.
+ error.h: prototypes for new procedures.
+
+Sat Sep 14 03:35:41 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * numbers.c: use SCM_NUM_OVERFLOW instead of scm_wta or ASSERT.
+
+ * error.c, error.h: setup scm_num_overflow key.
+
+ * __scm.h: SCM_NUM_OVERFLOW: macro for reporting numerical overflow.
+ Remove definition of SCM_OVSCM_FLOW.
+
+ * fports.c (scm_open_file): use SCM_SYSERROR_M.
+
+ * __scm.h: SCM_SYSERROR_M: new macro for system errors with an
+ explicit message and args.
+
+ * error.c, error.h, __scm.h: change system_error_sym to
+ scm_system_error.
+
+ * error.c (system_error_sym): remove leading %% from the Scheme name
+ "%%system-error".
+
+ * __scm.h (SCM_SYSMISSING): Redefine using lgh_error.
+
+Fri Sep 13 12:58:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * __scm.h, chars.c, debug.c, eval.c, eval.h, extchrs.c, extchrs.h,
+ fdsocket.c, feature.c, mbstrings.c, mbstrings.h, numbers.c,
+ numbers.h, print.c, scmhob.h, simpos.h, symbols.c, symbols.h,
+ tags.h, throw.c, variable.h: Name cleanup. Lots of xxxSCM_yyy
+ renamed. (These were introduced by unsupervised name
+ substitution.)
+
+Fri Sep 13 01:19:08 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * print.c: Added code for detection of circular references during
+ printing. (init_ref_stack, grow_ref_stack): New functions. Added
+ a hook for printing of closures (accessible via print options).
+ This leads to a split of calls to scm_iprin1 into two classes:
+ elementary print operations (e. g. the code which prints a smob)
+ still use scm_iprin1 while top level calls (like scm_display) use
+ scm_prin1. scm_prin1 begins by clearing the data structure used
+ to record reference information.
+
+ * print.h: Added declarations of scm_prin1 and scm_prlist.
+
+ * strports.c (scm_strprint_obj): scm_iprin1 --> scm_prin1
+
+ * gscm.c (gscm_portprint_obj): scm_iprin1 --> scm_prin1
+
+ * gscm.h (gscm_print_obj): scm_iprin1 --> scm_prin1
+
+ * error.c (err_head): scm_iprin1 --> scm_prin1
+
+ * debug.c: Adjusted header comment.
+
+ * tags.h: Typo.
+
+Wed Sep 11 17:55:59 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * strerror.c: Doc fix.
+
+Thu Sep 12 00:00:32 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * gdbint.c (gdb_read): Now possible to run during GC.
+ (unmark_port, remark_port): New functions.
+
+ * symbols.h (SCM_SETLENGTH): Use SCM_SETCAR.
+
+ * read.c (scm_grow_tok_buf): Use scm_vector_set_length_x instead
+ of allocating a new string object. Also, increase size by
+ the factor 2 instead of 1.5.
+
+Wed Sep 11 15:10:38 1996 Petr Adamek <jimb@floss.cyclic.com>
+
+ * __scm.h (SCM_P): Corrected to run under traditional C.
+
+ * _scm.h (SCM_PROC): Extraneous semicolon (outside functions)
+ removed.
+
+ * async.c: Calls to scm_sysintern corrected.
+
+ * async.h (scm_async_clock): Redundant declaration removed.
+
+ * continuations.c (scm_dynthrow): Redundant declaration removed.
+
+ * debug.c (scm_single_step, scm_memoized, scm_lookup_soft):
+ Definition typos corrected.
+
+ * debug.h: Missing declarations of functions in debug.c added
+ (lots).
+
+ * eval.h (scm_eval_args, scm_deval_args, scm_m_undefine):
+ Missing declarations to functions in eval.c added.
+
+ * filesys.c: Possibly uninitialized variable rv.
+
+ * gc.h (scm_object_addr, scm_unhash_name): Missing
+ declarations of functions defined in gc.c added.
+
+ * genio.c: Possible typos str_data -> wstr_data. ???
+
+ * genio.c: Possibly unintended shadowing of local variable
+ `int c' (gotos out of scope of inner `c'). ???
+
+ * init.c: Uninitialized `SCM last' may be used.
+
+ * ioext.h: (scm_sys_isatty_p): Typo.
+
+ * list.h (scm_list_head): Missing prototype for function in
+ list.c added.
+
+ * numbers.c (scm_two_doubles): Changed from extern to static
+ (is used only within numbers.c).
+
+ * numbers.h: Repeated declarations removed.
+
+ * ports.h (scm_close_all_ports_except): Declaration for the
+ function defined in ports.c added.
+
+ * posix.h: Missing declarations added.
+
+ * procs.h (scm_make_subr_opt): Missing declaration added.
+
+ * socket.h (scm_sys_gethost): Missing declaration added.
+
+ * socket.h: Redundant declarations removed (they are in fdsocket.h).
+
+ * srcprop.h (scm_set_source_property_x, scm_finish_srcprop):
+ Missing declarations added.
+
+ * stime.h (scm_get_internal_real_time): Repeated declarations removed.
+
+ * struct.c: Uninitialized variable `SCM answer' may be used.
+
+ * unif.c (l2ra): Declaration prototype.
+
+ * unif.c (scm_array_equal_p): Dummy definition removed (it is
+ defined in ramap.c).
+
+ * unif.h (scm_raprin1, scm_istr2bve, scm_array_equal_p):
+ Redundant declarations removed (they are in ramap.h).
+
+ * variable.h (scm_make_udvariable,
+ scm_make_undefined_variable): Declaration corrected to
+ correspond variable.c.
+
+ * vectors.h (scm_vector_move_left_x, scm_vector_move_right_x):
+ Missing declarations added.
+
+Wed Sep 11 14:38:50 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in (distclean): Don't forget to delete fd.h.
+
+Tue Sep 10 14:01:46 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * fd.h.in, tags.h: Trivial cleanups.
+
+ * marksweep.c, marksweep.h: Deleted; marksweep.c was empty, and
+ marksweep.h just declared functions from gc.c.
+ * gc.h, libguile.h: Don't #include "marksweep.h".
+ * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
+ marksweep.o, marksweep.h, marksweep.c, and marksweep.x. Other
+ dependencies updated.
+
+ * libguile.h: Don't #include "files.h"; it's been deleted.
+
+ * files.c (scm_sys_delete_file): Moved to filesys.c.
+ File is now empty; deleted.
+ * files.h: Deleted.
+ * filesys.c: scm_sys_delete_file is now here. Remove
+ #if's; they seem to rely on remnants of an old portability
+ regimen. If the problems come up again, solve them properly,
+ using autoconf. Specifically: Don't test M_SYSV, and #define
+ remove to be unlink if it's #defined; don't use remove just
+ because HAVE_STDC_HEADERS is #defined.
+ * filesys.h: Add declarations for scm_sys_delete_file.
+ * Makefile.in (libobjs, inner_h_files, c_files, gen_c_files): Omit
+ files.o, files.h, files.c, and files.x.
+ * init.c: Don't #include "files.h", and don't call scm_init_files.
+
+ Use SCM_P instead of PROTO; the latter intrudes on the user's
+ namespace.
+ * params.h: Deleted; definition of SCM_P moved to...
+ * __scm.h: ... here, where it replaces PROTO macro.
+ * libguile.h, smob.h: Don't #include "params.h".
+ * continuations.c, error.h, feature.h, gc.c, gc.h, init.h, load.h,
+ smob.h: Fix prototypes accordingly.
+ * Makefile.in: Update dependencies.
+ (inner_h_files): Remove params.h.
+
+ * gc.c: #include "gc.h"; every module should include its header,
+ to let the compiler cross-check the declarations against the
+ definitions.
+
+ * eq.h, files.h, hashtab.h, load.h, mallocs.h, scmsigs.h,
+ simpos.h: #include "libguile/__scm.h".
+
+Mon Sep 9 20:00:15 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * init.c: Don't forget to #include smob.h and init.h.
+ * Makefile.in: Dependencies updated.
+
+ * smob.h: Use PROTO instead of #if __STDC__.
+
+ * continuations.c (scm_dynthrow): Use PROTO, not SCM_P.
+
+ * __scm.h: Doc fixes.
+
+ * __scm.h, libguile.h: Use "quotes" in the #includes, not
+ <angles>; this allows `make depends' to work properly.
+
+ * libguile.h: #include smob.h and pairs.h before the others; they
+ define typedefs used by other headers.
+
+ C files should #include only the header files they need, not
+ libguile.h (which #includes all the header files); the pointless
+ recompilation was wasting my time.
+ * Makefile.in (all .o dependency lists): Regenerated.
+ * libguile.h: Don't try to get a definition for size_t here...
+ * __scm.h: Do it here.
+ * _scm.h: Since this is the internal libguile header, put things
+ here that all (or a majority) of the libguile files will want.
+ Don't #include <libguile.h> here; that generates dependencies on
+ way too much. Instead, get "__scm.h", "error.h", "pairs.h",
+ "list.h", "gc.h", "gsubr.h", "procs.h", "numbers.h", "symbols.h",
+ "boolean.h", "strings.h", "vectors.h", "root.h", "ports.h", and
+ "async.h".
+ * alist.c: Get "eq.h", "list.h", "alist.h".
+ * append.c: Get "append.h", "list.h".
+ * arbiters.c: Get "arbiters.h", "smob.h".
+ * async.c: Get "async.h", "smob.h", "throw.h", "eval.h".
+ * boolean.c: Get "boolean.h".
+ * chars.c: Get "chars.h".
+ * continuations.c: Get "continuations.h", "dynwind.h", "debug.h",
+ "stackchk.h".
+ * debug.c: Get "debug.h", "feature.h", "read.h", "strports.h",
+ "continuations.h", "alist.h", "srcprop.h", "procprop.h", "smob.h",
+ "genio.h", "throw.h", "eval.h".
+ * dynwind.c: Get "dynwind.h", "alist.h", "eval.h".
+ * eq.c: Get "eq.h", "unif.h", "smob.h", "strorder.h",
+ "stackchk.h".
+ * error.c: Get "error.h", "throw.h", "genio.h", "pairs.h".
+ * eval.c: Get "eval.h", "stackchk.h", "srcprop.h", "debug.h",
+ "hashtab.h", "procprop.h", "markers.h", "smob.h", "throw.h",
+ "continuations.h", "eq.h", "sequences.h", "alist.h", "append.h",
+ "debug.h".
+ * fdsocket.c: Get "fdsocket.h", "unif.h", "filesys.h".
+ * feature.c: Get "feature.h".
+ * files.c: Get "files.h".
+ * filesys.c: Get "filesys.h", "smob.h", "genio.h".
+ * fports.c: Get "fports.h", "markers.h".
+ * gc.c: Get "async.h", "unif.h", "smob.h", "weaks.h",
+ "genio.h", "struct.h", "stackchk.h", "stime.h".
+ * gdbint.c: Get "gdbint.h", "chars.h", "eval.h", "print.h",
+ "read.h", "strports.h", "tag.h".
+ * genio.c: Get "genio.h", "chars.h".
+ * gsubr.c: Get "gsubr.h", "genio.h".
+ * hash.c: Get "hash.h", "chars.h".
+ * hashtab.c: Get "hashtab.h", "eval.h", "hash.h", "alist.h".
+ * init.c: Get everyone who has an scm_init_mumble function:
+ "weaks.h", "vports.h", "version.h", "vectors.h", "variable.h",
+ "unif.h", "throw.h", "tag.h", "symbols.h", "struct.h",
+ "strports.h", "strorder.h", "strop.h", "strings.h", "stime.h",
+ "stackchk.h", "srcprop.h", "socket.h", "simpos.h", "sequences.h",
+ "scmsigs.h", "read.h", "ramap.h", "procs.h", "procprop.h",
+ "print.h", "posix.h", "ports.h", "pairs.h", "options.h",
+ "objprop.h", "numbers.h", "mbstrings.h", "mallocs.h", "load.h",
+ "list.h", "kw.h", "ioext.h", "hashtab.h", "hash.h", "gsubr.h",
+ "gdbint.h", "gc.h", "fports.h", "filesys.h", "files.h",
+ "feature.h", "fdsocket.h", "eval.h", "error.h", "eq.h",
+ "dynwind.h", "debug.h", "continuations.h", "chars.h", "boolean.h",
+ "async.h", "arbiters.h", "append.h", "alist.h".
+ * ioext.c: Get "ioext.h", "fports.h".
+ * kw.c: Get "kw.h", "smob.h", "mbstrings.h", "genio.h".
+ * list.c: Get "list.h", "eq.h".
+ * load.c: Get "load.h", "eval.h", "read.h", "fports.h".
+ * mallocs.c: Get "smob.h", "genio.h".
+ * markers.c: Get "markers.h".
+ * mbstrings.c: Get "mbstrings.h", "read.h", "genio.h", "unif.h",
+ "chars.h".
+ * numbers.c: Get "unif.h", "genio.h".
+ * objprop.c: Get "objprop.h", "weaks.h", "alist.h", "hashtab.h".
+ * options.c: Get "options.h".
+ * ports.c: Get "ports.h", "vports.h", "strports.h", "fports.h",
+ "markers.h", "chars.h", "genio.h".
+ * posix.c: Get "posix.h", "sequences.h", "feature.h", "unif.h",
+ "read.h", "scmsigs.h", "genio.h", "fports.h".
+ * print.c: Get "print.h", "unif.h", "weaks.h", "read.h",
+ "procprop.h", "eval.h", "smob.h", "mbstrings.h", "genio.h",
+ "chars.h".
+ * procprop.c: Get "procprop.h", "eval.h", "alist.h".
+ * procs.c: Get "procs.h".
+ * ramap.c: Get "ramap.h", "feature.h", "eval.h", "eq.h",
+ "chars.h", "smob.h", "unif.h".
+ * read.c: Get "alist.h", "kw.h", "mbstrings.h", "unif.h",
+ "eval.h", "genio.h", "chars.h".
+ * root.c: Get "root.h", "stackchk.h".
+ * scmsigs.c: Get "scmsigs.h".
+ * sequences.c: Get "sequences.h".
+ * simpos.c: Get "simpos.h", "scmsigs.h".
+ * smob.c: Get "smob.h".
+ * socket.c: Get "socket.h", "feature.h".
+ * srcprop.c: Get "srcprop.h", "weaks.h", "hashtab.h", "debug.h",
+ "alist.h", "smob.h".
+ * stackchk.c: Get "stackchk.h", "genio.h".
+ * stime.c: Get "stime.h"."libguile/continuations.h".
+ * strings.c: Get "strings.h", "chars.h".
+ * strop.c: Get "strop.h", "chars.h".
+ * strorder.c: Get "strorder.h", "chars.h".
+ * strports.c: Get "strports.h", "print.h", "eval.h", "unif.h".
+ * struct.c: Get "struct.h", "chars.h".
+ * symbols.c: Get "symbols.h", "mbstrings.h", "alist.h",
+ "variable.h", "eval.h", "chars.h".
+ * tag.c: Get "tag.h", "struct.h", "chars.h".
+ * throw.c: Get "throw.h", "continuations.h", "debug.h",
+ "dynwind.h", "eval.h", "alist.h", "smob.h", "genio.h".
+ * unif.c: Get "unif.h", "feature.h", "strop.h", "sequences.h",
+ "smob.h", "genio.h", "eval.h", "chars.h".
+ * variable.c: Get "variable.h", "smob.h", "genio.h".
+ * vectors.c: Get "vectors.h", "eq.h".
+ * version.c: Get "version.h".
+ * vports.c: Get "vports.h", "fports.h", "chars.h", "eval.h".
+ * weaks.c: Get "weaks.h".
+
+ * stackchk.h: #include "libguile/debug.h",
+
+ * print.h, read.h: #include "options.h", since everyone who uses
+ either of these files will need that.
+
+ * smob.h: #include "ports.h", "genio.h", and "print.h", since
+ anyone who uses this file will need them to define the smob
+ printing functions. Also, get markers.h, since people will need
+ to #define the mark functions.
+
+ * smob.h (scm_ptobfuns, SCM_PTOBNUM): Definitions moved...
+ * ports.h: ... to here.
+
+ * ports.h (scm_port_table_size): Explicitly give type as 'int';
+ don't rely on archaic C default type rules.
+
+ * fports.h: #include "libguile/ports.h", since you need that in
+ order to parse this.
+
+ * genio.h: #include "libguile/print.h", because you need that to
+ parse this; don't bother #including "ports.h", since print.h gets
+ that.
+
+ * error.h: Don't #include "pairs.h"; _scm.h will do that now.
+
+ * eval.h (scm_top_level_lookup_thunk_var): Remove declaration for
+ this; it's now a reference to an element of *scm_root.
+
+ * debug.h: Don't #include "options.h"; the compiler won't be able
+ to find that once the headers are installed; instead, #include
+ "libguile/options.h".
+ * gc.h: Same, with marksweep.h.
+ * mbstrings.h: Same, with symbols.h.
+ * scmhob.h: Same, with _scm.h.
+ * smob.h: Same, with params.h.
+
+ * Makefile.in (depends): Don't nuke scmconfig.h and the generated
+ C files; there's no need for this, and it forces recompilations
+ unnecessarily.
+
+Sat Sep 7 06:57:23 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * error.c (scm_error): declare scm_error_callback.
+
+ * error.h: prototype for scm_error_callback.
+
+ * __scm.h: define lgh_error.
+ (SCM_SYSERROR): redefine using lgh_error.
+
+Thu Sep 5 22:40:06 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * error.c (scm_error): new procedure.
+
+ * error.h: prototype for scm_error.
+
+ * Makefile.in (install): install scmconfig.h from the current
+ directory, not $(srcdir).
+
+Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
+ continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
+ feature.h, filesys.h, fports.h, gc.h, gdbint.h, genio.h, gsubr.h,
+ hash.h, init.h, ioext.h, kw.h, list.h, markers.h, marksweep.h,
+ mbstrings.h, numbers.h, objprop.h, options.h, pairs.h, ports.h,
+ posix.h, print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
+ sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
+ strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
+ tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
+ vports.h, weaks.h: #include "libguile/__scm.h", not
+ <libguile/__scm.h>. This allows 'gcc -MM' to determine which
+ dependencies are within libguile properly.
+
+Thu Sep 5 11:38:07 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in (.c.x): Simplify; there's no need to run this rule
+ when scmconfig.h doesn't exist.
+
+ * load.c (scm_sys_try_load): Correct spelling.
+
+ * feature.c (scm_loc_features): Make this static.
+
+ * Makefile.in (libpath.h): Omit trailing slash from path. We
+ shouldn't require it of users, so why put it here?
+
+ Move code to initialize and search %load-path from ice-9 to C
+ code, so we can use the load-path to find the ice-9 boot code;
+ this makes it easier to run Guile without installing it. See
+ corresponding changes in guile/Makefile.in.
+ * feature.c: Move stuff concerned with the load path to load.c.
+ (scm_compiled_library_path): Deleted.
+ Don't #include libpath.h here.
+ * feature.h: Don't mention scm_compiled_library_path.
+ * load.c: #include "libpath.h" here, as well as <sys/types.h>,
+ <sys/stat.h>, and <unistd.h> (if present).
+ (R_OK): #define if the system hasn't deigned to.
+ (scm_loc_load_path): New variable.
+ (scm_init_load_path, scm_sys_search_load_path,
+ scm_sys_try_load_path): New functions.
+ (scm_init_load): Initialize scm_loc_load_path to point to the
+ value cell of the Scheme %load-path variable.
+ * load.h: Add declarations for scm_sys_search_load_path,
+ scm_sys_try_load_path.
+ * init.c: Call scm_init_load_path.
+ * Makefile.in (feature.o, load.o): Dependencies updated.
+
+ * load.c, load.h: Rewrite using PROTO macro.
+
+Thu Sep 5 01:54:33 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * gc.c (scm_cellp): New function: C predicate to determine if an
+ SCM value can be regarded as a pointer to a cell on the heap.
+
+ * gc.h: Added declaration of scm_cellp.
+
+ * gdb_interface.h: New file: The GDB interface header from the GDB
+ distribution.
+
+ * gdbint.c: New file: GDB interface.
+
+ * gdbint.h: New file: GDB interface.
+
+ * libguile.h: Added #include <libguile/gdbint.h>.
+
+ * init.c (scm_boot_guile): Added scm_init_gdbint.
+
+ * Makefile.in: Added gdb_interface.h, gdbint.[hc].
+ Added -I.. to INCLUDE_CFLAGS (otherwise the include files won't be
+ found if object files and source are kept separate).
+
+Wed Sep 4 14:35:02 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * feature.h, feature.c: Use PROTO macro, instead of #if __STDC__.
+
+Wed Sep 4 01:30:47 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * configure.in: Don't substitute the values of TCL_SRC_DIR and
+ TK_SRC_DIR; they're not relevant any more.
+
+ * Makefile.in (CC): Don't list -Wall here; it's a GCC-specific flag.
+ * configure.in: Instead, put it in CFLAGS here, iff we're using GCC.
+
+Wed Sep 4 00:55:49 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * PLUGIN/guile.config (xtra_cflags): Include .. in the header
+ search path, so we can find the <libguile/MUMBLE.h> headers.
+
+ * Makefile.in (ancillary): List aclocal.m4, for 'make dist'.
+
+ * Makefile.in (ALL_CFLAGS): Don't mention CFLAGS here; it's
+ implicit in the .c.o rule.
+ (.c.x): Don't mention ALL_CFLAGS here; its value is included in
+ $(CC) already.
+
+ Put the library path in a header file, instead of passing it on
+ the command line in every compilation.
+ * Makefile.in (libpath.h): New target.
+ (feature.o): Depend on libpath.h.
+ (clean): Delete libpath.h.
+ (ALL_CFLAGS): Don't use -DLIBRARY_PATH here. Instead ...
+ * feature.c: ... #include "libpath.h" here.
+ * .cvsignore: Ignore libpath.h.
+
+ Don't install the unwashed masses of Guile header files in the
+ main #include path; put most of them in a subdirectory called
+ 'libguile'. This avoids naming conflicts between Guile header
+ files and system header files (of which there were a few).
+ * Makefile.in (pkgincludedir): Deleted.
+ (innerincludedir): New variable; this and $(includedir) are enough.
+ (INCLUDE_CFLAGS): Search for headers in "-I$(srcdir)/..".
+ (installed_h_files): Divide this up. Now this variable lists
+ those header files which should go into $(includedir) (i.e. appear
+ directly in the #include path), and ...
+ (inner_h_files): ... this new variable says which files appear in
+ a subdirectory, and are referred to as <libguile/mumble.h>.
+ (h_files): List them both.
+ (install): Create innerincludedir, not pkgincludedir. Put
+ the installed_h_files and inner_h_files in their proper places.
+ (uninstall): Corresponding changes.
+ * alist.h, append.h, arbiters.h, async.h, boolean.h, chars.h,
+ continuations.h, debug.h, dynwind.h, error.h, eval.h, fdsocket.h,
+ feature.h, fports.h, gc.h, genio.h, gsubr.h, hash.h, init.h,
+ ioext.h, kw.h, libguile.h, list.h, markers.h, marksweep.h,
+ mbstrings.h, numbers.h, options.h, pairs.h, ports.h, posix.h,
+ print.h, procprop.h, procs.h, ramap.h, read.h, root.h,
+ sequences.h, smob.h, socket.h, srcprop.h, stackchk.h, stime.h,
+ strings.h, strop.h, strorder.h, strports.h, struct.h, symbols.h,
+ tag.h, throw.h, unif.h, variable.h, vectors.h, version.h,
+ vports.h, weaks.h: Find __scm.h in its new location.
+ * __scm.h: Find scmconfig.h and tags.h in their new locations
+ (they're both "inner" files).
+
+Tue Sep 3 20:27:35 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in (.c.x): Remove duplicate use of $(ALL_CFLAGS).
+
+Tue Sep 3 19:53:00 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * posix.c: Doc fixes.
+
+Mon Sep 2 15:22:40 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * socket.c: Don't include a prototype for inet_aton; just use a
+ K&R style declaration, to avoid warnings but minimize the chance
+ of conflicts with the system.
+
+ On NextStep, <utime.h> doesn't define struct utime, unless we
+ #define _POSIX_SOURCE before #including it.
+ * aclocal.m4 (GUILE_STRUCT_UTIMBUF): New test.
+ * acconfig.h: New comment text for above CPP symbol.
+ * configure.in: Call it.
+ * posix.c: #define _POSIX_SOURCE if it seems necessary.
+
+ * configure.in (AC_CHECK_HEADERS): Include sys/utime.h and utime.h
+ in the list.
+ * posix.c: Check HAVE_SYS_UTIME_H and HAVE_UTIME_H, instead of
+ testing for __EMX__.
+
+ * posix.c: #include <libc.h>, if it exists.
+
+ * posix.c: Cast the return result to GETGROUPS_T, not gid_t; we
+ don't even know if the latter exists.
+
+ * posix.c (s_sys_setpgid, s_sys_setsid, s_sys_ctermid,
+ s_sys_tcgetpgrp, s_sys_tcsetpgrp): Renamed from s_setpgid,
+ s_setsid, s_ctermid, s_tcgetpgrp, s_tcsetpgrp, for consistency.
+
+ * posix.c (R_OK, W_OK, X_OK, F_OK): #define these if the system's
+ header files don't.
+ (scm_init_posix): Use them when initializing the Scheme constants
+ of the same name.
+
+Fri Aug 30 16:01:30 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * Makefile.in (libdir, includedir, bindir): Use the
+ autoconf-supplied values, instead of deriving them ourselves.
+ (pkgincludedir, datadir, pkgdatadir): New variables.
+ (install, uninstall): Put the header files in a special
+ subdirectory, not in the main search path.
+
+ * Makefile.in (ALL_CFLAGS): Provide the proper value for
+ LIBRARY_PATH --- use $(pkgdatadir) instead of $(libdir).
+
+ * Makefile.in (IMPLPATH): Deleted; never used.
+
+ * Makefile.in (TCL_SRC_DIR, TK_SRC_DIR): Deleted; we don't depend
+ on the Tcl/Tk source any more.
+ (INCLUDE_CFLAGS): Remove references to the above.
+
+ * Makefile.in (version.o): Corrected dependencies.
+
+Thu Aug 29 23:06:19 1996 Thomas Morgan <tmorgan@gnu.ai.mit.edu>
+
+ * libguile.h: #include "version.h"
+
+ * init.c (scm_boot_guile): Call scm_init_version.
+ * gscm.c (gscm_run_scm): Call scm_init_version.
+
+ * configure.in (GUILE_MAJOR_VERSION, GUILE_MINOR_VERSION,
+ GUILE_VERSION): AC_DEFINE these.
+ (acconfig.h): #undef the above symbols.
+
+ * Makefile.in (libobjs): Add version.o.
+ (installed_h_files): Add version.h.
+ (c_files): Add version.c.
+ (gen_c_files): Add version.x.
+ (version.o): New rule.
+ (alist.o, append.o, appinit.o, arbiters.o, async.o, boolean.o,
+ chars.o, continuations.o, dynwind.o, eq.o, error.o, eval.o,
+ fdsocket.o, feature.o, files.o, filesys.o, fports.o, gc.o,
+ genio.o, gsubr.o, hash.o, hashtab.o, init.o, kw.o, list.o, load.o,
+ mallocs.o, markers.o, marksweep.o, mbstrings.o, numbers.o,
+ objprop.o, pairs.o, ports.o, posix.o, print.o, procprop.o,
+ procs.o, ramap.o, read.o, root.o, scmsigs.o, sequences.o,
+ simpos.o, smob.o, socket.o, stackchk.o, stime.o, strings.o,
+ strop.o, strorder.o, strports.o, struct.o, symbols.o, tag.o,
+ throw.o, unif.o, variable.o, vectors.o, version.o, vports.o,
+ weaks.o): Add version.h to dependency lists.
+ (markers.o): Remove duplicate rule.
+
+ * version.h: New file.
+
+ * version.c: New file.
+
+Thu Aug 29 15:21:39 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * symbols.c (scm_strhash): scm_downcase is now a function, not an
+ array; use it appropriately. Since GCC is quite happy to
+ subscript functions, it never warned us about this; we should use
+ -Wpointer-arith in the future. I guess we never tested
+ case-insensitivity.
+
+Wed Aug 28 18:52:22 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * socket.c: Doc and copyright fixes.
+
+Sat Aug 24 05:29:19 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * debug.c: Fixed and improved gdb support.
+
+Fri Aug 23 18:00:16 1996 Mikael Djurfeldt <mdj@woody.nada.kth.se>
+
+ * 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 <ghouston@actrix.gen.nz>
+
+ * 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 <mdj@woody.nada.kth.se>
+
+ * 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 <mdj@woody.nada.kth.se>
+
+ * __scm.h: SCM_STACK_LIMIT removed (now a run-time option).
+ Added option STACK_CHECKING.
+
+Tue Aug 20 18:48:40 1996 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+
+ * 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 <jimb@totoro.cyclic.com>
+
+ * 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 <jimb@totoro.cyclic.com>
+
+ * 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 <scmconfig.h> before testing
+ HAVE_LIMITS_H.
+
+ * __scm.h: It's HAVE_LIMITS_H, not HAVE_LIMITSH.
+
+Fri Aug 9 11:09:28 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * 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 <jimb@totoro.cyclic.com>
+
+ * 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 <ghouston@actrix.gen.nz>
+
+ * Fixes motivated by Petr Adamek <adamek@mit.edu>:
+
+ * 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 <malloc.h> not "malloc.h".
+
+ * mallocs.c: include <malloc.h> not "malloc.h", likewise for unistd.h.
+
+ * fports.c: remove ttyname and tmpnam declarations.
+
+ * posix.c: fewer ttyname declarations.
+
+ * fports.c: include <string.h> not "string.h".
+
+ * init.c, ioext.c: include string.h and unistd.h.
+
+ * gc.c: include <malloc.h> 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 <jimb@totoro.cyclic.com>
+
+ 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 <libc.h>.
+
+ * filesys.c [HAVE_STRING_H]: #include <string.h>, 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 <ghouston@actrix.gen.nz>
+
+ * 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 <jimb@totoro.cyclic.com>
+
+ * filesys.c, posix.c: #include <sys/types.h> before <sys/stat.h>.
+ 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 <ghouston@actrix.gen.nz>
+
+ * posix.c: include string.h.
+
+Wed Jul 31 23:43:05 1996 Gary Houston <ghouston@actrix.gen.nz>
+
+ * 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 <lord@beehive>
+
+ * struct.c (scm_init_struct): new file.
+
+Fri Jun 7 14:02:00 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * ports.c (scm_unread_char): scm_gen_ungetc as a scheme procedure.
+
+Thu May 9 09:33:17 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * gscm.h: gscm_mkarray eliminated (presumably was not being used
+ since its definition was bogus).
+
+Mon May 6 13:02:56 1996 Tom Lord <lord@beehive>
+
+ * mallocs.[ch]: back again (for rx at least).
+
+Wed Apr 17 08:54:20 1996 Tom Lord <lord@beehive>
+
+ * 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 #<unspecified> not #<undefined>.
+ (Tom Mckay@avanticorp.com)
+
+Mon Apr 15 14:16:55 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * list.c (scm_last_pair): map '()=>'()
+
+Wed Mar 13 16:43:34 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * gscm.c (gscm_run_scm): got rid of objprop.
+
+Fri Mar 1 10:39:52 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * procs.c (scm_make_subr_opt): new entry point for making
+ anonymous subrs.
+
+Sat Feb 24 17:11:31 1996 Tom Lord <lord@beehive>
+
+ * gc.h: SCM_STACK_GROWS_UP is now set by autoconf.
+
+Fri Feb 23 10:26:29 1996 Tom Lord <lord@beehive>
+
+ * numbers.c (scm_exact_p): This function no longer
+ implements "integer?".
+
+Thu Feb 22 20:56:16 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * gsubr.c (scm_gsubr_apply): statically allocate the
+ array of arguments (bothner@cygnus.com).
+
+Sat Feb 17 20:20:40 1996 Tom Lord <lord@beehive>
+
+ * scmsigs.c: Simplified to use async rountines.
+
+ * async.c: New support for interrupt handlers.
+
+Thu Feb 15 11:39:09 1996 Tom Lord <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <mdj@nada.kth.se>)
+
+Sat Jan 27 12:36:55 1996 Tom Lord <lord@beehive>
+
+ * 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 <alves@gryphon.com>)
+
+ (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 <mdj@nada.kth.se>)
+
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 <lord@beehive>
+
+ * 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 type of SCM_ICHR.
+
+Tue May 16 17:49:58 1995 Mikael Djurfeldt <mdj@sanscalc.nada.kth.se>
+
+ * guile.c: Changed init file name from "SCM_INIT_PATH" to
+ "GUILE_INIT_PATH"
+
+Sun Aug 6 15:14:46 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
+
+ * 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 <strandh@labri.u-bordeaux.fr>)
+
+ * 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 <rosalia@sstcx1.lanl.gov>)
+
+ * 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 <grib@arlut.utexas.edu>)
+
+ * Makefile.in (X_CFLAGS): defined.
+ (William Gribble <grib@arlut.utexas.edu>)
+
+ * gscm.h (gscm_2_double): provided now
+ (reported by Mark Galassi <rosalia@sstcx1.lanl.gov>)
+
+Tue Jun 13 01:04:09 1995 gnu
+ * Vrooom!
+
+