unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GNU Guile 1.9.0 released (alpha)
@ 2009-06-19 22:05 Ludovic Courtès
  2009-06-19 23:55 ` Linas Vepstas
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Ludovic Courtès @ 2009-06-19 22:05 UTC (permalink / raw)
  To: guile-devel; +Cc: guile-user

[-- Attachment #1: Type: text/plain, Size: 7813 bytes --]

We are pleased to announce GNU Guile release 1.9.0.  This is the first
pre-release of what will eventually become the 2.0 release series.  It
provides many new noteworthy features, most notably the addition of a
compiler and virtual machine.  We encourage you to test them and provide
feedback to `guile-devel@gnu.org'.

The Guile web page is located at http://gnu.org/software/guile/, and
among other things, it contains a link to the Guile FAQ and pointers to
the mailing lists.

Guile is an interpreter, compiler, and virtual machine for the Scheme
programming language, with support for many SRFIs, packaged for use in a
wide variety of environments.  In addition to implementing the R5RS
Scheme standard, Guile includes a module system, full access to POSIX
system calls, networking support, multiple threads, dynamic linking, a
foreign function call interface, and powerful string processing.

Guile can run interactively, as a script interpreter, and as a Scheme
compiler to VM bytecode.  It is also packaged as a library so that
applications can easily incorporate a complete Scheme interpreter/VM.
An application can use Guile as an extension language, a clean and
powerful configuration language, or as multi-purpose "glue" to connect
primitives provided by the application.  It is easy to call Scheme code
From C code and vice versa.  Applications can add new functions, data
types, control structures, and even syntax to Guile, to create a
domain-specific language tailored to the task at hand.


Here are the compressed sources:
  ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz   (4.6MB)

Here are the GPG detached signatures[*]:
  ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz.sig

Here are the MD5 and SHA1 checksums:

71c3fa0ed22c91b30e9573478fdee4dc  guile-1.9.0.tar.gz
836cffc2d05cd0de938bf24bc91e9debe8fea060  guile-1.9.0.tar.gz

[*] You can use either of the above signature files to verify that
the corresponding file (without the .sig suffix) is intact.  First,
be sure to download both the .sig file and the corresponding tarball.
Then, run a command like this:

  gpg --verify guile-1.9.0.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver keys.gnupg.net --recv-keys EA52ECF4

