Re: GNU Guile 2.1.4 released [beta]
Ok, thanks for testing it. Here is the item in the bug tracker [1]. [1] http://debbugs.gnu.org/cgi/bugreport.cgi?bug=24454 On 17. September 2016 15:07:15 GMT+00:00, David Pirotte wrote: >Hello Jan, > >> (use-modules (oop goops)) >> (define-generic native-type) >> (define-method (native-type (i ) . args) 0) >> (define-method (native-type (i ) . args) 1) >> (define-method (native-type (b ) . args) 2) >> >> (native-type 1) >> (native-type 1.3) >> (native-type #f) >> (native-type 1 1.2) >> (native-type 1.4 2) >> (native-type 1.4 2 3) > >This works fine using 2.0.12, but indeed it fails using master [2.1.4 >here] > >Please report bug, bug-guile at gnu dot org, with this snipset and the >bug trace, >mentioning it works using 2.0.12, fails using master. > >David -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
Re: GNU Guile 2.1.4 released [beta]
Hello Jan, > (use-modules (oop goops)) > (define-generic native-type) > (define-method (native-type (i ) . args) 0) > (define-method (native-type (i ) . args) 1) > (define-method (native-type (b ) . args) 2) > > (native-type 1) > (native-type 1.3) > (native-type #f) > (native-type 1 1.2) > (native-type 1.4 2) > (native-type 1.4 2 3) This works fine using 2.0.12, but indeed it fails using master [2.1.4 here] Please report bug, bug-guile at gnu dot org, with this snipset and the bug trace, mentioning it works using 2.0.12, fails using master. David pgp4nREDqZanz.pgp Description: OpenPGP digital signature
Re: GNU Guile 2.1.4 released [beta]
On Fri, 16 Sep 2016, David Pirotte wrote: Jan, I haven't managed to isolate it properly but I observed some strange problem with "concatenate" (using my "aiscm" library). (define-method (match (i ) . args) ...) ... (apply match (concatenate (list (list 1) (list 2 2 3 4 5 6 oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure vector-ref: Value out of range: 7 impossible to help you on this because the snipset is incomplete please provide a complete match definition Also, I think match is really a 'problematic' name, because it is defined in (ice-9 match), and most of us almost always import this module. Chers, David Hi David, I managed to create a failing test. After a certain number of differently typed calls there is an error in "multiple-arity-dispatcher": (use-modules (oop goops)) (define-generic native-type) (define-method (native-type (i ) . args) 0) (define-method (native-type (i ) . args) 1) (define-method (native-type (b ) . args) 2) (native-type 1) (native-type 1.3) (native-type #f) (native-type 1 1.2) (native-type 1.4 2) (native-type 1.4 2 3) ;(native-type 1.4 1.5); add more calls as needed ;(native-type #f #t); add more calls as needed ;oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure vector-ref: Value out of range: 3 ; ;Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. ,bt ;In oop/goops.scm: ;While executing meta-command: ;ERROR: In procedure vector-set!: Value out of range: 5 I hope you can fix it. I can have a look as well but I don't understand the code well enough at the moment. Regards Jan
Re: GNU Guile 2.1.4 released [beta]
Ok, no worries. I will rename "match". The test suite of "aiscm" fails but I didn't manage to create a small example so far. On 16. September 2016 16:49:51 GMT+00:00, David Pirotte wrote: >Jan, > >> I haven't managed to isolate it properly but I observed some strange >> problem with "concatenate" (using my "aiscm" library). > >> (define-method (match (i ) . args) ...) >> ... >> (apply match (concatenate (list (list 1) (list 2 2 3 4 5 6 >> oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure >vector-ref: Value >> out of range: 7 > > impossible to help you on this because the snipset is incomplete > please provide a complete match definition > >Also, I think match is really a 'problematic' name, because it is >defined in >(ice-9 match), and most of us almost always import this module. > >Chers, >David -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
Re: GNU Guile 2.1.4 released [beta]
Jan, > I haven't managed to isolate it properly but I observed some strange > problem with "concatenate" (using my "aiscm" library). > (define-method (match (i ) . args) ...) > ... > (apply match (concatenate (list (list 1) (list 2 2 3 4 5 6 > oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure vector-ref: > Value > out of range: 7 impossible to help you on this because the snipset is incomplete please provide a complete match definition Also, I think match is really a 'problematic' name, because it is defined in (ice-9 match), and most of us almost always import this module. Chers, David pgpZEKaVArPvq.pgp Description: OpenPGP digital signature
Re: GNU Guile 2.1.4 released [beta]
A quick note that the workaround is not valid. Sorry if I caused confusion. Hi, I haven't managed to isolate it properly but I observed some strange problem with "concatenate" (using my "aiscm" library). (define-method (match (i ) . args) ...) ... (apply match (concatenate (list (list 1) (list 2 2 3 4 5 6 oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure vector-ref: Value out of range: 7 A workaround is to replace "concatenate" with "apply match". I haven't managed to isolate the bug properly so far. Regards Jan
Re: GNU Guile 2.1.4 released [beta]
On Thu, 15 Sep 2016, David Pirotte wrote: Hi Jan, Thanks a lot for the work. I am trying to run my project "aiscm" with it. I noticed that slots are now objects themselves. So instead of (car <>), one can use (slot-ref <> 'name). Please let me know if there is a better way to get the slot names of a class. (use-modules (oop goops)) (define-class () (a #:init-keyword #:a)) (car (car (class-slots (class-of (make #:a 1); Guile 2.0 (slot-ref (car (class-slots (class-of (make #:a 1 'name); Guile 2.1.4 slot-definition-name See the '8.8 Introspection' section in the manual David Thanks, that works with both versions of Guile :)
Re: GNU Guile 2.1.4 released [beta]
Hi, I haven't managed to isolate it properly but I observed some strange problem with "concatenate" (using my "aiscm" library). (define-method (match (i ) . args) ...) ... (apply match (concatenate (list (list 1) (list 2 2 3 4 5 6 oop/goops.scm:1336:2: oop/goops.scm:1336:2: In procedure vector-ref: Value out of range: 7 A workaround is to replace "concatenate" with "apply match". I haven't managed to isolate the bug properly so far. Regards Jan On Wed, 14 Sep 2016, Andy Wingo wrote: We are pleased to announce GNU Guile release 2.1.4. Guile 2.1.4 is the fourth pre-release in what will eventually become the 2.2 release series. We encourage you to test this release and provide feedback to guile-devel@gnu.org. This release adds an atomic reference facility and fixes many small bugs. See the full NEWS below, for details. 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, 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. Guile 2.1.4 can be installed in parallel with Guile 2.0.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.1.4.tar.gz (17MB) http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz (10MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.gz.sig http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 04dd7b9ea58644b5631e74c212678db6498f945c5dd8f3900c01409c054ad7c3 guile-2.1.4.tar.gz 326440e5041892ea8f99828178385f6066f936353d3a91404b88986f91f713f1 guile-2.1.4.tar.xz [*] 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.1.4.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 FF478FB264DE32EC296725A3DDC0F5358812F8F2 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.15 Libtool 2.4.6 Gnulib v0.1-800-g68b6ade Makeinfo 6.1 Changes in 2.1.4 (changes since the 2.1.3 alpha release): * Notable changes ** C99 required Following Emacs, you must use a C99-capable compiler when building Guile. In the future we also expect require C99 to use Guile's C interface, at least for `stdint' support. * New interfaces ** Implement R6RS custom binary input/output ports See "Custom Ports" in the manual. ** Implement R6RS output-buffer-mode ** Implement R6RS bytevector->string, string->bytevector See "R6RS Transcoders" in the manual. ** Thread-safe atomic boxes (references) See "Atomics" in the manual. ** File descriptor finalizers See "Ports and File Descriptors" in the manual. * Performance improvements ** Added unboxing support for `logxor' ** Better integer unboxing * Incompatible changes ** Statically scoped module duplicate handlers It used to be that if a module did not specify a #:duplicates handler, when a name was first referenced in that module and multiple imported modules provide that name, the value of the `default-duplicate-binding-handlers' parameter would be used to resolve the duplicate bindings. We have changed so that instead a module defaults to the set of handlers described in the manual. If the module specifies #:duplicates, of course we use that. The `default-duplicate-binding-handlers' parameter now simply accesses the handlers of the current module, instead of some global value. * Bug fixes ** Better MinGW support `system*' is now supported on MinGW targets. ** Avoid flushing buffers on ftell Fixes regr
Re: GNU Guile 2.1.4 released [beta]
Hi Jan, > Thanks a lot for the work. I am trying to run my project "aiscm" with it. >I noticed that slots are now objects themselves. So instead of (car <>), > one can use (slot-ref <> 'name). Please let me know if there is a better > way to get the slot names of a class. > (use-modules (oop goops)) > (define-class () >(a #:init-keyword #:a)) > > (car (car (class-slots (class-of (make #:a 1); Guile 2.0 > (slot-ref (car (class-slots (class-of (make #:a 1 'name); > Guile > 2.1.4 slot-definition-name See the '8.8 Introspection' section in the manual David pgpT6M9FvaAWT.pgp Description: OpenPGP digital signature
Re: GNU Guile 2.1.4 released [beta]
Thanks a lot for the work. I am trying to run my project "aiscm" with it. I noticed that slots are now objects themselves. So instead of (car <>), one can use (slot-ref <> 'name). Please let me know if there is a better way to get the slot names of a class. (use-modules (oop goops)) (define-class () (a #:init-keyword #:a)) (car (car (class-slots (class-of (make #:a 1); Guile 2.0 (slot-ref (car (class-slots (class-of (make #:a 1 'name); Guile 2.1.4 Regards Jan On Wed, 14 Sep 2016, Andy Wingo wrote: We are pleased to announce GNU Guile release 2.1.4. Guile 2.1.4 is the fourth pre-release in what will eventually become the 2.2 release series. We encourage you to test this release and provide feedback to guile-devel@gnu.org. This release adds an atomic reference facility and fixes many small bugs. See the full NEWS below, for details. 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, 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. Guile 2.1.4 can be installed in parallel with Guile 2.0.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.1.4.tar.gz (17MB) http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz (10MB) Here are the GPG detached signatures[*]: http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.gz.sig http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz.sig Use a mirror for higher download bandwidth: http://www.gnu.org/order/ftp.html Here are the SHA256 checksums: 04dd7b9ea58644b5631e74c212678db6498f945c5dd8f3900c01409c054ad7c3 guile-2.1.4.tar.gz 326440e5041892ea8f99828178385f6066f936353d3a91404b88986f91f713f1 guile-2.1.4.tar.xz [*] 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.1.4.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 FF478FB264DE32EC296725A3DDC0F5358812F8F2 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.69 Automake 1.15 Libtool 2.4.6 Gnulib v0.1-800-g68b6ade Makeinfo 6.1 Changes in 2.1.4 (changes since the 2.1.3 alpha release): * Notable changes ** C99 required Following Emacs, you must use a C99-capable compiler when building Guile. In the future we also expect require C99 to use Guile's C interface, at least for `stdint' support. * New interfaces ** Implement R6RS custom binary input/output ports See "Custom Ports" in the manual. ** Implement R6RS output-buffer-mode ** Implement R6RS bytevector->string, string->bytevector See "R6RS Transcoders" in the manual. ** Thread-safe atomic boxes (references) See "Atomics" in the manual. ** File descriptor finalizers See "Ports and File Descriptors" in the manual. * Performance improvements ** Added unboxing support for `logxor' ** Better integer unboxing * Incompatible changes ** Statically scoped module duplicate handlers It used to be that if a module did not specify a #:duplicates handler, when a name was first referenced in that module and multiple imported modules provide that name, the value of the `default-duplicate-binding-handlers' parameter would be used to resolve the duplicate bindings. We have changed so that instead a module defaults to the set of handlers described in the manual. If the module specifies #:duplicates, of course we use that. The `default-duplicate-binding-handlers' parameter now simply accesses the handlers of the current module, instead of some global value. * Bug fixes ** Better MinGW support `system*' is now supported on MinGW targets. ** Avoid flushi
Re: GNU Guile 2.1.4 released [beta]
Nice work! Thanks for working on it! I think maybe we can expect 2.2 released end of this year, right? ;-) Best regards. On Wed, 2016-09-14 at 13:41 +0200, Andy Wingo wrote: > We are pleased to announce GNU Guile release 2.1.4. > > Guile 2.1.4 is the fourth pre-release in what will eventually become the > 2.2 release series. We encourage you to test this release and provide > feedback to guile-devel@gnu.org. > > This release adds an atomic reference facility and fixes many small > bugs. See the full NEWS below, for details. > > 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, 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. > > Guile 2.1.4 can be installed in parallel with Guile 2.0.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.1.4.tar.gz (17MB) > http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz (10MB) > > Here are the GPG detached signatures[*]: > http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.gz.sig > http://alpha.gnu.org/gnu/guile/guile-2.1.4.tar.xz.sig > > Use a mirror for higher download bandwidth: > http://www.gnu.org/order/ftp.html > > Here are the SHA256 checksums: > > 04dd7b9ea58644b5631e74c212678db6498f945c5dd8f3900c01409c054ad7c3 guile- > 2.1.4.tar.gz > 326440e5041892ea8f99828178385f6066f936353d3a91404b88986f91f713f1 guile- > 2.1.4.tar.xz > > [*] 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.1.4.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 > FF478FB264DE32EC296725A3DDC0F5358812F8F2 > > and rerun the 'gpg --verify' command. > > This release was bootstrapped with the following tools: > Autoconf 2.69 > Automake 1.15 > Libtool 2.4.6 > Gnulib v0.1-800-g68b6ade > Makeinfo 6.1 > > > Changes in 2.1.4 (changes since the 2.1.3 alpha release): > > * Notable changes > ** C99 required > > Following Emacs, you must use a C99-capable compiler when building > Guile. In the future we also expect require C99 to use Guile's C > interface, at least for `stdint' support. > > * New interfaces > ** Implement R6RS custom binary input/output ports > > See "Custom Ports" in the manual. > > ** Implement R6RS output-buffer-mode > ** Implement R6RS bytevector->string, string->bytevector > > See "R6RS Transcoders" in the manual. > > ** Thread-safe atomic boxes (references) > > See "Atomics" in the manual. > > ** File descriptor finalizers > > See "Ports and File Descriptors" in the manual. > > * Performance improvements > ** Added unboxing support for `logxor' > ** Better integer unboxing > > * Incompatible changes > ** Statically scoped module duplicate handlers > > It used to be that if a module did not specify a #:duplicates handler, > when a name was first referenced in that module and multiple imported > modules provide that name, the value of the > `default-duplicate-binding-handlers' parameter would be used to resolve > the duplicate bindings. We have changed so that instead a module > defaults to the set of handlers described in the manual. If the module > specifies #:duplicates, of course we use that. The > `default-duplicate-binding-handlers' parameter now simply accesses the > handlers of the current module, instead of some global value. > > * Bug fixes > ** Better MinGW support > > `system*' is now supported on MinGW targets. > > ** Avoid flushing buffers on ftell > > Fixes regression relative to Guile 2.0. > > ** HTTP library does not require ETa