Repository navigation
Feat: Package-relative source paths and a structured 'why no C' report - #133
Merged
Merged
Conversation
This was referenced Oct 3, 2026
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.
Closes #112
Closes #128
Features added
compile_projectpasses it, andcompile_module(project_root=None)defaults to the source's directory, so only the file name is embedded. Compiling the same project from two different absolute roots gives byte-identical C.ModuleResultgainskind(compiled,nothing_compiled,not_marked) andskipped_items: list[SkippedItem(name, file, line | None, message)], the shape pypackpack Desktop: ship the stdlib with a packaged app (jar/jpackage), not only via PYTHONHOME for Gradle tasks #60'sNotNativeModuleconsumes.python -m typedpython buildprintsfile:line: name: messageper item, and one line for a module not marked for compilation.ModuleResult.skippedis unchanged, so existing callers keep working.Behaviour change
incremental.pydocstring says so.Design note
ir.Module.skippedstaysdict[str, str], because the interface hash reads its keys. The structure is built in the pipeline: the front end'sline N:prefix is parsed off, and verifier skips take the function's first diagnostic line.Tests added
test_module_report.py: all 13 failed before the implementation.Verification (local, macOS arm64): full TypedPython suite, 947 passed, 3 skipped, EXIT=0. The later merge of develop touched no file under python-multiplatform-ksp.