and rerun the `gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.63
  Automake 1.10.2
  Libtool 2.2.6


This is a new release series with many new features and differences
compared to 1.8.  Excerpt from the `NEWS' file:

  * New modules (see the manual for details)

  ** `(srfi srfi-18)', more sophisticated multithreading support
  ** `(ice-9 i18n)', internationalization support
  ** `(rnrs bytevector)', the R6RS bytevector API
  ** `(rnrs io ports)', a subset of the R6RS I/O port API
  ** `(system xref)', a cross-referencing facility (FIXME undocumented)

  * Changes to the stand-alone interpreter

  ** Guile now can compile Scheme to bytecode for a custom virtual machine.
  ** The stack limit is now initialized from the environment.
  ** New environment variables: GUILE_LOAD_COMPILED_PATH,
     GUILE_SYSTEM_LOAD_COMPILED_PATH
  ** New read-eval-print loop (REPL) implementation
  ** New `guile-tools' commands: `compile', `disassemble'

  * Changes to Scheme functions and syntax

  ** Procedure removed: `the-environment'
  ** Files loaded with `primitive-load-path' will now be compiled
     automatically.
  ** New POSIX procedures: `getrlimit' and `setrlimit'
  ** New procedure in `(oops goops)': `method-formals'
  ** BUG: (procedure-property func 'arity) does not work on compiled
     procedures
  ** New procedures in (ice-9 session): `add-value-help-handler!',
     `remove-value-help-handler!', `add-name-help-handler!'
     `remove-name-help-handler!', `procedure-arguments',
  ** Deprecated: `procedure->memoizing-macro', `procedure->syntax'
  ** New language: ECMAScript
  ** Defmacros may now have docstrings.
  ** The psyntax expander now knows how to interpret the @ and @@ special
     forms.
  ** The psyntax expander is now hygienic with respect to modules.
  ** New function, `procedure-module'
  ** `eval-case' has been deprecated, and replaced by `eval-when'.
  ** Guile is now more strict about prohibiting definitions in expression
     contexts.
  ** Defmacros must now produce valid Scheme expressions.
  ** Guile's psyntax now supports docstrings and internal definitions.
  ** Macros need to be defined before their first use.
  ** Functions needed by macros at expand-time need to be present at
     expand-time.
  ** New variable, %pre-modules-transformer
  ** Temporarily removed functions: `macroexpand', `macroexpand-1'
  ** New reader macros: #' #` #, #,@
  ** Incompatible change to #'
  ** Scheme expresssions may be commented out with #;
  ** `make-stack' with a tail-called procedural narrowing argument no longer
     works (with compiled procedures)
  ** backtraces through compiled procedures only show procedures that are
     active in the current continuation
  ** syntax-rules and syntax-case macros now propagate source information
     through to the expanded code
  ** The currying behavior of `define' has been removed.
  ** All modules have names now
  ** Many syntax errors have different texts now
  ** Returning multiple values to compiled code will silently truncate the
     values to the expected number
  ** Multiple values in compiled code are not represented by compound
     objects
  ** Defmacros are now implemented in terms of syntax-case.
  ** psyntax is now the default expander
  ** syntax-rules and syntax-case are available by default.
  ** Lexical bindings introduced by hygienic macros may not be referenced
     by nonhygienic macros.
  ** Macros may no longer be referenced as first-class values.
  ** New macro type: syncase-macro
  ** A new `memoize-symbol' evaluator trap has been added.
  ** Duplicate bindings among used modules are resolved lazily.
  ** New thread cancellation and thread cleanup API
  ** Fix bad interaction between `false-if-exception' and stack-call.
  ** New global variables: %load-compiled-path, %load-compiled-extensions
  ** New procedure, `make-promise'
  ** New entry into %guile-build-info: `ccachedir'
  ** Fix bug in `module-bound?'.
  ** `(ice-9 syncase)' has been deprecated.

  * Changes to the C interface

  ** The GH interface (deprecated in version 1.6, 2001) was removed.
  ** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF
  ** Functions for handling `scm_option' now no longer require an argument
  indicating length of the `scm_t_option' array.
  ** scm_primitive_load_path has additional argument, exception_on_error
  ** New C function: scm_module_public_interface
  ** `scm_stat' has an additional argument, `exception_on_error'
  ** `scm_primitive_load_path' has an additional argument

  * Changes to the distribution

  ** Guile's license is now LGPLv3+
  ** `guile-config' will be deprecated in favor of `pkg-config'
  ** New installation directory: $(pkglibdir)/1.9/ccache
  ** New dependency: GNU libunistring.


You can follow Guile development in the Git repository and on the Guile
mailing lists.  Guile builds from the `master' branch of Git have
version number 1.9.x.

Guile versions with an odd middle number, e.g., 1.9.*, are unstable
development versions.  Even middle numbers indicate stable versions.
This has been the case since the 1.3.* series.

Please report bugs to `bug-guile@gnu.org'.  We also welcome reports of
successful builds, which can be sent to the same email address.


Ludovic Courtès, on behalf of the Guile team.

[-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-19 22:05 GNU Guile 1.9.0 released (alpha) Ludovic Courtès
@ 2009-06-19 23:55 ` Linas Vepstas
  2009-06-20  3:00 ` Linas Vepstas
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 18+ messages in thread
From: Linas Vepstas @ 2009-06-19 23:55 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

2009/6/19 Ludovic Courtès <ludo@gnu.org>:
> We are pleased to announce GNU Guile release 1.9.0.
...
>  provide
> feedback to `guile-devel@gnu.org'.

Hmm. 'libunistring' is so new that not even debian
has a package for it. Its also labelled as 'alpha'.
You sure you want to/need to have a dependency on this?

--linas




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-19 22:05 GNU Guile 1.9.0 released (alpha) Ludovic Courtès
  2009-06-19 23:55 ` Linas Vepstas
@ 2009-06-20  3:00 ` Linas Vepstas
  2009-06-20  9:14   ` Neil Jerram
                     ` (2 more replies)
  2009-06-20 12:29 ` Andy Wingo
  2009-06-23 16:10 ` Changying Li
  3 siblings, 3 replies; 18+ messages in thread
From: Linas Vepstas @ 2009-06-20  3:00 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

2009/6/19 Ludovic Courtès <ludo@gnu.org>:
> We are pleased to announce GNU Guile release 1.9.0.

FYI,

'make check' fails for me, with the blow. Should I ignore
this, or dig into it?

--linas

Everything before the below seems to have passed.
Then...

Running alist.test
Running and-let-star.test
Running arbiters.test
Running asm-to-bytecode.test
Running bit-operations.test
Running bytevectors.test
UNRESOLVED: bytevectors.test: 2.9 Operations on Strings: string->utf8 [latin-1]
UNRESOLVED: bytevectors.test: 2.9 Operations on Strings: utf8->string [latin-1]
Running c-api.test
Running chars.test
Running common-list.test
Running continuations.test
Running elisp.test
Running environments.test
Running eval.test
Running exceptions.test
Running filesys.test
Running format.test
Running fractions.test
Running ftw.test
Running gc.test
Running getopt-long.test
Running goops.test
Running guardians.test
UNRESOLVED: guardians.test: standard guardian functionality: guarding
weakly referenced objects: guarded weak vector element gets returned
from guardian
UNRESOLVED: guardians.test: standard guardian functionality: guarding
weakly referenced objects: guarded element of weak vector gets
eventually removed from weak vector
Running hash.test
Running hooks.test
Running i18n.test
UNRESOLVED: i18n.test: text collation (French): string-locale<?
UNRESOLVED: i18n.test: text collation (French): char-locale<?
UNRESOLVED: i18n.test: text collation (French): string-locale-ci=?
UNRESOLVED: i18n.test: text collation (French): string-locale-ci<>?
UNRESOLVED: i18n.test: text collation (French): char-locale-ci<>?
UNRESOLVED: i18n.test: number parsing: locale-string->inexact (French)
UNRESOLVED: i18n.test: nl-langinfo et al.: locale-day (French)
UNRESOLVED: i18n.test: nl-langinfo et al.: locale-day (French, using
`%global-locale')
UNRESOLVED: i18n.test: nl-langinfo et al.: default locale
Running import.test
Running interp.test
Running list.test
Running load.test
Running modules.test
Running numbers.test
Running optargs.test
Running options.test
Running poe.test
Running popen.test
Running ports.test
Running posix.test
Running procprop.test
UNRESOLVED: procprop.test: procedure-arity: apply
Running q.test
Running r4rs.test
Running r5rs_pitfall.test
Running r6rs-ports.test
/bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
FAIL: check-guile
==================================
1 of 1 test failed
Please report to bug-guile@gnu.org
==================================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/home/linas/src/novamente/src/guile-1.9.0'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/home/linas/src/novamente/src/guile-1.9.0'
make: *** [check-recursive] Error 1




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20  3:00 ` Linas Vepstas
@ 2009-06-20  9:14   ` Neil Jerram
  2009-06-20  9:48   ` Ludovic Courtès
  2009-06-20 12:31   ` Andy Wingo
  2 siblings, 0 replies; 18+ messages in thread
From: Neil Jerram @ 2009-06-20  9:14 UTC (permalink / raw)
  To: linasvepstas; +Cc: Ludovic Courtès, guile-devel

Linas Vepstas <linasvepstas@gmail.com> writes:

> Running r6rs-ports.test
> /bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
> FAIL: check-guile

I saw that once (before the release).  When I ran make check again, it
wasn't reproducible.

Regards,
        Neil




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20  3:00 ` Linas Vepstas
  2009-06-20  9:14   ` Neil Jerram
@ 2009-06-20  9:48   ` Ludovic Courtès
  2009-06-20 12:31   ` Andy Wingo
  2 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2009-06-20  9:48 UTC (permalink / raw)
  To: guile-devel

Hi,

Linas Vepstas <linasvepstas@gmail.com> writes:

> Running r6rs-ports.test
> /bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
> FAIL: check-guile

Can you try to reproduce this?  Run "ulimit -c unlimited" before (or
similar) so that we can get a backtrace.

Thanks in advance,
Ludo'.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-19 22:05 GNU Guile 1.9.0 released (alpha) Ludovic Courtès
  2009-06-19 23:55 ` Linas Vepstas
  2009-06-20  3:00 ` Linas Vepstas
@ 2009-06-20 12:29 ` Andy Wingo
  2009-06-20 13:35   ` Ludovic Courtès
  2009-06-23 16:10 ` Changying Li
  3 siblings, 1 reply; 18+ messages in thread
From: Andy Wingo @ 2009-06-20 12:29 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

Hi,

On Sat 20 Jun 2009 00:05, ludo@gnu.org (Ludovic Courtès) writes:

> We are pleased to announce GNU Guile release 1.9.0.

Thank you for doing the release!

> Guile is an interpreter, compiler, and virtual machine for the Scheme
> programming language

Perhaps in the future we can just say "implementation of the Scheme
programming language", and then make it obvious later that we indeed
have a compiler. Strictly speaking, the VM could be said to be an
interpreter :)

Cheers,

Andy
-- 
http://wingolog.org/




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20  3:00 ` Linas Vepstas
  2009-06-20  9:14   ` Neil Jerram
  2009-06-20  9:48   ` Ludovic Courtès
@ 2009-06-20 12:31   ` Andy Wingo
  2009-06-20 18:17     ` Linas Vepstas
  2 siblings, 1 reply; 18+ messages in thread
From: Andy Wingo @ 2009-06-20 12:31 UTC (permalink / raw)
  To: linasvepstas; +Cc: Ludovic Courtès, guile-devel

On Sat 20 Jun 2009 05:00, Linas Vepstas <linasvepstas@gmail.com> writes:

> Running r6rs-ports.test
> /bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
> FAIL: check-guile

A few more things you could try, in addition to what Neil and Ludovic
said:

./check-guile r6rs-ports.test

Does this segfault for you? If so:

./check-guile -i meta/gdb-uninstalled-guile r6rs-ports.test

Then run, and post the backtrace please.

Thanks!

Andy
-- 
http://wingolog.org/




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20 12:29 ` Andy Wingo
@ 2009-06-20 13:35   ` Ludovic Courtès
  0 siblings, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2009-06-20 13:35 UTC (permalink / raw)
  To: guile-devel

Hello!

Andy Wingo <wingo@pobox.com> writes:

> On Sat 20 Jun 2009 00:05, ludo@gnu.org (Ludovic Courtès) writes:
>
>> We are pleased to announce GNU Guile release 1.9.0.
>
> Thank you for doing the release!

Thank *you* for doing most of the work!

>> Guile is an interpreter, compiler, and virtual machine for the Scheme
>> programming language
>
> Perhaps in the future we can just say "implementation of the Scheme
> programming language", and then make it obvious later that we indeed
> have a compiler. Strictly speaking, the VM could be said to be an
> interpreter :)

Yes, I thought about this as well and wasn't satisfied with the
wording.  You're probably right that "implementation of the Scheme
language" is better.

Thanks!

Ludo'.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20 12:31   ` Andy Wingo
@ 2009-06-20 18:17     ` Linas Vepstas
  2009-06-21  6:31       ` Mike Gran
  0 siblings, 1 reply; 18+ messages in thread
From: Linas Vepstas @ 2009-06-20 18:17 UTC (permalink / raw)
  To: Andy Wingo; +Cc: Ludovic Courtès, guile-devel

2009/6/20 Andy Wingo <wingo@pobox.com>:
> On Sat 20 Jun 2009 05:00, Linas Vepstas <linasvepstas@gmail.com> writes:
>
>> Running r6rs-ports.test
>> /bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
>> FAIL: check-guile
>
> A few more things you could try, in addition to what Neil and Ludovic
> said:
>
> ./check-guile r6rs-ports.test
>
> Does this segfault for you?

No .... err yes .. it passed 3 times, failed the fourth time.
I guess there's a race condition,looks to be in the gc.

>  If so:
>
> ./check-guile -i meta/gdb-uninstalled-guile r6rs-ports.test

It seems to crash once out of every 5-10 times.

Here's a crash:

$ ./check-guile -i meta/gdb-uninstalled-guile r6rs-ports.test
Testing meta/gdb-uninstalled-guile ... r6rs-ports.test
with GUILE_LOAD_PATH=/home/linas/src/novamente/src/guile-1.9.0/test-suite
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) r
Starting program:
/home/linas/src/novamente/src/guile-1.9.0/libguile/.libs/lt-guile -e
main -s /home/linas/src/novamente/src/guile-1.9.0/test-suite/guile-test
--test-suite /home/linas/src/novamente/src/guile-1.9.0/test-suite/tests
--log-file check-guile.log r6rs-ports.test
[Thread debugging using libthread_db enabled]
Running r6rs-ports.test
[New Thread 0xf7b8c6b0 (LWP 31850)]

