[Pharo-dev] [Vm-dev] Frequent SegFaults in PharoVM with Pharo 3.0

Clément Bera bera.clement at gmail.com
Mon Nov 25 11:56:52 EST 2013

Yeah you cannot compile without inlining specific messages. You can disable
inlining of #timesRepeat: at image level because we added it for fun to see
if it was easy to do in Opal. Now all other optimizations were in the old
compiler and are mandatories. However, you can now in Opal disable these
optimized messages in a restricted area (such as a class and its

To me, it is kind of a bug that we cannot disable those optimizations, we
should be able to do it (so 1 day in the very very far future we could have
the JIT inlining these control structure allowing us to implement all these
inlined messages in all classes). But one thing is that some methods such
as #whileTrue are not implemented in a way they really work (they have not
stop condition, so if the compiler does not inline it, it gives you an
infinite loop). Another thing is the interrupt point problem as Marcus said.

I don't think your other bug is related Opal optimization, only
#timesRepeat: is new and therefore can be faulty (and in this case, the
bytecode is correct, so I guess it is faulty because it removes an
interrupt point).

2013/11/25 Marcus Denker <marcus.denker at inria.fr>

> On 25 Nov 2013, at 16:26, Max Leske <maxleske at gmail.com> wrote:
> > Thanks Clément, that seems to be it. Disabling the timesRepeat inlining
> makes most of the builds run through but not all of them. It seems like
> there’s another (Opal related?) problem (with the exact same symptoms…).
> >
> > I’ve tried disabling all options, just to see what happens: all builds
> fail with SegFaults…
> You can not compile without optimisations. There are places in the image
> that would not work with e.g. whileTrue: optimisation disabled as it would
> e.g. add an interrupt point where none is now
> And other things, like performance, or e.g. the loop that goes over all
> objects, if that creates objects while running you have a problem…
>         Marcus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20131125/3bd5ab19/attachment-0002.html>

More information about the Pharo-dev mailing list