1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-14 17:32:00 +03:00
juvix/package.yaml
Paul Cadman 60236e7b58
Add C code generation backend (#68)
* [cbackend] Adds an AST for C

This should cover enough C to implement the microjuvix backend.

* [cbackend] Add C serializer using language-c library

We may decide to write our own serializer for the C AST but this
demonstrates that the C AST is sufficient at least.

* [cbackend] Declarations will always be typed

* [cbackend] Add CPP support to AST

* [cbackend] Rename some names for clarity

* [cbackend] Add translation of InductiveDef to C

* [cbackend] Add CLI for C backend

* [cbackend] Add stdbool.h to file header

* [cbackend] Allow Cpp and Verbatim code inline

* [cbackend] Add a newline after printing C

* [cbackend] Support foreign blocks

* [cbackend] Add support for axioms

* [cbackend] Remove code examples

* [cbackend] wip FunctionDef including Expressions

* [parser] Support esacping '}' inside a foreign block

* [cbackend] Add support for patterns in functions

* [cbackend] Add foreign C support to HelloWorld.mjuvix

* hlint fixes

* More hlint fixes not picked up by pre-commit

* [cbackend] Remove CompileStatement from MonoJuvix

* [cbackend] Add support for compile blocks

* [cbackend] Move compileInfo extraction to MonoJuvixResult

* [minihaskell] Fix compile block support

* [chore] Remove ununsed isBackendSupported function

* [chore] Remove unused imports

* [cbackend] Use a Reader for pattern bindings

* [cbackend] Fix compiler warnings

* [cbackend] Add support for nested patterns

* [cbackend] Use functions to instantiate argument names

* [cbackend] Add non-exhaustive pattern error message

* [cbackend] Adds test for c to WASM compile and execution

* [cbackend] Add links to test dependencies in quickstart

* [cbackend] Add test with inductive types and patterns

* [cbackend] Fix indentation

* [cbackend] Remove ExpressionTyped case

https://github.com/heliaxdev/minijuvix/issues/79

* [lexer] Fix lexing of \ inside a foreign block

* [cbackend] PR review fixes

* [chore] Remove unused import

* [cbackend] Rename CJuvix to MiniC

* [cbackend] Rename MonoJuvixToC to MonoJuvixToMiniC

* [cbackend] Add test for polymorphic function

* [cbackend] Add module for string literals
2022-05-05 14:12:17 +01:00

117 lines
2.5 KiB
YAML

name: minijuvix
version: 0.1.2
license: GPL-3.0-only
license-file: LICENSE
copyright: (c) 2022- Heliax AG.
maintainer: The PLT Team at Heliax AG <hello@heliax.dev>
author: [ Jonathan Prieto-Cubides , Jan Mas Rovira , Paul Cadman ]
tested-with: ghc == 9.2.2
homepage: https://github.com/heliaxdev/minijuvix
bug-reports: https://github.com/heliaxdev/minijuvix/issues
description: The MiniJuvix compiler
category: Compilers/Interpreters
github: heliaxdev/minijuvix
extra-source-files:
- README.org
- CHANGELOG.org
dependencies:
- aeson == 2.0.*
- ansi-terminal == 0.11.*
- base == 4.16.*
- blaze-html == 0.9.*
- blaze-markup == 0.8.*
- bytestring == 0.11.*
- containers == 0.6.*
- directory == 1.3.*
- edit-distance == 0.2.*
- extra == 1.7.*
- transformers == 0.5.*
- filepath == 1.4.*
- gitrev == 1.3.*
- hashable == 1.4.*
- language-c == 0.9.*
- megaparsec == 9.2.*
- microlens-platform == 0.4.*
- parser-combinators == 1.3.*
- polysemy == 1.7.*
- polysemy-plugin == 0.4.*
- prettyprinter == 1.7.*
- prettyprinter-ansi-terminal == 1.1.*
- pretty == 1.1.*
- process == 1.6.*
- safe == 0.3.*
- semirings == 0.6.*
- singletons == 3.0.*
- singletons-th == 3.1.*
- Stream == 0.4.*
- template-haskell == 2.18.*
- text == 1.2.*
- th-utilities == 0.2.*
- unordered-containers == 0.2.*
# the tasty dependencies are here to avoid having to recompile
# minijuvix when running the tests.
- tasty
- tasty-hunit
- Diff == 0.4.*
- pretty-show == 1.10.*
ghc-options:
# Warnings
- -Wall
- -Wcompat
- -Wderiving-defaults
- -Widentities
- -Wincomplete-patterns
- -Wincomplete-record-updates
- -Wincomplete-uni-patterns
- -Wmissing-deriving-strategies
- -Wredundant-constraints
# HIE Support
- -fhide-source-paths
- -fwrite-ide-info -hiedir=.hie
# Polysemy Support
- -O2 -flate-specialise -fspecialise-aggressively
default-extensions:
- DataKinds
- DerivingStrategies
- GADTs
- GeneralizedNewtypeDeriving
- ImportQualifiedPost
- LambdaCase
- MultiWayIf
- NoImplicitPrelude
- OverloadedStrings
- QuasiQuotes
- RecordWildCards
- TemplateHaskell
- TypeFamilyDependencies
- UnicodeSyntax
library:
source-dirs: src
verbatim:
default-language: GHC2021
executables:
minijuvix:
main: Main.hs
source-dirs: app
dependencies:
- minijuvix
- optparse-applicative == 0.17.*
verbatim:
default-language: GHC2021
tests:
minijuvix-test:
main: Main.hs
source-dirs: test
dependencies:
- minijuvix
verbatim:
default-language: GHC2021