On Wed, Dec 21, 2016 at 10:40:32AM +0800, Ben Coman wrote:
On Wed, Dec 21, 2016 at 9:03 AM, commits@squeakvm.org wrote:
Revision: 3753 Author: lewis Date: 2016-12-20 17:03:04 -0800 (Tue, 20 Dec 2016) Log Message:
Do not use -O3 optimization, -O2 is safer and works well.
gcc 4.9.2 gives crashes and heisenbugs with OSPP compiled with -O3.
Symptoms: (1 to: 10) collect: [ :e | (CommandShell new pipeline: 'ps > /dev/null | cat') output] ==> segfaults in some of the spawned child processes
This appears to be an actual compiler bug, although it goes away when print statements are added, so I cannot say for sure (and it is difficult to attach gdb to the newly spawned child process before it crashes). The bad behavior happens only with -O3 and there are no real performance benefits compared to -O2 (bytecodes faster, sends slower).
I'd be interested to know the reason sends get slower (if known). cheers -ben
No clue, I was just sanity checking to make sure that -O2 was not horribly worse. It was not. But I suspect all of this is likely to vary depending on gcc compiler version and phase of the moon.
Dave