mirror of
https://github.com/anoma/juvix.git
synced 2025-01-05 22:46:08 +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
112 lines
2.5 KiB
Makefile
112 lines
2.5 KiB
Makefile
PWD=$(CURDIR)
|
|
PREFIX="$(PWD)/.stack-work/prefix"
|
|
UNAME := $(shell uname)
|
|
HLINTQUIET :=
|
|
|
|
|
|
ifeq ($(UNAME), Darwin)
|
|
THREADS := $(shell sysctl -n hw.logicalcpu)
|
|
else ifeq ($(UNAME), Linux)
|
|
THREADS := $(shell nproc)
|
|
else
|
|
THREADS := $(shell echo %NUMBER_OF_PROCESSORS%)
|
|
endif
|
|
|
|
all:
|
|
make pre-commit
|
|
|
|
.PHONY : checklines
|
|
checklines :
|
|
@grep '.\{81,\}' \
|
|
--exclude=*.agda \
|
|
-l --recursive src; \
|
|
status=$$?; \
|
|
if [ $$status = 0 ] ; \
|
|
then echo "Lines were found with more than 80 characters!" >&2 ; \
|
|
else echo "Succeed!"; \
|
|
fi
|
|
|
|
.PHONY : hlint
|
|
hlint :
|
|
@hlint src app test ${HLINTQUIET}
|
|
|
|
.PHONY : haddock
|
|
haddock :
|
|
cabal --docdir=docs/ --htmldir=docs/ haddock --enable-documentation
|
|
|
|
.PHONY : docs
|
|
docs :
|
|
cd docs ; \
|
|
sh conv.sh
|
|
|
|
.PHONY : build
|
|
build:
|
|
stack build --fast --jobs $(THREADS)
|
|
|
|
build-watch:
|
|
stack build --fast --file-watch
|
|
|
|
|
|
.PHONY : cabal
|
|
cabal :
|
|
cabal build all
|
|
|
|
clean:
|
|
cabal clean
|
|
stack clean
|
|
|
|
clean-full:
|
|
stack clean --full
|
|
|
|
.PHONY : test
|
|
test:
|
|
stack test --fast --jobs $(THREADS)
|
|
|
|
.PHONY : test-skip-slow
|
|
test-skip-slow:
|
|
stack test --fast --jobs $(THREADS) --ta '-p "! /slow tests/"'
|
|
|
|
.PHONY : test-watch
|
|
test-watch:
|
|
stack test --fast --jobs $(THREADS) --file-watch
|
|
|
|
format:
|
|
@find . -name "*.hs" -exec ormolu --mode inplace {} --ghc-opt -XStandaloneDeriving --ghc-opt -XUnicodeSyntax --ghc-opt -XDerivingStrategies --ghc-opt -XMultiParamTypeClasses --ghc-opt -XTemplateHaskell --ghc-opt -XImportQualifiedPost \;
|
|
|
|
.PHONY: check-ormolu
|
|
check-ormolu:
|
|
@find . -name "*.hs" -exec ormolu --mode check {} --ghc-opt -XStandaloneDeriving --ghc-opt -XUnicodeSyntax --ghc-opt -XDerivingStrategies --ghc-opt -XMultiParamTypeClasses --ghc-opt -XTemplateHaskell --ghc-opt -XImportQualifiedPost \;
|
|
|
|
.PHONY : install
|
|
install:
|
|
stack install --fast --jobs $(THREADS)
|
|
|
|
.PHONY : install-watch
|
|
install-watch:
|
|
stack install --fast --jobs $(THREADS) --file-watch
|
|
|
|
repl:
|
|
stack ghci MiniJuvix:lib
|
|
|
|
.PHONY : install-pre-commit
|
|
install-pre-commit:
|
|
pip install pre-commit
|
|
pre-commit install
|
|
|
|
.PHONY : pre-commit
|
|
pre-commit :
|
|
pre-commit run --all-files
|
|
|
|
.PHONY : update-submodules
|
|
update-submodules :
|
|
git submodule foreach git pull origin main
|
|
|
|
.PHONY : minijuvix-stdlib
|
|
minijuvix-stdlib:
|
|
git submodule update --init minijuvix-stdlib
|
|
|
|
.PHONY : get-changelog-updates
|
|
get-changelog-updates :
|
|
@github_changelog_generator --since-tag $(shell git describe --tags $(shell git rev-list --tags --max-count=1)) 1> /dev/null
|
|
pandoc CHANGELOG.md --from markdown --to org -o UPDATES-FOR-CHANGELOG.org
|