Cabal-version: 2.2 Name: clash-lib Version: 1.4.6 Synopsis: Clash: a functional hardware description language - As a library Description: Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog. . Features of Clash: . * Strongly typed, but with a very high degree of type inference, enabling both safe and fast prototyping using concise descriptions. . * Interactive REPL: load your designs in an interpreter and easily test all your component without needing to setup a test bench. . * Higher-order functions, with type inference, result in designs that are fully parametric by default. . * Synchronous sequential circuit design based on streams of values, called @Signal@s, lead to natural descriptions of feedback loops. . * Support for multiple clock domains, with type safe clock domain crossing. . . This package provides: . * The CoreHW internal language: SystemF + Letrec + Case-decomposition . * The normalisation process that brings CoreHW in a normal form that can be converted to a netlist . * Blackbox/Primitive Handling . . Front-ends (for: parsing, typecheck, etc.) are provided by separate packages: . * . * . . Prelude library: Homepage: https://clash-lang.org/ bug-reports: https://github.com/clash-lang/clash-compiler/issues License: BSD-2-Clause License-file: LICENSE Author: The Clash Authors Maintainer: QBayLogic B.V. Copyright: Copyright © 2012-2016, University of Twente, 2016-2019, Myrtle Software Ltd, 2017-2019, QBayLogic B.V., Google Inc. Category: Hardware Build-type: Simple Extra-source-files: README.md, CHANGELOG.md, src/ClashDebug.h Data-files: prims/common/*.primitives, prims/commonverilog/*.primitives, prims/verilog/*.primitives, prims/systemverilog/*.primitives, prims/vhdl/*.primitives source-repository head type: git location: https://github.com/clash-lang/clash-compiler.git subdir: clash-lib flag debug description: Build a debug compiler default: False manual: True flag unittests description: You can disable testing with unittests using `-f-unittests`. default: True manual: True flag experimental-evaluator description: Use the new partial evaluator (experimental; may break) default: False manual: True common common-options default-language: Haskell2010 default-extensions: BangPatterns BinaryLiterals DataKinds DefaultSignatures DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies InstanceSigs KindSignatures ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeOperators ViewPatterns if impl(ghc >= 8.6) default-extensions: NoStarIsType Library import: common-options HS-Source-Dirs: src ghc-options: -Wall -Wcompat CPP-Options: -DCABAL other-extensions: CPP DeriveAnyClass FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving LambdaCase MultiParamTypeClasses OverloadedStrings RankNTypes RecordWildCards TemplateHaskell Build-depends: aeson >= 0.6.2.0 && < 2.1, aeson-pretty >= 0.8 && < 0.9, ansi-terminal >= 0.8.0.0 && < 0.12, array, attoparsec >= 0.10.4.0 && < 0.15, base >= 4.11 && < 5, base16-bytestring >= 0.1.1 && < 1.1, binary >= 0.8.5 && < 0.11, bytestring >= 0.10.0.2 && < 0.12, clash-prelude == 1.4.6, concurrent-supply >= 0.1.7 && < 0.2, containers >= 0.5.0.0 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, data-binary-ieee754 >= 0.4.4 && < 0.6, data-default >= 0.7 && < 0.8, deepseq >= 1.3.0.2 && < 1.5, dlist >= 0.8 && < 1.1, directory >= 1.2.0.1 && < 1.4, errors >= 1.4.2 && < 2.4, exceptions >= 0.8.3 && < 0.11.0, extra >= 1.6.17 && < 1.8, filepath >= 1.3.0.1 && < 1.5, ghc >= 8.4.0 && < 9.1, ghc-boot-th, hashable >= 1.2.1.0 && < 1.5, haskell-src-meta >= 0.8 && < 0.9, hint >= 0.7 && < 0.10, interpolate >= 0.2.0 && < 1.0, lens >= 4.10 && < 5.1.0, mtl >= 2.1.2 && < 2.3, ordered-containers >= 0.2 && < 0.3, parsers >= 0.12.8 && < 1.0, prettyprinter >= 1.2.0.1 && < 1.8, pretty-show >= 1.9 && < 2.0, primitive >= 0.5.0.1 && < 1.0, process >= 1.1.0.2 && < 1.7, reducers >= 3.12.2 && < 4.0, template-haskell >= 2.8.0.0 && < 2.18, temporary >= 1.2.1 && < 1.4, terminal-size >= 0.3 && < 0.4, text >= 1.2.2 && < 2.1, text-show >= 3.7 && < 3.10, time >= 1.4.0.1 && < 1.14, transformers >= 0.5.2.0 && < 0.7, trifecta >= 1.7.1.1 && < 2.2, utf8-string >= 1.0.1 && < 1.1, vector >= 0.11 && < 1.0, vector-binary-instances >= 0.2.3.5 && < 0.3, unordered-containers >= 0.2.3.3 && < 0.3 if impl(ghc >= 9.0.0) build-depends: ghc-bignum >=1.0 && <1.3 else build-depends: integer-gmp >=1.0 && <1.1 Autogen-Modules: Paths_clash_lib Exposed-modules: Clash.Annotations.BitRepresentation.ClashLib Clash.Backend Clash.Backend.SystemVerilog Clash.Backend.Verilog Clash.Backend.VHDL Clash.Core.DataCon Clash.Core.EqSolver Clash.Core.Evaluator.Types Clash.Core.FreeVars Clash.Core.Literal Clash.Core.Name Clash.Core.PartialEval Clash.Core.PartialEval.AsTerm Clash.Core.PartialEval.Monad Clash.Core.PartialEval.NormalForm Clash.Core.Pretty Clash.Core.Subst Clash.Core.Term Clash.Core.TermInfo Clash.Core.TermLiteral Clash.Core.TermLiteral.TH Clash.Core.Termination Clash.Core.TyCon Clash.Core.Type Clash.Core.TysPrim Clash.Core.Util Clash.Core.Var Clash.Core.VarEnv Clash.Debug Clash.Driver Clash.Driver.Manifest Clash.Driver.Types Clash.Edalize.Edam Clash.Netlist Clash.Netlist.BlackBox Clash.Netlist.BlackBox.Parser Clash.Netlist.BlackBox.Types Clash.Netlist.BlackBox.Util Clash.Netlist.Id Clash.Netlist.Id.Common Clash.Netlist.Id.Internal Clash.Netlist.Id.SystemVerilog Clash.Netlist.Id.Verilog Clash.Netlist.Id.VHDL Clash.Netlist.Types Clash.Netlist.Util Clash.Normalize Clash.Normalize.DEC Clash.Normalize.PrimitiveReductions Clash.Normalize.Strategy Clash.Normalize.Transformations Clash.Normalize.Types Clash.Normalize.Util Clash.Primitives.DSL Clash.Primitives.Types Clash.Primitives.Util Clash.Primitives.GHC.Int Clash.Primitives.GHC.Literal Clash.Primitives.GHC.Word Clash.Primitives.Intel.ClockGen Clash.Primitives.Sized.ToInteger Clash.Primitives.Sized.Vector Clash.Primitives.Verification Clash.Rewrite.Combinators Clash.Rewrite.Types Clash.Rewrite.Util Clash.Rewrite.WorkFree Clash.Unique Clash.Util Clash.Util.Graph Clash.Util.Interpolate Clash.Pretty Data.Text.Prettyprint.Doc.Extra Other-Modules: Clash.Annotations.TopEntity.Extra Control.Applicative.Extra Data.Aeson.Extra Data.List.Extra Data.Map.Ordered.Extra Data.Primitive.ByteArray.Extra Data.Semigroup.Monad.Extra Data.Set.Ordered.Extra GHC.BasicTypes.Extra GHC.SrcLoc.Extra Paths_clash_lib if flag(debug) cpp-options: -DDEBUG if flag(experimental-evaluator) cpp-options: -DEXPERIMENTAL_EVALUATOR test-suite unittests import: common-options type: exitcode-stdio-1.0 default-language: Haskell2010 main-is: unittests.hs ghc-options: -Wall -Wcompat -threaded -with-rtsopts=-N hs-source-dirs: tests if !flag(unittests) buildable: False else build-depends: clash-prelude, clash-lib, ghc-typelits-knownnat, aeson, aeson-pretty, base, base16-bytestring, bytestring, containers, concurrent-supply, data-default, deepseq, haskell-src-exts, ghc, lens, pretty-show, quickcheck-text, tasty >= 1.2 && < 1.5, tasty-hunit, tasty-quickcheck, template-haskell, text, transformers, unordered-containers Other-Modules: Clash.Tests.Core.FreeVars Clash.Tests.Core.Subst Clash.Tests.Driver.Manifest Clash.Tests.Netlist.Id Clash.Tests.Util.Interpolate Clash.Tests.Normalize.Transformations Test.Clash.Rewrite if flag(experimental-evaluator) cpp-options: -DEXPERIMENTAL_EVALUATOR