Skip to content

Compiling factorial#1

Closed
sofyak0zyreva wants to merge 29 commits intomasterfrom
fac-comp
Closed

Compiling factorial#1
sofyak0zyreva wants to merge 29 commits intomasterfrom
fac-comp

Conversation

@sofyak0zyreva
Copy link
Collaborator

No description provided.

p1onerka and others added 29 commits September 25, 2025 17:36
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
Signed-off-by: Kakadu <Kakadu@pm.me>
Ignatiy Sergeev and Georgiy Belyanin want to collaborate in this course
and make ML-like language compiler called `DOOML`. This patch adds them
to the pairing file.

Co-authored-by: Dmitrii Kosarev <Kakadu@pm.me>
Co-authored-by: Dmitrii Kosarev <Kakadu@pm.me>
* add: setup dir

Signed-off-by: Dmitri Chirkov <chdmitry2@gmail.com>

* feat: add frontend

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: implement pprinter for riscv assembly

* docs: add assembly fact example

* add: fac riscv

Signed-off-by: Dmitri Chirkov <chdmitry2@gmail.com>

* refactor: update license

This patch contains correct license headers in .ml and .mli files

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: correct lib names in dune

This patch fixes incorrect library names in parser and infer dune files.
Their names were swapped.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: add parser and infer tests.

This patch brings tests for type inferencer and parser.
They were taken from OCamlADT interpreter.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: add compiler main file

This patch introducecs entry point of our AML compiler.
Also it was named aml instead of main because this is cool.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* refactor: formatter and template folders

This patch contatins formatter code correction.
Also some template folders were deleted.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: linter and formatter

This patch introduce our favourite friend --- zanuda linter!
Also formatter was added.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* refactor: rename entry point

Now aml.ml became AML.ml because UPPER CASE is cool.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: add tests for codegen

This patch introduces tests (only one) for codegen.
Also there is one cram test that demonstrates that
our compiler can compile factorial in ML.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: add shrinker

This patch adds forgotten qshrinker.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: apply linter

This patch introduce changes that were made due to
zanuda linter report.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* refactor: remove template folder

In this patch folder with cram tests has removed.
Cram tests for codegen are located in lib/codegen/test.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: mli files

This patch adds mli files for new modules.
Also there is a few changes that was made due
to zanuda linter report.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: codegen tests

This patch brings one more test fore codgen.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* refactor: apply fmt

This patch brings some formatter fixes.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: ci

This patch fixes ocamlformat version.
Also apply 0.27 ocamlformat version fixes.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: ppx package

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* feat: add factorial output

This patch demonstrates that our compiler works.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: zanuda report

* fix: correct toolchain

In previous versions I used wrong toolchain.

Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>

* fix: add symlinks into cram test

* fix: zanuda again

---------

Signed-off-by: Dmitri Chirkov <chdmitry2@gmail.com>
Signed-off-by: Rodion Suvorov <rodion.suvorov.94@mail.ru>
Co-authored-by: Dmitri Chirkov <chdmitry2@gmail.com>
…adimir) (#13)

* feat: initialize and add compiler front

* feat: RISC-V codegen

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* refactor: improve readability of codegen and add some new instructions

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* refactor: remove unnecessary type attributions

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* fix: saving and restoring caller regs

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* refactor: simplify caller-regs saving

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* chore: simplify code

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* refactor: replace global variables with a monad

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* tests: add codegen test

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* fix: update dune-project

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* fix: add `akaml.opam.template`

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

* chore: react to zanuda report

Signed-off-by: Vladimir Zaikin <friend.zva@yandex.ru>

* chore: react to zanuda report again

Signed-off-by: Vladimir Zaikin <friend.zva@yandex.ru>

* tests: add a factorial launch

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>

---------

Signed-off-by: Maxim Rodionov <rodionov.maxim05@gmail.com>
Signed-off-by: Vladimir Zaikin <friend.zva@yandex.ru>
Co-authored-by: Vladimir Zaikin <friend.zva@yandex.ru>
…ombaev) (#15)

* feat: init project

* feat: add ast and type tree

* feat: parser

* feat: riscv registers and instructions

* ref: remove extra comments in ast

* [WIP]feat: some riscv codegen

* feat(riscv): apply and str_item codegen

* feat: bin/compiler

* feat(riscv): stack frame with prologue/epilogue

* chore: add licence to files, remove unused files

* ref: zanuda lints

* test: add asm print in factorial test
Signed-off-by: Kakadu <Kakadu@pm.me>
Signed-off-by: Ksenia Kotelnikova <xeniia.ka@gmail.com>
Signed-off-by: sofyak0zyreva <k81sofia@gmail.com>
VyacheslavIurevich pushed a commit that referenced this pull request Nov 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

Comments