Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
9cfa755
Traces pour les cellulles des tableaux dans les règles
david-michel1 May 19, 2026
e070f43
add dune rules for static linking
lambdalex-ocp May 21, 2026
fed16fc
Add ci_tests recipe to Makefile
lambdalex-ocp May 21, 2026
7aebe58
Add CI with tests and static executable building
lambdalex-ocp May 19, 2026
4536f6a
Docker image base for faster CI
lambdalex-ocp May 21, 2026
25e3db7
Merge branch 'ci-master' into 'master'
May 26, 2026
b24a793
Merge branch 'trace_tableaux' into 'master'
May 27, 2026
650803e
:art: :adhesive_bandage: Formatting using the right OCaml version
mdurero May 27, 2026
6fc05f8
Merge branch 'fix/formatting' into 'master'
May 27, 2026
1f42b01
Variable aiguillage
Stevendeo Nov 21, 2025
634ce46
Mise à jour tests
Stevendeo Nov 25, 2025
1303354
Adding constant aiguillages & reworking syntax
Stevendeo Dec 2, 2025
43fdb12
More use of switch in corr
Stevendeo Dec 3, 2025
e9c9263
Ajout aiguillage variable dans code correctif 2025
Stevendeo Jan 15, 2026
1979905
Update doc publisher
Stevendeo Jan 16, 2026
e49cc3f
Réparation optToNum
Stevendeo Jan 19, 2026
e38f0f8
Pas de valeur de sortie en irj veut dire égal à 0
Stevendeo Jan 20, 2026
68aaf69
Create .gitlab-ci.yml file
Feb 3, 2026
432ce7c
Factorizing tests
Stevendeo Feb 10, 2026
630b1ad
Testing long build
Stevendeo Feb 10, 2026
7cf8fb8
Factorizing in main build
Stevendeo Feb 10, 2026
55f7028
Try to publish artiacts only on right branches
Stevendeo Feb 11, 2026
f4e9f31
No doc nor static build when no deploy and unused rule removal
Stevendeo Feb 11, 2026
f7672d9
Removing useless update
Stevendeo Feb 11, 2026
f085c2b
Testing other image
Stevendeo Feb 11, 2026
839dd00
keep track of tested files if the execution did not finish
lambdalex-ocp Feb 3, 2026
91d27e8
force ocamlversion to 0.28.1 because steven forgot
lambdalex-ocp Feb 13, 2026
eeadbb0
Add back reference to tab in table cell
lambdalex-ocp Jan 27, 2026
8844233
Add documentation & Clarify exception
lambdalex-ocp Feb 17, 2026
564e47d
Add documentation & clarify exception
lambdalex-ocp Feb 16, 2026
99b2811
add opam exec to recipe
lambdalex-ocp Feb 18, 2026
5814e46
Apply 1 suggestion(s) to 1 file(s)
Feb 18, 2026
70f8c6f
Messages d'erreur customisés avec menhir
Stevendeo Jan 22, 2026
34d5e50
Traitement correct des erreurs et ajout de quelques messages
Stevendeo Jan 22, 2026
3a5f2dd
Simplification traitement erreurs
Stevendeo Jan 22, 2026
9194e96
Quelques messages supplémentaires
Stevendeo Jan 22, 2026
cfbe6cb
Testing mparser messages and automatically updates when mparser changes
Stevendeo Jan 22, 2026
32555b4
Documentation
Stevendeo Jan 22, 2026
3f83e63
Rewording
Stevendeo Jan 23, 2026
3110442
Update with latest menhir version
Stevendeo Feb 18, 2026
83ca03d
Correction de la gestion des anomalies dan le correctif
david-michel1 Feb 24, 2026
8a6c0f5
Add files to gitignore, and read env variable
lambdalex-ocp Feb 24, 2026
8005ce4
Verification de l'utilisation des variables temporaires et arguments …
Stevendeo Jan 22, 2026
1b2a771
Les references dans champ_evenent peuvent être des ref
Stevendeo Jan 23, 2026
aa046e8
Poetry
Stevendeo Feb 17, 2026
1d4b27a
Update .gitlab-ci.yml to update repositories before fetching
lambdalex-ocp Mar 17, 2026
f84d9ae
New docker image builder
lambdalex-ocp Mar 18, 2026
e4e8a9c
make gitlab ci use new image
lambdalex-ocp Mar 18, 2026
745cf30
add dbg_info structure
lambdalex-ocp Dec 3, 2025
b567a31
add tracing to the interpreter
lambdalex-ocp Dec 2, 2025
eb581a7
Add origin to literals
lambdalex-ocp Sep 8, 2025
170b94a
Split Driver and Parsing
lambdalex-ocp Oct 8, 2025
406b284
add target specification to tracing
lambdalex-ocp Dec 2, 2025
ab56477
Add plain output flag
lambdalex-ocp Nov 17, 2025
01c0b0b
Make pos not dependent on cli
lambdalex-ocp Dec 2, 2025
2670e84
Add IRJ parsing for server mode
lambdalex-ocp Dec 2, 2025
e44ca3c
Add new M tests
lambdalex-ocp Dec 1, 2025
89c8843
[COM] Print floats in a better way
lambdalex-ocp Dec 2, 2025
2600bd9
add log of interpretation errors
lambdalex-ocp Dec 9, 2025
7b47055
remove assert false catch-all and provide every case
lambdalex-ocp Dec 9, 2025
e8fa998
Add temp variables tracing when iterated & refactoring
lambdalex-ocp Dec 17, 2025
e8df658
Change graph structure
lambdalex-ocp Feb 17, 2026
cfe3d2d
fetch the correct naming if inside table cell
lambdalex-ocp Jan 27, 2026
af144b3
Add trace config flag
lambdalex-ocp Feb 13, 2026
91bd7e4
functorize the interpreter
lambdalex-ocp Feb 13, 2026
51b3703
make tracer_ctx immutable
lambdalex-ocp Mar 20, 2026
9ef1b69
New graph structure [mir interp]
lambdalex-ocp Mar 13, 2026
c69889d
add anomaly tracing
lambdalex-ocp Mar 3, 2026
58e0deb
add aliases to dbg_info
lambdalex-ocp Mar 11, 2026
d64763d
init dbg_info with aliases
lambdalex-ocp Mar 11, 2026
63d7582
More documentation
lambdalex-ocp Mar 17, 2026
29e2516
Move out tracer from mir_interpreter
lambdalex-ocp Mar 10, 2026
e905daf
Add trace_output_file cli option
lambdalex-ocp Mar 6, 2026
314e572
write trace if flag is set
lambdalex-ocp Mar 6, 2026
51e21a9
remove asssert false and make default info
lambdalex-ocp Mar 24, 2026
cf2964f
Gestion de messages multi-langage dans mlang
Stevendeo Feb 18, 2026
bbd8c55
Renommage de Log en Ppf
Stevendeo Mar 5, 2026
9126892
fix bad path in makefile
lambdalex-ocp Apr 1, 2026
535dbd8
Simplification de Mir_number
Stevendeo Mar 20, 2026
bb314df
Interpreteur dans sa propre strophe dune
Stevendeo Mar 24, 2026
a1a25e4
Types hors du module de calcul
Stevendeo Mar 24, 2026
27e4379
Déplacement du traceur dans la strophe de l'interpréteur
Stevendeo Mar 24, 2026
7348865
Contexte dans son propre module
Stevendeo Mar 24, 2026
beb137a
Moving print utils to Printer module
Stevendeo Mar 25, 2026
929138c
Number dans son propre module
Stevendeo Mar 25, 2026
ff4df8d
Déplacement des fonctions dans un module séparé
Stevendeo Mar 25, 2026
f0c9557
Utilisation de la bonne fonction pour initialiser la précision
Stevendeo Mar 25, 2026
5e8bb5c
Allègement de evaluate_expr
Stevendeo Mar 25, 2026
e81e4e1
Déplacement des anomalies
Stevendeo Mar 25, 2026
2a7235d
Mise à jour du contexte dans le module approprié
Stevendeo Mar 26, 2026
fdfbd35
Context now depends on tracer and number
Stevendeo Mar 26, 2026
f3329e7
Evaluate_expr factorisée
Stevendeo Mar 26, 2026
977a189
Evaluate_stmt factorisée
Stevendeo Mar 26, 2026
4554bb3
Documentation & petite simplification du printeur
Stevendeo Mar 26, 2026
acf737c
Réparation d'un mauvais index
Stevendeo Mar 30, 2026
277612c
Simplification du test final de l'évaluation d'une expression
Stevendeo Mar 31, 2026
521060f
Artéfacts de rebase
Stevendeo Mar 31, 2026
826b56a
Documentation
Stevendeo Mar 31, 2026
7701dbf
Interface du traceur
Stevendeo Mar 31, 2026
e05131c
Documentation minimale du printeur
Stevendeo Mar 31, 2026
4719c99
Formatteur des valeurs déplacés dans le module des nombres
Stevendeo Mar 31, 2026
bdd4e67
Un peu de nettoyage
Stevendeo Apr 7, 2026
fc8e201
Refactorisation de la génération d'expression C
Stevendeo Apr 9, 2026
d89c034
Variable irdata en tant qu'expression indépendante
Stevendeo Apr 10, 2026
28da939
Utilisation de valeurs de l'AST plutôt que instr
Stevendeo Apr 14, 2026
f33d91c
Utilisation des pointeurs centralisée dans une seule fonction
Stevendeo Apr 14, 2026
387cd67
Simplification du test d'appartenance
Stevendeo Apr 15, 2026
f279e4e
Abstraction des varinfo comme expression découplées
Stevendeo Apr 15, 2026
3786ce9
Utilisation des varinfos découplées
Stevendeo Apr 15, 2026
0ffe0f7
Simplification du calcul d'attribut
Stevendeo Apr 15, 2026
4ca23c0
Espace de variable abstraits
Stevendeo Apr 16, 2026
3149242
Abstraction du nom de type
Stevendeo Apr 16, 2026
5ff2807
Suppression de l'export de ddirect/dinstr
Stevendeo Apr 16, 2026
c9bbc86
Documentation
Stevendeo Apr 16, 2026
65b7123
Ajout d'un type VarSpace
Stevendeo Apr 16, 2026
12604b8
Réparation de typos
Stevendeo Apr 28, 2026
d0bfc99
Traduction des erreurs de l'interpréteur
Stevendeo Apr 2, 2026
6e4a239
Traduction de l'interpreteur de test
Stevendeo Apr 7, 2026
0f7f768
Ajout de valeurs courantes pour l'espace de nom courant
Stevendeo Apr 24, 2026
5b501c0
Moniteur de temps sur le calcul en C
Stevendeo Apr 29, 2026
d65a43d
Modification stylistique de la définition des variables d'espace de nom
Stevendeo May 11, 2026
5508aa1
Update .gitlab-ci to add multi-stage build
lambdalex-ocp May 12, 2026
e7d45ea
update .gitlab-ci to use the proper image
lambdalex-ocp May 26, 2026
d07085e
downgrade to dune 2 CI
lambdalex-ocp May 27, 2026
93247b5
format dune files to 2.7 behavior
lambdalex-ocp May 27, 2026
7135a5a
Merge branch 'downgrade-to-dune-2' into 'dev'
May 27, 2026
e6f58ed
Calculette 2024 (rev 36674)
david-michel1 May 28, 2026
cc42a36
Initializing time
Stevendeo May 28, 2026
2d1b61e
Merge branch 'fix-time' into 'dev'
Jun 1, 2026
b15777f
Merge branch 'calculette_2024' into 'dev'
Jun 1, 2026
8824b3a
update tracer to log variable declaration line
lambdalex-ocp May 5, 2026
1c766a0
update tests
lambdalex-ocp Jun 2, 2026
fce5795
Auto tag add
Stevendeo May 27, 2026
73a1b68
Mise à jour du README
Stevendeo May 13, 2026
33b6847
Merge branch 'trace-var-declaration' into 'dev'
Jun 3, 2026
d77de33
Ajout de 2025 et configuration du choix d'optim de compilation
Stevendeo Jun 3, 2026
81be335
Merge branch 'auto-tag-creation' into 'dev'
Jun 3, 2026
d66ddb5
Verification de la capacité d'une règle à être stoppée
Stevendeo Apr 28, 2026
6f0b7b7
Merge branch 'optim-abort' into 'dev'
Jun 3, 2026
84e3b95
Unicité des expressions booléennes dans les ET et OU
Stevendeo Apr 30, 2026
de51f89
Merge branch 'makefile-update' into 'dev'
Jun 3, 2026
f140c98
Traduction README
Stevendeo Jun 3, 2026
409f6bc
Légère correction
Stevendeo Jun 3, 2026
7c5b013
Ajout du lien vers la forge adullact
Stevendeo Jun 3, 2026
de56bea
Merge branch 'disclaimer' into 'dev'
Jun 3, 2026
dee3b17
Merge branch 'optim-reduce' into 'dev'
Jun 8, 2026
9811dd1
Optionnalisation des optimisations
Stevendeo Jun 3, 2026
e8f27ba
Cram tests
Stevendeo Jun 8, 2026
7e6e6e6
Add CI flag to launch a static build [build-static]
lambdalex-ocp Jun 2, 2026
c76c958
[CI] Add a way to release
lambdalex-ocp Jun 9, 2026
7c1f536
Merge branch 'ci-build-static-flag' into 'dev'
Jun 9, 2026
3166efa
Merge branch 'optionize-optims' into 'dev'
Jun 9, 2026
91f3e15
Merge branch 'dev' into 'master'
Jun 9, 2026
bfbb993
Simple op
Stevendeo Jun 11, 2026
5e3dbed
Merge branch 'optim-simple-oper' into 'dev'
Jun 18, 2026
f52f5b3
Complétion des fichiers IRJ via le backend C
david-michel1 Jun 23, 2026
0f4eebf
Réactivation de l'option OPTIM_FLAG, activée par défaut
Stevendeo Jun 26, 2026
4fdcc05
Merge branch 'completion' into 'dev'
Jun 26, 2026
9a52fea
Pre-representation of decoupled expressions
Stevendeo Jun 9, 2026
2715f2b
Merge branch 'precompute-def' into 'dev'
Jun 30, 2026
e04d9a5
Licence CeCILL-C
Stevendeo Jul 1, 2026
5d48e78
Full update of all ml headers
Stevendeo Jul 1, 2026
d89a284
Merge branch 'licence-header' into 'dev'
Jul 21, 2026
49ed1f4
Réparation d'un test de définition
Stevendeo Jul 21, 2026
6567eff
Simplification de la traduction de supzero
Stevendeo Jul 21, 2026
64870b8
Merge branch 'supzero-fix' into 'dev'
Jul 22, 2026
eadd27d
Exécution des programmes C générés dans les cram test
Stevendeo Jul 3, 2026
133a8ec
Ajout des fonctions dans les cram test
Stevendeo Jul 3, 2026
0ff4eb8
Ajout de cram test de l'instruction d'aiguillage
Stevendeo Jul 3, 2026
9c4584e
Mise à jour de la documentation des cram test
Stevendeo Jul 22, 2026
4ff761d
Merge branch 'execute-cram-test' into 'dev'
Jul 22, 2026
dab8d5a
Calculette fuzzée 2024
david-michel1 Jun 25, 2026
765b66c
Tests 2024 interprétés
david-michel1 Jul 21, 2026
3856a5d
Retest 2024 interprté
david-michel1 Jul 21, 2026
f5be251
Réparation cram tests pour 2024
david-michel1 Jul 21, 2026
2ce7b58
Valuation des variables sur la ligne de commande
david-michel1 Jul 23, 2026
186813f
Rebasage...
david-michel1 Jul 28, 2026
b9c88c4
Merge branch 'fuzzing2024' into 'dev'
david-michel1 Jul 28, 2026
08a355a
Simplification des formules booléennes
Stevendeo Jun 17, 2026
811b989
Plus de documentation
Stevendeo Jul 22, 2026
7c54d1d
Utilisation de listes pour stabiliser l'ordre des variables booléennes
Stevendeo Jul 23, 2026
32e3157
Merge branch 'optim-push-bool' into 'dev'
Jul 31, 2026
2e4fbe7
Expression lets and cond
Stevendeo Jun 23, 2026
59ed35f
Cast des conditions générées par les expressions conditionnelles
Stevendeo Jul 30, 2026
7573d65
Ajout d'un test sur les nouvelles conditions
Stevendeo Aug 3, 2026
5fbb8dd
Affichage plus déterministe
Stevendeo Aug 3, 2026
e295537
Merge branch 'prelet' into 'dev'
Aug 3, 2026
ce85108
Ajout de messages d'erreur manquants
Stevendeo Aug 3, 2026
864779b
Merge branch 'plus-de-messages' into 'dev'
Aug 3, 2026
9a79d54
Adding a script for lazy compiling a list of C files
Stevendeo Sep 23, 2025
081c504
Tmp
Stevendeo Sep 23, 2025
5dbacc6
Traitement de l'interface en ligne de commande plus maline
Stevendeo Mar 10, 2026
4f5c0f6
Clarification messages
Stevendeo Mar 10, 2026
aa9fc75
Poetry
Stevendeo Mar 10, 2026
3b3341a
Better reorganisation
Stevendeo Mar 11, 2026
990c9e1
Proper usage of marshalling
Stevendeo Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
11 changes: 6 additions & 5 deletions .github/workflows/publish_doc.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
name: Publish documentation on GitHub Pages

