packages feed

zeolite-lang-0.20.0.0: zeolite-lang.cabal

cabal-version:       2.2

name:                zeolite-lang
version:             0.20.0.0
synopsis:            Zeolite is a statically-typed, general-purpose programming language.

description:
  Zeolite is an experimental general-purpose programming language. See
  <https://github.com/ta0kira/zeolite Zeolite on GitHub> for more details.
  .
  The installation process is still a bit rough, and therefore must be done in a
  few stages:
  .
  * Ensure that you have a C++ compiler such as @clang++@ or @g++@ installed,
    and an archiver such as @ar@ installed, all callable from a shell.
  * Install the binaries using @cabal@. After this step, the compiler itself is
    installed, but it cannot actually create executables from source code.
    .
    @
    cabal install zeolite-lang
    @
    .
  * Execute the setup binary that gets installed by @cabal@. This will give you
    a series of prompts to verify the binaries above. It will then
    automatically build the supporting libraries.
    .
    @
    # By default, setup is interactive.
    zeolite-setup
    .
    # To choose the c++ and ar binaries non-interactively, include them as args.
    zeolite-setup \/usr\/bin\/clang++ \/usr\/bin\/ar
    .
    # Or just choose the 1st match for each.
    zeolite-setup 1 1
    @
    .
  * (Optional) As a sanity check, compile and run
    @<https://github.com/ta0kira/zeolite/tree/master/example/hello example/hello>@.
    Please create an
    <https://github.com/ta0kira/zeolite/issues issue on GitHub> if you encounter
    any errors.
    .
    @
    ZEOLITE_PATH=$(zeolite --get-path)
    zeolite -p "$ZEOLITE_PATH\/example\/hello" -I lib\/util --fast HelloDemo hello-demo.0rx
    $ZEOLITE_PATH\/example\/hello\/HelloDemo
    @
  .
  The <https://github.com/ta0kira/zeolite/tree/master/example code examples> are
  located in @$ZEOLITE_PATH/example@. You should not normally need to use
  @$ZEOLITE_PATH@ outside of running the included tests and examples.

homepage:            https://github.com/ta0kira/zeolite
license:             Apache-2.0
license-file:        LICENSE
author:              Kevin P. Barry
maintainer:          Kevin P. Barry <ta0kira@gmail.com>
copyright:           (c) Kevin P. Barry 2019-2021
category:            Compiler
build-type:          Simple

tested-with:         GHC == 8.10.1,
                     GHC == 8.8.3,
                     GHC == 8.6.5,
                     GHC == 8.4.4,
                     GHC == 8.2.2,
                     GHC == 8.0.2