Totals for this test run:
passes:                 31
failures:               0
unexpected passes:      0
expected failures:      0
unresolved test cases:  0
untested test cases:    0
unsupported test cases: 0
errors:                 0


Program exited normally.
(gdb) r
Starting program:
/home/linas/src/novamente/src/guile-1.9.0/libguile/.libs/lt-guile -e
main -s /home/linas/src/novamente/src/guile-1.9.0/test-suite/guile-test
--test-suite /home/linas/src/novamente/src/guile-1.9.0/test-suite/tests
--log-file check-guile.log r6rs-ports.test
[Thread debugging using libthread_db enabled]
Running r6rs-ports.test
[New Thread 0xf7b2d6b0 (LWP 31855)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf7b2d6b0 (LWP 31855)]
0xf7ef12fa in cbp_mark (port=0x9006320) at r6rs-ports.c:212
212	{
(gdb) bt
#0  0xf7ef12fa in cbp_mark (port=0x9006320) at r6rs-ports.c:212
#1  0xf7ec56f2 in scm_gc_mark (ptr=0x9006320) at gc-mark.c:177
#2  0xf7ec57ca in scm_mark_locations (x=0xfff8b610, n=8287) at gc-mark.c:439
#3  0xf7f1f5f2 in scm_threads_mark_stacks () at threads.c:1760
#4  0xf7ec586e in scm_mark_all () at gc-mark.c:86
#5  0xf7ec4579 in scm_i_gc (what=0xfff8b6cc "1-cells") at gc.c:626
#6  0xf7ec496f in scm_gc_for_newcell (freelist=0xf7f73a48,
    free_cells=0x8f0f0a8) at gc.c:500
#7  0xf7f3f891 in vm_debug_engine (vp=0x8f3c0c8, program=0x8f905f0,
    argv=0xfff8bd28, nargs=7) at ../libguile/inline.h:116
#8  0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f90600,
    argv=0xfff8bd24, nargs=1) at vm.c:403
#9  0xf7f31b95 in program_apply_1 (program=0x8f90600, a=0x7986)
    at programs.c:88
#10 0xf7ebe00f in scm_map (proc=0x8f90600, arg1=0xf7b2a8d0, args=0x404)
    at eval.c:3643
#11 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f90600, args=0xf7b2a8a8)
    at eval.i.c:1790
#12 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f90790,
    argv=0xfff8c408, nargs=2) at vm-i-system.c:533
