1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-14 08:27:03 +03:00
juvix/package.yaml

156 lines
3.3 KiB
YAML
Raw Normal View History

name: juvix
2022-12-20 21:24:24 +03:00
version: 0.2.8
2021-12-23 12:57:55 +03:00
license: GPL-3.0-only
license-file: LICENSE
copyright: (c) 2022- Heliax AG.
2022-01-10 19:02:20 +03:00
maintainer: The PLT Team at Heliax AG <hello@heliax.dev>
2022-09-06 13:28:09 +03:00
author: [ Jonathan Prieto-Cubides , Jan Mas Rovira , Paul Cadman , Lukasz Czajka , Github's contributors ]
tested-with: ghc == 9.2.5
homepage: https://juvix.org
bug-reports: https://github.com/anoma/juvix/issues
description: The Juvix compiler
2021-12-23 12:57:55 +03:00
category: Compilers/Interpreters
github: anoma/juvix
2021-12-23 12:57:55 +03:00
extra-source-files:
2022-03-25 20:26:22 +03:00
- README.org
Refactor `html` command with extra options (#1725) This PR redefines the `html` command unifying our previous subcommands for the HTML backend. You should use the command in the following way to obtain the same results as before: - `juvix html src.juvix` -> `juvix html src.juvix --only-source` - `juvix dev doc src.juvix` -> `juvix html src.juvix` - Other fixes here include the flag `--non-recursive`, which replaces the previous behavior in that we now generate all the HTML recursively by default. - The flag `--no-print-metadata` is now called `--no-footer` - Also, another change introduced by this PR is asset handling; for example, with our canonical Juvix program, the new output is organized as follows. ``` juvix html HelloWorld.juvix --only-source && tree html/ Copying assets files to test/html/assets Writing HelloWorld.html html/ ├── assets │ ├── css │ │ ├── linuwial.css │ │ ├── source-ayu-light.css │ │ └── source-nord.css │ ├── images │ │ ├── tara-magicien.png │ │ ├── tara-seating.svg │ │ ├── tara-smiling.png │ │ ├── tara-smiling.svg │ │ ├── tara-teaching.png │ │ └── tara-teaching.svg │ └── js │ ├── highlight.js │ └── tex-chtml.js └── HelloWorld.html ├── Stdlib.Data.Bool.html ├── Stdlib.Data.List.html ├── Stdlib.Data.Maybe.html ├── Stdlib.Data.Nat.html ├── Stdlib.Data.Ord.html ├── Stdlib.Data.Product.html ├── Stdlib.Data.String.html ├── Stdlib.Function.html ├── Stdlib.Prelude.html └── Stdlib.System.IO.html ``` In addition, for the vscode-plugin, this PR adds two flags, `--prefix-assets` and `--prefix-url`, for which one provides input to help vscode find resource locations and Juvix files. PS. Make sure to run `make clean` the first time you run `make install` for the first time.
2023-01-17 20:11:59 +03:00
- assets/css/*.css
- assets/js/*.js
- assets/images/*.svg
- assets/images/*.png
2022-12-20 15:05:40 +03:00
- juvix-stdlib/juvix.yaml
- juvix-stdlib/**/*.juvix
- runtime/include/**/*.h
- runtime/**/*.a
- c-runtime/**/*.h
- c-runtime/walloc/walloc.c
2021-12-23 12:57:55 +03:00
dependencies:
- aeson == 2.0.*
2022-12-20 15:05:40 +03:00
- aeson-better-errors == 0.9.*
- ansi-terminal == 0.11.*
2022-03-24 01:25:55 +03:00
- base == 4.16.*
- blaze-html == 0.9.*
2022-03-24 01:25:55 +03:00
- bytestring == 0.11.*
- containers == 0.6.*
2022-01-21 11:50:37 +03:00
- directory == 1.3.*
2022-09-29 18:44:55 +03:00
- dlist == 1.0.*
2022-02-14 15:39:54 +03:00
- edit-distance == 0.2.*
2022-12-20 15:05:40 +03:00
- exceptions == 0.10.*
2022-01-17 22:12:31 +03:00
- extra == 1.7.*
- file-embed == 0.0.*
- filepath == 1.4.*
- gitrev == 1.3.*
2022-03-24 01:25:55 +03:00
- hashable == 1.4.*
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 16:12:17 +03:00
- language-c == 0.9.*
- megaparsec == 9.2.*
- microlens-platform == 0.4.*
- parser-combinators == 1.3.*
- path == 0.9.*
- path-io == 1.7.*
- polysemy == 1.7.*
- polysemy-plugin == 0.4.*
2022-12-20 15:05:40 +03:00
- pretty == 1.1.*
- prettyprinter == 1.7.*
- prettyprinter-ansi-terminal == 1.1.*
- process == 1.6.*
- safe == 0.3.*
- singletons == 3.0.*
2022-03-24 01:25:55 +03:00
- singletons-th == 3.1.*
- Stream == 0.4.*
2022-03-24 01:25:55 +03:00
- template-haskell == 2.18.*
- text == 1.2.*
2022-02-05 15:27:33 +03:00
- th-utilities == 0.2.*
2022-12-20 15:05:40 +03:00
- time == 1.11.*
- transformers == 0.5.*
2023-01-17 11:41:07 +03:00
- uniplate == 1.6.*
2022-12-20 15:05:40 +03:00
- unix-compat == 0.5.*
- unordered-containers == 0.2.*
2022-08-12 00:05:38 +03:00
- versions == 5.0.*
- yaml == 0.11.*
2021-12-23 12:57:55 +03:00
2022-04-05 20:57:21 +03:00
# the tasty dependencies are here to avoid having to recompile
# juvix when running the tests.
- tasty
- tasty-hunit
- Diff == 0.4.*
- pretty-show == 1.10.*
2023-01-05 19:48:26 +03:00
# benchmarks
- criterion == 1.5.*
- statistics == 0.16.*
- shake == 0.19.*
- colour == 2.3.*
- palette == 0.3.*
2021-12-23 12:57:55 +03:00
ghc-options:
2022-04-05 20:57:21 +03:00
# Warnings
- -Weverything
- -Wno-all-missed-specialisations
- -Wno-missing-export-lists
- -Wno-missing-import-lists
- -Wno-missing-kind-signatures
- -Wno-missing-safe-haskell-mode
- -Wno-safe
- -Wno-unsafe
- -Wno-unused-packages
2022-04-05 20:57:21 +03:00
# HIE Support
- -fhide-source-paths
- -fwrite-ide-info -hiedir=.hie
# Polysemy Support
- -O2 -flate-specialise -fspecialise-aggressively
2021-12-23 12:57:55 +03:00
default-extensions:
- ApplicativeDo
- DataKinds
2021-12-23 12:57:55 +03:00
- DerivingStrategies
- GADTs
2022-04-05 20:57:21 +03:00
- GeneralizedNewtypeDeriving
- ImportQualifiedPost
- LambdaCase
- MultiWayIf
- NoFieldSelectors
2021-12-23 13:19:46 +03:00
- NoImplicitPrelude
2021-12-23 12:57:55 +03:00
- OverloadedStrings
2021-12-29 15:17:14 +03:00
- RecordWildCards
- TemplateHaskell
- TypeFamilyDependencies
2021-12-23 12:57:55 +03:00
library:
source-dirs: src
2022-03-24 12:14:29 +03:00
verbatim:
default-language: GHC2021
2021-12-23 12:57:55 +03:00
executables:
juvix:
2021-12-23 12:57:55 +03:00
main: Main.hs
2022-01-18 14:25:42 +03:00
source-dirs: app
2021-12-23 12:57:55 +03:00
dependencies:
- juvix
- haskeline == 0.8.*
2022-08-06 21:13:06 +03:00
- http-conduit == 2.3.*
- mtl == 2.2.*
2022-09-14 17:16:15 +03:00
- optparse-applicative == 0.17.*
- repline == 0.4.*
- string-interpolate == 0.3.*
2022-03-24 12:14:29 +03:00
verbatim:
default-language: GHC2021
tests:
juvix-test:
2022-02-15 16:12:53 +03:00
main: Main.hs
source-dirs: test
dependencies:
- juvix
2022-03-24 12:14:29 +03:00
verbatim:
default-language: GHC2021
2023-01-05 19:48:26 +03:00
benchmarks:
juvix-bench:
main: Main.hs
source-dirs: bench
dependencies:
- juvix
verbatim:
default-language: GHC2021