On 25 Nov 2013, at 17:56, Clément Bera <bera.clem...@gmail.com> wrote:

> 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 subclasses).
> 
> 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).

It is a bit scary that there is no explicit, crystal clear list of those 
interrupt critical points, especially if skipping them can lead to VM crashes.

> 2013/11/25 Marcus Denker <marcus.den...@inria.fr>
> 
> On 25 Nov 2013, at 16:26, Max Leske <maxle...@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
> 


Reply via email to