#13 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f90790,
    argv=0xfff8c404, nargs=1) at vm.c:403
#14 0xf7f31b95 in program_apply_1 (program=0x8f90790, a=0x9006050)
---Type <return> to continue, or q <return> to quit---
    at programs.c:88
#15 0xf7ebe00f in scm_map (proc=0x8f90790, arg1=0xf7b29140, args=0x404)
    at eval.c:3643
#16 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f90790, args=0xf7b28788)
    at eval.i.c:1790
#17 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f90a00,
    argv=0xfff8cae8, nargs=2) at vm-i-system.c:533
#18 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f90a00,
    argv=0xfff8cae4, nargs=1) at vm.c:403
#19 0xf7f31b95 in program_apply_1 (program=0x8f90a00, a=0xf7b2a0a0)
    at programs.c:88
#20 0xf7ebe00f in scm_map (proc=0x8f90a00, arg1=0xf7b2a098, args=0x404)
    at eval.c:3643
#21 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f90a00, args=0xf7b2a090)
    at eval.i.c:1790
#22 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f90f30,
    argv=0xfff8d1c8, nargs=2) at vm-i-system.c:533
#23 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f90f30,
    argv=0xfff8d1c4, nargs=1) at vm.c:403
#24 0xf7f31b95 in program_apply_1 (program=0x8f90f30, a=0xf7b24988)
    at programs.c:88
#25 0xf7ebe00f in scm_map (proc=0x8f90f30, arg1=0xf7b24980, args=0x404)
    at eval.c:3643
---Type <return> to continue, or q <return> to quit---
#26 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f90f30, args=0xf7b24978)
    at eval.i.c:1790
#27 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8c7e0,
    argv=0xfff8d8a8, nargs=2) at vm-i-system.c:533
#28 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8c7e0,
    argv=0xfff8d8a4, nargs=1) at vm.c:403
#29 0xf7f31b95 in program_apply_1 (program=0x8f8c7e0, a=0xf7b21968)
    at programs.c:88
#30 0xf7ebe00f in scm_map (proc=0x8f8c7e0, arg1=0xf7b1fbe0, args=0x404)
    at eval.c:3643
#31 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f8c7e0, args=0xf7b1fba0)
    at eval.i.c:1790
#32 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8c960,
    argv=0xfff8df88, nargs=2) at vm-i-system.c:533
#33 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8c960,
    argv=0xfff8df84, nargs=1) at vm.c:403
#34 0xf7f31b95 in program_apply_1 (program=0x8f8c960, a=0xf7b21190)
    at programs.c:88
#35 0xf7ebe00f in scm_map (proc=0x8f8c960, arg1=0xf7b21178, args=0x404)
    at eval.c:3643
#36 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f8c960, args=0xf7b21170)
    at eval.i.c:1790
#37 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8d110,
---Type <return> to continue, or q <return> to quit---
    argv=0xfff8e668, nargs=2) at vm-i-system.c:533
#38 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8d110,
    argv=0xfff8e664, nargs=1) at vm.c:403
#39 0xf7f31b95 in program_apply_1 (program=0x8f8d110, a=0xf7b1bbf8)
    at programs.c:88
#40 0xf7ebe00f in scm_map (proc=0x8f8d110, arg1=0xf7b1a398, args=0x404)
    at eval.c:3643
#41 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f8d110, args=0xf7b1a2f8)
    at eval.i.c:1790
#42 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8d250,
    argv=0xfff8ed48, nargs=2) at vm-i-system.c:533
#43 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8d250,
    argv=0xfff8ed44, nargs=1) at vm.c:403
#44 0xf7f31b95 in program_apply_1 (program=0x8f8d250, a=0xf7b1b268)
    at programs.c:88
#45 0xf7ebe00f in scm_map (proc=0x8f8d250, arg1=0xf7b1b260, args=0x404)
    at eval.c:3643
#46 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f8d250, args=0xf7b1b258)
    at eval.i.c:1790
#47 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8d640,
    argv=0xfff8f428, nargs=2) at vm-i-system.c:533
#48 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8d640,
    argv=0xfff8f424, nargs=1) at vm.c:403
---Type <return> to continue, or q <return> to quit---
#49 0xf7f31b95 in program_apply_1 (program=0x8f8d640, a=0x9007cc8)
    at programs.c:88
#50 0xf7ebe00f in scm_map (proc=0x8f8d640, arg1=0x90075f0, args=0x404)
    at eval.c:3643
#51 0xf7ebd6e2 in scm_apply (proc=0x8f274e0, arg1=0x8f8d640, args=0x90075b0)
    at eval.i.c:1790
#52 0xf7f3ecaa in vm_debug_engine (vp=0x8f3c0c8, program=0x8f8d890, argv=0x0,
    nargs=2) at vm-i-system.c:533
#53 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f8d890, argv=0x0,
    nargs=0) at vm.c:403
#54 0xf7ebea09 in scm_call_0 (proc=0x8f8d890) at eval.c:3129
#55 0xf7ec162d in apply_thunk (thunk=0x8f8d890) at fluids.c:401
#56 0xf7ec180e in scm_c_with_fluid (fluid=0x8f55020, value=0x8f35c50,
    cproc=0xf7ec1610 <apply_thunk>, cdata=0x8f8d890) at fluids.c:464
#57 0xf7ec1865 in scm_with_fluid (fluid=0x8f55020, value=0x8f35c50,
    thunk=0x8f8d890) at fluids.c:451
#58 0xf7ebd62f in scm_apply (proc=0x8f0fcb0, arg1=0x8f55020, args=0x9008218)
    at eval.i.c:1779
#59 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f59b80,
    argv=0xfff901c8, nargs=3) at vm-i-system.c:740
#60 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f59b80,
    argv=0xfff901c4, nargs=1) at vm.c:403
#61 0xf7ebe978 in scm_call_1 (proc=0x8f59b80, arg1=0x90060e8) at eval.c:3138
---Type <return> to continue, or q <return> to quit---
#62 0xf7ebef2f in scm_primitive_eval_x (exp=0x90060e8) at eval.c:4083
#63 0xf7ed8733 in scm_primitive_load (filename=0x8f83420) at load.c:116
#64 0xf7ebd581 in scm_apply (proc=0x8f22670, arg1=0x8f83420, args=0x404)
    at eval.i.c:1747
#65 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f831b0, argv=0x0,
    nargs=1) at vm-i-system.c:740
#66 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f831b0, argv=0x0,
    nargs=0) at vm.c:403
