David Kastrup writes:
> David Kastrup writes:
>
>> Noah Lavine writes:
>>
>>> Hello,
>>>
>>> I've been working on a patch to add a new sort of optimization to
>>> peval, and I think it's almost ready. It's based on some of the ideas
>>> in "Environment Analysis of Higher-Order Languages".
>>>
>
On Thu 16 Feb 2012 02:29, Noah Lavine writes:
> (let* ((x (random))
>(y x))
> (eq? x y))
>
> The patch attached to this message lets peval optimize that to
>
> (begin (random) #t)
Neat :)
Note, we don't need to add extra identities to operands: they already
have their gensyms. So to
Hello,
> Note, we don't need to add extra identities to operands: they already
> have their gensyms. So to get the effect of this patch, you could add a
> clause to fold-constants:
>
> ((primcall src 'eq? (lexical _ _ x) (lexical _ _ y))
> (if (eq? x y)
> (make-const src #t)
> ))
>
On Thu 16 Feb 2012 14:18, Noah Lavine writes:
>> (let ((x (random)))
>> (eq? x x))
>
> (let* ((x (random))
>(y (list x))
>(z (car y))
> (eq? x z))
This one should reduce to the same thing, but currently doesn't because
(list x) is not considered a "constant expression" beca
On Thu 16 Feb 2012 16:06, Andy Wingo writes:
> (list x) is not considered a "constant expression" because `let' is a
> "constructor"
I meant, `list' is a "constructor".
A
--
http://wingolog.org/
Hi,
Alex Shinn skribis:
> On Mon, Feb 13, 2012 at 8:50 PM, Ludovic Courtès wrote:
[...]
>> For GNU/Linux, one could imagine adding a ‘linux-gnu’ symbol, for
>> instance. Likewise for GNU/kFreeBSD.
>
> I'd like to hear feature recommendations, but you'd need specific
> examples of where such
Hello!
Mark H Weaver skribis:
> l...@gnu.org (Ludovic Courtès) writes:
>
>> Mark H Weaver skribis:
>>
>>> Here's a preliminary proposal:
>>>
>>> * Add new pseudo-warning types 'all' and 'default'.
>>
>> Yes, but only at the UI level–i.e., in ‘guild compile’, along with
>> ‘help’.
>
> The fundam
Hi,
Andy Wingo skribis:
> Andy, who got the following backtrace, with wip-threads-and-fork:
>
> #0 0x7f5daf443cec in __lll_lock_wait () from
> /lib/x86_64-linux-gnu/libpthread.so.0 #1 0x7f5daf43f339 in
> _L_lock_926 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2
> 0x7f5daf43f15b in
Andy Wingo skribis:
> (define-syntax current-filename
> (lambda (x)
> "A macro that expands to the current filename: the filename that
> the (current-filename) form appears in. Expands to #f if this
> information is unavailable."
> (false-if-exception
>(pk 'canonica
Hi,
This reminds me of:
http://thread.gmane.org/gmane.lisp.guile.devel/5254
:-)
As Andy said, annotating objects returned by the reader with location
info would seem wiser, but that’s not for 2.0.
Thanks,
Ludo’.
On Thu 16 Feb 2012 22:34, l...@gnu.org (Ludovic Courtès) writes:
> Andy Wingo skribis:
>
>> (define-syntax current-filename
>> (lambda (x)
>> "A macro that expands to the current filename: the filename that
>> the (current-filename) form appears in. Expands to #f if this
>> infor
On Thu 16 Feb 2012 22:30, l...@gnu.org (Ludovic Courtès) writes:
> Can you explain what happens here? Is it a deadlock? What’s at
> ports.c:575?
It was a deadlock, but I fixed it. It was something that locked all
weak sets, but while doing so allocated memory. Allocating memory ran
finalizers
Hello,
On Thu, Feb 16, 2012 at 10:06 AM, Andy Wingo wrote:
> On Thu 16 Feb 2012 14:18, Noah Lavine writes:
>
>>> (let ((x (random)))
>>> (eq? x x))
>>
>> (let* ((x (random))
>> (y (list x))
>> (z (car y))
>> (eq? x z))
>
> This one should reduce to the same thing, but current
> From: Andy Wingo
>> Can you explain what happens here? Is it a deadlock? What’s at
>> ports.c:575?
>
> It was a deadlock, but I fixed it. It was something that locked all
> weak sets, but while doing so allocated memory. Allocating memory ran
> finalizers which tried to manipulate the po
14 matches
Mail list logo