on:
workflow_run:
workflows: [binary-releases]
types:
- completed
push:
branches:
- master
- dev
- gen-doc # Temporary

jobs:
deploy:
Expand Down Expand Up @@ -33,7 +34,7 @@ jobs:
uses: ocaml/setup-ocaml@v2
with:
# Version of the OCaml compiler to initialise
ocaml-compiler: 4.11.2
ocaml-compiler: 4.13.1

- name: Install dependencies
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ doc.html
*~
/_opam
/Makefile.config
.interpreter_progress
.mlang.hash
120 changes: 120 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
stages:
- build
- deploy
- release

create-tag:
stage: release
image: gitlab.adullact.net:4567/dgfip/impots-nationaux-revenu-patrimoine-particuliers/mlang:4.14
needs: ["build-static"]
rules:
- if: '$CI_COMMIT_BRANCH == "master"'

script:
- git config --global --add safe.directory '*'
- git fetch --prune --prune-tags origin
- git fetch --tags
- echo "Latest tag:"
- git tag --sort=-creatordate | sed -n '1p'
- LATEST_TAG=$(git tag --sort=-creatordate | sed -n '1p')
- NEXT_TAG=$((LATEST_TAG + 1))
- echo "Creating tag $NEXT_TAG"
- curl --request POST --header "PRIVATE-TOKEN:$GITLAB_CI_TOKEN" "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/tags?tag_name=$NEXT_TAG&ref=$CI_COMMIT_SHA" --fail
- >
curl --header "JOB-TOKEN: $CI_JOB_TOKEN"
--upload-file mlang-static.exe
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/mlang/${NEXT_TAG}/mlang-static-${NEXT_TAG}.exe" --fail
- >
curl --request POST
--header "PRIVATE-TOKEN: $GITLAB_CI_TOKEN"
--header "Content-Type: application/json"
--data "{
\"name\": \"Release $NEXT_TAG\",
\"tag_name\": \"$NEXT_TAG\",
\"description\": \"Automated release created via GitLab CI.\",
\"assets\": {
\"links\": [{
\"name\": \"mlang-static.exe\",
\"url\": \"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/mlang-static/${NEXT_TAG}/mlang-static-${NEXT_TAG}.exe\"
}]
}
}"
"$CI_API_V4_URL/projects/$CI_PROJECT_ID/releases" --fail

