Re: Better HTTPS support in (web client)
Hi Andy, Andy Wingo skribis: > On Fri 10 Jan 2020 15:49, Ludovic Courtès writes: > >> Hello Guilers! >> >> I’ve pushed a ‘wip-https-client’ branch that contains improvements for >> HTTPS support in (web client) that I’d like to be part of Guile 3: >> >> https://git.savannah.gnu.org/cgit/guile.git/log/?h=wip-https-client > > Looks nice, sounds like a great thing to merge in! Pushed with a ‘NEWS’ entry! Apologies for missing 2.9.9. Thanks, Ludo’.
GNU Guile 2.9.9 Released [beta]
We are pleased to announce GNU Guile release 2.9.9. This is the ninfth and probably final pre-release of what will eventually become the 3.0 release series. Compared to the current stable series (2.2.x), the future Guile 3.0 adds support for just-in-time native code generation, speeding up all Guile programs. See the NEWS extract at the end of the mail for full details. Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a number of bugs. The current plan is to make a 3.0.0 final release on 17 January 2020. If there's nothing wrong with this prerelease, 3.0.0 will be essentially identical to 2.9.9. With that in mind, please test and make sure the release works on your platform! Please send any build reports (success or failure) to guile-devel@gnu.org, along with platform details. You can file a bug by sending mail to bug-gu...@gnu.org. The Guile web page is located at http://gnu.org/software/guile/, and among other things, it contains a copy of the Guile manual and pointers to more resources. Guile is an implementation of the Scheme programming language, packaged for use in a wide variety of environments. In addition to implementing the R5RS, R6RS, and R7RS Scheme standards, Guile includes a module system, full access to POSIX system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, powerful string processing, and HTTP client and server implementations. 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. Guile 2.9.9 can be installed in parallel with Guile 2.2.x; see http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html. A more detailed NEWS summary follows these details on how to get the Guile sources. Here are the compressed sources: http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz (10MB) http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz (12MB) http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz (21MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz.sig http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz.sig http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 59f136e5db36eba070cc5e68784e632dc2beae4b21fd6c7c8ed2c598cc992efc guile-2.9.9.tar.lz bf71920cfa23e59fc6257bee84ef4dfeccf4f03e96bb8205592e09f9dbff2969 guile-2.9.9.tar.xz eafe394cf99d9dd1ab837e6d1b9b2b8d9f0cd13bc34e64ca92456ce1bc2b1925 guile-2.9.9.tar.gz [*] Use a .sig file 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-2.9.9.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 4FD4D288D445934E0A14F9A5A8803732E4436885 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.16.1 Libtool 2.4.6 Gnulib v0.1-1157-gb03f418 Makeinfo 6.7 An extract from NEWS follows. Changes since alpha 2.9.8 (since 2.9.7): * Notable changes ** `define-module' #:autoload no longer pulls in the whole module One of the ways that a module can use another is "autoloads". For example: (define-module (a) #:autoload (b) (make-b)) In this example, module `(b)' will only be imported when the `make-b' identifier is referenced. However besides the imprecision about when a given binding is actually referenced, this mechanism used to cause the whole imported module to become available, not just the specified bindings. This has now been changed to only import the specified bindings. This is a backward-incompatible change. The fix is to mention all bindings of interest in the autoload clause. Feedback is welcome. ** `guard' no longer unwinds the stack for clause tests SRFI-34, and then R6RS and R7RS, defines a `guard' form that is a shorthand for `with-exception-handler'. The cond-like clauses for the exception handling are specified to run with the continuation of the `guard', while any re-propagation of the exception happens with the continuation of the original `raise'. In practice, this means that one needs full `call-with-continuation' to implement the specified semantics, to be able to unwind the
Re: GNU Guile 2.9.9 Released [beta]
On Mon 13 Jan 2020 09:39, Andy Wingo writes: > Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a number > of bugs. Obviously this was meant to be 2.9.9 versus 2.9.8 :) > Changes since alpha 2.9.8 (since 2.9.7): Here too :)
Re: Better HTTPS support in (web client)
Hello! Chris Vine skribis: > Is the new implementation usable with suspendable ports? When I last > looked the read-response-body procedure was not, which meant that > http-get and http-put were not, which meant that you could not really > use them with fibers. It’s not a “new implementation”, rather additional (and IMO important) features that are added. So it works as before, meaning that data is passed through a GnuTLS “session record port”. And that, in turn, that means this is not suspendable, unfortunately. To address that, it should be possible to avoid the session record port and instead use the lower-level GnuTLS ‘record-receive!’ and ‘record-send’ procedures. This is left as an excercise to the reader. :-) Thanks, Ludo’.
Re: GNU Guile 2.9.9 Released [beta]
Guile 2.9.9, like .8 and .7, does not build on Cygwin (64 bit). Configure runs without error, but make crashes with this (truncated to just the tail): Making all in bootstrap make[2]: Entering directory '/cygdrive/c/Users/rr828893/Downloads/guile-2.9.9/bootstrap' BOOTSTRAP GUILEC ice-9/eval.go BOOTSTRAP GUILEC ice-9/psyntax-pp.go BOOTSTRAP GUILEC language/cps/intmap.go BOOTSTRAP GUILEC language/cps/intset.go BOOTSTRAP GUILEC language/cps/graphs.go BOOTSTRAP GUILEC ice-9/vlist.go BOOTSTRAP GUILEC srfi/srfi-1.go /bin/sh: line 6: 4294 Segmentation fault (core dumped) GUILE_AUTO_COMPILE=0 ../meta/build-env guild compile --target="x86_64-unknown-cygwin" -O1 -Oresolve-primitives -L "/home/rr828893/Downloads/guile-2.9.9/module" -L "/home/rr828893/Downloads/guile-2.9.9/guile-readline" -o "srfi/srfi-1.go" "../module/srfi/srfi-1.scm" make[2]: *** [Makefile:1930: srfi/srfi-1.go] Error 139 make[2]: Leaving directory '/cygdrive/c/Users/rr828893/Downloads/guile-2.9.9/bootstrap' make[1]: *** [Makefile:1849: all-recursive] Error 1 make[1]: Leaving directory '/cygdrive/c/Users/rr828893/Downloads/guile-2.9.9' make: *** [Makefile:1735: all] Error 2 All previous problems (which were easy to work around) have gone away in this release, which is progress, but it doesn't get me past Guile 2.2. John Cowan http://vrici.lojban.org/~cowanco...@ccil.org Your worships will perhaps be thinking that it is an easy thing to blow up a dog? [Or] to write a book? --Don Quixote, Introduction
Re: GNU Guile 2.9.8 Released [beta]
I can confirm that this patch solves the issue On Sat, Jan 11, 2020 at 11:33 AM Andy Wingo wrote: > On Wed 08 Jan 2020 15:22, Nala Ginrut writes: > > > In unknown file: > >4 (primitive-load-path "artanis/server/server-context" #<…>) > > In ice-9/eval.scm: > >626:19 3 (_ #) > > 155:9 2 (_ #) > > In ice-9/boot-9.scm: > > 1153:19 1 (_ _ _ _ _ _ _) > > 1655:16 0 (raise-exception _ #:continuable? _) > > > > ice-9/boot-9.scm:1655:16: In procedure raise-exception: > > Wrong number of arguments to # ice-9/boot-9.scm:1153:19 (a b c d e f)> > > > > > > > Any hint that I can figure out whait's incompatible? > > Gosh we need to improve this info. Anyway the procedure at > boot-9.scm:1153:19 is a record constructor, for a record with 6 fields. > Apparently somewhere in (artanis server server-context) is calling it > with the wrong number of arguments. What do you use for records? Do > you have your own abstraction or do you use R6RS records or something? > Perhaps something in artanis relied on the way that R6RS records used to > implement single inheritance, as a chain of objects instead of a flat > record. Or perhaps the adaptations to R6RS records in Guile introduced > a bug. I am interested to know the answer :) > > Andy > >
Re: GNU Guile 2.9.9 Released [beta]
I mean that this bug is for 2.9.9 On Mon, Jan 13, 2020 at 10:32 PM Stefan Israelsson Tampe < stefan.ita...@gmail.com> wrote: > Nice, but I think we are not there yet. > > In current guile (eq? f f) = #f for a procedure f. Try: > > (define-module (b) > #:export (f)) > > (define (g x) x) > (define (u x) g) > (define (f x) > (pk eq?(eq? g (u x))) > (pk eqv? (eqv? g (u x))) > (pk equal? (equal? g (u x))) > (pk (object-address g) (object-address (u x > > scheme@(guile-user)> (use-modules (b)) > ;;; note: source file /home/stis/b.scm > ;;; newer than compiled > /home/stis/.cache/guile/ccache/3.0-LE-8-4.2/home/stis/ > b.scm.go > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > ;;; compiling /home/stis/b.scm > ;;; compiled > /home/stis/.cache/guile/ccache/3.0-LE-8-4.2/home/stis/b.scm.go > scheme@(guile-user)> (f 1) > > ;;; (# #f) > > ;;; (# #f) > > ;;; (# #f) > > ;;; (139824931374184 139824931374200) > > > On Mon, Jan 13, 2020 at 9:39 AM Andy Wingo wrote: > >> We are pleased to announce GNU Guile release 2.9.9. This is the ninfth >> and probably final pre-release of what will eventually become the 3.0 >> release series. >> >> Compared to the current stable series (2.2.x), the future Guile 3.0 adds >> support for just-in-time native code generation, speeding up all Guile >> programs. See the NEWS extract at the end of the mail for full details. >> >> Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a number >> of bugs. >> >> The current plan is to make a 3.0.0 final release on 17 January 2020. >> If there's nothing wrong with this prerelease, 3.0.0 will be essentially >> identical to 2.9.9. With that in mind, please test and make sure the >> release works on your platform! Please send any build reports (success >> or failure) to guile-devel@gnu.org, along with platform details. You >> can file a bug by sending mail to bug-gu...@gnu.org. >> >> The Guile web page is located at http://gnu.org/software/guile/, and >> among other things, it contains a copy of the Guile manual and pointers >> to more resources. >> >> Guile is an implementation of the Scheme programming language, packaged >> for use in a wide variety of environments. In addition to implementing >> the R5RS, R6RS, and R7RS Scheme standards, Guile includes a module >> system, full access to POSIX system calls, networking support, multiple >> threads, dynamic linking, a foreign function call interface, powerful >> string processing, and HTTP client and server implementations. >> >> 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. >> >> Guile 2.9.9 can be installed in parallel with Guile 2.2.x; see >> >> http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html >> . >> >> A more detailed NEWS summary follows these details on how to get the >> Guile sources. >> >> Here are the compressed sources: >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz (10MB) >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz (12MB) >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz (21MB) >> >> Here are the GPG detached signatures[*]: >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz.sig >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz.sig >> http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz.sig >> >> Use a mirror for higher download bandwidth: >> http://www.gnu.org/order/ftp.html >> >> Here are the SHA256 checksums: >> >> 59f136e5db36eba070cc5e68784e632dc2beae4b21fd6c7c8ed2c598cc992efc >> guile-2.9.9.tar.lz >> bf71920cfa23e59fc6257bee84ef4dfeccf4f03e96bb8205592e09f9dbff2969 >> guile-2.9.9.tar.xz >> eafe394cf99d9dd1ab837e6d1b9b2b8d9f0cd13bc34e64ca92456ce1bc2b1925 >> guile-2.9.9.tar.gz >> >> [*] Use a .sig file 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-2.9.9.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 >> 4FD4D288D445934E0A14F9A5A8803732E4436885 >> >> and rerun the 'gpg --verify' command. >> >> This release was bootstrapped with the following tools: >> Autoconf 2.69 >> Automake 1.16.1 >> Libtool 2.4.6 >> Gnulib
Re: GNU Guile 2.9.9 Released [beta]
Nice, but I think we are not there yet. In current guile (eq? f f) = #f for a procedure f. Try: (define-module (b) #:export (f)) (define (g x) x) (define (u x) g) (define (f x) (pk eq?(eq? g (u x))) (pk eqv? (eqv? g (u x))) (pk equal? (equal? g (u x))) (pk (object-address g) (object-address (u x scheme@(guile-user)> (use-modules (b)) ;;; note: source file /home/stis/b.scm ;;; newer than compiled /home/stis/.cache/guile/ccache/3.0-LE-8-4.2/home/stis/ b.scm.go ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /home/stis/b.scm ;;; compiled /home/stis/.cache/guile/ccache/3.0-LE-8-4.2/home/stis/b.scm.go scheme@(guile-user)> (f 1) ;;; (# #f) ;;; (# #f) ;;; (# #f) ;;; (139824931374184 139824931374200) On Mon, Jan 13, 2020 at 9:39 AM Andy Wingo wrote: > We are pleased to announce GNU Guile release 2.9.9. This is the ninfth > and probably final pre-release of what will eventually become the 3.0 > release series. > > Compared to the current stable series (2.2.x), the future Guile 3.0 adds > support for just-in-time native code generation, speeding up all Guile > programs. See the NEWS extract at the end of the mail for full details. > > Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a number > of bugs. > > The current plan is to make a 3.0.0 final release on 17 January 2020. > If there's nothing wrong with this prerelease, 3.0.0 will be essentially > identical to 2.9.9. With that in mind, please test and make sure the > release works on your platform! Please send any build reports (success > or failure) to guile-devel@gnu.org, along with platform details. You > can file a bug by sending mail to bug-gu...@gnu.org. > > The Guile web page is located at http://gnu.org/software/guile/, and > among other things, it contains a copy of the Guile manual and pointers > to more resources. > > Guile is an implementation of the Scheme programming language, packaged > for use in a wide variety of environments. In addition to implementing > the R5RS, R6RS, and R7RS Scheme standards, Guile includes a module > system, full access to POSIX system calls, networking support, multiple > threads, dynamic linking, a foreign function call interface, powerful > string processing, and HTTP client and server implementations. > > 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. > > Guile 2.9.9 can be installed in parallel with Guile 2.2.x; see > > http://www.gnu.org/software/guile/manual/html_node/Parallel-Installations.html > . > > A more detailed NEWS summary follows these details on how to get the > Guile sources. > > Here are the compressed sources: > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz (10MB) > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz (12MB) > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz (21MB) > > Here are the GPG detached signatures[*]: > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.lz.sig > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.xz.sig > http://alpha.gnu.org/gnu/guile/guile-2.9.9.tar.gz.sig > > Use a mirror for higher download bandwidth: > http://www.gnu.org/order/ftp.html > > Here are the SHA256 checksums: > > 59f136e5db36eba070cc5e68784e632dc2beae4b21fd6c7c8ed2c598cc992efc > guile-2.9.9.tar.lz > bf71920cfa23e59fc6257bee84ef4dfeccf4f03e96bb8205592e09f9dbff2969 > guile-2.9.9.tar.xz > eafe394cf99d9dd1ab837e6d1b9b2b8d9f0cd13bc34e64ca92456ce1bc2b1925 > guile-2.9.9.tar.gz > > [*] Use a .sig file 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-2.9.9.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 > 4FD4D288D445934E0A14F9A5A8803732E4436885 > > and rerun the 'gpg --verify' command. > > This release was bootstrapped with the following tools: > Autoconf 2.69 > Automake 1.16.1 > Libtool 2.4.6 > Gnulib v0.1-1157-gb03f418 > Makeinfo 6.7 > > An extract from NEWS follows. > > > Changes since alpha 2.9.8 (since 2.9.7): > > * Notable changes > > ** `define-module' #:autoload no longer pulls in the whole module > > One of the ways that a module can use another is "autoloads". For >
Re: bug#39118: GNU Guile 2.9.9 Released [beta]
Okay, with GUILE_JIT_THRESHOLD set to -1 in the environment, I can build Guile under Cygwin. There are two test failures which probably reflect differences between newlib and glibc: ERROR: time.test: strptime: GNU %s format: strftime fr_FR.utf8 - arguments: ((system-error "strptime" "~A" ("Invalid argument") (22))) ERROR: time.test: strptime: GNU %s format: strftime fr_FR.iso88591 - arguments: ((system-error "strptime" "~A" ("Invalid argument") (22))) And that's that: Cygwin can support Guile 3.0 without JIT. It might be a good idea to force this variable on in "configure" when building under Cygwin.