diff options
Diffstat (limited to '079table.mu')
-rw-r--r-- | 079table.mu | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/079table.mu b/079table.mu index 9040f6ce..40b3ff34 100644 --- a/079table.mu +++ b/079table.mu @@ -3,9 +3,9 @@ scenario table-read-write [ run [ - 1:address:shared:table:number:number <- new-table 30 - put 1:address:shared:table:number:number, 12, 34 - 2:number <- index 1:address:shared:table:number:number, 12 + 1:address:table:number:number <- new-table 30 + put 1:address:table:number:number, 12, 34 + 2:number <- index 1:address:table:number:number, 12 ] memory-should-contain [ 2 <- 34 @@ -14,10 +14,10 @@ scenario table-read-write [ scenario table-read-write-non-integer [ run [ - 1:address:shared:array:character <- new [abc def] - {2: (address shared table (address shared array character) number)} <- new-table 30 - put {2: (address shared table (address shared array character) number)}, 1:address:shared:array:character, 34 - 3:number <- index {2: (address shared table (address shared array character) number)}, 1:address:shared:array:character + 1:address:array:character <- new [abc def] + {2: (address table (address array character) number)} <- new-table 30 + put {2: (address table (address array character) number)}, 1:address:array:character, 34 + 3:number <- index {2: (address table (address array character) number)}, 1:address:array:character ] memory-should-contain [ 3 <- 34 @@ -27,7 +27,7 @@ scenario table-read-write-non-integer [ container table:_key:_value [ length:number capacity:number - data:address:shared:array:table_row:_key:_value + data:address:array:table_row:_key:_value ] container table_row:_key:_value [ @@ -36,15 +36,15 @@ container table_row:_key:_value [ value:_value ] -def new-table capacity:number -> result:address:shared:table:_key:_value [ +def new-table capacity:number -> result:address:table:_key:_value [ local-scope load-ingredients result <- new {(table _key _value): type} - data:address:shared:array:table_row:_key:_value <- new {(table_row _key _value): type}, capacity + data:address:array:table_row:_key:_value <- new {(table_row _key _value): type}, capacity *result <- merge 0/length, capacity, data ] -def put table:address:shared:table:_key:_value, key:_key, value:_value -> table:address:shared:table:_key:_value [ +def put table:address:table:_key:_value, key:_key, value:_value -> table:address:table:_key:_value [ local-scope load-ingredients hash:number <- hash key @@ -52,7 +52,7 @@ def put table:address:shared:table:_key:_value, key:_key, value:_value -> table: capacity:number <- get *table, capacity:offset _, hash <- divide-with-remainder hash, capacity hash <- abs hash # in case hash overflows into a negative integer - table-data:address:shared:array:table_row:_key:_value <- get *table, data:offset + table-data:address:array:table_row:_key:_value <- get *table, data:offset x:table_row:_key:_value <- index *table-data, hash occupied?:boolean <- get x, occupied?:offset not-occupied?:boolean <- not occupied?:boolean @@ -69,7 +69,7 @@ def abs n:number -> result:number [ result <- multiply n, -1 ] -def index table:address:shared:table:_key:_value, key:_key -> result:_value [ +def index table:address:table:_key:_value, key:_key -> result:_value [ local-scope load-ingredients hash:number <- hash key @@ -77,7 +77,7 @@ def index table:address:shared:table:_key:_value, key:_key -> result:_value [ capacity:number <- get *table, capacity:offset _, hash <- divide-with-remainder hash, capacity hash <- abs hash # in case hash overflows into a negative integer - table-data:address:shared:array:table_row:_key:_value <- get *table, data:offset + table-data:address:array:table_row:_key:_value <- get *table, data:offset x:table_row:_key:_value <- index *table-data, hash occupied?:boolean <- get x, occupied?:offset assert occupied?, [can't handle missing elements yet] |