|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
[scala-tools] Compiler optimisations/inliningAre the Scala compiler's -optimise and -Yinline options actually
supposed to do some inlining at the moment? I have tried this with numerous Scala versions but nothing seems to get inlined. With some older versions it used to even crash the compiler. Note: I'm compiling from the Eclipse IDE and set the optimise and inline as per-project options. For example, for the following class, nothing seems to get inlined: case class Vector2f(x: Float, y: Float) { @inline def +(a: Float) = Vector2f(x + a, y + a) @inline def -(a: Float) = Vector2f(x - a, y - a) @inline def *(a: Float) = Vector2f(x * a, y * a) @inline def /(a: Float) = Vector2f(x / a, y / a) ... } I recently noticed the @inline annotation and added those to all methods, but even that doesn't seem to cause those methods to actually get inlined. Erkki |
|
|
Re: [scala-tools] Compiler optimisations/inliningSorry, I am stupid. Of course the methods need to be final for them to
be inlined... Erkki Erkki Lindpere wrote: > Are the Scala compiler's -optimise and -Yinline options actually > supposed to do some inlining at the moment? I have tried this with > numerous Scala versions but nothing seems to get inlined. With some > older versions it used to even crash the compiler. > > Note: I'm compiling from the Eclipse IDE and set the optimise and > inline as per-project options. > > For example, for the following class, nothing seems to get inlined: > > case class Vector2f(x: Float, y: Float) { > @inline def +(a: Float) = Vector2f(x + a, y + a) > @inline def -(a: Float) = Vector2f(x - a, y - a) > @inline def *(a: Float) = Vector2f(x * a, y * a) > @inline def /(a: Float) = Vector2f(x / a, y / a) > ... > } > > I recently noticed the @inline annotation and added those to all > methods, but even that doesn't seem to cause those methods to actually > get inlined. > > Erkki > |
|
|
Re: [scala-tools] Compiler optimisations/inliningIt doesn't seem to work correctly though (with 2.7.4):
Exception in thread "main" java.lang.IllegalAccessError: tried to access field Vector2f.x from class X Erkki Erkki Lindpere wrote: > Sorry, I am stupid. Of course the methods need to be final for them to > be inlined... > > Erkki > > Erkki Lindpere wrote: >> Are the Scala compiler's -optimise and -Yinline options actually >> supposed to do some inlining at the moment? I have tried this with >> numerous Scala versions but nothing seems to get inlined. With some >> older versions it used to even crash the compiler. >> >> Note: I'm compiling from the Eclipse IDE and set the optimise and >> inline as per-project options. >> >> For example, for the following class, nothing seems to get inlined: >> >> case class Vector2f(x: Float, y: Float) { >> @inline def +(a: Float) = Vector2f(x + a, y + a) >> @inline def -(a: Float) = Vector2f(x - a, y - a) >> @inline def *(a: Float) = Vector2f(x * a, y * a) >> @inline def /(a: Float) = Vector2f(x / a, y / a) >> ... >> } >> >> I recently noticed the @inline annotation and added those to all >> methods, but even that doesn't seem to cause those methods to >> actually get inlined. >> >> Erkki >> > |
|
|
|
| Free embeddable forum powered by Nabble | Forum Help |