Home > Software > Development > Haksell > GHC
Details
- Package ID
- ghc
- Version
- 9.8.2
- Downloads
- 958863
- Website
- https://www.haskell.org/ghc/
Summary
GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell.
Description
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.
There's an important change to path handling for Windows starting with 8.6.1.
These changes mean that Haskell programs are no longer constraint to `MAX_PATH`. So passing a long path to `openFile` will just work.
There are a few caveats to this such as you can't access `COM` devices via `COM1` etc anymore and instead need to use the full path `\\.\COM1` etc.
This is all documented https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/win32-dlls.html#windows-file-paths
*32-bit Windows is no longer supported and installing this package on 32-bit Windows will install GHC 8.6.5.*
GHC 9.0 contains a new I/O manager for Windows as a technical preview. See changelog for more information.
Package Specific
changes
- Adds support for Azure Pipelines.
Package Parameters
The following package parameters can be set:
/installdir:- The location to install package to. Note that installing to a directory with spaces will likely lead to difficulties./globalinstall:- Indicates whether package should be installed for current user or all users./integer-simple:- Indicates to use the GHC bignum package instead of the GMP one, for compatibility reasons the flag is kept the same./no-workarounds:- Don’t apply any package specific workarounds that may be needed to make the compiler work.
To pass parameters, use --params "''" (e.g. choco install packageID [other options] --params="'/ITEM:value /ITEM2:value2 /FLAG_BOOLEAN'").
To have choco remember parameters on upgrade, be sure to set choco feature enable -n=useRememberedArgumentsForUpgrades.