haxala1r
d846046c4a
Big changes:
...
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
Compiler and VM are now working well enough to support larger programs.
A test program is included and executed immediately upon running
the executable.
A more feature complete read-eval-print loop is planned.
2026-04-26 00:55:43 +03:00
haxala1r
0925b44ef7
vm: got the VM to finally actually work
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-25 22:48:06 +03:00
haxala1r
5edcc974b6
binary: modify binary to make use of the new compilation pipeline
2026-04-25 22:47:34 +03:00
haxala1r
4716c71b15
compiler: modify the Emit module to actually produce a vm_state object directly executable by the VM
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
2026-04-25 21:04:49 +03:00
haxala1r
2b02740e68
compiler: add the initial draft for compiling into byte code with backpatching
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-25 20:46:28 +03:00
haxala1r
190ec94e14
compiler: make space for compiling into the VM bytecode
2026-04-25 20:44:37 +03:00
haxala1r
fe3ad80826
vm: added noop instruction, various other improvements
2026-04-25 20:43:55 +03:00
haxala1r
2822774931
vm: modified the vm to include native procedures, and changed the order of some parameters
2026-04-25 00:08:54 +03:00
haxala1r
06d0b4d2bf
vm: wrote an initial sketch of a rough bytecode VM
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-04-24 19:10:14 +03:00
haxala1r
757df161d1
scope analysis: created another type to statically eliminate one (im)possible error case
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline failed
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
2026-04-05 23:14:29 +03:00
haxala1r
39ed14b33d
nix: change pkgs.mkShellNoCC -> pkgs.mkShell because a standard environment is required in a development shell as well
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 23:04:03 +03:00
haxala1r
3ae6a7491d
nix: add a separate shell.nix so I can specify merlin there without adding it as a build requirement
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-04-05 22:58:45 +03:00
haxala1r
4c573289b5
build: separated the nix flake and derivation, to allow for simpler builds and more flexibility
ci/woodpecker/manual/debian Pipeline was successful
ci/woodpecker/manual/nix Pipeline was successful
ci/woodpecker/manual/fedora Pipeline was successful
ci/woodpecker/manual/publish Pipeline was successful
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-04-03 20:33:26 +03:00
haxala1r
24213597f1
flake: update
ci/woodpecker/push/debian Pipeline was canceled
ci/woodpecker/push/nix Pipeline was canceled
ci/woodpecker/push/fedora Pipeline was canceled
ci/woodpecker/push/publish Pipeline was canceled
2026-04-03 20:06:31 +03:00
haxala1r
4792a296d3
interpreter: minor fixes, changes to the main binary to actually interpret some source code
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was canceled
ci/woodpecker/cron/nix Pipeline was canceled
ci/woodpecker/cron/fedora Pipeline was canceled
ci/woodpecker/cron/publish Pipeline was canceled
2026-03-22 17:23:49 +03:00
haxala1r
040353683f
interpreter: added a new implementation for an interpreter. typechecks, but it needs testing
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-03-01 16:25:42 +03:00
haxala1r
cb7e3f8622
scope_analysis: changed convert to return the global symbol table as well as the program
2026-03-01 16:24:45 +03:00
haxala1r
fe26b6c2b3
scope_analysis & core_ast: added functions to convert directly from source for convenience
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-28 18:59:37 +03:00
haxala1r
a95a676cb2
scope_analysis: small logic fix
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-02-28 18:41:02 +03:00
haxala1r
24db34db62
scope_analysis: added support for deferred computation
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-15 15:09:59 +03:00
haxala1r
7685ae2e45
interpreter: removed the outdated tree-walk interpreter
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
2026-02-15 14:30:41 +03:00
haxala1r
8d301a6fc2
scope_analysis: fix the handling of Lambda forms
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-12 18:32:36 +03:00
haxala1r
81dfc07867
compiler: added my first attempt at a scope analysis pass
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-11 23:40:53 +03:00
haxala1r
bd6acf89e0
util: separated the monadic traverse into a utility module
2026-02-11 23:40:17 +03:00
haxala1r
36ef8f2a22
Added a license
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-10 21:36:49 +03:00
haxala1r
3a7f3971ba
ci: update publish.yaml
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/cron/debian Pipeline was successful
ci/woodpecker/cron/nix Pipeline was successful
ci/woodpecker/cron/fedora Pipeline was successful
ci/woodpecker/cron/publish Pipeline was successful
2026-02-05 23:21:01 +03:00
haxala1r
b5b0a44400
ci: update publish workflow to use ocaml 5.4
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-02-05 23:17:45 +03:00
haxala1r
b2e3f5703b
ci: update dune-project to add menhir dependency
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-02-05 23:12:56 +03:00
haxala1r
2d038279f2
ci: add directive in dune to generate opam file
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/nix Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
2026-02-05 23:09:37 +03:00
haxala1r
fae7bd8077
ci: Add a woodpecker workflow to publish a nightly amd64 version
ci/woodpecker/push/debian Pipeline was successful
ci/woodpecker/push/fedora Pipeline was successful
ci/woodpecker/push/publish Pipeline failed
ci/woodpecker/push/nix Pipeline was successful
2026-02-05 23:05:34 +03:00
haxala1r
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
haxala1r
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
haxala1r
a250d96c63
core_ast: remove letrec comment
2026-02-04 21:52:16 +03:00
haxala1r
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
haxala1r
7402a688c7
compiler: remove unused files
2026-02-02 20:43:13 +03:00
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
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
haxala1r
11625c88c6
core_ast: add of_sexpr
ci/woodpecker/push/build Pipeline was successful
2026-01-14 12:28:22 +03:00
haxala1r
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
haxala1r
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
haxala1r
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