Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

perf: generic own-presence probe for unknown-layout receivers (fastify +1.22%, named-array map) after step 7

Open
#12,607 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
14/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
rust, typescript

Research direction

Start with the own-method and species presence probe on named arrays, and with shaped_symbols::entry and scan_object_fields in the copying nursery, which the issue names as the hot spots. The referenced report and micro benchmark (step7-v5.ts) are needed to reproduce the cost, and they may not be reachable from outside the author's machine. Done means one shape-based presence check that brings the named-array map row and the fastify inject row down without adding a second code path.

Written by the indexing model from the issue text.

Description

Follow-up from object model step 7: a generic own-presence probe for receivers whose layout isn't known statically.

Step 7 (named array properties in a layout) leaves two measured costs, both from the same mechanism. A receiver whose layout isn't known statically pays a full own-method/species presence probe:

  • fastify inject +1.22% instructions vs main: symbol-property dispatch (shaped_symbols::entry) and the named pointer on many short-lived arrays (scan_object_fields in the copying nursery). There are 0 full collections in both arms.
  • named-array map +17.6% vs plain in the per-array micro (step7-v5.ts). It is still −78.7% vs main. The cost is the own-method and species presence probes on the named array.

The fix must be one generic presence check that reads the layout (shape) and nothing else: no cache, no latch, no name check. It should bring both rows down without a second path.

Evidence: qb6 /root/claude-lanes/step7fin2-REPORT.md and step7fin2-results (profiles and diffs retained).

Dominant language
Rust
Stars
4.9k
Forks
166
Avg merge
1h 19m
Merged PRs (30d)
913

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PerryTS/perry

All issues in PerryTS/perry

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.