chazu / ypsilon

Automatically exported from code.google.com/p/ypsilon
Other
0 stars 1 forks source link

list? Segmentation fault #35

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
$ ypsilon
Ypsilon 0.9.6 Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
Segmentation fault
$

Original issue reported on code.google.com by derick.e...@gmail.com on 2 Aug 2008 at 12:53

GoogleCodeExporter commented 9 years ago
Thank you for your bug report!

Original comment by y.fujita...@gmail.com on 2 Aug 2008 at 4:55

GoogleCodeExporter commented 9 years ago
Because my machines do not reproduce this bug in any version of Ypsilon, I 
guessed
the reason of this bug and examined the source code. (It is common for 
concurrent GC
problem that different hardwares show different behaviors.)
I found several bugs in GC which cause random segmentation fault.
GC bugs are fixed and trunk directory is updated. I hope trunk version also 
fixes
this problem but unfortunately I can not test it :(
Please try and let me know if trunk version works fine or not.
Thank you!

Original comment by y.fujita...@gmail.com on 14 Aug 2008 at 5:19

GoogleCodeExporter commented 9 years ago
I've just tried causing the segmentation fault and I can't get it to happen
consistently.  It happens, but not every time.  I'm using Ubuntu 8.04 Linux
2.6.24-19-generic SMP i686.  This is with revision 151 (BTW, I suggest adding 
the
revision number to the startup banner so it's always apparent what revision is 
being
used):

[d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> (define l (make-list #e1e6))
> (list? l)
#t
> (length l)
1000000
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (length L)
100001
> (list? L)
#t
> [d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
Segmentation fault
[d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (length L)
Segmentation fault
[d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (begin (make-list #e1e6) 'done)
done
> (list? L)
#t
> [d@eep:~]-> 
[d@eep:~]-> 
[d@eep:~]-> 
[d@eep:~]-> 
[d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
#t
> (length L)
100001
> [d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> 
(length L)
100001
> [d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
#t
> [d@eep:~]-> ypsilon --disable-acc
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
Segmentation fault
[d@eep:~]-> ypsilon
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
#t
> [d@eep:~]-> ypsilon --disable-acc
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (length L)
100001
> (list? L)
#t
> [d@eep:~]-> ypsilon --disable-acc
Ypsilon 0.9.6-trunk Copyright (c) 2008 Y.Fujita, LittleWing Company Limited.
> 
(define L (do ([i #e1e5 (- i 1)]
               [l '() (cons i l)]) 
            [(< i 0) l]))
> (list? L)
#t
> [d@eep:~]-> 

Original comment by derick.e...@gmail.com on 14 Aug 2008 at 5:46

GoogleCodeExporter commented 9 years ago
Using revision 163, I'm not able to cause the segfault at all.

Original comment by derick.e...@gmail.com on 14 Aug 2008 at 5:57

GoogleCodeExporter commented 9 years ago
> Using revision 163, I'm not able to cause the segfault at all.
I am very happy to hear that! This bug fix was long battle ;)
Thank you!

> BTW, I suggest adding the revision number to the startup banner so it's always
apparent what revision is being used
Yes, I will do that :)

Original comment by y.fujita...@gmail.com on 14 Aug 2008 at 6:35