-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expérimentation M++ #227
Merged
Merged
Expérimentation M++ #227
Changes from 73 commits
Commits
Show all changes
80 commits
Select commit
Hold shift + click to select a range
b846cfe
Ajout des cibles (assignations et si/sinon/alors).
david-michel1 6447820
Cibles: ajout du calcul des domaines.
c8f9645
Enrichissement des filtres de vérifs.
david-michel1 1d44023
Remplacement de dgfip_base.mpp par des cibles.
bdb5fba
Ajout des instructions "afficher" et "afficher_erreur".
david-michel1 6f05635
Préparation des itérateurs dans le backend C.
david-michel1 a33d437
Introduction des itérateurs dans l'interpréteur.
david-michel1 0f83ad1
Itérateurs pour le backend C.
4317fc2
Environnements de restauration.
david-michel1 3cc7fe1
Traduction du primitif ml vers M en cours.
david-michel1 898a326
Primitif unifié
ad6dd65
Séparation de la logique d'expansion des macros/constantes.
33d5f85
Découplage de la gestion des macros (boucles et constantes).
david-michel1 4a66970
Généralisation des accès aux tableaux.
david-michel1 af31e40
Généralisation des tableaux dasn les itérateurs.
ec11e28
Primitif 2019 interprété en M.
bc1e58c
Forcer les déclarations ordonnées dans les fichiers M.
david-michel1 294236b
Oubli d'un ficher...
david-michel1 c0c0ff1
Gestion améliorée des domaines.
0bba81d
Suite de la validation du code M.
david-michel1 0466e23
Fuzzing primitif 2022
david-michel1 6fd7d16
Fiabilisation de l'analyse M, suite.
6fa311c
Merge branch 'experimentation_mpp' of https://github.com/MLanguage/ml…
53c81ad
Ordonnancement des règles.
6c556ca
Validité des enchaîneurs.
9f9bdd6
Vérifs des vérifs
david-michel1 d2e63ec
Vérifs des vérifs (suite).
david-michel1 4375b33
Appels de verifs
david-michel1 1da2e0a
heck_validity, suite et fin.
david-michel1 fb94a02
Compilation des cibles dans des fichiers séparés.
david-michel1 b8246db
Nettoyage de la grammaire.
david-michel1 4879aac
Déclaration de variables n'importe où.
david-michel1 abd5877
Commentaires multilignes (#{...}#)
david-michel1 9c784f3
COmmentaires multilignes ( #{ ... }# ).
david-michel1 5d26e67
2021
david-michel1 b483e14
Simplification de l'interface du backend C
david-michel1 22c7e0e
Simplicicationd el'interface du backend C.
david-michel1 2e6c875
Merge branch 'master' into experimentation_mpp
a646c67
Correction du merge.
david-michel1 e1e4da3
Remove java testing as it is deprecated
98e3119
Supression du test_java_backend (et nettoyage de mast_to_mir.ml).
david-michel1 09e159b
Travail sur l'intervace C.
david-michel1 b50da42
Travail sur l'interface C.
david-michel1 ba4d6bf
Interface C.
david-michel1 e3bc2e7
Interface C.
david-michel1 35bc3a6
vail sur les makefiles.
david-michel1 d3b4623
Les makefiles c'est de la m...
david-michel1 ef27c91
Correction année dans le Makefile.
david-michel1 bfc99e3
Makefiles
david-michel1 96af195
Makefiles
david-michel1 6fbc9cb
Makefiles
david-michel1 9ebee8e
Comparaisons à un epsilon près + makefiles.
david-michel1 781c162
Suppression du mpp.
david-michel1 6336b69
Primitif 2022
david-michel1 98077fc
Indentation de l'affichage.
david-michel1 32047d0
Primitif 2022
david-michel1 09e00f3
Primitif 2022 inteprété
david-michel1 4560604
Gestion des erreurs.
david-michel1 11fa71a
Ordre des vérifs + erreurs bloquantes.
david-michel1 7add6d8
Gestion des anomalies, interpréteur + backend C
david-michel1 07edd68
Interface C DGFiP.
david-michel1 7c03718
Intégration du M étendu dans le backend C.
david-michel1 76526c2
Modifs irdata dans tous les backends C.
david-michel1 3d8500c
Correction makefiles.
david-michel1 d57a0df
Suppression de Mir.program_conds
david-michel1 4fa098c
Suppression program_rules.
david-michel1 a479d38
Simplification de l'interface (encore des erreurs).
david-michel1 85378b0
Nettoyage
david-michel1 be59871
Modifications suites à commentaires
david-michel1 3f9969d
Nettoyage
david-michel1 1865df3
Nettoyage
david-michel1 6f9d00c
Nettoyage
david-michel1 1a89a59
déplacement des fichiers cibles.m
david-michel1 6df95cd
Déplacement de Irj vers test_framework
david-michel1 3e3edea
Merge branch 'master' into experimentation_mpp
denismerigoux 85ea298
Remove annoying ocamlformat behavior
denismerigoux 5afe83c
Nettoyage et ajout du script DGFiP.
david-michel1 70a4906
Bug "Out of memory" dans le backend ML
david-michel1 dad7eaa
Nettoyage du backend ML
david-michel1 2d10ecd
Rafistolage du backend ML (out of memory).
david-michel1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,105 +1,50 @@ | ||
# Check Makefile.config.template if you want to override some of the flags | ||
# in this Makefile. | ||
|
||
include Makefile.include | ||
|
||
ifeq ($(CODE_COVERAGE), 1) | ||
CODE_COVERAGE_FLAG=--code_coverage | ||
else | ||
CODE_COVERAGE_FLAG= | ||
endif | ||
|
||
ifeq ($(TEST_FILTER), 1) | ||
TEST_FILTER_FLAG=--dgfip_test_filter | ||
else | ||
TEST_FILTER_FLAG= | ||
ifndef ROOT_DIR | ||
ROOT_DIR:=$(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))) | ||
endif | ||
|
||
TEST_ERROR_MARGIN?=0. | ||
|
||
MLANG_INTERPRETER_OPTS=\ | ||
--test_error_margin=$(TEST_ERROR_MARGIN) \ | ||
--mpp_file=$(MPP_FILE) \ | ||
--mpp_function=$(MPP_FUNCTION) | ||
|
||
MLANG=$(MLANG_BIN) $(MLANG_DEFAULT_OPTS) $(MLANG_INTERPRETER_OPTS) $(CODE_COVERAGE_FLAG) | ||
|
||
default: build | ||
|
||
################################################## | ||
# Initializing the project | ||
################################################## | ||
|
||
# Workaround for Opam 2.0 bug. Empty switch creation then installation could be a one line | ||
# "opam switch create . --deps-only" otherwise | ||
create-switch: | ||
opam switch create . --empty | ||
|
||
init-without-switch: | ||
opam install . --deps-only | ||
git submodule update --init | ||
|
||
init: create-switch init-without-switch | ||
CURR_DIR:=$(realpath $(shell pwd)) | ||
|
||
deps: | ||
opam switch reinstall --deps-only | ||
git submodule update | ||
YEAR?=2020 | ||
|
||
################################################## | ||
# Building the compiler | ||
################################################## | ||
include $(ROOT_DIR)/makefiles/functions.mk | ||
include $(ROOT_DIR)/makefiles/variables.mk | ||
-include $(ROOT_DIR)/makefiles/svn.mk | ||
include $(ROOT_DIR)/makefiles/mlang.mk | ||
include $(ROOT_DIR)/makefiles/c_backend.mk | ||
-include $(ROOT_DIR)/makefiles/dgfip_backend.mk | ||
|
||
format: | ||
dune build @fmt --auto-promote | true | ||
.PHONY: default \ | ||
create-switch init-without-switch init deps \ | ||
format dune build build-static \ | ||
doc \ | ||
test tests quick_test test_one \ | ||
calc_dir info_c calc_o dgfip_c_backend compile_dgfip_c_backend \ | ||
backend_tests test_dgfip_c_backend \ | ||
clean_backend clean_backend_c clean_backend_exe clean_backend_tmp clean_backend_res clean_backend_all \ | ||
test_java_backend | ||
|
||
build: format dune | ||
|
||
dune: | ||
dune build $(DUNE_OPTIONS) | ||
|
||
# Run only in an opam switch with musl and static options activated | ||
build-static: DUNE_OPTIONS+=--profile=static | ||
build-static: build | ||
|
||
################################################## | ||
# Testing the compiler | ||
################################################## | ||
|
||
# use: TEST_FILE=bla make test | ||
test: build | ||
$(MLANG) --run_test=$(TEST_FILE) $(SOURCE_FILES) | ||
|
||
# use: TESTS_DIR=bla make test | ||
tests: build | ||
$(MLANG) $(MLANGOPTS) --run_all_tests=$(TESTS_DIR) $(TEST_FILTER_FLAG) $(SOURCE_FILES) | ||
|
||
test_java_backend: build | ||
ifeq ($(OPTIMIZE), 0) | ||
@echo "\033[0;31mWarning, non-optimized Java files cannot be executed for now (too many constants for the JVM)\033[0m" | ||
else | ||
endif | ||
$(MAKE) -C examples/java/ run_tests | ||
|
||
test_dgfip_c_backend: build | ||
$(MAKE) -C examples/dgfip_c/ml_primitif backend_tests | ||
FORCE: | ||
|
||
quick_test: build | ||
$(MLANG) --backend interpreter --function_spec $(M_SPEC_FILE) $(SOURCE_FILES) | ||
.DEFAULT_GOAL:=default | ||
|
||
all: tests test_java_backend test_dgfip_c_backend quick_test | ||
default: FORCE build | ||
|
||
################################################## | ||
# Doc | ||
################################################## | ||
test_java_backend: FORCE build | ||
@echo "\033[0;31mWarning: Java backend not supported\033[0m" | ||
#ifeq ($(OPTIMIZE), 0) | ||
# @echo "\033[0;31mWarning, non-optimized Java files cannot be executed for now (too many constants for the JVM)\033[0m" | ||
#else | ||
#endif | ||
# $(MAKE) -C examples/java/ run_tests | ||
|
||
doc: FORCE build | ||
dune build @doc | ||
ln -fs $(shell pwd)/_build/default/_doc/_html/index.html doc/doc.html | ||
all: FORCE quick_test tests test_dgfip_c_backend test_java_backend | ||
|
||
clean: | ||
$(MAKE) -C examples/dgfip_c/ml_primitif cleanall | ||
$(MAKE) -C examples/java clean | ||
clean: FORCE | ||
$(call make_in,$(DGFIP_DIR),clean_backend_all) | ||
# $(MAKE) -C examples/java clean | ||
rm -f doc/doc.html | ||
dune clean | ||
|
||
FORCE: |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, c'est une grosse réécriture des
Makefiles
mais ta nouvelle organisation m'a l'air assez propre donc je suis pas contre changer ça. Par contre ça mérite de la doc, notamment une réécriture duREADME.md
, pour expliquer comment appeler tes nouveauxMakefile
pour builder, tester, etc.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On va essayer...