packages feed

MicroHs-0.15.0.0: MicroHs.cabal

cabal-version:       3.0
name:                MicroHs
version:             0.15.0.0
                     -- *** When changing the version number, also
                     -- *** run 'sh updateversion.sh'
                     -- *** Yeah, it stinks.
synopsis:            A small compiler for Haskell
license:             Apache-2.0
license-file:        LICENSE
copyright:           2023,2024,2025 Lennart Augustsson
category:            language
author:              lennart@augustsson.net
maintainer:          lennart@augustsson.net
stability:           experimental
description:         A compiler for an extended subset of Haskell-2010.
                     The compiler translates to combinators and can compile itself.
build-type:          Simple

extra-source-files:
      LICENSE
      Example.hs
      Makefile
      README.md
      Tools/convertX.sh
      Tools/Addcombs.hs
      Tools/Compress.hs
      generated/mhs.c
      generated/cpphs.c
      ghc/**/*.hs
      lib/**/*.hs
      lib/**/*.hs-boot
      mhs/**/*.hs
      paths/Paths_MicroHs.hs
      src/runtime/*.c
      src/runtime/*.h
      src/runtime/**/*.c
      src/runtime/**/*.h
      tests/Makefile
      tests/*.hs
      tests/*.hs-boot
      tests/*.ref

data-files:
      targets.conf
      src/runtime/*.c
      src/runtime/*.h
      src/runtime/**/*.c
      src/runtime/**/*.h
-- I would like to have these two only for ghc, but I can't figure out how.
-- But mcabal has a hack that recognizes lines that start with --MCABAL as valid lines.
--MCABALif impl(ghc)
--MCABAL data-files:
      lib/**/*.hs
      lib/**/*.hs-boot

source-repository head
    type:     git
    location: https://github.com/augustss/MicroHs

executable mhs
  default-language:    Haskell2010
  ghc-options:         -Wall -Wno-unrecognised-warning-flags -Wno-x-partial
                       -fwrite-ide-info -Wno-deprecations
                       -main-is MicroHs.Main
  main-is:             MicroHs/Main.hs
  default-extensions:  ScopedTypeVariables TypeSynonymInstances MultiParamTypeClasses FlexibleInstances FlexibleContexts
  other-modules:       MicroHs.Abstract
                       MicroHs.Builtin
                       MicroHs.Compile
                       MicroHs.CompileCache
                       MicroHs.Deriving
                       MicroHs.Desugar
                       MicroHs.EncodeData
                       MicroHs.Exp
                       MicroHs.ExpPrint
                       MicroHs.Expr
                       MicroHs.FFI
                       MicroHs.Flags
                       MicroHs.Fixity
                       MicroHs.Graph
                       MicroHs.Ident
                       MicroHs.IdentMap
                       MicroHs.IntMap
                       MicroHs.IntSet
                       MicroHs.Interactive
                       MicroHs.Lex
                       MicroHs.List
                       MicroHs.Names
                       MicroHs.MakeCArray
                       MicroHs.Package
                       MicroHs.Parse
                       MicroHs.State
                       MicroHs.StateIO
                       MicroHs.SymTab
                       MicroHs.TCMonad
                       MicroHs.Translate
                       MicroHs.TypeCheck
                       MicroHs.TargetConfig
                       Text.ParserComb
                       Text.PrettyPrint.HughesPJLite
                       System.Console.SimpleReadline
                       Data.Double
                       Data.Integer
                       PrimTable
                       MhsEval
                       MHSPrelude
                       System.IO.MD5
                       System.IO.Serialize
                       System.IO.TimeMilli
                       System.IO.Transducers
                       System.Compress
                       Paths_MicroHs

  autogen-modules:     Paths_MicroHs
  if impl(ghc)
    hs-source-dirs:    ghc src
    build-depends:     base         >= 4.10 && < 4.30,
                       bytestring   >= 0.5 && < 0.20,
                       deepseq      >= 1.1 && < 1.8,
                       filepath     >= 1.1 && < 1.8,
                       ghc-prim     >= 0.5 && < 0.15,
                       haskeline    >= 0.8 && < 0.10,
                       time         >= 1.9 && < 1.20,
                       process      >= 1.6 && < 1.10,
                       directory    >= 1.2 && < 1.6,
                       text         >= 2.0 && < 2.5,
                       array        >= 0.5 && < 0.6
    include-dirs:      src/runtime src/runtime/unix
    install-includes:  mhseval.h
    c-sources:         src/runtime/mhseval.c
    includes:          mhseval.h

  if impl(hugs)
    hs-source-dirs:    hugs src

  if impl(mhs)
    hs-source-dirs:    mhs src
    build-depends:     base         >= 0.1 && < 10.0,

