-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathtodo.txt
22 lines (20 loc) · 1.56 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- Optimise `parser:mplus/2` combinator in a such a way that it would not produce unnecessary `case` clauses
(when one of the parsers cannot fail or succeed, for example)
this should reduce the amount of generated code and speed up parsing
- Speed up compilation of `decode` parsers
It is obviously much slower than it should be.
Even considering the amout of code it currently generates it should not be so slow
First thing to check is why `parsers:lift/1` function slows down compilation so severely
- Add "atom conversion" option - similar to "field name conversion"
- Reduce (eliminate) dialyzer warnings
(some of the will go away once `mplus` combinator is optimised)
- Generate more concise errors in `jsonrec_decode` parsers
- [optimisation] Get rid of lists:filter in parsers:object/1 (optimisation)
- [optimisation] Get rid of 'begin end' block in generated by `jsonrec_encode:loop/3` code
- Add options for defining for `encode/decode` should treat `undefined` field value:
Should `encode` omit such fields (as it does now) or should it output `null` as a value
Should `decode` set omitted field to `undefined` or default value (as it does now) or should it generate error
- Add support for do-style monad syntax via list comprehension and reqrite all `bind`-based definitions with it
- Move common function in `jsonrec_encode` and `jsonrec_decode` to `jsonrec`
also get rid of old code (like `CodeFun` var) left from the times when both encode and decode functionality were encoded in single `jsonrec` module
- Add `jsonrec:datetime_to_binary` and reverse functions