bpt/guile.git
15 years agoUpdate `NEWS'.
Ludovic Courtès [Sat, 31 May 2008 21:19:55 +0000 (23:19 +0200)]
Update `NEWS'.

15 years agoAdd `SCM_INTERNAL' macro, use it.
Ludovic Courtès [Wed, 14 May 2008 03:20:47 +0000 (05:20 +0200)]
Add `SCM_INTERNAL' macro, use it.

16 years agoScheme SRFI-18 implementation and tests file
Julian Graham [Thu, 15 May 2008 04:50:50 +0000 (00:50 -0400)]
Scheme SRFI-18 implementation and tests file

16 years agoDelete trailing whitespace.
Neil Jerram [Wed, 14 May 2008 23:00:57 +0000 (00:00 +0100)]
Delete trailing whitespace.

16 years agoChangeLog updates for latest set of SRFI-18 changes
Julian Graham [Mon, 14 Apr 2008 00:31:18 +0000 (20:31 -0400)]
ChangeLog updates for latest set of SRFI-18 changes

16 years agoDelete trailing whitespace.
Neil Jerram [Wed, 14 May 2008 22:52:49 +0000 (23:52 +0100)]
Delete trailing whitespace.

16 years agolatest set of SRFI-18 support changes to core threads
Julian Graham [Sun, 13 Apr 2008 23:51:23 +0000 (19:51 -0400)]
latest set of SRFI-18 support changes to core threads

16 years agoExpand DEFFROM and DEFTO macros in discouraged.c
Neil Jerram [Mon, 12 May 2008 23:00:34 +0000 (00:00 +0100)]
Expand DEFFROM and DEFTO macros in discouraged.c

* discouraged.c: Expand DEFFROM and DEFTO macros, to avoid
compiler warnings about excess semicolons.  (Reported by Didier
Godefroy.)

16 years agoFix continuation problems on IA64.
Neil Jerram [Wed, 7 May 2008 23:29:53 +0000 (00:29 +0100)]
Fix continuation problems on IA64.

* Specific problems in IA64 make check

** test-unwind

Representation of the relevant dynamic context:

                  non-rewindable
           catch      frame       make cont.
  o----o-----a----------b-------------c
        \
         \             call cont.
          o-----o-----------d

A continuation is captured at (c), with a non-rewindable frame in the
dynamic context at (b).  If a rewind through that frame was attempted,
Guile would throw to the catch at (a).  Then the context unwinds back
past (a), then winds forwards again, and the captured continuation is
called at (d).

We should end up at the catch at (a).  On ia64, we get an "illegal
instruction".

The problem is that Guile does not restore the ia64 register backing
store (RBS) stack (which is saved off when the continuation is
captured) until all the unwinding and rewinding is done.  Therefore,
when the rewind code (scm_i_dowinds) hits the non-rewindable frame at
(b), the RBS stack hasn't yet been restored.  The throw finds the
jmp_buf (for the catch at (a)) correctly from the dynamic context, and
jumps back to (a), but the RBS stack is invalid, hence the illegal
instruction.

This could be fixed by restoring the RBS stack earlier, at the same
point (copy_stack) where the normal stack is restored.  But that
causes a problem in the next test...

** continuations.test

The dynamic context diagram for this case is similar:

                   non-rewindable
  catch                 frame       make cont.
    a----x-----o----------b-------------c
          \
           \    call cont.
            o-------d

The only significant difference is that the catch point (a) is
upstream of where the dynamic context forks.  This means that the RBS
stack at (d) already contains the correct RBS contents for throwing
back to (a), so it doesn't matter whether the RBS stack that was saved
off with the continuation gets restored.

This test passes with the Guile 1.8.4 code, but fails (with an
"illegal instruction") when the code is changed to restore the RBS
stack earlier as described above.

