GNU bug report logs -
#10336
Holidays vs. release
Previous Next
Reported by: <dsmich <at> roadrunner.com>
Date: Wed, 21 Dec 2011 05:37:02 UTC
Severity: normal
Done: Andy Wingo <wingo <at> pobox.com>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 10336 <at> debbugs.gnu.org (full text, mbox):
Hello!
ludo <at> gnu.org (Ludovic Courtès) skribis:
> <dsmich <at> roadrunner.com> skribis:
>
>> I'm on a 32bit Debian intel system. libgc is 7.2alpha4
>>
>> git describe is
>> v2.0.3-82-ga2c6601
>>
>> The single failure running make check is
>>
>> Running gc.test
>> FAIL: gc.test: gc: Lexical vars are collectable
>
> Same problem on Hydra, but only i686, not x86_64.
So I looked into it, and there’s at least one thing wrong: the test must
be compiled with #:partial-eval? #f, otherwise the ‘let’ vanishes, which
defeats the test.
Second thing, it suffices to insert a function call like
((lambda (x) #f) #f) just before calls to ‘gc’ to solve the problem.
So I’m thinking we may have a real bug here.
I’ve changed the test this way:
(pass-if "Lexical vars are collectable"
(pair?
(compile
'(begin
(define guardian (make-guardian))
(let ((f (list 1 2 3)))
(guardian f))
;; Note: no `stack-cleanup' call should be needed here since
;; leaving `let' should have the same effect.
;((lambda (x) x) #f)
(gc)(gc)(gc)
(guardian))
;; Turn the partial evaluator off so that `let' is preserved.
#:opts '(#:partial-eval? #f)
#:env (current-module))))
The assembly code does seem to push ‘void’ in all cases, though, but
this needs to be double-checked.
Thanks,
Ludo’.
This bug report was last modified 13 years and 116 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.