Intersting indeed. I did the same test on my chromebook plus a variant where i successfully forced inlining of your former definition using type-constructor trick.
Now (your latter) is not inlined anymore. Which is quite confusing, since 30min before it was. Seriously. And I wrote these tests on different processes (so no side effects). Now, I don't want to give the Debbie Downer, but it seems to me, that there is no real reliable code generation. Concerning easy functions like these I do have an idea how the code shall look like that's generated. If this is not reliable then there is something strange ongoing. Don't you think? Julia Version 0.4.0-dev+412 Commit d040ceb* (2014-08-28 08:45 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: Intel(R) Celeron(R) 2955U @ 1.40GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3 Julia Version 0.4.0-dev+412 Commit d040ceb* (2014-08-28 08:45 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: Intel(R) Celeron(R) 2955U @ 1.40GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3 Julia Version 0.4.0-dev+412 Commit d040ceb* (2014-08-28 08:45 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: Intel(R) Celeron(R) 2955U @ 1.40GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3 Julia Version 0.4.0-dev+412 Commit d040ceb* (2014-08-28 08:45 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: Intel(R) Celeron(R) 2955U @ 1.40GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3 Julia Version 0.4.0-dev+412 Commit d040ceb* (2014-08-28 08:45 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: Intel(R) Celeron(R) 2955U @ 1.40GHz WORD_SIZE: 64 BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem) LAPACK: libopenblas LIBM: libopenlibm LLVM: libLLVM-3.3
