Repository navigation
Add experimental Scala 3 source scanner - #110
Merged
Merged
Conversation
aboisvert
force-pushed
the
scala3-scanner
branch
from
September 25, 2026 17:38
e00f63f to
cf0cf95
Compare
Groma architecture comparison
|
MrLesk
marked this pull request as ready for review
October 6, 2026 09:16
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an experimental Scala 3 scanner using Scalameta 4.17.3. Groma reads its selected
.scalafiles using a bundled parser and Java runtime, without installed Java, Scala, sbt, project dependencies, or a project build.The scanner reports declarations, source outlines, operations, and call-site evidence at original source locations. Extension methods keep their enclosing scope: top-level functions or members of the declaring type/object. Calls remain unresolved when syntax cannot prove their target. A parse/read error rejects the whole scan; the scanner does not skip failing files or emit duplicate-body fingerprints.
Source selection uses Groma's existing include/exclude lists, including custom source paths. Includes discovery, the existing five-host package assembly flow, upstream license notices, documentation, and a curated scanner component. The branch includes main through
0a75d08d, including the COBOL/NASM additions.Task: TASK-549 — Align the Scala scanner PR with current scanner contracts.
Validation:
bun run check: 781 passed, 51 existing optional skips, no failures.Real-project checks used the packaged scanner on macOS ARM64 with default source selection, empty homes and no language tools on PATH. All three pass scans, outlines, exact file inventory, repeated-observation equality and source-position consistency; all checkouts remain unchanged and clean.
The audit exposed omitted extension groups and a parser failure in Kyo. Commit
20668945fixes both and adds small regression fixtures; the same repository revisions were rerun without excluding the failing source.Platform CI for the fix commit passed on Linux, macOS, and Windows: run 37441097162. The earlier implementation passed Linux, macOS, and Windows CI. Architecture comparison is separately blocked before scanning by the repository's
actions/checkoutfork restriction inpull_request_target; no unsafe-checkout override was added.Merged as
4e984291d1478154e0f0bd974bfb7c2d81bbdce8. The five-platform package preparation run passed on that merged commit, including every host build and fresh-checkout check. Publishing jobs were skipped. The assembled npm tarball passed an offline npm install, the installed-package test without language tools, and npm publication dry run. The new npm package is@groma/scanner-scala@0.1.0; the complete 105.4 MB tarball is prepared and awaits owner login/approval for the first npm publication.