library
  default-language:    Haskell2010
  default-extensions:  ScopedTypeVariables TypeSynonymInstances MultiParamTypeClasses FlexibleInstances FlexibleContexts
  ghc-options:         -Wall -Wno-unrecognised-warning-flags -Wno-x-partial
                       -fwrite-ide-info -Wno-deprecations
  autogen-modules:     Paths_MicroHs
  exposed-modules:
                        MicroHs.Abstract 
                        MicroHs.Builtin 
                        MicroHs.Compile 
                        MicroHs.CompileCache 
                        MicroHs.Deriving 
                        MicroHs.Desugar 
                        MicroHs.EncodeData 
                        MicroHs.Exp 
                        MicroHs.ExpPrint 
                        MicroHs.Expr 
                        MicroHs.FFI 
                        MicroHs.Fixity 
                        MicroHs.Flags 
                        MicroHs.Graph 
                        MicroHs.Ident 
                        MicroHs.IdentMap 
                        MicroHs.Interactive 
                        MicroHs.IntMap 
                        MicroHs.IntSet 
                        MicroHs.Lex 
                        MicroHs.List 
                        MicroHs.Main 
                        MicroHs.MakeCArray 
                        MicroHs.Names 
                        MicroHs.Package 
                        MicroHs.Parse 
                        MicroHs.State 
                        MicroHs.StateIO 
                        MicroHs.SymTab 
                        MicroHs.TargetConfig 
                        MicroHs.TCMonad 
                        MicroHs.Translate 
                        MicroHs.TypeCheck
                        MhsEval

  other-modules:        MHSPrelude
                        Text.ParserComb
                        Text.PrettyPrint.HughesPJLite
                        Data.Integer
                        Paths_MicroHs
                        PrimTable
                        System.Compress
                        System.Console.SimpleReadline
                        System.IO.MD5
                        System.IO.Serialize
                        System.IO.TimeMilli
                        System.IO.Transducers
  if impl(ghc)
    hs-source-dirs:     ghc src
    build-depends:      base         >= 4.10 && < 4.30,
                        bytestring   >= 0.5 && < 0.20,
                        deepseq      >= 1.1 && < 1.8,
                        filepath     >= 1.1 && < 1.8,
                        ghc-prim     >= 0.5 && < 0.15,
                        haskeline    >= 0.8 && < 0.10,
                        time         >= 1.9 && < 1.20,
                        process      >= 1.6 && < 1.10,
                        directory    >= 1.2 && < 1.6,
                        text         >= 2.0 && < 2.5,
                        array        >= 0.5 && < 0.6
    include-dirs:       src/runtime src/runtime/unix
    install-includes:   mhseval.h config.h extra.c
    c-sources:          src/runtime/mhseval.c
    includes:           mhseval.h

  if impl(hugs)
    hs-source-dirs:     hugs src
    other-modules:      System.FilePath

  if impl(mhs)
    hs-source-dirs:     mhs src
    build-depends:      base         >= 0.1 && < 10.0,
    other-modules:      System.FilePath