|
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 |
[Prev in Thread] | Current Thread | [Next in Thread] |