Re: GNU Guile 1.9.0 released (alpha)
thanks very much! BTW, when will guile support unicode ? l...@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-de...@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
Re: GNU Guile 1.9.0 released (alpha)
From: Changying Li lchangy...@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.
Re: GNU Guile 1.9.0 released (alpha)
Hi Mike, On Sun 21 Jun 2009 08:31, Mike Gran spk...@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/
Re: GNU Guile 1.9.0 released (alpha)
Andy Wingo wi...@pobox.com writes: Hi Mike, On Sun 21 Jun 2009 08:31, Mike Gran spk...@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 From 4574ec212aad4df9571463ee4d45beb2607e51ad Mon Sep 17 00:00:00 2001 From: Neil Jerram n...@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?))) -- 1.5.6.5
Re: GNU Guile 1.9.0 released (alpha)
Hello, Mike Gran spk...@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'.
Re: GNU Guile 1.9.0 released (alpha)
l...@gnu.org (Ludovic Courtès) writes: Mike Gran spk...@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'.
Re: GNU Guile 1.9.0 released (alpha)
2009/6/21 Andy Wingo wi...@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
Re: GNU Guile 1.9.0 released (alpha)
Hi, On Sat 20 Jun 2009 00:05, l...@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/
Re: GNU Guile 1.9.0 released (alpha)
On Sat 20 Jun 2009 05:00, Linas Vepstas linasveps...@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/
Re: GNU Guile 1.9.0 released (alpha)
Hello! Andy Wingo wi...@pobox.com writes: On Sat 20 Jun 2009 00:05, l...@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'.
Re: GNU Guile 1.9.0 released (alpha)
2009/6/20 Andy Wingo wi...@pobox.com: On Sat 20 Jun 2009 05:00, Linas Vepstas linasveps...@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
Re: GNU Guile 1.9.0 released (alpha)
2009/6/19 Ludovic Courtès l...@gnu.org: We are pleased to announce GNU Guile release 1.9.0. ... provide feedback to `guile-de...@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
Re: GNU Guile 1.9.0 released (alpha)
2009/6/19 Ludovic Courtès l...@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-gu...@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