On Mac OSX 10.9, the default c compiler bundled with Xcode
is clang
. I installed gcc-4.9
with homebrew
. Now I have two different gcc
s, one is clang
, the other is gcc
. The default is clang
.
I want to use gcc
when compiling Haskell files with ghc
, and I want also gcc
when I launch ghci
. How to do this change?
None is better. Each will optimize the code better in some cases and worse in some other cases. Comparing unoptimized code is pointless. For compile time, Clang is better because it produce output much faster than gcc. But in x86, Intel compiler (ICC) often produce better optimized code when optimizing for speed.
Note the -dynamic flag to GHC: GHCi uses dynamically-linked object code (if you are on a platform that supports it), and so in order to use compiled code with GHCi it must be compiled for dynamic linking. At any time you can use the command :show modules to get a list of the modules currently loaded into GHCi:
Invoking GHCi ¶ GHCi is invoked with the command ghci or ghc --interactive. One or more modules or filenames can also be specified on the command line; this instructs GHCi to load the specified modules or filenames (and all the modules they depend on), just as if you had said :load modules at the GHCi prompt (see GHCi commands ).
Ideally GHCi would maintain a separate lexical call stack in addition to the dynamic call stack, and in fact this is exactly what our profiling system does ( Profiling ), and what some other Haskell debuggers do. For the time being, however, GHCi doesn’t maintain a lexical call stack (there are some technical challenges to be overcome).
Reproducing my directions I've been sharing with haskellers for the past few months via https://gist.github.com/cartazio/7131371
Type ghc --print-libdir
The output will be a path like /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/lib/ghc-7.6.3
Go to that directory and edit the settings
file.
There'll be a line indicating the path to the C compiler. It'll probably say /bin/gcc
Change that line to /usr/local/bin/gcc-4.8
(or whichever gcc
version you brew installed, such as /usr/local/bin/gcc-4.2
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With