1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-14 17:32:00 +03:00
juvix/tests/positive
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
..
Imports [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
MicroJuvix Restore correct handling of TypeAny and add positive typecheck tests (#34) 2022-04-05 22:02:03 +02:00
MiniC Add C code generation backend (#68) 2022-05-05 14:12:17 +01:00
MiniHaskell Add support for compile (by Jonathan) (#66) 2022-04-28 17:42:15 +02:00
QualifiedConstructor v0.1.1 (#15) 2022-03-25 18:16:34 +01:00
QualifiedSymbol v0.1.1 (#15) 2022-03-25 18:16:34 +01:00
QualifiedSymbol2 v0.1.1 (#15) 2022-03-25 18:16:34 +01:00
StdlibList/Data [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
Termination Change terminating keyword behavior (#82) 2022-05-04 18:17:16 +02:00
VP Monomorphization (#70) 2022-05-04 10:50:03 +02:00
Axiom.mjuvix Add support for compile (by Jonathan) (#66) 2022-04-28 17:42:15 +02:00
Foreign.mjuvix Add C code generation backend (#68) 2022-05-05 14:12:17 +01:00
HelloWorld.mjuvix Add C code generation backend (#68) 2022-05-05 14:12:17 +01:00
Inductive.mjuvix [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
Literals.mjuvix [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
Operators.mjuvix [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
Polymorphism.mjuvix Monomorphization (#70) 2022-05-04 10:50:03 +02:00
ShadowPublicOpen.mjuvix v0.1.1 (#15) 2022-03-25 18:16:34 +01:00