The Glasgow Haskell Compiler is a state-of-the-art, open source, compiler and
interactive environment for the functional language Haskell. Highlights:
* Supports the entire Haskell 2010 language plus a wide variety of
extensions.
* Has particularly good support for concurrency and parallelism, including
support for Software Transactional Memory (STM).
* Generates fast code, particularly for concurrent programs.
* Works on several platforms including FreeBSD, Windows, Mac, Linux, most
varieties of Unix, and several different processor architectures.
* Has extensive optimisation capabilities, including inter-module optimisation.
* Compiles Haskell code either directly to native code or using LLVM as a
back-end. It can also generate C code as an intermediate target for porting
to new platforms. The interactive environment compiles Haskell to bytecode,
and supports execution of mixed bytecode/compiled programs.
* Profiling is supported, both by time/allocation and various kinds of heap
profiling.
* Comes with several libraries, and thousands more are available on Hackage.
===> The following configuration options are available for ghc810-8.10.7_4:
DYNAMIC=on: Add support for dynamic linking
PROFILE=on: Add support for performance profiling
====> Bootsrap using installed ghc
BOOT=off: Use installed GHC for bootstrapping
===> Use 'make config' to modify these settings
lang/ghc*: Remove BUILD_DEPEND on compat12x
compat12x is only needed for ghc810 and ghc92 so remove the build depend
for lang/ghc and lang/ghc94
Reviewed by: arrowd
lang/ghc810: Switch to LLVM 11.
While the officially supported LLVM version for GHC 8.10 is 10, it does build
with 11. Switch to make ot possible to remove llvm10 port.
lang/ghc: Remove USES=localbase and USES=iconv.
Apparently these aren't needed anymore.
Add iconv dependency to devel/stack, because it might download old GHC bindists,
which are still using ports libiconv.
lang/ghc: Starting with GHC 9.2.7 switch to the Hadrian build system.
Hadrian is a new build system for GHC which is written in Haskell and requires
bootstrapping process. Ugh. Luckily, we only prepare a source bootstrap
archive as bootstrap GHC has everything needed to build it.
Hadrian also fails to build GHC on i386 so build it the old way for now.
lang/ghc: Update to 9.2.4
Deal with Haskell ports fallout caused by the update.
While there, re-add patches necessary for lang/ghc810 that were somehow lost.
lang/ghc810: Add the port, slave to lang/ghc.
The need to have different GHC versions installed on the same system became
more common in the Haskell ecosystem. The devel/stack port solves this problem
by installing its own distributions into the user's HOME dir. Cabal doesn't do
that, but uses system-wide GHC installations. This slave port is intended to
help for such use cases.
This port can also be used as a fallback during major lang/ghc upgrades. At
the moment such upgrades require a lot of work to deal with Haskell packages
fallout. By switching failing ports to older GHC we can deliver lang/ghc
updates faster.