Seed Dict and Set

This changes Dict and Set to have a compilation depedent seed.
The seed is not exposed to userland in anyway.
This gets a much more DOS resistant Dict and Set with no cost.
This commit is contained in:
Brendan Hansknecht 2023-05-25 09:39:52 -07:00
parent 8ecbd8c071
commit b4c359588e
No known key found for this signature in database
GPG key ID: 0EA784685083E75B
11 changed files with 69 additions and 30 deletions

View file

@ -126,6 +126,7 @@ pub enum LowLevel {
BoxExpr,
UnboxExpr,
Unreachable,
DictPseudoSeed,
}
macro_rules! higher_order {
@ -345,4 +346,5 @@ map_symbol_to_lowlevel! {
Or <= BOOL_OR,
Not <= BOOL_NOT,
Unreachable <= LIST_UNREACHABLE,
DictPseudoSeed <= DICT_PSEUDO_SEED,
}

View file

@ -1463,6 +1463,7 @@ define_builtins! {
21 DICT_UPDATE: "update"
22 DICT_LIST_GET_UNSAFE: "listGetUnsafe"
23 DICT_PSEUDO_SEED: "pseudoSeed"
}
9 SET: "Set" => {
0 SET_SET: "Set" exposed_type=true // the Set.Set type alias