ruby / ruby/rbs

Improve `rbs_hash_t`

Open
#2,583 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
2.2k
Forks
256
Avg merge
6d 17h
Merged PRs (30d)
37

Description

Contrary to the name, rbs_hash_t isn't actually a Hash table. It's actually a linked list that does linear searches on every get/set. This was a quick/dirty implementation to get started, but it can be improved.

Perhaps we should use st.c/st.h from Ruby?

Contributor guide

Open the contributing guide

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.

Research direction

Read Ruby's st.c and include/ruby/st.h to understand the hash-table implementation proposed in the issue, then locate the current rbs_hash_t implementation in RBS. Preserve the existing get/set behavior while replacing the linked-list linear searches with a hash table, and verify the relevant existing tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, ruby
Domain
tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.