Re: GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread Andy Wingo
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: GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread John Cowan
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

Re: GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread Stefan Israelsson Tampe
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) (ob

Re: GNU Guile 2.9.9 Released [beta]

2020-01-13 Thread Stefan Israelsson Tampe
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) > (defin

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
Note that the problem I have is that procedure-property and hash-table code with procedure key's fail on me due to the fact that the identity of functions varies in a non clear way. On Mon, Jan 13, 2020 at 10:32 PM Stefan Israelsson Tampe < stefan.ita...@gmail.com> wrote: > Nice, but I think we

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Mon 13 Jan 2020 22:32, Stefan Israelsson Tampe writes: > In current guile (eq? f f) = #f for a procedure f. Try: Note that procedure equality is explicitly unspecified by R6RS. Guile's declarative modules optimization took advantage of this to eta-expand references to declaratively-bound to

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Mikael Djurfeldt
Dear Andy, I probably don't have a clue about what you are talking about (or at least hope so), but this---the "eq change"---sounds scary to me. One of the *strengths* of Scheme is that procedures are first class citizens. As wonderfully show-cased in e.g. SICP this can be used to obtain expressi

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
I agree about the scary part as it e.g. would make it impossible to use procedures in hashmaps (where my trouble stems from) in any sane way, I know how to fix my code but there will be a lot of anger on the mailinglist and irc to teach how to avoid the problems. Fortunately probably the next rele

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 13:18, Mikael Djurfeldt writes: > I probably don't have a clue about what you are talking about (or at > least hope so), but this---the "eq change"---sounds scary to me. > > One of the *strengths* of Scheme is that procedures are first class > citizens. As wonderfully show-case

RE: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread dsmich
> We are pleased to announce GNU Guile release 2.9.9. When attempting to build on a Debian Jessie 32bit arm system, gcc (Debian 4.9.2-10+deb8u2) 4.9.2 I'm working on updating this system to Debian Stable, but it might require wiping it and doing a fresh install.

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
Yes, your patch is indicating when you should use the same identity e.g. all uses of procedures in a higher order position such as an argument or a return value. But I looked at your patch, which looks good but I saw that for operator position you decrease the count. Why? Also you are free to use o

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Mikael Djurfeldt
Hmm... it seems like both Stefan and you have interpreted my post exactly the opposite way compared to how it was meant. :) I completely agree that procedure equality is not strongly connected to the first citizen-ness. What I wanted to say is that I probably prefer you to *reverse* the recent pa

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 15:47, Stefan Israelsson Tampe writes: > Yes, your patch is indicating when you should use the same identity > e.g. all uses of procedures in a higher order position such as an > argument or a return value. But I looked at your patch, which looks > good but I saw that for oper

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
1. I don't understand why you decrement the count in operator position 2. I don't see that you increase the count when a procedure is returned from a lambda Example (define (f a) a) (define (g) (hash-set! H f 1) ; (*) (f 1)) ;(**) (define (h) (pk (hash-ref H f))) ; (*) (g) (h) => '(#f

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Mikael Djurfeldt
Stefan Israelsson Tampe < stefan.ita...@gmail.com> wrote: > > > -- Forwarded message - > From: Stefan Israelsson Tampe > Date: Tue, Jan 14, 2020 at 5:23 PM > Subject: Re: GNU Guile 2.9.9 Released [beta] > To: Mikael Djurfeldt > > > This is how

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Taylan Kammer
> Best regards, > Mikael > > On Tue, Jan 14, 2020 at 5:37 PM Stefan Israelsson Tampe > mailto:stefan.ita...@gmail.com>> wrote: > > > > -- Forwarded message - > From: *Stefan Israelsson Tampe* <mailto:stefan.ita...@gmail.com>

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
t; > On Tue, Jan 14, 2020 at 5:37 PM Stefan Israelsson Tampe < > stefan.ita...@gmail.com> wrote: > >> >> >> -- Forwarded message ----- >> From: Stefan Israelsson Tampe >> Date: Tue, Jan 14, 2020 at 5:23 PM >> Subject: Re: GNU Guile 2.9.9 Re

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
I'll apply your patch and see if it works. After reading it more carefully I think I understand your decrement count. Nice code! On Tue, Jan 14, 2020 at 5:36 PM Stefan Israelsson Tampe < stefan.ita...@gmail.com> wrote: > 1. I don't understand why you decrement the count in operator position > 2.

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
Okey, here is another case that fails with the patch that prevents identity misses for toplevels e.g we need similar fixes for anonymous functions. (define-module (b) #:export (q)) (define h (make-hash-table)) (define (method f) (hash-set! h f 1) f) (define q (method (lambda x x))) (pk (ha

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 17:03, Mikael Djurfeldt writes: > Hmm... it seems like both Stefan and you have interpreted my post > exactly the opposite way compared to how it was meant. :) Hah! My apologies :) > What I wanted to say is that I probably prefer you to *reverse* the > recent patch because I

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Andy Wingo
On Tue 14 Jan 2020 21:13, Stefan Israelsson Tampe writes: > Okey, here is another case that fails with the patch that prevents identity > misses for toplevels e.g we need similar fixes for anonymous functions. > > (define-module (b) > #:export (q)) > > (define h (make-hash-table)) > (define (

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
I have a fix for this by pushing the method idiom to another module. So it is not a burning issue. Strange that I did not dee this error before in the 2.x series ever. Isn't it so that for procedures define in a (let () ...) the case you are mentioning happened before but I was on the impression t

Re: GNU Guile 2.9.9 Released [beta]

2020-01-15 Thread Andy Wingo
On Tue 14 Jan 2020 22:48, Stefan Israelsson Tampe writes: > Strange that I did not dee this error before in the 2.x series > ever. Isn't it so that for procedures define in a (let () ...) the > case you are mentioning happened before but I was on the impression > that no inlining was done for de