The problem now is that the RBS stack is being restored _too_ early;
specifically when there is still stuff to do that relies on the old
RBS contents.  When a continuation is called, the sequence of relevant
events is:

  (1) Grow the (normal) stack until it is bigger than the (normal)
      stack saved off in the continuation.  (scm_dynthrow, grow_stack)

  (2) scm_i_dowinds calls itself recursively, such that

      (2.1) for each rewind (from (x) to (c)) that will be needed,
            another frame is added to the stack (both normal and RBS),
            with local variables specifying the required rewind; the
            rewinds don't actually happen yet, they will happen when
            the stack unwinds again through these frames

      (2.2) required unwinds - back from where the continuation was
            called (d) to the fork point (x) - are done immediately.

  (3) The normal (i.e. non-RBS) stack that was stored in the
      continuation is restored (i.e. copied on top of the actual
      stack).

      Note that this doesn't overwrite the frames that were added in
      (2.1), because the growth in (1) ensures that the added frames
      are beyond the end of the restored stack.

  (4) ? Restore the RBS stack here too ?

  (5) Return (from copy_stack) through the (2.1) frames, which means
      that the rewinds now happen.

  (6) setcontext (or longjmp) to the context (c) where the
      continuation was captured.

The trouble is that step (1) does not create space in the RBS stack in
the same kind of way that it does for the normal stack.  Therefore, if
the saved (in the continuation) RBS stack is big enough, it can
overwrite the RBS of the (2.1) frames that still need to complete.
This causes an illegal instruction when we return through those frames
and try to perform the rewinds.

* Fix

The key to the fix is that the saved RBS stack only needs to be
restored at some point before the next setcontext call, and that doing
it as close to the setcontext call as possible will avoid bad
interactions with the pre-setcontext stack.  Therefore we do the
restoration at the last possible point, immediately before the next
setcontext call.

The situation is complicated by there being two ways that the next
setcontext call can happen.

  - If the unwinding and rewinding is all successful, the next
    setcontext will be the one from step (6) above.  This is the
    "normal" continuation invocation case.

  - If one of the rewinds throws an error, the next setcontext will
    come from the throw implementation code.  (And the one in step (6)
    will never happen.)  This is the rewind error case.

In the rewind error case, the code calling setcontext knows nothing
about the continuation.  So to cover both cases, we:

  - copy (in step (4) above) the address and length of the
    continuation's saved RBS stack to the current thread state
    (SCM_I_CURRENT_THREAD)

  - modify all setcontext callers so that they check the current
    thread state for a saved RBS stack, and restore it if so before
    calling setcontext.

* Notes

** I think rewinders cannot rely on using any stack data

Unless it can be guaranteed that the data won't go into a register.
I'm not 100% sure about this, but I think it follows from the fact
that the RBS stack is not restored until after the rewinds have
happened.

Note that this isn't a regression caused by the current fix.  In Guile
1.8.4, the RBS stack was restored _after_ the rewinds, and this is
still the case now.

