Re: GNU Guile 2.9.8 Released [beta]

2020-01-25 Thread Nala Ginrut
@Andy Wingo 
It's my mistake to call an incompatible constructor after I updated the
interfaces. I think Guile-3 made more strict checking because this mistake
wasn't caught before 2.9.

Now folks may use docker to try Artanis on Guile-3

docker pull registry.gitlab.com/nalaginrut/artanis:latest

Best regards.



On Sun, Jan 19, 2020 at 3:43 AM Nala Ginrut  wrote:

> Just a report, the same compiling error existing in Guile-3.0.0.
>
> Best regards.
>
>
> On Tue, Jan 14, 2020 at 4:49 PM Nala Ginrut  wrote:
>
>> Hi Wingo!
>> Here're update:
>> 1. 2.9.9 didn't fix this issue
>>
>> 2. I imported r6rs record-type in (artanis utils), and this module was
>> imported in almost every artanis modules.
>> I do use r6rs specific record API to introspect the internal things for
>> debugging in Artanis.
>> And I imported r6rs define-record-type in server-context.scm
>> I guess there're some name conflicting.
>>
>>
>>
>> On Sat, Jan 11, 2020 at 6:33 PM 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.8 Released [beta]

2020-01-18 Thread Nala Ginrut
Just a report, the same compiling error existing in Guile-3.0.0.

Best regards.


On Tue, Jan 14, 2020 at 4:49 PM Nala Ginrut  wrote:

> Hi Wingo!
> Here're update:
> 1. 2.9.9 didn't fix this issue
>
> 2. I imported r6rs record-type in (artanis utils), and this module was
> imported in almost every artanis modules.
> I do use r6rs specific record API to introspect the internal things for
> debugging in Artanis.
> And I imported r6rs define-record-type in server-context.scm
> I guess there're some name conflicting.
>
>
>
> On Sat, Jan 11, 2020 at 6:33 PM 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.8 Released [beta]

2020-01-14 Thread Nala Ginrut
Hi Wingo!
Here're update:
1. 2.9.9 didn't fix this issue

2. I imported r6rs record-type in (artanis utils), and this module was
imported in almost every artanis modules.
I do use r6rs specific record API to introspect the internal things for
debugging in Artanis.
And I imported r6rs define-record-type in server-context.scm
I guess there're some name conflicting.



On Sat, Jan 11, 2020 at 6:33 PM 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.8 Released [beta]

2020-01-13 Thread Stefan Israelsson Tampe
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.8 Released [beta]

2020-01-11 Thread Andy Wingo
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.8 Released [beta]

2020-01-11 Thread Andy Wingo
On Thu 09 Jan 2020 22:14, Stefan Israelsson Tampe  
writes:

> In language/cps/closure-conversion.scm: 
>   749:15  5 (_ 2705 _) 
>   771:22  4 (lp # …) 
>   771:22  3 (lp # …) 
>   771:22  2 (lp # …) 
>   610:11  1 (allocate-closure _ _ _ _ _ 1) 

Nice bug!  I wish I had a test case :)  Can you try the following patch
and see if it fixes the issue for you?

Cheers,

Andy

diff --git a/module/language/cps/closure-conversion.scm 
b/module/language/cps/closure-conversion.scm
index 1452212f0..17a81f674 100644
--- a/module/language/cps/closure-conversion.scm
+++ b/module/language/cps/closure-conversion.scm
@@ -1,6 +1,6 @@
 ;;; Continuation-passing style (CPS) intermediate language (IL)
 
-;; Copyright (C) 2013-2019 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2020 Free Software Foundation, Inc.
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
@@ -596,6 +596,17 @@ term."
  ($continue ktag0 src
($primcall 'allocate-words/immediate `(closure . ,(+ nfree 2))
   ())
+(#(#t 0)
+ (with-cps cps
+   (build-term ($continue k src ($const #f)
+(#(#t 1)
+ ;; A well-known closure of one free variable is replaced
+ ;; at each use with the free variable itself, so we don't
+ ;; need a binding at all; and yet, the continuation
+ ;; expects one value, so give it something.  DCE should
+ ;; clean up later.
+ (with-cps cps
+   (build-term ($continue k src ($const #f)
 (#(#t 2)
  ;; Well-known closure with two free variables; the closure is a
  ;; pair.
@@ -666,17 +677,6 @@ bound to @var{var}, and continue to @var{k}."
   (#(#f 0)
(with-cps cps
  (build-term ($continue k src ($const-fun kfun)
-  (#(#t 0)
-   (with-cps cps
- (build-term ($continue k src ($const #f)
-  (#(#t 1)
-   ;; A well-known closure of one free variable is replaced
-   ;; at each use with the free variable itself, so we don't
-   ;; need a binding at all; and yet, the continuation
-   ;; expects one value, so give it something.  DCE should
-   ;; clean up later.
-   (with-cps cps
- (build-term ($continue k src ($const #f)
   (#(well-known? nfree)
;; A bit of a mess, but beta conversion should remove the
;; final $values if possible.



Re: GNU Guile 2.9.8 Released [beta]

2020-01-09 Thread Stefan Israelsson Tampe
I can't make a simple case out of this. But the gist is that we have a
module c

(define-module (c)
  #:export (fail))

(define fail (cons 'fail '()))

Then in module b:

(define-module (b)
  #:use-module (c)
  #:export (f))

(define-syntax-rule (kif it p x y)
  (let ((it p))
(if (eq? it fail)
y
x)))

(define (f x)
  (kif it (x) it x))

Module b is too simple and this compiles, I have a more advanced module and
uses of the tag fail. Now this module
compiles when we have the definition of fail in the same module but
separating it out to module c lead to the fopllowing
stack trace:
Backtrace:
In system/base/compile.scm:
  155:11 19 (_ #)
  224:14 18 (read-and-compile _ #:from _ #:to _ #:env _ #:opts _)
   175:2 17 (compile _ #:from _ #:to _ #:env _ #:opts _)
  183:32 16 (compile-fold _ _ _ (#:to-file? #t #:warnings (# # # …)))
In language/cps/compile-bytecode.scm:
  699:12 15 (compile-bytecode _ # …)
In language/cps/closure-conversion.scm:
   885:7 14 (convert-closures _)
In language/cps/intmap.scm:
   519:5 13 (visit-branch #(#(#(# …) …) …) …)
   519:5 12 (visit-branch #(#(# …) …) …)
   519:5 11 (visit-branch #(# …) …)
In language/cps/intset.scm:
   470:5 10 (visit-branch #(#(#(#(1064828927 3623737183 …) …) …) …) …)
   470:5  9 (visit-branch #(#(#(1064828927 3623737183 # # # …) …) …) …)
   470:5  8 (visit-branch #(#(3047188480 218316806 1799356468 …) …) …)
   470:5  7 (visit-branch #(213200 #f 1073741824 4294287363 # # # …) …)
   470:5  6 (visit-branch 4093640703 _ 2688 _)
In language/cps/closure-conversion.scm:
  749:15  5 (_ 2705 _)
  771:22  4 (lp # …)
  771:22  3 (lp # …)
  771:22  2 (lp # …)
  610:11  1 (allocate-closure _ _ _ _ _ 1)
In ice-9/boot-9.scm:
 1655:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1655:16: In procedure raise-exception:
unexpected well-known nullary, unary, or binary closure
Makefile:1295: recipe for target 'oop/pf-objects.go' failed
make: *** [oop/pf-objects.go] Error 1








On Thu, Jan 2, 2020 at 2:37 PM Andy Wingo  wrote:

> We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
> and possibly 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 bug in
> libguile that caused writes to unmapped memory in some circumstances.
> This problem manifested itself as a failure of Guile to compile itself
> on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
> warnings related to SRFI-35.
>
> The current plan is to make a 3.0.0 final release on 17 January 2020.
> We may need another prerelease in the interim.  It's a good time to test
> the prereleases to make sure they work 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, 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.9.8 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.8.tar.lz   (10MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz   (12MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz   (21MB)
>
> Here are the GPG detached signatures[*]:
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz.sig
>
> Use a 

Re: GNU Guile 2.9.8 Released [beta]

2020-01-08 Thread Nala Ginrut
When I was trying to compile Artanis with Guile-2.9.8, it throw error like
this:
---
WARNING: (artanis utils): imported module (rnrs) overrides core binding
`record-accessor'
Backtrace:
In ice-9/psyntax.scm:
   285:10 19 (parse _ (("placeholder" placeholder)) (()) _ c (eval) …)
In ice-9/eval.scm:
   293:34 18 (_ #)
In ice-9/boot-9.scm:
   3366:4 17 (define-module* _ #:filename _ #:pure _ #:version _ # _ …)
  3379:24 16 (_)
   222:29 15 (map1 (((artanis utils)) ((artanis config)) ((# #)) # …))
   222:29 14 (map1 (((artanis config)) ((artanis irregex)) ((# …)) …))
   222:29 13 (map1 (((artanis irregex)) ((artanis server #)) ((…)) …))
   222:17 12 (map1 (((artanis server server-context)) ((artanis …)) …))
  3283:17 11 (resolve-interface (artanis server server-context) # _ # …)
In ice-9/threads.scm:
390:8 10 (_ _)
In ice-9/boot-9.scm:
  3209:13  9 (_)
In ice-9/threads.scm:
390:8  8 (_ _)
In ice-9/boot-9.scm:
  3493:20  7 (_)
   2792:4  6 (save-module-excursion #)
  3513:26  5 (_)
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 #


Any hint that I can figure out whait's incompatible?

Thanks!



On Wed, Jan 8, 2020 at 5:43 AM Andy Wingo  wrote:

> On Tue 07 Jan 2020 21:00, Stefan Israelsson Tampe 
> writes:
>
> > Bump!
> >
> > Great, but loading an extension like:
> >
> > (catch #t
> >   (lambda ()
> > (throw #t)
> > (load-extension "libguile-persist" "persist_init") (pk 1))
> >   (lambda x
> > (let ((file
> >(%search-load-path "src/.libs/libguile-persist.so")))
> >   (if
> >file
> >(catch #t
> >  (lambda ()
> >(load-extension file "persist_init"))
> >  (lambda x
> >(warn
> > "libguile-persist is not loadable!")))
> >(warn
> > "libguile-persist is not present, did you forget to make
> it?")
> >
> > And then have  line like
> >
> > (pk 5 serialize-vm-ra)
> >
> > Loading this module prints
> > (5 #f)
> >
> > Worked in releases before.
>
> Surely this test case can be shortened?  All the load-extension bits
> appear to not be necessary, right?
>
> Andy
>
>


Re: GNU Guile 2.9.8 Released [beta]

2020-01-07 Thread Andy Wingo
On Tue 07 Jan 2020 21:00, Stefan Israelsson Tampe  
writes:

> Bump!
>
> Great, but loading an extension like:
>
> (catch #t
>   (lambda ()
> (throw #t)
> (load-extension "libguile-persist" "persist_init") (pk 1))
>   (lambda x  
> (let ((file  
>(%search-load-path "src/.libs/libguile-persist.so")))
>   (if 
>file
>(catch #t
>  (lambda ()  
>(load-extension file "persist_init"))
>  (lambda x
>(warn
> "libguile-persist is not loadable!")))
>(warn 
> "libguile-persist is not present, did you forget to make it?")
>
> And then have  line like
>
> (pk 5 serialize-vm-ra)
>
> Loading this module prints
> (5 #f)
>
> Worked in releases before.

Surely this test case can be shortened?  All the load-extension bits
appear to not be necessary, right?

Andy



Re: GNU Guile 2.9.8 Released [beta]

2020-01-07 Thread Stefan Israelsson Tampe
Bump!

Great, but loading an extension like:

(catch #t
  (lambda ()
(throw #t)
(load-extension "libguile-persist" "persist_init") (pk 1))
  (lambda x
(let ((file
   (%search-load-path "src/.libs/libguile-persist.so")))
  (if
   file
   (catch #t
 (lambda ()
   (load-extension file "persist_init"))
 (lambda x
   (warn
"libguile-persist is not loadable!")))
   (warn
"libguile-persist is not present, did you forget to make it?")

And then have  line like

(pk 5 serialize-vm-ra)


Loading this module prints
(5 #f)

Worked in releases before.

Although loading the extension in the shell shows that serialize-vm-ra is
bound to a function.

On Thu, Jan 2, 2020 at 2:37 PM Andy Wingo  wrote:

> We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
> and possibly 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 bug in
> libguile that caused writes to unmapped memory in some circumstances.
> This problem manifested itself as a failure of Guile to compile itself
> on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
> warnings related to SRFI-35.
>
> The current plan is to make a 3.0.0 final release on 17 January 2020.
> We may need another prerelease in the interim.  It's a good time to test
> the prereleases to make sure they work 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, 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.9.8 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.8.tar.lz   (10MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz   (12MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz   (21MB)
>
> Here are the GPG detached signatures[*]:
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz.sig
>
> Use a mirror for higher download bandwidth:
>   http://www.gnu.org/order/ftp.html
>
> Here are the SHA256 checksums:
>
>   3ce11e9dca0f475fa944729d99f33c379fe8962e729bd21a99470249624c71d7
> guile-2.9.8.tar.lz
>   4a8cf663b8bfd435168935c74a8ec434328ffad16230322c64f0ac567dda2c26
> guile-2.9.8.tar.xz
>   31c3d458ff9342db130e27c8d82d2a33912da92845e5ee431b6a125971a823d2
> guile-2.9.8.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.8.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.5
>
> An extract from NEWS follows.
>
>
> Changes in alpha 2.9.8 (since alpha 2.9.7):
>
> * Bug fixes
>
> ** Fix bug in which abort_to_prompt used an invalid stack pointer
>
> 

Re: GNU Guile 2.9.8 Released [beta]

2020-01-05 Thread Andy Wingo
On Fri 03 Jan 2020 06:34, Nala Ginrut  writes:

> When I was trying to compile Artanis, the configure threw an error:
> 
> checking for Guile version >= 3.0... configure: error: Guile 3.0 required, 
> but 2.9.8 found
> 
>
> Here's what I put in configure.ac:
> GUILE_PKG(2.2 2.3 2.9 3.0)
>
> My question is "what's the correct config here"?

There was a bug in guile.m4 from a few years ago doesn't do the right
thing for major version changes.  I think you need to update guile.m4
from git, then do:

GUILE_PKG([2.2 3.0])

Also note that it's not meaningful to put in alpha releases to GUILE_PKG
-- 2.9.7's effective version is 3.0.

FWIW I would encourage doing GUILE_PKG([3.0 2.2]) instead, as it's
generally the right thing to default to newer Guile release series.

Cheers,

Andy



Re: GNU Guile 2.9.8 Released [beta]

2020-01-03 Thread tomas
On Fri, Jan 03, 2020 at 01:34:59PM +0800, Nala Ginrut wrote:
> When I was trying to compile Artanis, the configure threw an error:
> 
> checking for Guile version >= 3.0... configure: error: Guile 3.0 required,
> but 2.9.8 found
> 
> 
> Here's what I put in configure.ac:
> GUILE_PKG(2.2 2.3 2.9 3.0)
> 
> My question is "what's the correct config here"?

Hm. I think I had that with nyacc too. This worked for me:

  GUILE_PKG([3.0])
  GUILE_PROGS([2.9.5])

I think this is due to our currently apocalyptic [1] situation:

  tomas@trotzki:~/src/guile/nyacc$ guile
  GNU Guile 2.9.5
  [...]
  
  Enter `,help' for help.
  scheme@(guile-user)> (version)
  $1 = "2.9.5"
  scheme@(guile-user)> (effective-version)
  $2 = "3.0"

(replace 2.9.5 for 2.9.8 as appropriate).

Cheers
[1] Although apocalyptic has often a negative connotation, I'm using
   it here in its more original sense [2], i.e. full of gleeful
   expectation :-)

[2] https://en.wiktionary.org/wiki/apocalyptic

-- tomás


signature.asc
Description: Digital signature


Re: GNU Guile 2.9.8 Released [beta]

2020-01-02 Thread Nala Ginrut
When I was trying to compile Artanis, the configure threw an error:

checking for Guile version >= 3.0... configure: error: Guile 3.0 required,
but 2.9.8 found


Here's what I put in configure.ac:
GUILE_PKG(2.2 2.3 2.9 3.0)

My question is "what's the correct config here"?

Best regards.



On Thu, Jan 2, 2020 at 9:37 PM Andy Wingo  wrote:

> We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
> and possibly 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 bug in
> libguile that caused writes to unmapped memory in some circumstances.
> This problem manifested itself as a failure of Guile to compile itself
> on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
> warnings related to SRFI-35.
>
> The current plan is to make a 3.0.0 final release on 17 January 2020.
> We may need another prerelease in the interim.  It's a good time to test
> the prereleases to make sure they work 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, 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.9.8 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.8.tar.lz   (10MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz   (12MB)
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz   (21MB)
>
> Here are the GPG detached signatures[*]:
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz.sig
>   http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz.sig
>
> Use a mirror for higher download bandwidth:
>   http://www.gnu.org/order/ftp.html
>
> Here are the SHA256 checksums:
>
>   3ce11e9dca0f475fa944729d99f33c379fe8962e729bd21a99470249624c71d7
> guile-2.9.8.tar.lz
>   4a8cf663b8bfd435168935c74a8ec434328ffad16230322c64f0ac567dda2c26
> guile-2.9.8.tar.xz
>   31c3d458ff9342db130e27c8d82d2a33912da92845e5ee431b6a125971a823d2
> guile-2.9.8.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.8.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.5
>
> An extract from NEWS follows.
>
>
> Changes in alpha 2.9.8 (since alpha 2.9.7):
>
> * Bug fixes
>
> ** Fix bug in which abort_to_prompt used an invalid stack pointer
>
> This bug manifested itself as a bootstrap compile error on some systems,
> notably Ubuntu 18.04 on x86-64, and was due to failing to recalculate a
> local variable after a possible stack relocation.
>
> ** SRFI-35 does a #:re-export-and-replace on `'
> ** SRFI-35 avoids compiler warnings for multiply-defined condition types
>
>
> Changes in alpha 2.9.x (since the stable 2.2 series):
>
> 

Re: GNU Guile 2.9.8 Released [beta]

2020-01-02 Thread Matt Wette




On 1/2/20 5:36 AM, Andy Wingo wrote:

We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
and possibly final pre-release of what will eventually become the 3.0
release series.



Compared to the previous prerelease (2.9.7), Guile 2.9.8 fixes a bug in
libguile that caused writes to unmapped memory in some circumstances.
This problem manifested itself as a failure of Guile to compile itself
on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
warnings related to SRFI-35.



make and make check verified to work on Ubuntu 18.08 / x86_64





GNU Guile 2.9.8 Released [beta]

2020-01-02 Thread Andy Wingo
We are pleased to announce GNU Guile release 2.9.8.  This is the eighth
and possibly 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 bug in
libguile that caused writes to unmapped memory in some circumstances.
This problem manifested itself as a failure of Guile to compile itself
on some systems, notably Ubuntu 18.04 on x86-64.  It also fixes a couple
warnings related to SRFI-35.

The current plan is to make a 3.0.0 final release on 17 January 2020.
We may need another prerelease in the interim.  It's a good time to test
the prereleases to make sure they work 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, 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.9.8 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.8.tar.lz   (10MB)
  http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz   (12MB)
  http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz   (21MB)

Here are the GPG detached signatures[*]:
  http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.lz.sig
  http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.xz.sig
  http://alpha.gnu.org/gnu/guile/guile-2.9.8.tar.gz.sig

Use a mirror for higher download bandwidth:
  http://www.gnu.org/order/ftp.html

Here are the SHA256 checksums:

  3ce11e9dca0f475fa944729d99f33c379fe8962e729bd21a99470249624c71d7  
guile-2.9.8.tar.lz
  4a8cf663b8bfd435168935c74a8ec434328ffad16230322c64f0ac567dda2c26  
guile-2.9.8.tar.xz
  31c3d458ff9342db130e27c8d82d2a33912da92845e5ee431b6a125971a823d2  
guile-2.9.8.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.8.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.5

An extract from NEWS follows.


Changes in alpha 2.9.8 (since alpha 2.9.7):

* Bug fixes

** Fix bug in which abort_to_prompt used an invalid stack pointer

This bug manifested itself as a bootstrap compile error on some systems,
notably Ubuntu 18.04 on x86-64, and was due to failing to recalculate a
local variable after a possible stack relocation.

** SRFI-35 does a #:re-export-and-replace on `'
** SRFI-35 avoids compiler warnings for multiply-defined condition types


Changes in alpha 2.9.x (since the stable 2.2 series):

* Notable changes

** Just-in-time code generation

Guile programs now run up to 4 times faster, relative to Guile 2.2,
thanks to just-in-time (JIT) native code generation.  Notably, this
brings the performance of "eval" as written in Scheme back to the level
of "eval" written in C, as in the days of Guile 1.8.

See "Just-In-Time Native Code" in the manual, for more information.  JIT
compilation will be enabled automatically and transparently.  To disable
JIT compilation, configure Guile with `--enable-jit=no' or
`--disable-jit'.  The default is `--enable-jit=auto', which enables