Skip to content

refactor!: remove moonlex and moonyacc from build system#1575

Open
peter-jerry-ye wants to merge 1 commit into
mainfrom
zihang/remove-lex-yacc
Open

refactor!: remove moonlex and moonyacc from build system#1575
peter-jerry-ye wants to merge 1 commit into
mainfrom
zihang/remove-lex-yacc

Conversation

@peter-jerry-ye

Copy link
Copy Markdown
Contributor

Summary

  • remove moonlex and moonyacc binary wiring and special RR prebuild nodes
  • stop recognizing .mbl/.mby as package source kinds
  • hard-break legacy lexer/parser files with an explicit discovery error and migration hint to pre-build
  • remove watch/test hooks and obsolete prebuild moonlex fixtures

Validation

  • cargo fmt
  • cargo check -p moon -p moonutil -p moonbuild-rupes-recta -p moonbuild-debug
  • cargo test -p moonutil watch_relevant_project_file_covers_sources_and_manifests
  • cargo test -p moonutil package_source_file_kind_detects_supported_package_inputs
  • cargo test -p moon rerun_triggered_for_moon_pkg_dsl
  • cargo test -p moon rr_get_prebuild_watch_paths_collects_inputs_and_outputs
  • cargo test -p moon --test mod --no-run

@semanticdiff-com

semanticdiff-com Bot commented Mar 27, 2026

Copy link
Copy Markdown

Review changes with  SemanticDiff

Changed Files
File Status
  crates/moon/tests/test_cases/mod.rs  17% smaller
  crates/moonbuild-rupes-recta/src/model.rs  9% smaller
  crates/moonbuild-rupes-recta/src/build_plan/builders.rs  9% smaller
  crates/moonutil/src/common.rs  1% smaller
  crates/moon/src/watch/mod.rs  0% smaller
  crates/moon/src/watch/prebuild_output.rs  0% smaller
  crates/moon/tests/test_cases/prebuild/mod.rs  0% smaller
  crates/moon/tests/test_cases/prebuild/moonlex/.gitignore Unsupported file format
  crates/moon/tests/test_cases/prebuild/moonlex/README.md Unsupported file format
  crates/moon/tests/test_cases/prebuild/moonlex/moon.mod.json  0% smaller
  crates/moon/tests/test_cases/prebuild/moonlex/src/main/fortytwolexer.mbl Unsupported file format
  crates/moon/tests/test_cases/prebuild/moonlex/src/main/main.mbt Unsupported file format
  crates/moon/tests/test_cases/prebuild/moonlex/src/main/moon.pkg.json  0% smaller
  crates/moonbuild-rupes-recta/src/build_lower/context.rs  0% smaller
  crates/moonbuild-rupes-recta/src/build_lower/lower_aux.rs  0% smaller
  crates/moonbuild-rupes-recta/src/build_plan/constructor.rs  0% smaller
  crates/moonbuild-rupes-recta/src/discover/mod.rs  0% smaller
  crates/moonbuild-rupes-recta/src/discover/model.rs  0% smaller
  crates/moonbuild-rupes-recta/src/discover/synth.rs  0% smaller
  crates/moonbuild-rupes-recta/src/util.rs  0% smaller
  crates/moonutil/src/binaries.rs  0% smaller

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7b23304799

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 127 to 130
} else if filename.ends_with(DOT_MBTP) {
Some(PackageSourceFileKind::Mbtp)
} else if filename.ends_with(DOT_MBL) {
Some(PackageSourceFileKind::Mbl)
} else if filename.ends_with(DOT_MBY) {
Some(PackageSourceFileKind::Mby)
} else {
None

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep legacy extensions watch-relevant in watch mode

Returning None for .mbl/.mby here makes is_watch_relevant_project_file ignore those files, while discovery now hard-fails with UnsupportedLegacyGeneratedSource when they exist. In moon --watch, adding a legacy file after a successful run will not trigger a rerun, so the watch session can keep showing stale success until another relevant file changes. That hides a real build-breaking state and undermines the intended immediate deprecation signal.

Useful? React with 👍 / 👎.

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.

1 participant