mirror of
https://github.com/anoma/juvix.git
synced 2024-12-14 17:32:00 +03:00
60236e7b58
* [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
117 lines
2.5 KiB
YAML
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
|