nova-nix-0.2.0.0: nova-nix.cabal
cabal-version: 3.0
name: nova-nix
version: 0.2.0.0
synopsis: Windows-native Nix implementation in Haskell and C99
description:
A from-scratch implementation of the Nix package manager that runs
natively on Windows, macOS, and Linux — no WSL or Cygwin. A
Haskell evaluator handles parsing and lazy evaluation, backed by a C99
data layer that keeps evaluation data off the GHC heap. It evaluates
Nix expressions (including real nixpkgs @lib@), computes derivations and
content-addressed store paths, and includes a derivation builder and
binary-cache substituter.
Built on @nova-cache@ for NAR serialization, narinfo handling, and
Ed25519-signed 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
-- C data-layer headers. These are #included by the cbits/*.c sources
-- (via include-dirs: cbits) but are not auto-added to the sdist by the
-- c-sources field, so they must be listed here or the Hackage build
-- fails with "nn_*.h: No such file or directory".
extra-source-files:
cbits/*.h
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