mighty-gerbils / gerbil

Gerbil Scheme
https://cons.io
GNU Lesser General Public License v2.1
1.15k stars 111 forks source link

Hash Table interfaces #1123

Closed vyzo closed 7 months ago

vyzo commented 7 months ago

This brings hash table interfaces to the runtime, with native (specializable) implementations using open addressing and quadratic probing. The impetus for implementing gerbil-native hash tables is SMP read-safety and the ability to internally wrap mutexes/(fail-fast-)read-write-locks if the user so desires. The problem stems from the lazy rehashing in gambit native hash tables, which means a read can actually write, which can lead to disaster at so many fronts as concurrent reads can crash in SMP. Bonus points increased performance, from better locality.

Work Items:

Follow Up:

netlify[bot] commented 7 months ago

Deploy Preview for elastic-ritchie-8f47f9 ready!

Name Link
Latest commit 871595e8ef12a5c4df7f22b58ec6ebd7b4fdcfb4
Latest deploy log https://app.netlify.com/sites/elastic-ritchie-8f47f9/deploys/65d3a9083258d700086a86c6
Deploy Preview https://deploy-preview-1123--elastic-ritchie-8f47f9.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

vyzo commented 7 months ago

there is still quite a bit of work here, I want to pull interfaces in core to implement the hash- zoo with a HashTable interface.