(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 (resolve-mo
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
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 (
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
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
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.
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 functio
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 be
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 equ
-- 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 ha
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
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
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
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
> 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.
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
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
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
-- 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
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
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
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-
22 matches
Mail list logo