Re: GNU Guile 2.1.4 released [beta]

2016-09-18 Thread Jan Wedekind
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]

2016-09-17 Thread David Pirotte
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]

2016-09-16 Thread Jan Wedekind

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]

2016-09-16 Thread Jan Wedekind
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]

2016-09-16 Thread David Pirotte
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]

2016-09-15 Thread Jan Wedekind

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]

2016-09-15 Thread Jan Wedekind

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]

2016-09-15 Thread Jan Wedekind

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]

2016-09-15 Thread David Pirotte
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]

2016-09-15 Thread Jan Wedekind

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]

2016-09-14 Thread Nala Ginrut
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