extra-source-files:  ChangeLog.md,
                     src/Test/testfiles/*.0rp,
                     src/Test/testfiles/*.0rt,
                     src/Test/testfiles/*.0rx,
                     src/Test/testfiles/*.txt

data-files:          base/.zeolite-module,
                     base/*.0rp,
                     base/*.hpp,
                     base/*.h,
                     base/src/*.cc,
                     base/src/*.cpp,
                     example/hello/README.md,
                     example/hello/*.0rx,
                     example/parser/.zeolite-module,
                     example/parser/README.md,
                     example/parser/*.0rp,
                     example/parser/*.0rt,
                     example/parser/*.0rx,
                     example/parser/*.txt,
                     example/primes/.zeolite-module,
                     example/primes/README.md,
                     example/primes/*.0rp,
                     example/primes/*.0rx,
                     example/random/.zeolite-module,
                     example/random/README.md,
                     example/random/*.0rx,
                     lib/container/README.md,
                     lib/container/.zeolite-module,
                     lib/container/*.0rp,
                     lib/container/src/*.0rp,
                     lib/container/src/*.0rx,
                     lib/container/test/*.0rt,
                     lib/container/src/*.cpp,
                     lib/file/README.md,
                     lib/file/.zeolite-module,
                     lib/file/*.0rp,
                     lib/file/src/*.0rx,
                     lib/file/src/*.cpp,
                     lib/file/test/*.0rt,
                     lib/math/README.md,
                     lib/math/.zeolite-module,
                     lib/math/*.0rp,
                     lib/math/src/*.0rp,
                     lib/math/src/*.0rx,
                     lib/math/src/*.cpp,
                     lib/math/test/*.0rt,
                     lib/testing/README.md,
                     lib/testing/.zeolite-module,
                     lib/testing/*.0rp,
                     lib/testing/src/*.0rx,
                     lib/testing/test/*.0rt,
                     lib/thread/README.md,
                     lib/thread/.zeolite-module,
                     lib/thread/*.0rp,
                     lib/thread/src/*.0rp,
                     lib/thread/src/*.0rx,
                     lib/thread/src/*.cpp,
                     lib/thread/test/*.0rt,
                     lib/util/README.md,
                     lib/util/.zeolite-module,
                     lib/util/*.0rp,
                     lib/util/src/*.0rx,
                     lib/util/src/*.cpp,
                     lib/util/test/*.0rt,
                     tests/.zeolite-module,
                     tests/*.0rp,
                     tests/*.0rt,
                     tests/*.0rx,
                     tests/*.sh,
                     tests/bad-path/README.md,
                     tests/bad-path/.zeolite-module,
                     tests/check-defs/README.md,
                     tests/check-defs/.zeolite-module,
                     tests/check-defs/*.0rp,
                     tests/check-defs/*.0rx,
                     tests/fast-static/README.md,
                     tests/fast-static/*.0rx,
                     tests/leak-check/README.md,
                     tests/leak-check/.zeolite-module,
                     tests/leak-check/*.0rx,
                     tests/module-only/README.md,
                     tests/module-only/.zeolite-module,
                     tests/module-only/*.0rx,
                     tests/module-only/internal/.zeolite-module,
                     tests/module-only/internal/*.0rp,
                     tests/module-only2/README.md,
                     tests/module-only2/.zeolite-module,
                     tests/module-only2/*.0rp,
                     tests/module-only3/README.md,
                     tests/module-only3/.zeolite-module,
                     tests/module-only3/*.cpp,
                     tests/module-only3/internal/.zeolite-module,
                     tests/module-only3/internal/*.0rp,
                     tests/module-only4/README.md,
                     tests/module-only4/.zeolite-module,
                     tests/module-only4/*.cpp,
                     tests/module-only4/*.0rp,
                     tests/module-only4/*.0rt,
                     tests/module-only4/*.0rx,
                     tests/self-offset/README.md,
                     tests/self-offset/.zeolite-module,
                     tests/self-offset/*.cpp,
                     tests/self-offset/*.0rp,
                     tests/self-offset/*.0rt,
                     tests/simulate-refs/.zeolite-module,
                     tests/simulate-refs/*.0rp,
                     tests/simulate-refs/*.0rx,
                     tests/simulate-refs/README.md,
                     tests/templates/README.md,
                     tests/templates/.zeolite-module,
                     tests/templates/*.0rp,
                     tests/templates/*.0rt,
                     tests/tests-only/README.md,
                     tests/tests-only/.zeolite-module,
                     tests/tests-only/*.0rp,
                     tests/tests-only/*.0rx,
                     tests/tests-only2/README.md,
                     tests/tests-only2/.zeolite-module,
                     tests/tests-only2/*.0rp,
                     tests/tests-only2/*.0rx,
                     tests/tests-only3/README.md,
                     tests/tests-only3/.zeolite-module,
                     tests/tests-only3/*.0rp,
                     tests/tests-only3/*.0rx,
                     tests/tests-only4/README.md,
                     tests/tests-only4/.zeolite-module,
                     tests/tests-only4/*.cpp,
                     tests/tests-only4/*.0rp,
                     tests/traces/README.md,
                     tests/traces/.zeolite-module,
                     tests/traces/*.0rx,
                     tests/visibility/.zeolite-module,
                     tests/visibility/*.0rp,
                     tests/visibility/*.0rx,
                     tests/visibility/internal/.zeolite-module,
                     tests/visibility/internal/*.0rp,
                     tests/visibility/internal/*.0rx,
                     tests/visibility2/.zeolite-module,
                     tests/visibility2/*.0rp,
                     tests/visibility2/*.0rx,
                     tests/visibility2/internal/.zeolite-module,
                     tests/visibility2/internal/*.0rp,
                     tests/visibility2/internal/*.0rx,
                     tests/warn-public/.zeolite-module,
                     tests/warn-public/*.0rp,
                     tests/warn-public/README.md,
                     tests/warn-public/internal/.zeolite-module,
                     tests/warn-public/internal/*.0rp,
                     tests/warn-public/internal2/.zeolite-module,
                     tests/warn-public/internal2/*.0rp


common defaults
  default-language:    Haskell2010
  ghc-options:         -Wall
  if impl(ghc >= 8)
    ghc-options: -Wno-orphans -Wno-unused-top-binds


library zeolite-internal
  import:              defaults

  exposed-modules:     Base.CompilerError,
                       Base.CompilerMessage,
                       Base.GeneralType,
                       Base.MergeTree,
                       Base.Mergeable,
                       Base.Positional,
                       Base.TrackedErrors,
                       Cli.CompileOptions,
                       Cli.Compiler,
                       Cli.ParseCompileOptions,
                       Cli.Programs,
                       Cli.RunCompiler,
                       Cli.TestRunner,
                       Compilation.CompilerState,
                       Compilation.ProcedureContext,
                       Compilation.ScopeContext,
                       CompilerCxx.CategoryContext,
                       CompilerCxx.Code,
                       CompilerCxx.CxxFiles,
                       CompilerCxx.LanguageModule,
                       CompilerCxx.Naming,
                       CompilerCxx.Procedure,
                       Config.LoadConfig,
                       Config.LocalConfig,
                       Module.CompileMetadata,
                       Module.ParseMetadata,
                       Module.Paths,
                       Module.ProcessMetadata,
                       Parser.Common,
                       Parser.DefinedCategory,
                       Parser.IntegrationTest,
                       Parser.Pragma,
                       Parser.Procedure,
                       Parser.SourceFile,
                       Parser.TextParser,
                       Parser.TypeCategory,
                       Parser.TypeInstance,
                       Test.Common,
                       Test.DefinedCategory,
                       Test.IntegrationTest,
                       Test.MergeTree,
                       Test.ParseMetadata,
                       Test.Parser,
                       Test.Pragma,
                       Test.Procedure,
                       Test.SourceFile,
                       Test.TrackedErrors,
                       Test.TypeCategory,
                       Test.TypeInstance,
                       Types.Builtin,
                       Types.DefinedCategory,
                       Types.Function,
                       Types.IntegrationTest,
                       Types.Procedure,
                       Types.TypeCategory,
                       Types.TypeInstance,
                       Types.Variance

  other-modules:       Paths_zeolite_lang

  autogen-modules:     Paths_zeolite_lang

  other-extensions:    CPP,
                       ExistentialQuantification,
                       FlexibleContexts,
                       FlexibleInstances,
                       FunctionalDependencies,
                       MultiParamTypeClasses,
                       Safe,
                       ScopedTypeVariables,
                       TypeFamilies,
                       TypeSynonymInstances,
                       Unsafe

  build-depends:       base >= 4.9 && < 4.15,
                       containers >= 0.3 && < 0.7,
                       directory >= 1.2.3 && < 1.4,
                       filepath >= 1.0 && < 1.5,
                       hashable >= 1.0 && < 1.4,
                       megaparsec >= 7.0 && < 9.1,
                       microlens >= 0.4.9 && < 0.5,
                       microlens-th >= 0.1.0.0 && < 0.5,
                       mtl >= 1.0 && < 2.3,
                       parser-combinators >= 0.2 && < 2.0,
                       regex-tdfa >= 1.0 && < 1.4,
                       time >= 1.0 && < 1.11,
                       transformers >= 0.1 && < 0.6,
                       unix >= 2.6 && <= 2.8

  hs-source-dirs:      src


executable zeolite
  import:              defaults

  main-is:             bin/zeolite.hs

  build-depends:       base,
                       containers,
                       directory,
                       filepath,
                       mtl,
                       unix,
                       zeolite-internal


executable zeolite-setup
  import:              defaults

  main-is:             bin/zeolite-setup.hs

  build-depends:       base,
                       directory,
                       filepath,
                       zeolite-internal


test-suite zeolite-test
  import:              defaults

  type:                exitcode-stdio-1.0

  main-is:             bin/unit-tests.hs

  build-depends:       base,
                       directory,
                       filepath,
                       zeolite-internal