guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU Guile 2.1.5 released (beta)


From: Matt Wette
Subject: Re: GNU Guile 2.1.5 released (beta)
Date: Fri, 16 Dec 2016 05:50:03 -0800

OK.  This is gonna be hard to trace down.

I am on a Mac running Sierra, 10.12.2.  At work I am running 10.9 I believe, and I see the same behavior.


If I compile with gcc 6.2 or gcc4.9, but no extra flags besides —prefix, I get the following failure:

FAIL: numbers.test: string->number: valid complex number strings

and trace this down to 

meta/guile -c '(display (eqv? (imag-part (string->number "address@hidden")) -0.0))' => #f


If I add “-g” to CFLAGS & LDFLAGS, or just compile with CFLAGS=-O0 I get

FAIL: mutex-ownership: mutex with owner not retained (bug #27450)

Note the following modification from the above guardian test:

(define gg #f)

(let ((g (make-guardian)))
  (g (let ((m (make-mutex)))
       (lock-mutex m)
       (if (mutex? m) #t (display "0: not mutex\n"))
       m))
  
  (set! gg g)
  (simple-format #t "1: g=~S\n" g)
  
  ;; Avoid false references to M on the stack.
  (clear-stale-stack-references)
  
  (gc) (gc)
  (simple-format #t "2: g=~S\n" g)
  (let ((m (g)))
    (simple-format #t "3: g=~S\n" g)
    (and (mutex? m)
(eq? (mutex-owner m) (current-thread)))))

(gc)(gc)
(simple-format #t "9:gg=~S\n" gg)


The above generates
1: g=#<guardian 10228dba0 (reachable: 1 unreachable: 0)>
2: g=#<guardian 10228dba0 (reachable: 1 unreachable: 0)>
3: g=#<guardian 10228dba0 (reachable: 1 unreachable: 0)>
9:gg=#<guardian 10228dba0 (reachable: 0 unreachable: 1)>

I believe both 2 and 3 would ordinarily indicate the mutex unreachable.

Any ideas on how to chase this down?

Matt

reply via email to

[Prev in Thread] Current Thread [Next in Thread]