Sign inSign up

neosimsim/ghc

By neosimsim

•Updated over 5 years ago

ghc built with musl and integer-simple

Image
0

2.4K

neosimsim/ghc repository overview

⁠What is GHC⁠?

GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. Highlights:

  • GHC supports the entire Haskell 2010 language plus a wide variety of extensions.
  • GHC has particularly good support for concurrency and parallelism, including support for Software Transactional Memory (STM).
  • GHC generates fast code, particularly for concurrent programs. Take a look at GHC's performance on The Computer Language Benchmarks Game.
  • GHC works on several platforms including Windows, Mac, Linux, most varieties of Unix, and several different processor architectures. There are detailed instructions for porting GHC to a new platform.
  • GHC has extensive optimisation capabilities, including inter-module optimisation.
  • GHC compiles Haskell code either directly to native code or using LLVM as a back-end. GHC 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.
  • GHC comes with several libraries, and thousands more are available on Hackage.

GHC is heavily dependent on its users and contributors. Please come and join the mailing lists and send us your comments, suggestions, bug reports and contributions!

⁠What is Haskell⁠?

Haskell is a lazy, functional, statically-typed programming language with advanced type system features such as higher-rank, higher-kinded parametric polymorphism, monadic effects, generalized algebraic data types (GADTs), flexible type classes, associated type families, and more.

⁠Troubleshooting

⁠rejecting: integer-gmp

Note that GHC is built with integer-simple. Some packages do depend on integer-gmp. In general these packages provide flags to change the required integer package.

E.g. if you get the an error like

cabal: Could not resolve dependencies:
40 [__0] trying: oidc-token-viewer-0.1.1.0 (user goal)
41 [__1] trying: tls-1.5.4 (dependency of oidc-token-viewer)
42 [__2] trying: cryptonite-0.26 (dependency of tls)
43 [__3] trying: cryptonite:+integer-gmp
44 [__4] next goal: integer-gmp (dependency of cryptonite +integer-gmp)
45 [__4] rejecting: integer-gmp-1.0.2.0, integer-gmp-1.0.1.0,
46 integer-gmp-1.0.0.1, integer-gmp-1.0.0.0, integer-gmp-0.5.1.0 (only already
47 installed instances can be used)
48 [__4] fail (backjumping, conflict set: cryptonite, integer-gmp,
49 cryptonite:integer-gmp)

you can run

cabal v2-configure --constraint 'cryptonite -integer-gmp'

or

cabal v2-configure --constraint 'scientific +integer-simple'

This will write proper constraints to you cabal.project.local.

⁠Source

https://gitlab.com/neosimsim/docker-builder-images/-/tree/master/ghc⁠

Tag summary

Content type

Image

Digest

Size

884.3 MB

Last updated

over 5 years ago

docker pull neosimsim/ghc