** Most setcontext calls for `throw' don't need to change the RBS stack

In the absence of continuation invocation, the setcontext call in the
throw implementation code always sets context to a place higher up the
same stack (both normal and RBS), hence no stack restoration is
needed.

* Other changes

** Using setcontext for all non-local jumps (for __ia64__)

Along the way, I read a claim somewhere that setcontext was more
reliable than longjmp, in cases where the stack has been manipulated.

I don't now have any reason to believe this, but it seems reasonable
anyway to leave the __ia64__ code using getcontext/setcontext, instead
of setjmp/longjmp.

(I think the only possible argument against this would be performance -
if getcontext was significantly slower than setjmp.  It that proves to
be the case, we should revisit this.)

** Capping RBS base for non-main threads

Somewhere else along the way, I hit a problem in GC, involving the RBS
stack of a non-main thread.  The problem was, in
SCM_MARK_BACKING_STORE, that scm_ia64_register_backing_store_base was
returning a value that was massively greater than the value of
scm_ia64_ar_bsp, leading to a seg fault.  This is because the
implementation of scm_ia64_register_backing_store_base is only valid
for the main thread.  I couldn't find a neat way of getting the true
RBS base of a non-main thread, but one idea is simply to call
scm_ia64_ar_bsp when guilifying a thread, and use the value returned
as an upper bound for that thread's RBS base.  (Note that the RBS
stack grows upwards.)

(Were it not for scm_init_guile, we could be much more definitive
about this.  We could take the value of scm_ia64_ar_bsp as a
definitive base address for the part of the RBS stack that Guile cares
about.  We could also then discard
scm_ia64_register_backing_store_base.)

16 years agoMerge changes for 1.8.5.
Ludovic Courtès [Wed, 7 May 2008 18:52:59 +0000 (20:52 +0200)]
Merge changes for 1.8.5.

16 years agoRemove uses of non-portable makefile constructs.
Ludovic Courtès [Wed, 7 May 2008 17:57:40 +0000 (19:57 +0200)]
Remove uses of non-portable makefile constructs.

16 years agoAvoid warning with GCC on FreeBSD 6.2 in `numbers.c'.
Ludovic Courtès [Wed, 7 May 2008 15:43:17 +0000 (17:43 +0200)]
Avoid warning with GCC on FreeBSD 6.2 in `numbers.c'.

16 years agoFix c-tokenize.c error: 'input' defined but not used, when compiling with GCC 4.3.0
Neil Jerram [Mon, 5 May 2008 22:47:24 +0000 (23:47 +0100)]
Fix c-tokenize.c error: 'input' defined but not used, when compiling with GCC 4.3.0

16 years agoAdd NEWS and concept index entries for traps infrastructure and Emacs support.
Neil Jerram [Mon, 5 May 2008 21:31:07 +0000 (22:31 +0100)]
Add NEWS and concept index entries for traps infrastructure and Emacs support.

16 years agoFix omissions and typos in previous commit.
Ludovic Courtès [Sun, 4 May 2008 20:42:13 +0000 (22:42 +0200)]
Fix omissions and typos in previous commit.

16 years agoAdd `pkg-config' support.
Ludovic Courtès [Sun, 4 May 2008 20:19:30 +0000 (22:19 +0200)]
Add `pkg-config' support.

16 years agoFix type-checking of SRFI-1 `partition'.
Ludovic Courtès [Mon, 28 Apr 2008 16:03:27 +0000 (18:03 +0200)]
Fix type-checking of SRFI-1 `partition'.

16 years agoInclude <config.h> in SRFI-1.
Ludovic Courtès [Sat, 26 Apr 2008 22:50:05 +0000 (00:50 +0200)]
Include <config.h> in SRFI-1.

16 years agoOnly run `test-with-guile-module' when pthread support is built.
Ludovic Courtès [Sat, 26 Apr 2008 19:55:29 +0000 (21:55 +0200)]
Only run `test-with-guile-module' when pthread support is built.

16 years agoRemove extraneous semi-colon in `read.c'.
Ludovic Courtès [Sat, 26 Apr 2008 19:39:27 +0000 (21:39 +0200)]
Remove extraneous semi-colon in `read.c'.

16 years agoMake `(srfi srfi-35)' visible through `cond-expand'.
Ludovic Courtès [Sat, 26 Apr 2008 19:09:40 +0000 (21:09 +0200)]
Make `(srfi srfi-35)' visible through `cond-expand'.

16 years agoAdd `(srfi srfi-88)'.
Ludovic Courtès [Sat, 26 Apr 2008 17:34:37 +0000 (19:34 +0200)]
Add `(srfi srfi-88)'.

16 years agoFix dangling references to files that have been removed.
Ludovic Courtès [Sat, 26 Apr 2008 17:27:55 +0000 (19:27 +0200)]
Fix dangling references to files that have been removed.

16 years agoDon't use "-I$(srcdir)", so that our "random.h" doesn't shadow libc's on Tru64.
Ludovic Courtès [Thu, 24 Apr 2008 17:25:30 +0000 (19:25 +0200)]
Don't use "-I$(srcdir)", so that our "random.h" doesn't shadow libc's on Tru64.

16 years agoDocument file-exists?
Neil Jerram [Thu, 17 Apr 2008 20:36:20 +0000 (21:36 +0100)]
Document file-exists?

16 years agoAdd `read' benchmark.
Ludovic Courtès [Thu, 17 Apr 2008 08:04:09 +0000 (10:04 +0200)]
Add `read' benchmark.

16 years agoUpdate `NEWS'.
Ludovic Courtès [Wed, 16 Apr 2008 10:00:49 +0000 (12:00 +0200)]
Update `NEWS'.

16 years agoInline `scm_getc', `scm_putc' and `scm_puts'.
Ludovic Courtès [Mon, 14 Apr 2008 16:09:49 +0000 (18:09 +0200)]
Inline `scm_getc', `scm_putc' and `scm_puts'.

16 years agoMerge branch 'master' of ssh://civodul@git.sv.gnu.org/srv/git/guile
Ludovic Courtès [Wed, 16 Apr 2008 07:06:02 +0000 (09:06 +0200)]
Merge branch 'master' of ssh://civodul@git.sv.gnu.org/srv/git/guile

