/clay-dhall

C Layer for Dhall Language

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

clay-dhall

C layer for Dhall language

Description

Dhall(https://github.com/dhall-lang/dhall-lang), developed by Gabriel Gonzalez, is strictly typed, total (guaranteed to terminate, not turing complete) computer language. Dhall is a good language to describe data, configuration, and so on. . This library is a C binding of Dhall, which calls the Haskell implementation of Dhall via FFI. Dhall values are mapped directly into C memory representation described by the spec structure.

Documentation

The documentation is available at the URL below.

https://as-capabl.github.io/clay-dhall/html/clay-dhall/index.html

Current Status

Working toward the 1st release.

  • APIs to get error messages
  • PerformGC API
  • Full documentation
  • Installation

  • data EvaluateSettings
  • data InputSettings
  • data InputType a
    • embed
    • declared
  • data InterpretOptions
  • data InvalidType
  • newtype RecordInputType a
  • newtype RecordType a
  • data Type a
    • extract
    • expected
  • auto :: Interpret a => Type a
  • bool :: Type Bool
  • defaultEvaluateSettings :: EvaluateSettings
  • defaultInputSettings :: InputSettings
  • defaultInterpretOptions :: InterpretOptions
  • ns detailed :: IO a -> IO a
  • double :: Type Double
  • field :: Text -> Type a -> RecordType a
  • genericAuto ::
  • inject :: Inject a => InputType a
    • Contains undefineds
  • input :: Type a -> Text -> IO a
  • inputExpr ::
  • inputExprWithSettings ::
  • inputField :: Inject a => Text -> RecordInputType a
  • inputFieldWith :: Text -> InputType a -> RecordInputType a
  • inputFile :: Type a -> FilePath -> IO a
  • inputFileWithSettings ::
  • inputRecord :: RecordInputType a -> InputType a
  • inputWithSettings :: InputSettings -> Type a -> Text -> IO a
  • integer :: Type Integer
  • ns lazyText :: Type Data.Text.Internal.Lazy.Text
  • ns list :: Type a -> Type [a]
  • Dhall.maybe :: Type a -> Type (Maybe a)
  • natural :: Type Natural
  • normalizer ::
    • (Only through dhall_add_builtin)
  • ns pair :: Type a -> Type b -> Type (a, b)
  • ns rawInput ::
  • record :: RecordType a -> Type a
  • rootDirectory ::
  • scientific :: Type scientific-0.3.6.2:Data.Scientific.Scientific
  • ns Dhall.sequence :: Type a -> Type (Seq a)
  • sourceName ::
  • startingContext ::
    • (Only through dhall_add_builtin)
  • strictText :: Type Text
  • ns string :: Type String
  • unit :: Type ()
  • vector :: Type a -> Type (Vector a)
  • Expr
    • Comparison (==)

ns = not supported

How to build

Requirements:

Execute Tests

The following executes the test suite.

$ cabal new-build
$ cd ctest
$ bjam

Installation for *nix

Installation for production is not yet implemented.

Blocked by cabal issues;