TODO list
- [x] xxhash for primitive types ref https://github.com/jungomi/xxhash-wasm
- [x] linked hashmap which preserve insertion order when iteration
- [x] immut/ordered_map
- [x] immut/hashset
- [x] add as_iter for each data structure
- [ ] coverage > 95%
- [x] map
- [x] set
- [x] hashmap
- [x] hashset
- [x] efficient hash function for built in type
- [x] json
- [x] json5 // this may be a good example to showcase moonbit's perf over handwritten js
- [x] mutable map // mutable map
- [x] mutable set
- [x] array missing method
- [x] sort
- [x] stable sort
- [ ] README.md for each package
- [x] random
- [x] strconv
- [ ] move most builtin utilities to its belonged package
- [x] float ryu
- [x] buffer
- [x] rational
- [x] bigint
- [x] persistent vector
How about adding BinaryHeap👀
@DiamondMofeng contributions are welcome
Just created a PR for sort https://github.com/moonbitlang/core/pull/72
#53 implemented some basic operations for the tree-based map. Some methods are still missing:
- [ ]
filter,map,map_with_key,fold,iteri - [ ] Extraction methods like
elems,keys,to_vec,to_array - [ ]
(Map,Map) -> Mapmethods likeunion,difference,intersection
- [x]
reserve_capacityandshrink_to_fitfor vector/deque
- [x] time api (may be an API similar to Java with
LocalDateLocalTimeLocalDateTimeandZonedDateTime
stable sort #225
Another reference for the time API: https://docs.edgedb.com/database/stdlib/datetime
If I want to claim a task you listed above, I need to read all the PRs and judge which task is been reviewing now. Also, I don't know which task has been already started by someone locally. So I suggest that all the tasks should have their own issues (so that the developers can assign them clearly) and link them in this issue. For example ( json and json5)
- [ ] json Its issue Its PR
- [ ] json5 Its issue Its PR
For full coverage, we need to resolve an issue mentioned in #223, i.e., unreachable statements for exhaustiveness of pattern matching shouldn't be counted towards missing coverage.
好像并没有如何debug源码的介绍?感觉这个功能还是蛮重要的 😀