#67 0xf7ebea09 in scm_call_0 (proc=0x8f831b0) at eval.c:3129
#68 0xf7eab374 in scm_sys_start_stack (id=0x8f77f30, thunk=0x8f831b0)
    at debug.c:482
#69 0xf7ebd65d in scm_apply (proc=0x8f321a0, arg1=0x8f77f30, args=0x8fa82e0)
    at eval.i.c:1734
#70 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f83260, argv=0x0,
    nargs=2) at vm-i-system.c:740
#71 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f83260, argv=0x0,
    nargs=0) at vm.c:403
#72 0xf7ebea09 in scm_call_0 (proc=0x8f83260) at eval.c:3129
#73 0xf7ec162d in apply_thunk (thunk=0x8f83260) at fluids.c:401
#74 0xf7ec180e in scm_c_with_fluid (fluid=0x8f22ff0, value=0x4,
    cproc=0xf7ec1610 <apply_thunk>, cdata=0x8f83260) at fluids.c:464
#75 0xf7ec1865 in scm_with_fluid (fluid=0x8f22ff0, value=0x4, thunk=0x8f83260)
    at fluids.c:451
---Type <return> to continue, or q <return> to quit---
#76 0xf7ebd62f in scm_apply (proc=0x8f0fcb0, arg1=0x8f22ff0, args=0x8fa8318)
    at eval.i.c:1779
#77 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f77130, argv=0x0,
    nargs=3) at vm-i-system.c:740
#78 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f83400, argv=0x0,
    nargs=0) at vm.c:403
#79 0xf7ebea09 in scm_call_0 (proc=0x8f83400) at eval.c:3129
#80 0xf7eafe38 in scm_dynamic_wind (in_guard=0x8f833f0, thunk=0x8f83400,
    out_guard=0x8f833b0) at dynwind.c:112
#81 0xf7ebd62f in scm_apply (proc=0x8f10a60, arg1=0x8f833f0, args=0x8fa8350)
    at eval.i.c:1779
#82 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f79ca0,
    argv=0xfff91c98, nargs=3) at vm-i-system.c:740
#83 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f79d70,
    argv=0xfff91c94, nargs=1) at vm.c:403
#84 0xf7f31b95 in program_apply_1 (program=0x8f79d70, a=0x8f83420)
    at programs.c:88
#85 0xf7eb7611 in ceval (x=0x404, env=0x8fa8438) at eval.i.c:1257
#86 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f834d0, argv=0x0,
    nargs=0) at vm-i-system.c:740
#87 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f834d0, argv=0x0,
    nargs=0) at vm.c:403
#88 0xf7ebea09 in scm_call_0 (proc=0x8f834d0) at eval.c:3129
---Type <return> to continue, or q <return> to quit---
#89 0xf7ec162d in apply_thunk (thunk=0x8f834d0) at fluids.c:401
#90 0xf7ec180e in scm_c_with_fluid (fluid=0x8f824f0, value=0x8fa84b8,
    cproc=0xf7ec1610 <apply_thunk>, cdata=0x8f834d0) at fluids.c:464
#91 0xf7ec1865 in scm_with_fluid (fluid=0x8f824f0, value=0x8fa84b8,
    thunk=0x8f834d0) at fluids.c:451
#92 0xf7ebd62f in scm_apply (proc=0x8f0fcb0, arg1=0x8f824f0, args=0x8fa8490)
    at eval.i.c:1779
#93 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f82420,
    argv=0xfff92a54, nargs=3) at vm-i-system.c:740
#94 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f82420,
    argv=0xfff92a4c, nargs=2) at vm.c:403
#95 0xf7f31b51 in program_apply_2 (program=0x8f82420, a=0x8f7ef70, b=0x8fa8510)
    at programs.c:97
#96 0xf7eb76d7 in ceval (x=0x404, env=0x8fa8598) at eval.i.c:1359
#97 0xf7ebf336 in call_closure_1 (proc=0x8fa85c0, arg1=0x8f7ef70)
    at eval.c:3415
#98 0xf7ec06f6 in scm_for_each (proc=0x8fa85c0, arg1=0x8fa58b8, args=0x404)
    at eval.c:3707
#99 0xf7eb7713 in ceval (x=0x404, env=0x8fa86d0) at eval.i.c:1352
#100 0xf7eb7836 in ceval (x=0xf7b25ed0, env=0x8fa86d0) at eval.i.c:359
#101 0xf7f3eb4a in vm_debug_engine (vp=0x8f3c0c8, program=0x8f342c0,
    argv=0xfff93374, nargs=1) at vm-i-system.c:740
#102 0xf7f325fa in scm_c_vm_run (vm=0xf7afe650, program=0x8f342c0,
---Type <return> to continue, or q <return> to quit---
    argv=0xfff9336c, nargs=2) at vm.c:403
#103 0xf7f31b51 in program_apply_2 (program=0x8f342c0, a=0x8fa3d50,
    b=0x8fa3c78) at programs.c:97
#104 0xf7eb76d7 in ceval (x=0x404, env=0x8fa3ad8) at eval.i.c:1359
#105 0xf7eb7213 in ceval (x=0xf7b26388, env=0xf7b26350) at eval.i.c:330
#106 0xf7ebef4a in scm_primitive_eval_x (exp=0xf7b26358) at eval.c:4085
#107 0xf7ebefa5 in scm_eval_x (exp=0xf7b258d8, module_or_state=0x8f7f310)
    at eval.c:4120
#108 0xf7efb311 in scm_shell (argc=10, argv=0xfff938b4) at script.c:771
#109 0xf7ed4306 in invoke_main_func (body_data=0xfff937e4) at init.c:372
#110 0xf7ea9972 in c_body (d=0xfff93738) at continuations.c:354
#111 0xf7f2257d in scm_c_catch (tag=0x104, body=0xf7ea9960 <c_body>,
    body_data=0xfff93738, handler=0xf7ea9980 <c_handler>,
    handler_data=0xfff93738,
    pre_unwind_handler=0xf7f217c0 <scm_handle_by_message_noexit>,
    pre_unwind_handler_data=0x0) at throw.c:242
#112 0xf7ea9f92 in scm_i_with_continuation_barrier (body=0xf7ea9960 <c_body>,
    body_data=0xfff93738, handler=0xf7ea9980 <c_handler>,
    handler_data=0xfff93738,
    pre_unwind_handler=0xf7f217c0 <scm_handle_by_message_noexit>,
    pre_unwind_handler_data=0x0) at continuations.c:330
