[Vm-dev] The Mac VM (pharo)
goran at krampe.se
Tue Oct 1 13:11:54 UTC 2013
My mail filters were bogged up so I missed this discussion, sorry. Let
me clarify some things:
First I wrote that "clang" is essentially the same as "gcc" but what I
*MEANT* by that is that given the output from those two commands on a
Mountain Lion - they BOTH invoke llvm-gcc.
On 09/26/2013 10:35 AM, Tobias Pape wrote:> Am 26.09.2013 um 10:06
schrieb Eliot Miranda <eliot.miranda at gmail.com>:
>>>> No; very different. I'm not an expert but I think essentially clang is
>>>> Apple's C compiler that uses the LLVM backend, and gcc is good old gcc.
>>> Not on a default Mac Xcode installation.
>>> See my OSX 10.8 + Xcode 4.x installation:
>>> $ ls -al $(which gcc)
>>> lrwxr-xr-x 1 root wheel 12 24 Apr 16:42 /usr/bin/gcc -> llvm-gcc-4.2
>>> But with Xcode 5, no gcc (be it a pure gcc-4.2 or a llvm backed gcc)
>>> ships. gcc is linked to clang.
>>> It is a problem of default naming. From Xcode 5 on, if you don't change
>>> a thing, "gcc" will get you "clang".
And Tobias explained exactly what I meant - "gcc" and "clang" resolve to
the SAME compiler under Mountain Lion.
>> I think you miss my point, which is that the clang compiler is very
>> different (it uses LLVM for its code generator) than gcc.
> I got that point, but I was under the impression, Göran wanted to
> make a different one.
Yes, thanks! :)
>> That apple calls
>> clang gcc is neither here-nor-there. If you get a real gcc it will compile
>> a functional VM. If you get a clang-based compiler it won't. Do you agree?
> Yes, I did not want to argue that point :).
No, I don't agree! :) Because current PharoVM *DOES* compile and run
using clang! Which is quite cool btw.
> But what is with the two-headed hydra, llvm-gcc (gcc frontend with llvm code-gen)?
> Since Xcode 4, apple by default does _not_ ship a "normal" gcc but only a
> llvm-based one, and with Xcode 5, even that is gone.
> My point was not about code-gen but compiler-availability ;)
> However, yours seem more important ATM.
>>>> Right now Cog doesn't run if compiled with clang. Only gcc will do. No
Nope, it compiles and run :). Performance seems to be the same as the
Pharo VM that the Pharo guys build with GCC (not sure, but I think they
I am now working on a build using GCC 4.9 - not through it yet, but almost.
For some interesting silly benchmarks:
Stock binary pharo-vm (presume built with GCC 4.2???):
133 million sends, 800 mill bytecodes.
Built with clang from Xcode 5:
121 million sends, 790 mill bytecodes.
Binary 2776 from Eliot:
114 mill sends, but 980 mill bytecodes.
3 years old OpenQwaq Cog VM compiled with Intel compiler:
138 mill sends and 1000 mill bytecodes.
Hehe. So... will be interesting to see how GCC 4.9 fares in all this -
but this is nice - we can compile using clang!
More information about the Vm-dev