Skip to content

CI/CD, cleanup, type refinement round#14

Merged
wolfy-j merged 10 commits intomainfrom
feature/cleanup
Feb 10, 2026
Merged

CI/CD, cleanup, type refinement round#14
wolfy-j merged 10 commits intomainfrom
feature/cleanup

Conversation

@wolfy-j
Copy link
Contributor

@wolfy-j wolfy-j commented Feb 10, 2026

This pull request introduces several improvements and new features across code quality, correctness, and CI/CD infrastructure. The most significant changes include the addition of a comprehensive CI workflow, enhancements to function parameter handling in the control flow graph (CFG), and improvements to error metadata extraction and propagation. The update also includes a detailed engineering journal documenting the debugging and verification process.

Continuous Integration and Quality:

  • Added a new GitHub Actions workflow .github/workflows/ci.yml that runs linting, tests (on Ubuntu and Windows), and race condition checks with explicit Go caching to ensure consistent CI results.
  • Updated .gitignore to allow tracking of .github/** so workflow files can be committed.

Function Parameter Handling and CFG Improvements:

  • Introduced the ParamSlot struct and ParamSlots() method in compiler/cfg/params.go to provide a canonical parameter layout for function graphs, accurately handling implicit method receivers (self) and preserving type annotations.
  • Added a regression test TestGraph_ParamSlots_ImplicitSelfMethod in compiler/cfg/graph_test.go to verify correct handling of implicit self parameters and their type annotations.
  • Improved call information extraction in compiler/cfg/nodeinfo.go by enhancing static receiver and field path handling, ensuring more accurate callee name resolution and argument mapping. [1] [2] [3] [4]

Error Metadata Extraction and Propagation:

  • Documented and clarified error metadata extraction in the README.md, including usage of ConfigureErrorMetadataExtractor and WrapErrorWithMetadata for robust error handling.

Type Information Propagation:

  • Ensured that type information is propagated to nested protos during bytecode undumping and compilation by using SetTypeInfo in both compiler/bytecode/bytecode.go and compile_options.go. [1] [2]

Engineering Process and Verification:

  • Added a detailed engineering journal in JOURNAL.md documenting debugging, regression testing, and verification steps taken during this work, including rationale for changes and verification of soundness and convergence in type checking.

@wolfy-j wolfy-j merged commit 151cf84 into main Feb 10, 2026
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