#113 0xf7eaa073 in scm_c_with_continuation_barrier (
    func=0xf7ed42c0 <invoke_main_func>, data=0xfff937e4) at continuations.c:372
---Type <return> to continue, or q <return> to quit---
#114 0xf7f20eec in scm_i_with_guile_and_parent (
    func=0xf7ed42c0 <invoke_main_func>, data=0xfff937e4, parent=0x0)
    at threads.c:852
#115 0xf7f20ffe in scm_with_guile (func=0xf7ed42c0 <invoke_main_func>,
    data=0xfff937e4) at threads.c:831
#116 0xf7ed429f in scm_boot_guile (argc=10, argv=0xfff938b4,
    main_func=0x8048810 <inner_main>, closure=0x0) at init.c:355
#117 0x08048802 in main (argc=150913616, argv=0x8f14370) at guile.c:70
(gdb)
(gdb)




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-20 18:17     ` Linas Vepstas
@ 2009-06-21  6:31       ` Mike Gran
  2009-06-21 10:42         ` Andy Wingo
  2009-06-21 13:58         ` Ludovic Courtès
  0 siblings, 2 replies; 18+ messages in thread
From: Mike Gran @ 2009-06-21  6:31 UTC (permalink / raw)
  To: linasvepstas, Andy Wingo; +Cc: Ludovic Courtès, guile-devel






----- Original Message ----
> From: Linas Vepstas <linasvepstas@gmail.com>
> To: Andy Wingo <wingo@pobox.com>
> Cc: Ludovic Courtès <ludo@gnu.org>; guile-devel@gnu.org
> Sent: Sunday, June 21, 2009 2:17:46 AM
> Subject: Re: GNU Guile 1.9.0 released (alpha)
> 
> 2009/6/20 Andy Wingo :
> > On Sat 20 Jun 2009 05:00, Linas Vepstas writes:
> >
> >> Running r6rs-ports.test
> >> /bin/sh: line 4:  7268 Segmentation fault      ${dir}$tst
> >> FAIL: check-guile
> >
> > A few more things you could try, in addition to what Neil and Ludovic
> > said:
> >
> > ./check-guile r6rs-ports.test
> >
> > Does this segfault for you?
> 
> No .... err yes .. it passed 3 times, failed the fourth time.
> I guess there's a race condition,looks to be in the gc.
> 
> >  If so:
> >
> > ./check-guile -i meta/gdb-uninstalled-guile r6rs-ports.test
> 
> It seems to crash once out of every 5-10 times.
> 

Hi guys.

Not really in a position to help, since I'm still AFK, but, 
somewhere along the line I pushed this patch to r6rs vectors
in the String_abstraction2 tree.

--- a/libguile/r6rs-ports.c
+++ b/libguile/r6rs-ports.c
@@ -210,7 +210,10 @@ static SCM
 cbp_mark (SCM port)
 {
   /* Mark the underlying method and object vector.  */
-  return SCM_PACK (SCM_STREAM (port));
+  if (SCM_PTAB_ENTRY (port) != NULL)
+    return SCM_PACK (SCM_STREAM (port));
+  else
+    return SCM_BOOL_F;
 }




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21  6:31       ` Mike Gran
@ 2009-06-21 10:42         ` Andy Wingo
  2009-06-21 12:36           ` Neil Jerram
  2009-06-21 18:00           ` Linas Vepstas
  2009-06-21 13:58         ` Ludovic Courtès
  1 sibling, 2 replies; 18+ messages in thread
From: Andy Wingo @ 2009-06-21 10:42 UTC (permalink / raw)
  To: Mike Gran; +Cc: linasvepstas, Ludovic Courtès, guile-devel

Hi Mike,

On Sun 21 Jun 2009 08:31, Mike Gran <spk121@yahoo.com> writes:

> Not really in a position to help, since I'm still AFK, but, 
> somewhere along the line I pushed this patch to r6rs vectors
> in the String_abstraction2 tree.

Took me a little while to understand it, but it seems the patch is
right. I committed and pushed it to master. Linas, can you try again?

Thanks much!

Andy
-- 
http://wingolog.org/




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21 10:42         ` Andy Wingo
@ 2009-06-21 12:36           ` Neil Jerram
  2009-06-21 18:00           ` Linas Vepstas
  1 sibling, 0 replies; 18+ messages in thread
From: Neil Jerram @ 2009-06-21 12:36 UTC (permalink / raw)
  To: Andy Wingo; +Cc: linasvepstas, Ludovic Courtès, guile-devel

[-- Attachment #1: Type: text/plain, Size: 646 bytes --]

Andy Wingo <wingo@pobox.com> writes:

> Hi Mike,
>
> On Sun 21 Jun 2009 08:31, Mike Gran <spk121@yahoo.com> writes:
>
>> Not really in a position to help, since I'm still AFK, but, 
>> somewhere along the line I pushed this patch to r6rs vectors
>> in the String_abstraction2 tree.
>
> Took me a little while to understand it, but it seems the patch is
> right. I committed and pushed it to master. Linas, can you try again?
>
> Thanks much!

I've pushed a deterministic test for this (also below).  (In general,
when fixing something that isn't already reliably reproduced by the
build, please write a regression test if feasible.)

      Neil


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Deterministic-test-for-the-r6rs-ports.test-segmentat.patch --]
[-- Type: text/x-diff, Size: 845 bytes --]

From 4574ec212aad4df9571463ee4d45beb2607e51ad Mon Sep 17 00:00:00 2001
From: Neil Jerram <neil@ossau.uklinux.net>
Date: Sun, 21 Jun 2009 13:31:20 +0100
Subject: [PATCH] Deterministic test for the r6rs-ports.test segmentation fault

* test-suite/tests/r6rs-ports.test ("7.2.7 Input Ports"): Add (gc), to
  test the (ex-)bug in cbp_mark () when marking a closed port.
---
 test-suite/tests/r6rs-ports.test |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/test-suite/tests/r6rs-ports.test b/test-suite/tests/r6rs-ports.test
index 829258f..df12e5c 100644
--- a/test-suite/tests/r6rs-ports.test
+++ b/test-suite/tests/r6rs-ports.test
@@ -342,6 +342,7 @@
                                                     close!)))
 
       (close-port port)
+      (gc) ; Test for marking a closed port.
       closed?)))
 
 \f
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21  6:31       ` Mike Gran
  2009-06-21 10:42         ` Andy Wingo
@ 2009-06-21 13:58         ` Ludovic Courtès
  2009-06-21 14:00           ` Ludovic Courtès
  1 sibling, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2009-06-21 13:58 UTC (permalink / raw)
  To: guile-devel

