Skip to content

Small pre-release cleanup - #155

Merged
mcculls merged 4 commits into
mainfrom
mcculls/prerelease-cleanup
Oct 29, 2026
Merged

mcculls merged 4 commits into
mainfrom
mcculls/prerelease-cleanup

Conversation

@mcculls

@mcculls mcculls commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator

What Does This Do

Small pre-release cleanups:

  • Restore short-circuit evaluation of class-name filter character checks.
  • Avoid allocating an extra return-descriptor suffix when constructing method matchers, while preserving exact return-type matching.
  • Align InternalNames construction with its lookup logic and assign the completed tables to final fields.
  • Use the literal 4096 for the trie long-jump table limit.

Motivation

Reduce avoidable work and simplify internal code ahead of the release.

Additional Notes

Validation: ./gradlew check (tests on Java 8, 11, 17, 21, and 25, Spotless, and SpotBugs); git diff --check.

Contributor Checklist

  • No Jira ticket provided.

@mcculls
mcculls marked this pull request as ready for review October 29, 2026 13:20
@mcculls
mcculls requested a review from a team as a code owner October 29, 2026 13:20
@mcculls
mcculls requested review from bric3 and removed request for a team October 29, 2026 13:20

@bric3 bric3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good cleanup, and improvement, indeed I prefer assigning values after their "assembly" in the for loop.

Also, why not using as 0xF000 as literla value (pure nitpick).

@mcculls

mcculls commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator Author

Also, why not using as 0xF000 as literla value (pure nitpick).

MAX_LONG_JUMPS is used for counting purposes, so it uses a decimal value of 4096 rather than 0x1000

Whereas LONG_JUMP_MARKER is used for bit operations so it uses 0xF000

Also note that LONG_JUMP_MARKER deliberately uses a series of bits, rather than just a single bit because that way we can maximise the boundary at which point a jump needs to become a long jump and gets stored in a table. In this case jumps can go all the way up to 61439 (0xEFFF) before they are categorised as long jumps. But this then means that the long-jump id, once the marker is removed, only allows 4096 long jumps (including the zero id).

Given the typical contents stored in a trie, we're more likely to have a few long jumps so the design deliberately tunes for that scenario.

@mcculls
mcculls merged commit b91c8b1 into main Oct 29, 2026
6 checks passed
@mcculls
mcculls deleted the mcculls/prerelease-cleanup branch October 29, 2026 16:51
@github-actions github-actions Bot added this to the 0.1.0 milestone Oct 29, 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.

2 participants