packages feed

nova-nix-0.1.9.0: nova-nix.cabal

cabal-version:      3.0
name:               nova-nix
version:            0.1.9.0
synopsis:           Windows-native Nix implementation in Haskell and C99
description:
  A Windows-native implementation of the Nix package manager — Haskell for
  evaluation logic, a C99 data layer for off-heap evaluation data.  Runs
  natively on Windows, macOS, and Linux — no WSL, no MSYS2, no Cygwin
  required.  Evaluates .nix files, builds derivations, manages a
  content-addressed store, and substitutes pre-built binaries from remote
  caches (nova-cache, cache.nixos.org).

  Built on top of @nova-cache@ for NAR serialization, narinfo handling,
  Ed25519 signing, and binary substitution.

license:            BSD-3-Clause
license-file:       LICENSE
author:             Devon Tomlin
maintainer:         devon.tomlin@novavero.ai
homepage:           https://github.com/Novavero-AI/nova-nix
bug-reports:        https://github.com/Novavero-AI/nova-nix/issues
category:           Nix, Distribution, System
stability:          experimental
build-type:         Simple
tested-with:        GHC == 9.8.4
extra-doc-files:
    CHANGELOG.md
    README.md
data-files:
    nix/fetchurl.nix
data-dir: data

-- ---------------------------------------------------------------------------
-- Library: core modules (parser, evaluator, store, builder, substituter)
-- ---------------------------------------------------------------------------
library
  exposed-modules:
    Nix.Expr
    Nix.Expr.ClosureTrim
    Nix.Expr.Resolve
    Nix.Expr.Types
    Nix.Parser
    Nix.Parser.Expr
    Nix.Parser.Internal
    Nix.Parser.Lexer
    Nix.Parser.ParseError
    Nix.Eval
    Nix.Eval.Context
    Nix.Eval.Types
    Nix.Eval.IO
    Nix.Eval.Operator
    Nix.Eval.StringInterp
    Nix.Eval.Symbol
    Nix.Eval.CAttrSet
    Nix.Eval.CThunk
    Nix.Eval.CEnv
    Nix.Eval.CLambda
    Nix.Eval.CList
    Nix.Eval.CCtxStr
    Nix.Eval.CBytecode
    Nix.Eval.Compile
    Nix.Eval.EvalFormals
    Nix.Eval.Arena
    Nix.Store
    Nix.Store.Path
    Nix.Store.DB
    Nix.DependencyGraph
    Nix.Derivation
    Nix.Builder
    Nix.Substituter
    Nix.Builtins
    Nix.Hash

  build-depends:
      base                >= 4.16 && < 5
    , array               >= 0.5 && < 0.6
    , bytestring          >= 0.11 && < 0.13
    , containers          >= 0.6 && < 0.8
    , crypton             >= 1.0 && < 1.1
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , http-client         >= 0.7 && < 0.8
    , http-client-tls     >= 0.3 && < 0.4
    , http-types          >= 0.12 && < 0.13
    , memory              >= 0.18 && < 1
    , mtl                 >= 2.2 && < 2.4
    , nova-cache          >= 0.3.0 && < 0.4
    , process             >= 1.6 && < 1.7
    , regex-tdfa          >= 1.3 && < 1.4
    , sqlite-simple       >= 0.4 && < 0.5
    , text                >= 2.0 && < 2.2
    , time                >= 1.9 && < 1.15

  c-sources:
    cbits/nn_symbol.c
    cbits/nn_attrset.c
    cbits/nn_thunk.c
    cbits/nn_env.c
    cbits/nn_list.c
    cbits/nn_ctxstr.c
    cbits/nn_arena.c
    cbits/nn_bytecode.c
    cbits/nn_lambda.c
  include-dirs:     cbits
  cc-options:       -std=c99 -Wall -Wextra -pedantic -Werror
  hs-source-dirs:   src
  default-language:  Haskell2010
  default-extensions:
    BangPatterns
    OverloadedStrings
  ghc-options:
    -Wall
    -Wcompat
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns

-- ---------------------------------------------------------------------------
-- CLI executable
-- ---------------------------------------------------------------------------
executable nova-nix
  main-is:          Main.hs
  hs-source-dirs:   app
  autogen-modules:  Paths_nova_nix
  other-modules:    Paths_nova_nix
  default-language:  Haskell2010
  default-extensions:
    OverloadedStrings
  ghc-options:      -Wall -Wcompat -threaded -rtsopts

  build-depends:
      base                >= 4.16 && < 5
    , containers          >= 0.6 && < 0.8
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , nova-nix
    , text                >= 2.0 && < 2.2

-- ---------------------------------------------------------------------------
-- Tests
-- ---------------------------------------------------------------------------
test-suite nova-nix-test
  type:             exitcode-stdio-1.0
  main-is:          Main.hs
  hs-source-dirs:   test
  default-language: Haskell2010
  default-extensions:
    OverloadedStrings
  ghc-options:      -Wall -Wcompat

  build-depends:
      base                >= 4.16 && < 5
    , bytestring          >= 0.11 && < 0.13
    , containers          >= 0.6 && < 0.8
    , directory           >= 1.3 && < 1.4
    , filepath            >= 1.4 && < 1.6
    , nova-nix
    , process             >= 1.6 && < 1.7
    , text                >= 2.0 && < 2.2

source-repository head
  type:     git
  location: https://github.com/Novavero-AI/nova-nix
  branch:   main