Ayke van Laethem
4dfc289ae5
compiler,runtime: support operations on nil map
...
The index expression and delete keyword are valid on nil maps, so the
runtime must be modified to support this.
2020-02-26 20:42:01 +01:00
Ayke van Laethem
0d34f933eb
compiler,runtime: implement maps for arbitrary keys
...
This implementation simply casts types without special support to an
interface, to make the implementation simpler and possibly reducing the
code size too. It will likely be slower than the canonical Go
implementation though (which builds special compare and hash functions
at compile time).
2020-01-27 08:27:14 +01:00
Ayke van Laethem
763b9d7d10
runtime: implement growing hashmaps
...
Add support for growing hashmaps beyond their initial size.
2019-05-14 09:59:00 +02:00
Ayke van Laethem
55fc7b904a
compiler,runtime: use the size hint when creating a new map
...
It defaults to hint/8 number of buckets. This number may be tuned in the
future.
2019-05-14 09:59:00 +02:00
Konstantin Yegupov
504c82a0e7
compiler: support for byte arrays as keys in maps
2019-01-31 16:35:22 +01:00
Konstantin Yegupov
f8a1e5f449
interp: support map literals with integer keys
2019-01-31 16:34:59 +01:00
Ayke van Laethem
436901dc49
compiler: implement operations on nil hashmaps
...
* comparing a map against nil
* getting the length of a nil map
2018-10-27 00:57:37 +02:00
Ayke van Laethem
7c2a6169b0
compiler: support comma-ok in map lookup
2018-10-20 17:54:16 +02:00
Ayke van Laethem
c0c1ccb381
compiler, runtime: implement delete builtin
2018-10-20 16:18:55 +02:00
Ayke van Laethem
0ed00bf6c6
test: add hashmap tests
...
Hashmaps are still very primitive. These tests check that there are at
least no regressions in hashmap support.
2018-10-10 14:11:15 +02:00