5e91f6e8fa
correct the design document for closure conversion
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
2026-02-05 00:12:58 +03:00
7cdd4ee759
updated the design document
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
2026-02-04 22:54:53 +03:00
a250d96c63
core_ast: remove letrec comment
2026-02-04 21:52:16 +03:00
3a3bf2c674
core_ast: removed letrec. we now treat it as let + set.
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
2026-02-02 22:36:55 +03:00
7402a688c7
compiler: remove unused files
2026-02-02 20:43:13 +03:00
ed4f49311c
syntactic_ast: unwrapped the central GADT into several related types.
...
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
core_ast: related to the above, reorganized core_ast to use the new syntactic ast
2026-02-02 20:32:15 +03:00
bd907fe69a
minor changes
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
2026-02-02 19:53:08 +03:00
d7729571ea
core_ast: modify the core ast to use unary functions
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
2026-01-16 22:34:35 +03:00
6e8e345388
ci: change the debian and fedora workflows to not ask for user input
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
2026-01-16 13:15:09 +03:00
78c2e4c335
ci: move nixos build, rename debian build
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/cron/fedora Pipeline failed
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
2026-01-14 21:49:33 +03:00
aeb8e89526
ci: rename the debian workflow, add fedora workflow
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/build-nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
2026-01-14 21:46:42 +03:00
12b347de38
general: removed containers dependency
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/build-nix Pipeline was successful
2026-01-14 21:40:21 +03:00
67bd37eaa2
ci: add menhir to the debian build workflow
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/build-nix Pipeline was successful
2026-01-14 21:22:25 +03:00
5b6ed1beb5
ci: fix findlib package name
ci/woodpecker/push/build Pipeline failed
ci/woodpecker/push/build-nix Pipeline was successful
2026-01-14 12:46:56 +03:00
d0f9483aaa
ci: fix build.yaml
ci/woodpecker/push/build Pipeline failed
ci/woodpecker/push/build-nix Pipeline was successful
2026-01-14 12:45:18 +03:00
e60b447198
ci: added workflow for building on debian, moved nix build to another file
ci/woodpecker/push/build-nix Pipeline was successful
2026-01-14 12:43:54 +03:00
11625c88c6
core_ast: add of_sexpr
ci/woodpecker/push/build Pipeline was successful
2026-01-14 12:28:22 +03:00
d41d8e5fbe
core_ast: add initial draft for the core ast, and a conversion function from the syntactic ast
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/cron/build Pipeline was successful
2026-01-07 20:02:10 +03:00
ec56d76fb3
syntactic_ast: modify the phantom types to have concrete constructors, as the ocaml compiler cannot prove them distinct otherwise
ci/woodpecker/push/build Pipeline was successful
2026-01-07 20:00:11 +03:00
be81061895
syntactic_ast: fix issue in set! parsing, add set! to the test case.
ci/woodpecker/push/build Pipeline was successful
2026-01-07 18:18:38 +03:00
e25b6b0b10
syntactic_ast: fix issue in cond parsing
2026-01-07 18:17:24 +03:00
0d731f29b3
syntactic_ast: added a node for set! expressions
2026-01-07 18:13:55 +03:00
54c48ddf0e
syntactic_ast: add node for if expressions
ci/woodpecker/push/build Pipeline was successful
2026-01-07 18:03:28 +03:00
edc9d8b9e6
syntactic_ast: added parsing and pretty printing for cond expressions
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/cron/build Pipeline was successful
2026-01-04 21:38:04 +03:00
e95a115acf
syntactic_ast: Added proper handling for Let and Letrec
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/cron/build Pipeline was successful
2026-01-03 21:35:27 +03:00
9fb29afc3e
syntactic_ast: Modified letrec forms to also accept a body
ci/woodpecker/push/build Pipeline was successful
2026-01-03 20:49:17 +03:00
17e533dbb8
Modified the GADT to distinguish bodies
ci/woodpecker/push/build Pipeline was successful
2026-01-03 20:43:11 +03:00
6d95977324
ast: improved the implementation of syntactic_ast
...
ci/woodpecker/push/build Pipeline was successful
debug: added debug functions for the syntactic_ast module
Modified the compiler executable to test a little bit.
todo: Some nodes of the syntactic ast are not yet emitted,
2026-01-03 18:30:47 +03:00
cb94372f29
new ast: added a new syntactic_ast module that provides a more structured AST as a GADT
ci/woodpecker/push/build Pipeline was successful
2026-01-03 16:44:00 +03:00
bc7ca0fa2d
new library: added containers as a dependency.
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/manual/build Pipeline was successful
ci/woodpecker/cron/build Pipeline was successful
2026-01-01 13:36:09 +03:00
d401548d1d
Change the build workflow to run on cron activations as well
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/cron/build Pipeline was successful
2025-12-28 21:32:48 +03:00
77213ce492
Change build workflow to only run on push and tag events
ci/woodpecker/push/build Pipeline was successful
2025-12-28 21:04:46 +03:00
5afa613138
Change build workflow to also run the binary
2025-12-28 21:04:46 +03:00
61a08c1b9b
Changed flake to use flake-utils and build for all targets
2025-12-28 21:04:46 +03:00
1422f14822
Added first build workflow
2025-12-28 21:04:46 +03:00
9981c222eb
Added desugar phase for converting cond into a chain of if's
2025-12-28 21:04:45 +03:00
93ba06a6b0
Expand parser to include =, > and < as symbol characters
2025-12-28 21:04:45 +03:00
624d420afe
Separated mutually recursive definition of desugar phases
...
They do not need to be mutually recursive at all. At first I thought
they would have to be, because I thought it would be best if each phase
completely desugared the bodies of the expressions they handle, but now
I see that would probably lead to an infinite loop.
There is simply no reason to couple them so tightly.
2025-12-28 21:04:45 +03:00
d80caadc85
Added gensym, and phases in the desugar module for logical and & or
2025-12-28 21:04:45 +03:00
be0d479665
Added desugar steps to add (begin) wrappers around long lambda bodies, and rewrite internal (define) forms into letrec forms
2025-12-28 21:04:45 +03:00
4f1ad54596
Started work on the compiler, with a desugar phase
2025-12-28 21:04:45 +03:00
e10124498e
Reorganize flake again, it should be good now
2025-12-28 21:04:45 +03:00
fc44d7f195
Reorganize flake, remove unnecessary prebuild phase
2025-12-28 21:04:45 +03:00
582a0a3b86
Add merlin to the devshell, because I use emacs
2025-12-28 21:04:45 +03:00
58277ad0a3
Complete reorganization: finally at a building state again
2025-12-28 21:04:45 +03:00
adbf083c3d
Reorganized project
2025-12-28 21:04:45 +03:00
8e980a8f1b
Reorganized basically everything, making way for the compiler
2025-12-28 21:04:45 +03:00
81c349c70a
Added pretty-printing.
2025-12-28 21:04:45 +03:00
6c2ae01a80
Improved the debug print function to pretty-print lists.
2025-12-28 21:04:45 +03:00
e46938005b
Making preparations for more of the standard library
2025-12-28 21:04:45 +03:00