Hi Slava, (Hi factor list) As I mentioned on #concatenative I'm getting bootstrap crashes on win32 for my reentrantvm build when g++ is run with optimize settings (-O).
- Crashes don't occur with -O0 - tested with mingw gcc 4.1.2 and 4.4.0 - Crashes don't occur replacing the -O3 with the corresponding -f optimization switches [1] - Crashes don't occur on x86.32 linux or under wine I git-bisected to the first crashing example in my branch, which is prior to any .factor or assembly changes. The patch in question just moves the data_gc globals into the vm struct. I found that moving: 'gc_stats stats[max_gen_count]' out of the struct and back to a global variable again means that factor bootstraps ok. However leaving a dummy var in the struct gc_stats stats_dummy[max_gen_count] ...means it still crashes, so I don't think it's initialisation of that member that's causing the problem. The gdb backtrace and factor stack dumps are below. I'll do some more digging tonight, but please let me know if any of this rings a bell. Thanks, Phil [1] http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Optimize-Options.html#Optimize-Options Breakpoint 1, factor::factorvm::factorbug (this=0x4d2478) at vm/debug.cpp:433 433 if(fep_disabled) Current language: auto; currently c++ (gdb) bt #0 factor::factorvm::factorbug (this=0x4d2478) at vm/debug.cpp:433 #1 0x6718de7a in primitive_die () at vm/debug.cpp:584 #2 0x0396370a in ?? () #3 0x039afba9 in ?? () #4 0x039636f0 in ?? () #5 0x00000010 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) .s ==== DATA STACK: T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ generic.single:no-method T{ hashtables.private:tombstone f } assocs:>alist } READY .c ==== CALL STACK: [ memory:gc memory:begin-scan [ hashtables:hashtable? ] sequences:pusher [ memor y:(each-object) ] kernel:dip memory:end-scan [ hashtables:rehash ] sequences:each init:boot... ] 8 word/quot addr: 24400dc word/quot xt: 39def30 return address: 39def84 [ math.private:iterate-step math.private:iterate-next math:(each-integer) ] 0 word/quot addr: 24dfb5c word/quot xt: 39dfd90 return address: 39dfda3 [ kernel:-roll [ kernel:call ] kernel:3dip ] 2 word/quot addr: 244105c word/quot xt: 39b0770 return address: 39b079e [ kernel:dup assocs:>alist [ kernel:dup assocs:clear-assoc ] kernel:dip hashtables.private:(rehash) ] 1 word/quot addr: 245445c word/quot xt: 39636f0 return address: 396370a READY .r ==== RETAIN STACK: 2389 5254 T{ kernel:compose T{ kernel:curry T{ kernel:compose T{ kernel:curry { T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f } "inline" syntax:t T{ hashtables.private:tombstone f } T{ hashtables.private:tombstone f }... } [ sequences.private :nth-unsafe ] } [ kernel:drop hashtables.private:((empty)) ] } [ sequences.private:nth-unsafe ] } [ hashtables:rehash ] } READY ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Factor-talk mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/factor-talk