16 years agoDon't use "echo -n" in `guile-readline/configure.in'.
Ludovic Courtès [Wed, 16 Apr 2008 07:01:33 +0000 (09:01 +0200)]
Don't use "echo -n" in `guile-readline/configure.in'.

16 years agoAdd TAGS to .gitignore
Neil Jerram [Tue, 15 Apr 2008 22:52:58 +0000 (23:52 +0100)]
Add TAGS to .gitignore

16 years agoA few elisp fixes and enhancements
Neil Jerram [Mon, 14 Apr 2008 20:25:17 +0000 (21:25 +0100)]
A few elisp fixes and enhancements

16 years ago* gds-client.scm (gds-debug-trap): Ensure that frame index passed to Emacs is always...
Neil Jerram [Mon, 14 Apr 2008 18:40:02 +0000 (19:40 +0100)]
* gds-client.scm (gds-debug-trap): Ensure that frame index passed to Emacs is always positive.

16 years agoRevert "Fix typo in `read.c'."
Ludovic Courtès [Tue, 15 Apr 2008 18:14:44 +0000 (20:14 +0200)]
Revert "Fix typo in `read.c'."

This reverts commit 6ddb3ca825b1ee8b746eb688e98aa3b37ab55c3e.

16 years agoFix typo in `read.c'.
Ludovic Courtès [Tue, 15 Apr 2008 18:01:13 +0000 (20:01 +0200)]
Fix typo in `read.c'.

16 years agoAdd support for SRFI-88-like postfix keyword read syntax.
Ludovic Courtès [Tue, 15 Apr 2008 17:52:43 +0000 (19:52 +0200)]
Add support for SRFI-88-like postfix keyword read syntax.

16 years agoTest the interaction of GOOPS objects with `struct-{ref,set!}'.
Ludovic Courtès [Sun, 13 Apr 2008 18:41:23 +0000 (20:41 +0200)]
Test the interaction of GOOPS objects with `struct-{ref,set!}'.

16 years agoSlightly simplify inline machinery.
Ludovic Courtès [Sun, 13 Apr 2008 17:38:42 +0000 (19:38 +0200)]
Slightly simplify inline machinery.

16 years agoReally fix inline machinery for MacOS X.
Ludovic Courtès [Sun, 13 Apr 2008 17:35:46 +0000 (19:35 +0200)]
Really fix inline machinery for MacOS X.

16 years agoFix inline machinery in C99 mode on MacOS X.
Ludovic Courtès [Thu, 10 Apr 2008 21:57:05 +0000 (23:57 +0200)]
Fix inline machinery in C99 mode on MacOS X.

16 years agoAdd `NEWS' entries for Andy's fixes.
Ludovic Courtès [Thu, 10 Apr 2008 21:20:20 +0000 (23:20 +0200)]
Add `NEWS' entries for Andy's fixes.

16 years agofix struct-ref and struct-set! on "light" structs
Andy Wingo [Wed, 9 Apr 2008 23:32:14 +0000 (01:32 +0200)]
fix struct-ref and struct-set! on "light" structs

* libguile/struct.c (scm_struct_ref, scm_struct_set_x): "Light" structs
have no hidden words (members of the SCM_STRUCT_DATA(x) array accessed
with negative indices). In that case, determine the number of fields
from the length of the struct layout descriptor. (Most GOOPS instances
are light structs.)

16 years agoinitialize 'u' slots to 0, not SCM_UNPACK(SCM_GOOPS_UNBOUND)
Andy Wingo [Wed, 9 Apr 2008 23:27:19 +0000 (01:27 +0200)]
initialize 'u' slots to 0, not SCM_UNPACK(SCM_GOOPS_UNBOUND)

* goops.c (wrap_init): Initialize 'u' slots to 0, not some random
SCM value.

16 years agorespect slot allocation, e.g. for <read-only-slot>
Andy Wingo [Wed, 9 Apr 2008 23:23:06 +0000 (01:23 +0200)]
respect slot allocation, e.g. for <read-only-slot>

* libguile/goops.c (get_slot_value, set_slot_value): In the struct
allocation case, don't poke the slots array directly -- we should
go through struct-ref/struct-set! code so that we get the
permissions and allocation ('u' versus 'p') correct.

16 years agoFix manual typo.
Neil Jerram [Fri, 28 Mar 2008 22:56:24 +0000 (22:56 +0000)]
Fix manual typo.

