Skip to content

Implement restricted-hash semantics - #1875

Merged
fglock merged 2 commits into
masterfrom
fix/restricted-hash-semantics
Oct 23, 2026
Merged

fglock merged 2 commits into
masterfrom
fix/restricted-hash-semantics

Conversation

@fglock

@fglock fglock commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • Enforce restricted hash keys for reads, writes, deletes, and hash assignment on both execution backends.
  • Implement lock_keys, unlock_keys, lock_keys_plus, individual value locks, whole-hash locks, and restriction inspection helpers.
  • Preserve all_keys output-array lvalues through prototype argument handling; make Internals::SvREADONLY report restricted hashes.
  • Add a 30-assertion unit test and update feature/module documentation.

Fixes #1502
Fixes #1172

Validation

  • prove src/test/resources/unit/hash_util_restricted_hash.t with system Perl
  • timeout 60 ./jperl src/test/resources/unit/hash_util_restricted_hash.t
  • timeout 60 ./jperl --interpreter src/test/resources/unit/hash_util_restricted_hash.t
  • nice -n 19 make — passed
  • make check-links — passed

fglock and others added 2 commits October 23, 2026 16:33
Implement restricted key access and Hash::Util key, value, and hash locks.
Add legal-key inspection and regression coverage for both execution backends.

Generated with [OpenAI Codex](https://openai.com/codex)
Co-Authored-By: OpenAI Codex <223556219+openai-codex[bot]@users.noreply.github.com>
Avoid fail-fast iteration while package roots and reachability are scanned
concurrently with shared-array mutation. Add a project-owned regression for
thread teardown during shared package-array updates.

Generated with [Codex](https://openai.com/codex)

Co-Authored-By: Codex <158243242+codex@users.noreply.github.com>
@fglock
fglock merged commit 1076e91 into master Oct 23, 2026
2 checks passed
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.

Implement Perl-compatible restricted-hash semantics Implement Hash::Util::lock_keys restricted hashes

1 participant