make-doc:
stage: deploy

needs: ["build"]

image: gitlab.adullact.net:4567/dgfip/impots-nationaux-revenu-patrimoine-particuliers/mlang:4.14

rules:
- if: '$CI_COMMIT_BRANCH == "dev"'

artifacts:
paths:
- examples/doc

script:
- git config --global --add safe.directory '*'
- make doc-deps
- make doc

build-static:
stage: build

image: ocaml/opam:alpine-ocaml-4.14
variables:
USER: root

artifacts:
paths:
- mlang-static.exe
expire_in: 1 day

rules:
- if: '$CI_COMMIT_BRANCH == "dev" || $CI_COMMIT_BRANCH == "master" || $CI_COMMIT_MESSAGE =~ /\[build-static\]/'

script:
- sudo apk add --no-cache m4 perl python3 clang git build-base lzip gmp-dev gmp-static mpfr-dev libev-dev openssl-dev openssl-libs-static
# Bypass Git's dubious ownership security check for the CI workspace, or else opam will fail
- git config --global --add safe.directory '*'
- opam update
- opam install . --deps-only -y
- opam exec -- dune build --profile=static-release src/main_static.exe
- cp _build/default/src/main_static.exe mlang-static.exe

build:
stage: build

variables:
OCAML_COMPILER: "4.14.2"
# ARTIFACTS: "artifacts/$OCAML_COMPILER"