16 years agoUpdate/remove references to the CVS repository.
Ludovic Courtès [Thu, 27 Mar 2008 20:50:06 +0000 (21:50 +0100)]
Update/remove references to the CVS repository.

16 years agoFix "#include" directives in stand-alone C tests.
Ludovic Courtès [Sun, 6 Apr 2008 16:41:07 +0000 (18:41 +0200)]
Fix "#include" directives in stand-alone C tests.

16 years agoFix inline machinery for GCC 4.3 and later in C99 mode.
Ludovic Courtès [Thu, 3 Apr 2008 15:28:42 +0000 (17:28 +0200)]
Fix inline machinery for GCC 4.3 and later in C99 mode.

16 years agoMore `.gitignore'.
Ludovic Courtès [Mon, 7 Apr 2008 21:55:58 +0000 (23:55 +0200)]
More `.gitignore'.

16 years agoMore `.gitignore'.
Ludovic Courtès [Mon, 7 Apr 2008 21:48:08 +0000 (23:48 +0200)]
More `.gitignore'.

16 years ago(to_timespec): Change 1000000 multiplier to
Neil Jerram [Mon, 24 Mar 2008 21:51:09 +0000 (21:51 +0000)]
(to_timespec): Change 1000000 multiplier to
1000000000.
(unchecked_unlock_sym, allow_external_unlock_sym,
recursive_sym): Use SCM_SYMBOL.
(scm_make_mutex_with_flags): When raising unsupported option
error, report what the unsupported option was.
(fat_mutex_unlock): When raising errors, unlock m->lock first.
(fat_cond_timedwait): Removed.
(scm_timed_wait_condition_variable): Call fat_mutex_unlock
directly instead of via fat_cond_timedwait.

16 years ago(Mutexes and Condition Variables): Change
Neil Jerram [Mon, 24 Mar 2008 21:50:51 +0000 (21:50 +0000)]
(Mutexes and Condition Variables): Change
`flag' to `flags' in docstring.

16 years ago(command-loop): Use
Neil Jerram [Wed, 19 Mar 2008 22:56:17 +0000 (22:56 +0000)]
(command-loop): Use
needed modules.

