mirror of
https://github.com/anoma/juvix.git
synced 2024-12-14 08:27:03 +03:00
22027f137c
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.
156 lines
3.3 KiB
YAML
156 lines
3.3 KiB
YAML
name: juvix
|
|
version: 0.2.8
|
|
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 , 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
|
|
category: Compilers/Interpreters
|
|
github: anoma/juvix
|
|
|
|
extra-source-files:
|
|
- README.org
|
|
- assets/css/*.css
|
|
- assets/js/*.js
|
|
- assets/images/*.svg
|
|
- assets/images/*.png
|
|
- juvix-stdlib/juvix.yaml
|
|
- juvix-stdlib/**/*.juvix
|
|
- runtime/include/**/*.h
|
|
- runtime/**/*.a
|
|
- c-runtime/**/*.h
|
|
- c-runtime/walloc/walloc.c
|
|
|
|
dependencies:
|
|
- aeson == 2.0.*
|
|
- aeson-better-errors == 0.9.*
|
|
- ansi-terminal == 0.11.*
|
|
- base == 4.16.*
|
|
- blaze-html == 0.9.*
|
|
- bytestring == 0.11.*
|
|
- containers == 0.6.*
|
|
- directory == 1.3.*
|
|
- dlist == 1.0.*
|
|
- edit-distance == 0.2.*
|
|
- exceptions == 0.10.*
|
|
- extra == 1.7.*
|
|
- file-embed == 0.0.*
|
|
- filepath == 1.4.*
|
|
- gitrev == 1.3.*
|
|
- hashable == 1.4.*
|
|
- 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.*
|
|
- pretty == 1.1.*
|
|
- prettyprinter == 1.7.*
|
|
- prettyprinter-ansi-terminal == 1.1.*
|
|
- process == 1.6.*
|
|
- safe == 0.3.*
|
|
- singletons == 3.0.*
|
|
- singletons-th == 3.1.*
|
|
- Stream == 0.4.*
|
|
- template-haskell == 2.18.*
|
|
- text == 1.2.*
|
|
- th-utilities == 0.2.*
|
|
- time == 1.11.*
|
|
- transformers == 0.5.*
|
|
- uniplate == 1.6.*
|
|
- unix-compat == 0.5.*
|
|
- unordered-containers == 0.2.*
|
|
- versions == 5.0.*
|
|
- yaml == 0.11.*
|
|
|
|
# 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.*
|
|
|
|
# benchmarks
|
|
- criterion == 1.5.*
|
|
- statistics == 0.16.*
|
|
- shake == 0.19.*
|
|
- colour == 2.3.*
|
|
- palette == 0.3.*
|
|
|
|
ghc-options:
|
|
# 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
|
|
# HIE Support
|
|
- -fhide-source-paths
|
|
- -fwrite-ide-info -hiedir=.hie
|
|
# Polysemy Support
|
|
- -O2 -flate-specialise -fspecialise-aggressively
|
|
|
|
default-extensions:
|
|
- ApplicativeDo
|
|
- DataKinds
|
|
- DerivingStrategies
|
|
- GADTs
|
|
- GeneralizedNewtypeDeriving
|
|
- ImportQualifiedPost
|
|
- LambdaCase
|
|
- MultiWayIf
|
|
- NoFieldSelectors
|
|
- NoImplicitPrelude
|
|
- OverloadedStrings
|
|
- RecordWildCards
|
|
- TemplateHaskell
|
|
- TypeFamilyDependencies
|
|
|
|
library:
|
|
source-dirs: src
|
|
verbatim:
|
|
default-language: GHC2021
|
|
|
|
executables:
|
|
juvix:
|
|
main: Main.hs
|
|
source-dirs: app
|
|
dependencies:
|
|
- juvix
|
|
- haskeline == 0.8.*
|
|
- http-conduit == 2.3.*
|
|
- mtl == 2.2.*
|
|
- optparse-applicative == 0.17.*
|
|
- repline == 0.4.*
|
|
- string-interpolate == 0.3.*
|
|
verbatim:
|
|
default-language: GHC2021
|
|
|
|
tests:
|
|
juvix-test:
|
|
main: Main.hs
|
|
source-dirs: test
|
|
dependencies:
|
|
- juvix
|
|
verbatim:
|
|
default-language: GHC2021
|
|
|
|
benchmarks:
|
|
juvix-bench:
|
|
main: Main.hs
|
|
source-dirs: bench
|
|
dependencies:
|
|
- juvix
|
|
verbatim:
|
|
default-language: GHC2021
|