packages feed

clash-lib-1.0.0: clash-lib.cabal

Name:                 clash-lib
Version:              1.0.0
Synopsis:             CAES Language for Synchronous Hardware - 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:
  .
  * <http://hackage.haskell.org/package/clash-ghc GHC/Haskell Frontend>
  .
  * <https://github.com/christiaanb/Idris-dev Idris Frontend>
  .
  .
  Prelude library: <http://hackage.haskell.org/package/clash-prelude>
Homepage:             http://www.clash-lang.org/
bug-reports:          http://github.com/clash-lang/clash-compiler/issues
License:              BSD2
License-file:         LICENSE
Author:               The Clash Authors
Maintainer:           QBayLogic B.V. <devops@qbaylogic.com>
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/*.json,
  prims/commonverilog/*.json,
  prims/verilog/*.json,
  prims/systemverilog/*.json,
  prims/vhdl/*.json

Cabal-version:        >=1.10

source-repository head
  type: git
  location: https://github.com/clash-lang/clash-compiler.git

flag debug
   description:
     Build a debug compiler
   default: False
   manual: True

flag history
   description:
     Emit rewrite history to disk
   default: False
   manual: True

Library
  HS-Source-Dirs:     src

  default-language:   Haskell2010
  ghc-options:        -Wall
  CPP-Options:        -DCABAL

  other-extensions:   CPP
                      DeriveAnyClass
                      DeriveGeneric
                      DeriveFoldable
                      DeriveFunctor
                      FlexibleContexts
                      FlexibleInstances
                      GeneralizedNewtypeDeriving
                      LambdaCase
                      MultiParamTypeClasses
                      OverloadedStrings
                      Rank2Types
                      RecordWildCards
                      ScopedTypeVariables
                      TemplateHaskell
                      TupleSections
                      ViewPatterns

  Build-depends:      aeson                   >= 0.6.2.0  && < 1.5,
                      ansi-terminal           >= 0.8.0.0  && < 0.10,
                      ansi-wl-pprint          >= 0.6.8.2  && < 1.0,
                      attoparsec              >= 0.10.4.0 && < 0.14,
                      base                    >= 4.10     && < 5,
                      binary                  >= 0.8.5    && < 0.11,
                      bytestring              >= 0.10.0.2 && < 0.11,
                      clash-prelude           >= 1.0      && < 1.1,
                      concurrent-supply       >= 0.1.7    && < 0.2,
                      containers              >= 0.5.0.0  && < 0.7,
                      data-binary-ieee754     >= 0.4.4    && < 0.6,
                      deepseq                 >= 1.3.0.2  && < 1.5,
                      directory               >= 1.2.0.1  && < 1.4,
                      errors                  >= 1.4.2    && < 2.4,
                      exceptions              >= 0.8.3    && < 0.11.0,
                      filepath                >= 1.3.0.1  && < 1.5,
                      ghc                     >= 8.2.0    && < 8.9,
                      hashable                >= 1.2.1.0  && < 1.4,
                      hint                    >= 0.7      && < 0.10,
                      integer-gmp             >= 1.0      && < 1.1,
                      interpolate             >= 0.2.0    && < 1.0,
                      lens                    >= 3.9.2    && < 4.19,
                      mtl                     >= 2.1.2    && < 2.3,
                      parsers                 >= 0.12.8   && < 1.0,
                      prettyprinter           >= 1.2.0.1  && < 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.16,
                      temporary               >= 1.2.1    && < 1.4,
                      text                    >= 1.2.2    && < 1.3,
                      text-show               >= 3.7      && < 3.9,
                      time                    >= 1.4.0.1  && < 1.10,
                      transformers            >= 0.5.2.0  && < 0.6,
                      trifecta                >= 1.7.1.1  && < 2.1,
                      vector                  >= 0.11     && < 1.0,
                      vector-binary-instances >= 0.2.3.5  && < 0.3,
                      unordered-containers    >= 0.2.3.3  && < 0.3

  Exposed-modules:    Clash.Annotations.BitRepresentation.ClashLib

                      Clash.Backend
                      Clash.Backend.SystemVerilog
                      Clash.Backend.Verilog
                      Clash.Backend.VHDL

                      Clash.Core.DataCon
                      Clash.Core.Evaluator
                      Clash.Core.FreeVars
                      Clash.Core.Literal
                      Clash.Core.Name
                      Clash.Core.Pretty
                      Clash.Core.Subst
                      Clash.Core.Term
                      Clash.Core.TyCon
                      Clash.Core.Type
                      Clash.Core.TysPrim
                      Clash.Core.Util
                      Clash.Core.Var
                      Clash.Core.VarEnv

                      Clash.Driver
                      Clash.Driver.Types

                      Clash.Netlist
                      Clash.Netlist.BlackBox
                      Clash.Netlist.BlackBox.Parser
                      Clash.Netlist.BlackBox.Types
                      Clash.Netlist.BlackBox.Util
                      Clash.Netlist.Id
                      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.Types
                      Clash.Primitives.Util

                      Clash.Primitives.GHC.Int
                      Clash.Primitives.GHC.Literal
                      Clash.Primitives.GHC.Word
                      Clash.Primitives.Intel.ClockGen
                      Clash.Primitives.Sized.Vector

                      Clash.Rewrite.Combinators
                      Clash.Rewrite.Types
                      Clash.Rewrite.Util

                      Clash.Unique
                      Clash.Util
                      Clash.Util.Graph
                      Clash.Pretty

                      Data.Text.Prettyprint.Doc.Extra

  Other-Modules:      Clash.Annotations.TopEntity.Extra
                      Data.Aeson.Extra
                      Data.Semigroup.Monad.Extra
                      Data.Vector.Primitive.Extra
                      GHC.BasicTypes.Extra
                      GHC.SrcLoc.Extra
                      Paths_clash_lib

  if flag(debug)
    cpp-options:      -DDEBUG

  if flag(history)
    cpp-options:      -DHISTORY