Skip to content

Oderiy#24

Open
XRenso wants to merge 6 commits into
Kakadu:masterfrom
XRenso:Oderiy
Open

Oderiy#24
XRenso wants to merge 6 commits into
Kakadu:masterfrom
XRenso:Oderiy

Conversation

@XRenso
Copy link
Copy Markdown

@XRenso XRenso commented Feb 24, 2026

interpreter for MiniML
author - Oderiy Yaroslav

Copilot AI review requested due to automatic review settings February 24, 2026 18:11
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new MiniML interpreter project under Oderiy/, including AST, parser (Angstrom), pretty-printer, interpreter with a step limit, a REPL executable, and a fairly comprehensive test suite (ppx_expect + cram + an additional standalone test runner).

Changes:

  • Implemented core MiniML components: AST, parser, printer, interpreter, and a REPL.
  • Added unit/expect tests, cram tests, and sample .miniml programs.
  • Introduced Dune/OPAM project scaffolding, formatting config, and licensing files.

Reviewed changes

Copilot reviewed 35 out of 38 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
Oderiy/tests/qcheck_test.mli Test module interface header.
Oderiy/tests/qcheck_test.ml Standalone boolean test runner for parser/printer/interpreter behaviors.
Oderiy/tests/print_test.mli Expect-test module interface header.
Oderiy/tests/print_test.ml ppx_expect tests for pretty-printer output.
Oderiy/tests/parser_test.mli Expect-test module interface header.
Oderiy/tests/parser_test.ml ppx_expect tests for parsing and round-tripping via printer.
Oderiy/tests/miniml_tests.t Cram tests exercising REPL on sample programs/expressions.
Oderiy/tests/interpret_test.mli Expect-test module interface header.
Oderiy/tests/interpret_test.ml ppx_expect tests for evaluation and error cases.
Oderiy/tests/fix_factorial.miniml Sample MiniML program using manual fix combinator.
Oderiy/tests/fibonacci.miniml Sample MiniML fibonacci program.
Oderiy/tests/factorial.miniml Sample MiniML factorial program.
Oderiy/tests/dune Test suite definitions (inline tests, cram, plus a qcheck_test executable).
Oderiy/tests/builtin_fix.miniml Sample MiniML program using built-in fix.
Oderiy/tests/.gitignore Ignores generated lam*.txt files under tests.
Oderiy/lib/print.mli Printer public API.
Oderiy/lib/print.ml AST pretty-printer implementation.
Oderiy/lib/parser.mli Parser public API/types.
Oderiy/lib/parser.ml Angstrom-based MiniML parser implementation.
Oderiy/lib/interpret.mli Interpreter public API/types.
Oderiy/lib/interpret.ml Interpreter implementation with environments, closures, and step counting.
Oderiy/lib/dune Dune library stanza for the mml library.
Oderiy/lib/ast.mli AST type definitions and operator set.
Oderiy/lib/ast.ml AST implementation (type definitions).
Oderiy/dune-project Dune project/package metadata and dependencies.
Oderiy/dune Global build flags configuration.
Oderiy/bin/dune Dune stanza for REPL executable.
Oderiy/bin/REPL.mli REPL module interface header.
Oderiy/bin/REPL.ml REPL entrypoint reading stdin and executing parse_and_run.
Oderiy/Oderiy.opam.template OPAM template with pin-depends note.
Oderiy/Oderiy.opam Generated OPAM file for the package.
Oderiy/Makefile Developer workflow targets (build/test/fmt/lint/coverage/etc.).
Oderiy/COPYING.LESSER LGPLv3 license text.
Oderiy/COPYING.CC0 CC0 license text.
Oderiy/COPYING GPLv3 license text.
Oderiy/.zanuda Zanuda configuration.
Oderiy/.ocamlformat ocamlformat configuration.
Oderiy/.gitignore Repo ignore rules for build artifacts and tooling.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Oderiy/tests/qcheck_test.ml Outdated
Comment thread Oderiy/Makefile
Comment thread Oderiy/Makefile
Comment thread Oderiy/lib/print.ml
Comment thread Oderiy/lib/interpret.mli
Comment thread Oderiy/lib/ast.mli
Comment thread Oderiy/lib/parser.ml
Comment thread Oderiy/tests/dune Outdated
Comment thread Oderiy/tests/parser_test.ml
Comment thread Oderiy/Makefile Outdated
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zanuda-linter report

@Kakadu
Copy link
Copy Markdown
Owner

Kakadu commented Mar 1, 2026

От Qwen

image

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zanuda-linter report

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zanuda-linter report

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 7, 2026

Документация и тестовое покрытие (93.59%) должны скоро появиться.

https://kakadu.github.io/fp25/docs/Oderiy

https://kakadu.github.io/fp25/cov/Oderiy

2026-03-07 14:18

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zanuda-linter report

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 7, 2026

Linter report from 2026-03-07 14:19, for mini language Oderiy

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.

3 participants