Hello,

Mike Gran <spk121@yahoo.com> writes:

> --- a/libguile/r6rs-ports.c
> +++ b/libguile/r6rs-ports.c
> @@ -210,7 +210,10 @@ static SCM
>  cbp_mark (SCM port)
>  {
>    /* Mark the underlying method and object vector.  */
> -  return SCM_PACK (SCM_STREAM (port));
> +  if (SCM_PTAB_ENTRY (port) != NULL)
> +    return SCM_PACK (SCM_STREAM (port));
> +  else
> +    return SCM_BOOL_F;
>  }

Hmm, how can we have "SCM_PTAB_ENTRY (port) == NULL" at this point?

GC is also unlikely to occur before "SCM_STREAM (port)" is initialized
since "SCM_SETSTREAM ()" is called right after
`scm_new_port_table_entry ()'.

Thanks in advance,
Ludo'.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21 13:58         ` Ludovic Courtès
@ 2009-06-21 14:00           ` Ludovic Courtès
  2009-06-21 15:11             ` Neil Jerram
  0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2009-06-21 14:00 UTC (permalink / raw)
  To: guile-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Mike Gran <spk121@yahoo.com> writes:
>
>> --- a/libguile/r6rs-ports.c
>> +++ b/libguile/r6rs-ports.c
>> @@ -210,7 +210,10 @@ static SCM
>>  cbp_mark (SCM port)
>>  {
>>    /* Mark the underlying method and object vector.  */
>> -  return SCM_PACK (SCM_STREAM (port));
>> +  if (SCM_PTAB_ENTRY (port) != NULL)
>> +    return SCM_PACK (SCM_STREAM (port));
>> +  else
>> +    return SCM_BOOL_F;
>>  }
>
> Hmm, how can we have "SCM_PTAB_ENTRY (port) == NULL" at this point?

Of course I read Neil's commit right after: the answer is "if PORT is
closed."

Thanks for finding it out!

Ludo'.





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21 14:00           ` Ludovic Courtès
@ 2009-06-21 15:11             ` Neil Jerram
  0 siblings, 0 replies; 18+ messages in thread
From: Neil Jerram @ 2009-06-21 15:11 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Of course I read Neil's commit right after: the answer is "if PORT is
> closed."
>
> Thanks for finding it out!

The credit for that is Andy's.  When applying Mike's fix, he changed
it to say `SCM_OPENP (port)'.

Anyway, an excellent group effort! :-)

   Neil




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-21 10:42         ` Andy Wingo
  2009-06-21 12:36           ` Neil Jerram
@ 2009-06-21 18:00           ` Linas Vepstas
  1 sibling, 0 replies; 18+ messages in thread
From: Linas Vepstas @ 2009-06-21 18:00 UTC (permalink / raw)
  To: Andy Wingo; +Cc: Ludovic Courtès, guile-devel

2009/6/21 Andy Wingo <wingo@pobox.com>:

> Took me a little while to understand it, but it seems the patch is
> right. I committed and pushed it to master. Linas, can you try again?

Yes, that fixes it for me.

--linas




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-19 22:05 GNU Guile 1.9.0 released (alpha) Ludovic Courtès
                   ` (2 preceding siblings ...)
  2009-06-20 12:29 ` Andy Wingo
@ 2009-06-23 16:10 ` Changying Li
  2009-06-23 20:36   ` Mike Gran
  3 siblings, 1 reply; 18+ messages in thread
From: Changying Li @ 2009-06-23 16:10 UTC (permalink / raw)
  To: guile-user; +Cc: guile-devel

thanks very much!

BTW, when will guile support unicode ?

ludo@gnu.org (Ludovic Court鑣) writes:

