cabal-version: 3.0 name: base version: 4.19.2.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause license-file: LICENSE maintainer: Core Libraries Committee bug-reports: https://github.com/haskell/core-libraries-committee/issues synopsis: Core data structures and operations category: Prelude build-type: Configure description: Haskell's base library provides, among other things, core types (e.g. [Bool]("Data.Bool") and [Int]("Data.Int")), data structures (e.g. [List]("Data.List"), [Tuple]("Data.Tuple") and [Maybe]("Data.Maybe")), the [Exception]("Control.Exception") mechanism, and the [IO]("System.IO") & [Concurrency]("Control.Concurrent") operations. The "Prelude" module, which is imported by default, exposes a curated set of types and functions from other modules. Other data structures like [Map](https://hackage.haskell.org/package/containers/docs/Data-Map.html), [Set](https://hackage.haskell.org/package/containers/docs/Data-Set.html) are available in the [containers](https://hackage.haskell.org/package/containers) library. To work with textual data, use the [text](https://hackage.haskell.org/package/text/docs/Data-Text.html) library. extra-tmp-files: autom4te.cache base.buildinfo config.log config.status include/EventConfig.h include/HsBaseConfig.h extra-source-files: aclocal.m4 base.buildinfo.in changelog.md 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 install-sh source-repository head type: git location: https://gitlab.haskell.org/ghc/ghc.git subdir: libraries/base Library default-language: Haskell2010 other-extensions: BangPatterns CApiFFI CPP ConstraintKinds DataKinds DeriveDataTypeable DeriveGeneric ExistentialQuantification ExplicitForAll FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving KindSignatures MagicHash MultiParamTypeClasses NegativeLiterals NoImplicitPrelude NondecreasingIndentation OverloadedStrings ParallelArrays PolyKinds RankNTypes RecordWildCards RoleAnnotations Safe ScopedTypeVariables StandaloneDeriving Trustworthy TypeFamilies TypeOperators TypeSynonymInstances UnboxedTuples UndecidableInstances UnliftedFFITypes Unsafe build-depends: rts == 1.0.*, ghc-prim >= 0.5.1.0 && < 0.12, ghc-bignum >= 1.0 && < 2.0 exposed-modules: Control.Applicative Control.Arrow Control.Category Control.Concurrent Control.Concurrent.Chan Control.Concurrent.MVar Control.Concurrent.QSem Control.Concurrent.QSemN Control.Exception Control.Exception.Base Control.Monad Control.Monad.Fail Control.Monad.Fix Control.Monad.Instances Control.Monad.IO.Class Control.Monad.ST Control.Monad.ST.Lazy Control.Monad.ST.Lazy.Safe Control.Monad.ST.Lazy.Unsafe Control.Monad.ST.Safe Control.Monad.ST.Strict Control.Monad.ST.Unsafe Control.Monad.Zip Data.Array.Byte Data.Bifoldable Data.Bifoldable1 Data.Bifunctor Data.Bitraversable Data.Bits Data.Bool Data.Char Data.Coerce Data.Complex Data.Data Data.Dynamic Data.Either Data.Eq Data.Fixed Data.Foldable Data.Foldable1 Data.Function Data.Functor Data.Functor.Classes Data.Functor.Contravariant Data.Functor.Compose Data.Functor.Const Data.Functor.Identity Data.Functor.Product Data.Functor.Sum Data.IORef Data.Int Data.Ix Data.Kind Data.List Data.List.NonEmpty Data.Maybe Data.Monoid Data.Ord Data.Proxy Data.Ratio Data.Semigroup Data.STRef Data.STRef.Lazy Data.STRef.Strict Data.String Data.Traversable Data.Tuple Data.Type.Bool Data.Type.Coercion Data.Type.Equality Data.Type.Ord Data.Typeable Data.Unique Data.Version Data.Void Data.Word Debug.Trace Foreign Foreign.C Foreign.C.ConstPtr Foreign.C.Error Foreign.C.String Foreign.C.Types Foreign.Concurrent Foreign.ForeignPtr Foreign.ForeignPtr.Safe Foreign.ForeignPtr.Unsafe Foreign.Marshal Foreign.Marshal.Alloc Foreign.Marshal.Array Foreign.Marshal.Error Foreign.Marshal.Pool Foreign.Marshal.Safe Foreign.Marshal.Unsafe Foreign.Marshal.Utils Foreign.Ptr Foreign.Safe Foreign.StablePtr Foreign.Storable GHC.Arr GHC.ArrayArray GHC.Base GHC.Bits GHC.ByteOrder GHC.Char GHC.Clock GHC.Conc GHC.Conc.IO GHC.Conc.Signal GHC.Conc.Sync GHC.ConsoleHandler GHC.Constants GHC.Desugar GHC.Encoding.UTF8 GHC.Enum GHC.Environment GHC.Err GHC.Event.TimeOut GHC.Exception GHC.Exception.Type GHC.ExecutionStack GHC.ExecutionStack.Internal GHC.Exts GHC.Fingerprint GHC.Fingerprint.Type GHC.Float GHC.Float.ConversionUtils GHC.Float.RealFracMethods GHC.Foreign GHC.ForeignPtr GHC.GHCi GHC.GHCi.Helpers GHC.Generics GHC.InfoProv GHC.IO GHC.IO.Buffer GHC.IO.BufferedIO GHC.IO.Device GHC.IO.Encoding GHC.IO.Encoding.CodePage GHC.IO.Encoding.Failure GHC.IO.Encoding.Iconv GHC.IO.Encoding.Latin1 GHC.IO.Encoding.Types GHC.IO.Encoding.UTF16 GHC.IO.Encoding.UTF32 GHC.IO.Encoding.UTF8 GHC.IO.Exception GHC.IO.FD GHC.IO.Handle GHC.IO.Handle.FD GHC.IO.Handle.Internals GHC.IO.Handle.Lock GHC.IO.Handle.Text GHC.IO.Handle.Types GHC.IO.IOMode GHC.IO.Unsafe GHC.IO.StdHandles GHC.IO.SubSystem GHC.IOArray GHC.IORef GHC.Int GHC.Integer GHC.Integer.Logarithms GHC.IsList GHC.Ix GHC.List GHC.Maybe GHC.MVar GHC.Natural GHC.Num GHC.OldList GHC.OverloadedLabels GHC.Pack GHC.Profiling GHC.Ptr GHC.Read GHC.Real GHC.Records GHC.ResponseFile GHC.RTS.Flags GHC.ST GHC.Stack.CloneStack GHC.StaticPtr GHC.STRef GHC.Show GHC.Stable GHC.StableName GHC.Stack GHC.Stack.CCS GHC.Stack.Types GHC.Stats GHC.Storable GHC.TopHandler GHC.TypeError GHC.TypeLits GHC.TypeLits.Internal GHC.TypeNats GHC.TypeNats.Internal GHC.Unicode GHC.Weak GHC.Weak.Finalize GHC.Word Numeric Numeric.Natural Prelude System.CPUTime System.Console.GetOpt System.Environment System.Environment.Blank System.Exit System.IO System.IO.Error System.IO.Unsafe System.Info System.Mem System.Mem.StableName System.Mem.Weak System.Posix.Internals System.Posix.Types System.Timeout Text.ParserCombinators.ReadP Text.ParserCombinators.ReadPrec Text.Printf Text.Read Text.Read.Lex Text.Show Text.Show.Functions Type.Reflection Type.Reflection.Unsafe Unsafe.Coerce -- TODO: remove GHC.IOPort reexported-modules: GHC.Num.Integer , GHC.Num.Natural , GHC.Num.BigNat other-modules: Control.Monad.ST.Imp Control.Monad.ST.Lazy.Imp Data.Functor.Utils Data.OldList Data.Semigroup.Internal Data.Typeable.Internal Foreign.ForeignPtr.Imp GHC.IO.Handle.Lock.Common GHC.IO.Handle.Lock.Flock GHC.IO.Handle.Lock.LinuxOFD GHC.IO.Handle.Lock.NoOp GHC.IO.Handle.Lock.Windows GHC.StaticPtr.Internal GHC.Event.Arr GHC.Event.Array GHC.Event.Internal GHC.Event.Internal.Types GHC.Event.IntTable GHC.Event.IntVar GHC.Event.PSQ GHC.Event.Unique GHC.Foreign.Internal -- GHC.IOPort -- TODO: hide again after debug GHC.Unicode.Internal.Bits GHC.Unicode.Internal.Char.DerivedCoreProperties GHC.Unicode.Internal.Char.UnicodeData.GeneralCategory GHC.Unicode.Internal.Char.UnicodeData.SimpleLowerCaseMapping GHC.Unicode.Internal.Char.UnicodeData.SimpleTitleCaseMapping GHC.Unicode.Internal.Char.UnicodeData.SimpleUpperCaseMapping GHC.Unicode.Internal.Version System.Environment.ExecutablePath System.CPUTime.Utils 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 cmm-sources: cbits/CastFloatWord.cmm cbits/StackCloningDecoding.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 include-dirs: include includes: HsBase.h install-includes: HsBase.h consUtils.h -- OS Specific if os(windows) -- Windows requires some extra libraries for linking because the RTS -- is no longer re-exporting them. -- 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 extra-libraries: wsock32, user32, shell32, mingw32, kernel32, advapi32, mingwex, ws2_32, shlwapi, ole32, rpcrt4, ntdll -- 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.IO.Encoding.CodePage.API GHC.IO.Encoding.CodePage.Table GHC.Conc.Windows GHC.Conc.WinIO GHC.Conc.POSIX GHC.Conc.POSIX.Const GHC.Windows GHC.Event.Windows GHC.Event.Windows.Clock GHC.Event.Windows.ConsoleEvent GHC.Event.Windows.FFI GHC.Event.Windows.ManagedThreadPool GHC.Event.Windows.Thread GHC.IO.Handle.Windows GHC.IO.Windows.Handle GHC.IO.Windows.Encoding GHC.IO.Windows.Paths other-modules: System.CPUTime.Windows c-sources: cbits/Win32Utils.c cbits/consUtils.c cbits/IOutils.c else exposed-modules: GHC.Event other-modules: GHC.Event.Control GHC.Event.EPoll GHC.Event.KQueue GHC.Event.Manager GHC.Event.Poll GHC.Event.Thread GHC.Event.TimerManager System.CPUTime.Posix.ClockGetTime System.CPUTime.Posix.Times System.CPUTime.Posix.RUsage System.CPUTime.Unsupported if arch(javascript) other-modules: System.CPUTime.Javascript -- 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.JS.Prim GHC.JS.Prim.Internal GHC.JS.Prim.Internal.Build GHC.JS.Foreign.Callback -- We need to set the unit id to base (without a version number) -- as it's magic. ghc-options: -this-unit-id base -- Make sure we don't accidentally regress into anti-patterns ghc-options: -Wcompat -Wnoncanonical-monad-instances