-
Notifications
You must be signed in to change notification settings - Fork 115
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: - [x] raw table implementation with common specializations - [x] use symbolic tables in keyword-dispatch - [x] use symbolic tables in the mop - [x] bring interfaces into the core - [x] HashTable interface and implementation of hash-* primitives with it - [x] fix tests Follow Up: - [ ] implement interface method specializations now that they are in the core
- Loading branch information
Showing
155 changed files
with
108,279 additions
and
95,159 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
src/bootstrap/** linguist-generated |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.