16 years ago* api-debug.texi (Low Level Trap Calls): Removed (material
Neil Jerram [Wed, 19 Mar 2008 22:51:24 +0000 (22:51 +0000)]
* api-debug.texi (Low Level Trap Calls): Removed (material
duplicated elsewhere); doc for with-traps and debug-object? moved
to section on evaluator trap options.
(High Level Traps): Renamed just `Traps'.  Add references to
evaluator trap options and debug options.  Make language
appropriate for core Guile (as opposed to previously separate
package).
(Location Traps): Corrected to reflect that location traps now
specify a specific position, not a range of positions.
(Debugging Examples): New (content moved here from
scheme-debugging.texi, and updated to use traps instead of
breakpoints).

* api-modules.texi (Included Guile Modules): Change `Debugging
Features' reference to `Tracing'.

* api-options.texi (Evaluator trap options): Doc for with-traps
and debug-object? is now here.

* guile.texi, scheme-debugging.texi: Move the `Tracing' content of
scheme-debugging.texi to the Modules section.

* scheme-using.texi (Using Guile in Emacs, GDS Getting Started):
Minor edits.

* scheme-debugging.texi (Debugging Features, Intro to
Breakpoints): Removed.
(Examples): Moved to api-debug.texi.
(Tracing, Old Tracing): Promoted one level.
(New Tracing, Tracing Compared): Removed.

16 years agoUse SRFI-1 in `(oop goops util)'.
Ludovic Courtès [Tue, 18 Mar 2008 09:10:45 +0000 (09:10 +0000)]
Use SRFI-1 in `(oop goops util)'.

16 years agoHonor $TMPDIR in the test suite.
Ludovic Courtès [Thu, 13 Mar 2008 14:03:58 +0000 (14:03 +0000)]
Honor $TMPDIR in the test suite.

16 years agoFix SRFI-37 `args-fold' with short option names of argument-less options.
Ludovic Courtès [Wed, 12 Mar 2008 17:01:19 +0000 (17:01 +0000)]
Fix SRFI-37 `args-fold' with short option names of argument-less options.

16 years agoProvide `describe' feature in `(oop goops describe)'.
Ludovic Courtès [Wed, 12 Mar 2008 17:00:07 +0000 (17:00 +0000)]
Provide `describe' feature in `(oop goops describe)'.

16 years agoFix `alloca' on FreeBSD 6.
Ludovic Courtès [Mon, 10 Mar 2008 22:34:40 +0000 (22:34 +0000)]
Fix `alloca' on FreeBSD 6.

16 years agoOnly define scm_from_complex_double if it will
Neil Jerram [Sun, 9 Mar 2008 21:57:00 +0000 (21:57 +0000)]
Only define scm_from_complex_double if it will
actually be used.

16 years agoCore enhancements, by Julian Graham, to Guile's thread, mutex and
Neil Jerram [Sat, 8 Mar 2008 16:22:40 +0000 (16:22 +0000)]
Core enhancements, by Julian Graham, to Guile's thread, mutex and
condvar primitives, in preparation for SRFI-18 support.

16 years agoFix type-checking for the second argument of `eval'.
Ludovic Courtès [Thu, 6 Mar 2008 09:51:44 +0000 (09:51 +0000)]
Fix type-checking for the second argument of `eval'.

16 years agoFix "mixed linkage" errors in `inline.h'.
Ludovic Courtès [Sun, 2 Mar 2008 17:03:42 +0000 (17:03 +0000)]
Fix "mixed linkage" errors in `inline.h'.

16 years ago(errno): Remove declarations that have been there
Neil Jerram [Wed, 27 Feb 2008 23:00:37 +0000 (23:00 +0000)]
(errno): Remove declarations that have been there
forever, and are known to conflict on some platforms with that
provided by <errno.h>, which we include unconditionally.  If
<errno.h> doesn't provide a errno declaration, what is the point
of it?

16 years ago* FAQ: New file.
Neil Jerram [Sat, 23 Feb 2008 18:30:00 +0000 (18:30 +0000)]
* FAQ: New file.

* Makefile.am (EXTRA_DIST): Add FAQ

16 years agoUpdated to GNU coding
Neil Jerram [Sat, 23 Feb 2008 18:29:45 +0000 (18:29 +0000)]
Updated to GNU coding
standards; added standard license statement.

16 years agoUse `imaginary_part' instead of `imaginary' to fix build on Solaris 2.10.
Ludovic Courtès [Sat, 23 Feb 2008 11:28:11 +0000 (11:28 +0000)]
Use `imaginary_part' instead of `imaginary' to fix build on Solaris 2.10.

16 years agoFix `(ice-9 match)' for lists of lists.
Ludovic Courtès [Fri, 22 Feb 2008 16:05:30 +0000 (16:05 +0000)]
Fix `(ice-9 match)' for lists of lists.

16 years agoLook for `strncasecmp' declaration.
Ludovic Courtès [Fri, 22 Feb 2008 09:55:22 +0000 (09:55 +0000)]
Look for `strncasecmp' declaration.

16 years agoFix build issue in `gc.c' on GNU/Linux IA64.
Ludovic Courtès [Fri, 22 Feb 2008 09:53:02 +0000 (09:53 +0000)]
Fix build issue in `gc.c' on GNU/Linux IA64.

16 years agoFix a strange character that got into "scm_add_slot" somehow
Neil Jerram [Thu, 21 Feb 2008 23:05:22 +0000 (23:05 +0000)]
Fix a strange character that got into "scm_add_slot" somehow

16 years agoFix bug #22369: segfault in `scm_add_slot ()'.
Ludovic Courtès [Thu, 21 Feb 2008 08:43:54 +0000 (08:43 +0000)]
Fix bug #22369: segfault in `scm_add_slot ()'.

16 years agoMerge 1.8.4 release commit.
Ludovic Courtès [Thu, 21 Feb 2008 08:41:24 +0000 (08:41 +0000)]
Merge 1.8.4 release commit.

16 years agoFix NetBSD/alpha support.
Ludovic Courtès [Sat, 16 Feb 2008 19:45:41 +0000 (19:45 +0000)]
Fix NetBSD/alpha support.

16 years agoRelease stuff: missing NEWS and 2007/2008 copyrights.
Neil Jerram [Fri, 15 Feb 2008 23:13:59 +0000 (23:13 +0000)]
Release stuff: missing NEWS and 2007/2008 copyrights.

16 years ago * autogen.sh: Copy versions of config.guess and config.sub from
Neil Jerram [Fri, 15 Feb 2008 23:06:52 +0000 (23:06 +0000)]
* autogen.sh: Copy versions of config.guess and config.sub from
Guile CVS to build-aux and guile-readline.

* HACKING: Note need for libtool >= 1.5.26.

* config.rpath, build-aux/config.rpath: Updated to latest upstream
version.

* config.guess, config.sub: 2008-01-07 versions added to Guile
CVS, to ensure that Guile developers are using new enough versions
(in particular for AIX 6.1 support).

16 years agoAdd `gc.test' hack for SPARC GNU/Linux.
Ludovic Courtès [Fri, 15 Feb 2008 16:02:22 +0000 (16:02 +0000)]
Add `gc.test' hack for SPARC GNU/Linux.

16 years agoconfigure.in: additional note suggested by Greg Troxel
Neil Jerram [Tue, 12 Feb 2008 21:00:05 +0000 (21:00 +0000)]
configure.in: additional note suggested by Greg Troxel

16 years agoguile-snarf: Honor $TMPDIR.
Ludovic Courtès [Tue, 12 Feb 2008 14:26:37 +0000 (14:26 +0000)]
guile-snarf: Honor $TMPDIR.

16 years ago(Random): New text about the default random state,
Neil Jerram [Mon, 11 Feb 2008 22:34:33 +0000 (22:34 +0000)]
(Random): New text about the default random state,
following suggestions by Stephen Uitti.

16 years ago* numbers.c (SCM_COMPLEX_VALUE): Use GUILE_I instead of _Complex_I
Neil Jerram [Mon, 11 Feb 2008 21:20:14 +0000 (21:20 +0000)]
* numbers.c (SCM_COMPLEX_VALUE): Use GUILE_I instead of _Complex_I
directly, and only if GUILE_I was defined by the configure step.
(scm_log, scm_log10, scm_exp, scm_sqrt): Use SCM_COMPLEX_VALUE
code only if SCM_COMPLEX_VALUE is defined.

* configure.in (--without-64-calls): Use AC_MSG_CHECKING and
AC_MSG_RESULT instead of just echo.
(GUILE_I): New programs to try using _Complex_I or 1.0fi for the
imaginary unit.

16 years agoMore compilation fixes with Sun CC (bug #21378).
Ludovic Courtès [Thu, 7 Feb 2008 09:54:47 +0000 (09:54 +0000)]
More compilation fixes with Sun CC (bug #21378).

16 years ago * threads.c (do_thread_exit, scm_cancel_thread,
Neil Jerram [Thu, 7 Feb 2008 01:24:31 +0000 (01:24 +0000)]
* threads.c (do_thread_exit, scm_cancel_thread,
scm_set_thread_cleanup_x, scm_thread_cleanup): Lock on thread-specific
admin mutex instead of `thread_admin_mutex'.
* threads.h (scm_i_thread)[admin_mutex]: New field.
* throw.c (make_jmpbuf): Don't enter critical section during thread
spawn -- there is a possibility of deadlock if other threads are
exiting.

16 years ago(Next-method): Minor improvements to the
Neil Jerram [Wed, 6 Feb 2008 22:47:29 +0000 (22:47 +0000)]
(Next-method): Minor improvements to the
text.

16 years agoDefault to --without-64-calls for
Neil Jerram [Wed, 6 Feb 2008 22:29:22 +0000 (22:29 +0000)]
Default to --without-64-calls for
powerpc-ibm-aix*.  Thanks to Rainer Tammer for reporting that the
64 calls are a problem on that OS.

16 years ago(scm_gc_malloc): Return NULL if requested size is 0.
Neil Jerram [Wed, 6 Feb 2008 22:22:14 +0000 (22:22 +0000)]
(scm_gc_malloc): Return NULL if requested size is 0.
(scm_gc_free): Don't call `free' if mem is NULL.

16 years agoFix compilation of `numbers.c' with Sun CC.
Ludovic Courtès [Wed, 6 Feb 2008 13:51:05 +0000 (13:51 +0000)]
Fix compilation of `numbers.c' with Sun CC.

16 years ago* fports.c (fport_seek): Make dependent on GUILE_USE_64_CALLS.
Neil Jerram [Tue, 5 Feb 2008 23:14:21 +0000 (23:14 +0000)]
* fports.c (fport_seek): Make dependent on GUILE_USE_64_CALLS.

* _scm.h: Make definition of CHOOSE_LARGEFILE depend on
GUILE_USE_64_CALLS.

* configure.in (--without-64-calls): New option.

16 years agoNew test file (forgotten from checkin last week).
Neil Jerram [Tue, 5 Feb 2008 21:55:44 +0000 (21:55 +0000)]
New test file (forgotten from checkin last week).

16 years ago* modules.c (the_root_module): Moved before scm_current_module.
Neil Jerram [Fri, 1 Feb 2008 22:51:34 +0000 (22:51 +0000)]
* modules.c (the_root_module): Moved before scm_current_module.
(scm_current_module): Return the root module if `the-module' fluid
gives #f.

* standalone/Makefile.am: Add stanza for test-with-guile-module.

* standalone/test-with-guile-module.c: New test.

16 years ago(Threads): Add "C Function scm_join_thread"
Neil Jerram [Fri, 1 Feb 2008 21:02:15 +0000 (21:02 +0000)]
(Threads): Add "C Function scm_join_thread"
to doc for join-thread.  Thanks to Antoine Mathys for reporting
that scm_join_thread was missing.

16 years ago(dyld_prefix), pre-inst-guile-env.in
Neil Jerram [Wed, 30 Jan 2008 22:59:12 +0000 (22:59 +0000)]
(dyld_prefix), pre-inst-guile-env.in
(dyld_prefix): Construct and export dyld_prefix in a similar way
to ltdl_prefix, to allow pre-install dynamic linking to work on
MacOS.  Thanks to Roger Mc Murtrie for reporting this problem.

16 years agoExplicitly require Gnulib's `extensions' module.
Ludovic Courtès [Wed, 30 Jan 2008 10:28:22 +0000 (10:28 +0000)]
Explicitly require Gnulib's `extensions' module.

16 years ago* readline.c (scm_init_readline): Only do init_bouncing_parens ()
Neil Jerram [Tue, 29 Jan 2008 23:02:18 +0000 (23:02 +0000)]
* readline.c (scm_init_readline): Only do init_bouncing_parens ()
if HAVE_RL_GET_KEYMAP.
(init_bouncing_parens, find_matching_paren, match_paren): Compile
out if ! HAVE_RL_GET_KEYMAP.

* configure.in: Add check for rl_get_keymap.

16 years ago*** empty log message ***
Neil Jerram [Tue, 22 Jan 2008 21:49:04 +0000 (21:49 +0000)]
*** empty log message ***

16 years ago* LICENSE: Change COPYING.LIB to COPYING.LESSER.
Neil Jerram [Tue, 22 Jan 2008 21:46:24 +0000 (21:46 +0000)]
* LICENSE: Change COPYING.LIB to COPYING.LESSER.

* COPYING.LESSER: Renamed, previously COPYING.LIB.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

* COPYING: Removed.

16 years ago* srfi-39.scm: Update copyright statement to LGPL.
Neil Jerram [Tue, 22 Jan 2008 21:06:22 +0000 (21:06 +0000)]
* srfi-39.scm: Update copyright statement to LGPL.

* __scm.h, _scm.h, weaks.c: Update copyright statement to LGPL.

* compat/compat.h: Update copyright statement to LGPL.

* oldfmt.c: Update copyright statement to LGPL.

* libguile.h: Update copyright statement to LGPL.

16 years ago* hashtab.c (scm_hash_fn_create_handle_x): If supplied assoc_fn
Neil Jerram [Fri, 18 Jan 2008 23:33:41 +0000 (23:33 +0000)]
* hashtab.c (scm_hash_fn_create_handle_x): If supplied assoc_fn
returns neither a pair nor #f, signal a wrong-type-arg error.
(Thanks to Gregory Marton for reporting this.)

* tests/hash.test: New "hashx" test supplied by Gregory Marton;
prior to today's fix in libguile/hashtab.c, this caused a
segmentation fault.

16 years agoRecent gnulib adds gl_PO_BASE and gl_PO_DOMAIN
Neil Jerram [Fri, 18 Jan 2008 23:18:18 +0000 (23:18 +0000)]
Recent gnulib adds gl_PO_BASE and gl_PO_DOMAIN
lines to this file.

16 years ago * guile.m4: add serial number to m4
Neil Jerram [Mon, 31 Dec 2007 16:02:03 +0000 (16:02 +0000)]
* guile.m4: add serial number to m4