ghc-internal-9.1401.0: ghc-internal.cabal
cabal-version: 3.0
-- WARNING: ghc-internal.cabal is automatically generated from ghc-internal.cabal.in by
-- the top-level ./configure script. Make sure you are editing ghc-internal.cabal.in, not ghc-internal.cabal.
name: ghc-internal
-- The project is ghc's version plus ghc-internal's version suffix.
-- For example, for ghc=9.10.1, ghc-internal's version will be 9.1001.0.
version: 9.1401.0
license: BSD-3-Clause
license-file: LICENSE
maintainer: The GHC Developers <ghc-devs@haskell.org>
bug-reports: https://gitlab.haskell.org/ghc/ghc/-/issues/new
synopsis: Basic libraries
category: Prelude
build-type: Configure
description:
This package contains the implementation of GHC's standard libraries and is
not intended for use by end-users.
.
Users should instead use either the @base@ or @ghc-experimental@ packages
extra-tmp-files:
autom4te.cache
ghc-internal.buildinfo
config.log
config.status
include/EventConfig.h
include/HsBaseConfig.h
extra-source-files:
aclocal.m4
ghc-internal.buildinfo.in
CHANGELOG.md
cbits/gmp_wrappers.c
configure
configure.ac
include/CTypes.h
include/EventConfig.h.in
include/HsBaseConfig.h.in
include/ieee-flpt.h
include/md5.h
include/fs.h
include/winio_structs.h
include/WordSize.h
include/HsIntegerGmp.h.in
include/RtsIfaceSymbols.h
install-sh
source-repository head
type: git
location: https://gitlab.haskell.org/ghc/ghc.git
subdir: libraries/base
Flag bignum-native
Description: Enable native Haskell bignum backend
Manual: True
Default: False
Flag bignum-ffi
Description: Enable FFI bignum backend
Manual: True
Default: False
Flag bignum-gmp
Description: Enable GMP bignum backend
Manual: True
Default: False
Flag bignum-check
Description: Validate results of the enabled backend against native backend.
Manual: True
Default: False
Flag need-atomic
Description: Enable linking with "atomic" library (for 64-bit atomic ops on armel, #20549)
Manual: True
Default: False
Library
default-language: Haskell2010
default-extensions:
NoImplicitPrelude
other-extensions:
BangPatterns
CApiFFI
CPP
ConstraintKinds
DataKinds
DeriveDataTypeable
DeriveGeneric
ExistentialQuantification
ExplicitForAll
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
KindSignatures
MagicHash
MultiParamTypeClasses
NegativeLiterals
NondecreasingIndentation
OverloadedStrings
ParallelArrays
PolyKinds
RankNTypes
RecordWildCards
RoleAnnotations
Safe
ScopedTypeVariables
StandaloneDeriving
Trustworthy
TypeFamilies
TypeOperators
TypeSynonymInstances
UnboxedTuples
UndecidableInstances
UnliftedFFITypes
Unsafe
build-depends:
rts == 1.0.*
exposed-modules:
GHC.Internal.AllocationLimitHandler
GHC.Internal.ClosureTypes
GHC.Internal.Control.Arrow
GHC.Internal.Control.Category
GHC.Internal.Control.Concurrent.MVar
GHC.Internal.Control.Exception
GHC.Internal.Control.Exception.Base
GHC.Internal.Control.Monad
GHC.Internal.Control.Monad.Fail
GHC.Internal.Control.Monad.Fix
GHC.Internal.Control.Monad.IO.Class
GHC.Internal.Control.Monad.ST
GHC.Internal.Control.Monad.Zip
GHC.Internal.Control.Monad.ST.Lazy
GHC.Internal.Control.Monad.ST.Imp
GHC.Internal.Control.Monad.ST.Lazy.Imp
GHC.Internal.Data.Bits
GHC.Internal.Data.Bool
GHC.Internal.Data.Coerce
GHC.Internal.Data.Data
GHC.Internal.Data.Dynamic
GHC.Internal.Data.Either
GHC.Internal.Data.Eq
GHC.Internal.Data.Foldable
GHC.Internal.Data.Function
GHC.Internal.Data.Functor
GHC.Internal.Data.Functor.Const
GHC.Internal.Data.Functor.Identity
GHC.Internal.Data.Functor.Utils
GHC.Internal.Data.IORef
GHC.Internal.Data.Ix
GHC.Internal.Data.List
GHC.Internal.Data.List.NonEmpty
GHC.Internal.Data.Maybe
GHC.Internal.Data.Monoid
GHC.Internal.Data.NonEmpty
GHC.Internal.Data.OldList
GHC.Internal.Data.Ord
GHC.Internal.Data.Proxy
GHC.Internal.Data.Semigroup.Internal
GHC.Internal.Data.STRef
GHC.Internal.Data.STRef.Strict
GHC.Internal.Data.String
GHC.Internal.Data.Traversable
GHC.Internal.Data.Tuple
GHC.Internal.Data.Type.Bool
GHC.Internal.Data.Type.Coercion
GHC.Internal.Data.Type.Equality
GHC.Internal.Data.Type.Ord
GHC.Internal.Data.Typeable
GHC.Internal.Data.Unique
GHC.Internal.Data.Version
GHC.Internal.Data.Void
GHC.Internal.Debug.Trace
GHC.Internal.Foreign.C.ConstPtr
GHC.Internal.Foreign.C.Error
GHC.Internal.Foreign.C.String
GHC.Internal.Foreign.C.String.Encoding
GHC.Internal.Foreign.C.Types
GHC.Internal.Foreign.Concurrent
GHC.Internal.Foreign.ForeignPtr
GHC.Internal.Foreign.ForeignPtr.Imp
GHC.Internal.Foreign.ForeignPtr.Unsafe
GHC.Internal.Foreign.Marshal.Alloc
GHC.Internal.Foreign.Marshal.Array
GHC.Internal.Foreign.Marshal.Error
GHC.Internal.Foreign.Marshal.Pool
GHC.Internal.Foreign.Marshal.Safe
GHC.Internal.Foreign.Marshal.Unsafe
GHC.Internal.Foreign.Marshal.Utils
GHC.Internal.Foreign.Ptr
GHC.Internal.Foreign.StablePtr
GHC.Internal.Foreign.Storable
GHC.Internal.ForeignSrcLang
GHC.Internal.Arr
GHC.Internal.ArrayArray
GHC.Internal.Base
GHC.Internal.Bits
GHC.Internal.ByteOrder
GHC.Internal.Char
GHC.Internal.Clock
GHC.Internal.Conc.Bound
GHC.Internal.Conc.IO
GHC.Internal.Conc.Signal
GHC.Internal.Conc.Sync
GHC.Internal.ConsoleHandler
GHC.Internal.Desugar
GHC.Internal.Encoding.UTF8
GHC.Internal.Enum
GHC.Internal.Environment
GHC.Internal.Err
GHC.Internal.Event.TimeOut
GHC.Internal.Exception
GHC.Internal.Exception.Backtrace
GHC.Internal.Exception.Context
GHC.Internal.Exception.Type
GHC.Internal.ExecutionStack
GHC.Internal.ExecutionStack.Internal
GHC.Internal.Exts
GHC.Internal.Fingerprint
GHC.Internal.Fingerprint.Type
GHC.Internal.Float
GHC.Internal.Float.ConversionUtils
GHC.Internal.Float.RealFracMethods
GHC.Internal.ForeignPtr
GHC.Internal.Functor.ZipList
GHC.Internal.GHCi
GHC.Internal.GHCi.Helpers
GHC.Internal.Generics
GHC.Internal.Heap.Closures
GHC.Internal.Heap.Constants
GHC.Internal.Heap.InfoTable
GHC.Internal.Heap.InfoTable.Types
GHC.Internal.Heap.InfoTableProf
GHC.Internal.Heap.ProfInfo.Types
GHC.Internal.InfoProv
GHC.Internal.InfoProv.Types
GHC.Internal.IO
GHC.Internal.IO.Buffer
GHC.Internal.IO.BufferedIO
GHC.Internal.IO.Device
GHC.Internal.IO.Encoding
GHC.Internal.IO.Encoding.CodePage
GHC.Internal.IO.Encoding.Failure
GHC.Internal.IO.Encoding.Iconv
GHC.Internal.IO.Encoding.Latin1
GHC.Internal.IO.Encoding.Types
GHC.Internal.IO.Encoding.UTF16
GHC.Internal.IO.Encoding.UTF32
GHC.Internal.IO.Encoding.UTF8
GHC.Internal.IO.Exception
GHC.Internal.IO.FD
GHC.Internal.IO.Handle
GHC.Internal.IO.Handle.FD
GHC.Internal.IO.Handle.Internals
GHC.Internal.IO.Handle.Lock
GHC.Internal.IO.Handle.Text
GHC.Internal.IO.Handle.Types
GHC.Internal.IO.IOMode
GHC.Internal.IO.Unsafe
GHC.Internal.IO.StdHandles
GHC.Internal.IO.SubSystem
GHC.Internal.IOArray
GHC.Internal.IORef
GHC.Internal.Int
GHC.Internal.Integer
GHC.Internal.Integer.Logarithms
GHC.Internal.IsList
GHC.Internal.Ix
GHC.Internal.LanguageExtensions
GHC.Internal.Lexeme
GHC.Internal.List
GHC.Internal.Maybe
GHC.Internal.MVar
GHC.Internal.Natural
GHC.Internal.Num
GHC.Internal.OverloadedLabels
GHC.Internal.Pack
GHC.Internal.Profiling
GHC.Internal.Ptr
GHC.Internal.Read
GHC.Internal.Real
GHC.Internal.Records
GHC.Internal.ResponseFile
GHC.Internal.RTS.Flags
GHC.Internal.RTS.Flags.Test
GHC.Internal.ST
GHC.Internal.StaticPtr
GHC.Internal.STRef
GHC.Internal.Show
GHC.Internal.Stable
GHC.Internal.StableName
GHC.Internal.Stack
GHC.Internal.Stack.Annotation
GHC.Internal.Stack.CCS
GHC.Internal.Stack.CloneStack
GHC.Internal.Stack.Constants
GHC.Internal.Stack.ConstantsProf
GHC.Internal.Stack.Decode
GHC.Internal.Stack.Types
GHC.Internal.Stats
GHC.Internal.Storable
GHC.Internal.TH.Syntax
GHC.Internal.TH.Lib
GHC.Internal.TH.Lift
GHC.Internal.TH.Quote
GHC.Internal.TopHandler
GHC.Internal.TypeError
GHC.Internal.TypeLits
GHC.Internal.TypeLits.Internal
GHC.Internal.TypeNats
GHC.Internal.TypeNats.Internal
GHC.Internal.Unicode
GHC.Internal.Weak
GHC.Internal.Weak.Finalize
GHC.Internal.Word
GHC.Internal.Numeric
GHC.Internal.Numeric.Natural
GHC.Internal.System.Environment
GHC.Internal.System.Environment.Blank
GHC.Internal.System.Exit
GHC.Internal.System.IO
GHC.Internal.System.IO.Error
GHC.Internal.System.Mem
GHC.Internal.System.Mem.StableName
GHC.Internal.System.Posix.Internals
GHC.Internal.System.Posix.Types
GHC.Internal.Text.ParserCombinators.ReadP
GHC.Internal.Text.ParserCombinators.ReadPrec
GHC.Internal.Text.Read
GHC.Internal.Text.Read.Lex
GHC.Internal.Text.Show
GHC.Internal.Type.Reflection
GHC.Internal.Type.Reflection.Unsafe
GHC.Internal.Unsafe.Coerce
GHC.Internal.CString
GHC.Internal.Classes
GHC.Internal.Debug
GHC.Internal.Magic
GHC.Internal.Magic.Dict
GHC.Internal.Prim
GHC.Internal.Prim.Ext
GHC.Internal.Prim.Panic
GHC.Internal.Prim.Exception
GHC.Internal.Prim.PtrEq
GHC.Internal.PrimopWrappers
GHC.Internal.Tuple
GHC.Internal.Types
autogen-modules:
GHC.Internal.Prim
GHC.Internal.PrimopWrappers
other-modules:
GHC.Internal.Data.Typeable.Internal
GHC.Internal.IO.Handle.Lock.Common
GHC.Internal.IO.Handle.Lock.Flock
GHC.Internal.IO.Handle.Lock.LinuxOFD
GHC.Internal.IO.Handle.Lock.NoOp
GHC.Internal.IO.Handle.Lock.Windows
GHC.Internal.StaticPtr.Internal
GHC.Internal.Event.Arr
GHC.Internal.Event.Array
GHC.Internal.Event.Internal
GHC.Internal.Event.Internal.Types
GHC.Internal.Event.IntTable
GHC.Internal.Event.IntVar
GHC.Internal.Event.PSQ
GHC.Internal.Event.Unique
GHC.Internal.Unicode.Bits
GHC.Internal.Unicode.Char.DerivedCoreProperties
GHC.Internal.Unicode.Char.UnicodeData.GeneralCategory
GHC.Internal.Unicode.Char.UnicodeData.SimpleLowerCaseMapping
GHC.Internal.Unicode.Char.UnicodeData.SimpleTitleCaseMapping
GHC.Internal.Unicode.Char.UnicodeData.SimpleUpperCaseMapping
GHC.Internal.Unicode.Version
GHC.Internal.System.Environment.ExecutablePath
----------------------------------------
-- Bignum configuration
----------------------------------------
-- check that at least one backend is enabled
if !flag(bignum-native) && !flag(bignum-gmp) && !flag(bignum-ffi)
buildable: False
-- check that at most one flag is set
if flag(bignum-native) && (flag(bignum-gmp) || flag(bignum-ffi))
buildable: False
if flag(bignum-gmp) && flag(bignum-ffi)
buildable: False
if flag(bignum-gmp)
cpp-options: -DBIGNUM_GMP
other-modules:
GHC.Internal.Bignum.Backend.GMP
c-sources:
cbits/gmp_wrappers.c
if flag(bignum-ffi)
cpp-options: -DBIGNUM_FFI
other-modules:
GHC.Internal.Bignum.Backend.FFI
if flag(bignum-native)
cpp-options: -DBIGNUM_NATIVE
if flag(bignum-check)
cpp-options: -DBIGNUM_CHECK
other-modules:
GHC.Internal.Bignum.Backend.Check
exposed-modules:
GHC.Internal.Bignum.Primitives
GHC.Internal.Bignum.WordArray
GHC.Internal.Bignum.BigNat
GHC.Internal.Bignum.Backend
GHC.Internal.Bignum.Backend.Selected
GHC.Internal.Bignum.Backend.Native
GHC.Internal.Bignum.Natural
GHC.Internal.Bignum.Integer
-- some other properties related to bignum are set via the
-- ghc-internal.buildinfo file generated by this package's configure script
----------------------------------------
if !arch(javascript)
c-sources:
cbits/DarwinUtils.c
cbits/PrelIOUtils.c
cbits/SetEnv.c
cbits/iconv.c
cbits/inputReady.c
cbits/md5.c
cbits/primFloat.c
cbits/sysconf.c
cbits/fs.c
cbits/strerror.c
cbits/debug.c
cbits/Stack_c.c
cbits/RtsIface.c
cmm-sources:
cbits/StackCloningDecoding.cmm
cbits/Stack.cmm
cbits/HeapPrim.cmm
if arch(javascript)
js-sources:
-- "platform" must be linked first because it defines global constants
-- (e.g. h$isNode)
jsbits/platform.js
jsbits/base.js
jsbits/errno.js
hs-source-dirs: src
include-dirs: include
includes:
HsBase.h
install-includes:
HsBase.h
consUtils.h
if flag(need-atomic)
-- for 64-bit atomic ops on armel (#20549)
extra-libraries: atomic
-- OS Specific
if os(windows)
-- Windows requires some extra libraries for linking because the RTS
-- is no longer re-exporting them (see #11223)
-- ucrt: standard C library. The RTS will automatically include this,
-- but is added for completeness.
-- mingwex: provides GNU POSIX extensions that aren't provided by ucrt.
-- mingw32: Unfortunately required because of a resource leak between
-- mingwex and mingw32. the __math_err symbol is defined in
-- mingw32 which is required by mingwex.
-- shlwapi: provides PathFileExistsW
-- ws2_32: provides access to socket types and functions
-- ole32: provides UUID functionality.
-- rpcrt4: provides RPC UUID creation.
-- ntdll: provides access to functions to inspect window handles
-- kernel32: provides GetConsoleCP
-- advapi32: provides advanced kernel functions
-- user32: provides access to apis to modify user components (UI etc)
-- on Windows. Required because of mingw32.
extra-libraries:
wsock32, user32, shell32, mingw32, kernel32, advapi32,
mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll, ucrt
-- Minimum supported Windows version.
-- These numbers can be found at:
-- https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
-- If we're compiling on windows, enforce that we only support Windows 7+
-- Adding this here means it doesn't have to be done in individual .c files
-- and also centralizes the versioning.
cpp-options: -D_WIN32_WINNT=0x06010000
cc-options: -D_WIN32_WINNT=0x06010000
exposed-modules:
GHC.Internal.IO.Encoding.CodePage.API
GHC.Internal.IO.Encoding.CodePage.Table
GHC.Internal.Conc.Windows
GHC.Internal.Conc.POSIX
GHC.Internal.Conc.POSIX.Const
GHC.Internal.Windows
GHC.Internal.Event.Windows
GHC.Internal.Event.Windows.Clock
GHC.Internal.Event.Windows.ConsoleEvent
GHC.Internal.Event.Windows.FFI
GHC.Internal.Event.Windows.ManagedThreadPool
GHC.Internal.Event.Windows.Thread
GHC.Internal.IO.Handle.Windows
GHC.Internal.IO.Windows.Handle
GHC.Internal.IO.Windows.Encoding
GHC.Internal.IO.Windows.Paths
c-sources:
cbits/Win32Utils.c
cbits/consUtils.c
cbits/IOutils.c
else
exposed-modules:
GHC.Internal.Event
other-modules:
GHC.Internal.Event.Control
GHC.Internal.Event.EPoll
GHC.Internal.Event.KQueue
GHC.Internal.Event.Manager
GHC.Internal.Event.Poll
GHC.Internal.Event.Thread
GHC.Internal.Event.TimerManager
if os(linux)
-- we need libm, but for musl and other's we might need libc, as libm
-- is just an empty shell.
extra-libraries: c, m
-- The Ports framework always passes this flag when building software that
-- uses iconv to make iconv from Ports compatible with iconv from the base system
-- See /usr/ports/Mk/Uses/iconv.mk
if os(freebsd)
cc-options: -DLIBICONV_PLUG
if arch(javascript)
exposed-modules:
GHC.Internal.JS.Prim
GHC.Internal.JS.Prim.Internal
GHC.Internal.JS.Prim.Internal.Build
GHC.Internal.JS.Foreign.Callback
if arch(wasm32)
exposed-modules:
GHC.Internal.Wasm.Prim
other-modules:
GHC.Internal.Wasm.Prim.Conc
GHC.Internal.Wasm.Prim.Conc.Internal
GHC.Internal.Wasm.Prim.Exports
GHC.Internal.Wasm.Prim.Flag
GHC.Internal.Wasm.Prim.Imports
GHC.Internal.Wasm.Prim.Types
-- We need to set the unit id to ghc-internal (without a version number)
-- as it's magic.
ghc-options: -this-unit-id ghc-internal
-- Make sure we don't accidentally regress into anti-patterns
ghc-options: -Wcompat -Wnoncanonical-monad-instances