> We are pleased to announce GNU Guile release 1.9.0.  This is the first
> pre-release of what will eventually become the 2.0 release series.  It
> provides many new noteworthy features, most notably the addition of a
> compiler and virtual machine.  We encourage you to test them and provide
> feedback to `guile-devel@gnu.org'.
>
> The Guile web page is located at http://gnu.org/software/guile/, and
> among other things, it contains a link to the Guile FAQ and pointers to
> the mailing lists.
>
> Guile is an interpreter, compiler, and virtual machine for the Scheme
> programming language, with support for many SRFIs, packaged for use in a
> wide variety of environments.  In addition to implementing the R5RS
> Scheme standard, Guile includes a module system, full access to POSIX
> system calls, networking support, multiple threads, dynamic linking, a
> foreign function call interface, and powerful string processing.
>
> Guile can run interactively, as a script interpreter, and as a Scheme
> compiler to VM bytecode.  It is also packaged as a library so that
> applications can easily incorporate a complete Scheme interpreter/VM.
> An application can use Guile as an extension language, a clean and
> powerful configuration language, or as multi-purpose "glue" to connect
> primitives provided by the application.  It is easy to call Scheme code
> From C code and vice versa.  Applications can add new functions, data
> types, control structures, and even syntax to Guile, to create a
> domain-specific language tailored to the task at hand.
>
>
> Here are the compressed sources:
>   ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz   (4.6MB)
>
> Here are the GPG detached signatures[*]:
>   ftp://alpha.gnu.org/gnu/guile/guile-1.9.0.tar.gz.sig
>
> Here are the MD5 and SHA1 checksums:
>
> 71c3fa0ed22c91b30e9573478fdee4dc  guile-1.9.0.tar.gz
> 836cffc2d05cd0de938bf24bc91e9debe8fea060  guile-1.9.0.tar.gz
>
> [*] You can use either of the above signature files to verify that
> the corresponding file (without the .sig suffix) is intact.  First,
> be sure to download both the .sig file and the corresponding tarball.
> Then, run a command like this:
>
>   gpg --verify guile-1.9.0.tar.gz.sig
>
> If that command fails because you don't have the required public key,
> then run this command to import it:
>
>   gpg --keyserver keys.gnupg.net --recv-keys EA52ECF4
>
> and rerun the `gpg --verify' command.
>
> This release was bootstrapped with the following tools:
>   Autoconf 2.63
>   Automake 1.10.2
>   Libtool 2.2.6
>
>
> This is a new release series with many new features and differences
> compared to 1.8.  Excerpt from the `NEWS' file:
>
>   * New modules (see the manual for details)
>
>   ** `(srfi srfi-18)', more sophisticated multithreading support
>   ** `(ice-9 i18n)', internationalization support
>   ** `(rnrs bytevector)', the R6RS bytevector API
>   ** `(rnrs io ports)', a subset of the R6RS I/O port API
>   ** `(system xref)', a cross-referencing facility (FIXME undocumented)
>
>   * Changes to the stand-alone interpreter
>
>   ** Guile now can compile Scheme to bytecode for a custom virtual machine.
>   ** The stack limit is now initialized from the environment.
>   ** New environment variables: GUILE_LOAD_COMPILED_PATH,
>      GUILE_SYSTEM_LOAD_COMPILED_PATH
>   ** New read-eval-print loop (REPL) implementation
>   ** New `guile-tools' commands: `compile', `disassemble'
>
>   * Changes to Scheme functions and syntax
>
>   ** Procedure removed: `the-environment'
>   ** Files loaded with `primitive-load-path' will now be compiled
>      automatically.
>   ** New POSIX procedures: `getrlimit' and `setrlimit'
>   ** New procedure in `(oops goops)': `method-formals'
>   ** BUG: (procedure-property func 'arity) does not work on compiled
>      procedures
>   ** New procedures in (ice-9 session): `add-value-help-handler!',
>      `remove-value-help-handler!', `add-name-help-handler!'
>      `remove-name-help-handler!', `procedure-arguments',
>   ** Deprecated: `procedure->memoizing-macro', `procedure->syntax'
>   ** New language: ECMAScript
>   ** Defmacros may now have docstrings.
>   ** The psyntax expander now knows how to interpret the @ and @@ special
>      forms.
>   ** The psyntax expander is now hygienic with respect to modules.
>   ** New function, `procedure-module'
>   ** `eval-case' has been deprecated, and replaced by `eval-when'.
>   ** Guile is now more strict about prohibiting definitions in expression
>      contexts.
>   ** Defmacros must now produce valid Scheme expressions.
>   ** Guile's psyntax now supports docstrings and internal definitions.
>   ** Macros need to be defined before their first use.
>   ** Functions needed by macros at expand-time need to be present at
>      expand-time.
>   ** New variable, %pre-modules-transformer
>   ** Temporarily removed functions: `macroexpand', `macroexpand-1'
>   ** New reader macros: #' #` #, #,@
>   ** Incompatible change to #'
>   ** Scheme expresssions may be commented out with #;
>   ** `make-stack' with a tail-called procedural narrowing argument no longer
>      works (with compiled procedures)
>   ** backtraces through compiled procedures only show procedures that are
>      active in the current continuation
>   ** syntax-rules and syntax-case macros now propagate source information
>      through to the expanded code
>   ** The currying behavior of `define' has been removed.
>   ** All modules have names now
>   ** Many syntax errors have different texts now
>   ** Returning multiple values to compiled code will silently truncate the
>      values to the expected number
>   ** Multiple values in compiled code are not represented by compound
>      objects
>   ** Defmacros are now implemented in terms of syntax-case.
>   ** psyntax is now the default expander
>   ** syntax-rules and syntax-case are available by default.
>   ** Lexical bindings introduced by hygienic macros may not be referenced
>      by nonhygienic macros.
>   ** Macros may no longer be referenced as first-class values.
>   ** New macro type: syncase-macro
>   ** A new `memoize-symbol' evaluator trap has been added.
>   ** Duplicate bindings among used modules are resolved lazily.
>   ** New thread cancellation and thread cleanup API
>   ** Fix bad interaction between `false-if-exception' and stack-call.
>   ** New global variables: %load-compiled-path, %load-compiled-extensions
>   ** New procedure, `make-promise'
>   ** New entry into %guile-build-info: `ccachedir'
>   ** Fix bug in `module-bound?'.
>   ** `(ice-9 syncase)' has been deprecated.
>
>   * Changes to the C interface
>
>   ** The GH interface (deprecated in version 1.6, 2001) was removed.
>   ** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF
>   ** Functions for handling `scm_option' now no longer require an argument
>   indicating length of the `scm_t_option' array.
>   ** scm_primitive_load_path has additional argument, exception_on_error
>   ** New C function: scm_module_public_interface
>   ** `scm_stat' has an additional argument, `exception_on_error'
>   ** `scm_primitive_load_path' has an additional argument
>
>   * Changes to the distribution
>
>   ** Guile's license is now LGPLv3+
>   ** `guile-config' will be deprecated in favor of `pkg-config'
>   ** New installation directory: $(pkglibdir)/1.9/ccache
>   ** New dependency: GNU libunistring.
>
>
> You can follow Guile development in the Git repository and on the Guile
> mailing lists.  Guile builds from the `master' branch of Git have
> version number 1.9.x.
>
> Guile versions with an odd middle number, e.g., 1.9.*, are unstable
> development versions.  Even middle numbers indicate stable versions.
> This has been the case since the 1.3.* series.
>
> Please report bugs to `bug-guile@gnu.org'.  We also welcome reports of
> successful builds, which can be sent to the same email address.
>
>
> Ludovic Court鑣, on behalf of the Guile team.

-- 

Thanks & Regards

Changying Li





^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: GNU Guile 1.9.0 released (alpha)
  2009-06-23 16:10 ` Changying Li
@ 2009-06-23 20:36   ` Mike Gran
  0 siblings, 0 replies; 18+ messages in thread
From: Mike Gran @ 2009-06-23 20:36 UTC (permalink / raw)
  To: lchangying, guile-devel; +Cc: guile-user


> From: Changying Li <lchangying@gmail.com>
> 
> thanks very much!
> 
> BTW, when will guile support unicode ?
> 

Hopefully, we will have Unicode functionality in
the second alpha version 1.9.1.  There are still
a couple of issues before it can be merged
into the main tree.  This should happen in a
month or so.





^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-06-23 20:36 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-19 22:05 GNU Guile 1.9.0 released (alpha) Ludovic Courtès
2009-06-19 23:55 ` Linas Vepstas
2009-06-20  3:00 ` Linas Vepstas
2009-06-20  9:14   ` Neil Jerram
2009-06-20  9:48   ` Ludovic Courtès
2009-06-20 12:31   ` Andy Wingo
2009-06-20 18:17     ` Linas Vepstas
2009-06-21  6:31       ` Mike Gran
2009-06-21 10:42         ` Andy Wingo
2009-06-21 12:36           ` Neil Jerram
2009-06-21 18:00           ` Linas Vepstas
2009-06-21 13:58         ` Ludovic Courtès
2009-06-21 14:00           ` Ludovic Courtès
2009-06-21 15:11             ` Neil Jerram
2009-06-20 12:29 ` Andy Wingo
2009-06-20 13:35   ` Ludovic Courtès
2009-06-23 16:10 ` Changying Li
2009-06-23 20:36   ` Mike Gran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).