[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570
From: |
Mark H Weaver |
Subject: |
Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570 |
Date: |
Fri, 13 Apr 2012 13:07:40 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) |
Hi Andy,
Andy Wingo <address@hidden> writes:
> On Fri 13 Apr 2012 07:22, Mark H Weaver <address@hidden> writes:
>>> * module/language/tree-il/peval.scm (fold-constants): Returns #f instead
>>> of the expression, as all continuations handle #f themselves.
>>> (negate, bailout?, extract-facts, infer, infer-defined?)
>>> (infer-struct-vtable): New helpers.
>>
>> I haven't looked at the code, but it sounds like you are trying to
>> eliminate redundant 'struct-vtable' checks. Unfortunately, it seems to
>> me that this cannot be done safely.
>
> The identity of the vtable does not change when it is redefined. If the
> vtable is redefined, the equality check still succeeds. There are
> comments in the source.
Okay, I've just reread:
http://wingolog.org/archives/2009/11/09/class-redefinition-in-guile
and I see that I had some misconceptions about this. Point taken: when
a class is redefined, the result of 'struct-vtable' on the instances
remain the same.
Nonetheless, the vtable checks involve comparisons with a mutable
top-level variable. Whenever unknown code is run (e.g. when a top-level
procedure is called) you must assume the worst: that any top-level
variable might have been 'set!'.
Regards,
Mark
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, Mark H Weaver, 2012/04/13
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, Noah Lavine, 2012/04/13
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, Andy Wingo, 2012/04/13
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570,
Mark H Weaver <=
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, Andy Wingo, 2012/04/14
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, David Kastrup, 2012/04/15
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, Ludovic Courtès, 2012/04/15
- Re: GNU Guile branch, wip-peval-predicates, created. v2.0.5-100-g59c5570, David Kastrup, 2012/04/16