FF_USE_FASTZIP: "true"
# A workaround against a bug in gitlab-runner's default
# unzipping implementation, which partially breaks caching for the dune _build cache.
# See https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27496 for more details.

rules:
- exists:
- dune-project

image: gitlab.adullact.net:4567/dgfip/impots-nationaux-revenu-patrimoine-particuliers/mlang:4.14

artifacts:
paths:
- src
when: on_success

script:
# Initialisation
- git config --global --add safe.directory $CI_PROJECT_DIR
- git submodule init ir-calcul
- git submodule update ir-calcul
# Installation des dépendances opam
# Verification de l'indentation
- opam exec -- dune build @fmt
# Compilation
- make build
- make ci_tests
24 changes: 24 additions & 0 deletions Dockerfile.ci
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM ocaml/opam:alpine-ocaml-4.14

USER root
RUN apk add --no-cache \
m4 \
perl \
python3 \
clang \
git \
build-base \
lzip \
gmp-dev \
mpfr-dev

USER opam

WORKDIR /mlang

COPY --chown=opam:opam *.opam ./
COPY --chown=opam:opam dune-project ./

RUN opam update && \
opam install . --deps-only -y && \
opam clean -a -c --logs
35 changes: 35 additions & 0 deletions Dockerfile.static
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
FROM ocaml/opam:alpine-ocaml-4.14

USER root
RUN apk add --no-cache \
m4 \
perl \
python3 \
clang \
git \
build-base \
lzip \
gmp-dev \
gmp-static \
mpfr-dev \
libev-dev \
openssl-dev \
openssl-libs-static

# Give ownership to opam user
RUN mkdir /mlang && chown opam:opam /mlang

USER opam

WORKDIR /mlang

COPY --chown=opam:opam *.opam ./
COPY --chown=opam:opam dune-project ./

RUN opam update && \
opam install . --deps-only -y && \
opam clean -a -c --logs

COPY --chown=opam:opam . .

RUN opam exec -- dune build --profile=release src/main.exe
Loading
Loading