|
From: | Jörg F . Wittenberger |
Subject: | Re: [Chicken-hackers] [PATCH] catch exceptions in finalizers, remove dynamic resizing of finalizer vector |
Date: | 19 Jun 2012 22:28:25 +0200 |
On Jun 19 2012, Peter Bex wrote:
Right now it looks to me like there's an optimization that's messing things up. Try compiling this file with -O0 and then with -O1: (let lp ((x (list 1 2 3))) (set-finalizer! x (lambda _ #f)) (lp (list 1 2 3))) With -O1 or higher this will raise a suspicious looking error: Error: call of non-procedure: #<unspecified> I also see this with 4.7.0, even when compiled with -O0. With -O1 on 4.7.0, it shows this error and _then_ craps out with an OOM error.
This would kinda explain, why my "eat all memory" issue is so apparent on the recent mint install I did and rare on older systems. This system has gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1 it is the first one to complain about chicken code for me:atomic.c: In function 'f_5446': atomic.c:5062:4: warning: array subscript is above array bounds [-Warray-bounds] atomic.c: In function 'f_3797': atomic.c:1534:4: warning: array subscript is above array bounds [-Warray-bounds] atomic.c: In function 'f_3760': atomic.c:7751:4: warning: array subscript is above array bounds [-Warray-bounds] atomic.c: In function 'f_3733': atomic.c:8312:4: warning: array subscript is above array bounds [-Warray-bounds] atomic.c: In function 'f_3791':
Note that I'm seen the problem on code, which is compiled with -scrutinize and gcc -O2. This *might* hint somewhere…? Anybody running Clang? /Jerry .....
[Prev in Thread] | Current Thread | [Next in Thread] |