%module-public-interface

2020-01-14 Thread dsmich
(Sorry for the non-plain-test formatting, haven't the new mailer interface from Spectrum yet. Ugh.) I'm porting some old code to 3.0 and I've come across this: (define-module (bobotpp bot)) (set-module-uses! %module-public-interface (list (module-ref

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

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

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

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

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.

Fwd: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
-- 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 it always have been in guile, without this patch you cannot use procedure-property, use a function as a key to

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Taylan Kammer
During the R7RS-small discussion, I remember Will Clinger suggesting to keep (eqv? proc1 proc2) => #t but unspecifying it for eq?. Would that help in Guile's case? I don't remember the exact optimization he suggested this for. - Taylan On 14.01.2020 17:47, Mikael Djurfeldt wrote: > It might

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
I'm not stupid and I don't see any good reason why you cannot maintain a way to keep function identities. I could go as far as having a primitive to mark a procedure for keeping the identity. But No No, please apply the patch. For example the nice thing with python on guile is that python

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) =>

Re: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Mikael Djurfeldt
It might be reasonable to keep the patch for now in order not to introduce novel behavior this short before the 3.0 release. But especially in light of Andy's work, I do regret introducing procedure-properties. It's a more LISPy feature than Schemey. Did you see Andy's argument about procedure

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 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 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

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

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

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

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

Fwd: GNU Guile 2.9.9 Released [beta]

2020-01-14 Thread Stefan Israelsson Tampe
-- Forwarded message - From: Stefan Israelsson Tampe Date: Tue, Jan 14, 2020 at 12:43 PM Subject: Re: GNU Guile 2.9.9 Released [beta] To: Andy Wingo Thanks! Phew! I think that for an f, a direct function application need not to be counted as a position. Only when you use f in

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

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

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