nature
nature copied to clipboard
TODO
- [x] #141
- [ ] Triple operator grammar support
- [ ] Enum grammar support
- [ ] struct label for json serialize
- [ ] Delete the temporary build directory after the build is completed
- [ ] Add the -vv parameter to display the build log
- [x] Build the compiler source code using zig @wzzc-dev
- [ ] The linker of nature attempts to call the zig ld implementation
- [x] tcp/udp standard library implementation
- [x] request annotation library implementation
- [x] json standard library implementation
- [ ] Default nature_root search path optimization, implemented based on exe pwd
- [ ] The ident in the code error prompt uses the `` tag instead of the ''
- [ ] lsp Test method and test cases
- [ ] lsp bug, Structure defaults not detected
- [x] lsp Add code prompt
- [ ] Iterator refactoring
- [ ] lsp Symbol table exception when changing file name.
- [x] Type conversion is optimized inline and now calls the c code
- [x] riscv64 support
- [x] sqlite example
- [x] mysql example
- [x] for in index + struct failed
- [x] Backquotes(``) don't do string escaping, And can support multi-line strings
- [ ] Add gc switch, because some short-term applications do not care about memory loss, such as compilers, transcoders, etc.
- [ ] riscv64 generation volume optimization
- [ ] panic catch need optimization
- [ ] jit closure has performance bottlenecks, try using the traditional closure solution
- [ ] var func = foo.test, If test is an extension of foo, it cannot be assigned
- [ ] struct instantiation for quick assignment, example
var a = addr{ip, port} - [ ] std library log
- [x] ~~Introduce libuv source code and perform static compilation based on cmake~~
- [x] Standard library document format specification template
- [ ] fn extend generic support
fn request<T>.json<U>(T b)?fn request.json<T>(T b)? - [ ] std json support ptr<T>
- [ ] libarchive reference conflict. e.g. A -> B -> C(libsqlite_0.1.a),A -> D -> E(libsqlite_0.2.a)
- [ ] wasm basic support
- [ ] apt + brew install
- [ ] Added lir error handle command instead of calling call directly to cause register spills.
- [ ] match/catch last stmt auto ret
- [ ] fn extend reactor, Perhaps a pattern like
fn ptr<person_t>.test():?self type?is needed, or optimize the default behavior instead of performing unanticipated escape analysis - [ ] The impl fn of int/int64, uint/uint64, float/float64 need to be defined repeatedly, and can be converted to string for unified processing.
- [x] When p is of type struct struct, it needs to be called via @sla(p).test() or @ula(p).test() with impl fn. But it might be possible to optimize the relevant case by making an automatic sla call when pointers to p need to be processed concurrently via escape analysis.
- [ ] When multiple coroutines crash at the same time, the concurrent error message printing is messed up and should only output a stack trace of the crash