Beyond v0.1
- [x] Built-in or keyword to get type of variable's value ~~(
a.(type)would be nice)~~ is conv.Type(val) - [x] Decide what to do with numbers (most probably keep only Float)
v0.2? ~~Short-circuiting && and ||~~ ~~Support func(){}() syntax (anonymous immediately-invoked func expression)~~ ~~Closures (even required for simple cases like calling a func declared in the module, because the module itself is a function, so it needs to close over those funcs - see 46-json.agora)~~ ~~Coroutines support~~ ~~Range over whatever (for ... := range) using coroutine (range prepares the coro for execution and iterates it)~~
v0.3?
~~Prototype/metamethods support, get inspiration from Lua (http://tylerneylon.com/a/learn-lua/) or JS or a more Go-like approach using embed or something?~~
~~Review the this behaviour~~
~~Literal array notation, created as Object (like Lua)
i.e. ar := [10, "test", false]~~
~~Comma-separated lists in assignment statements (:=, = only)~~
~~switch statement~~
~~multiple return values~~
Beyond?
- [ ] Provide an
implementsbuilt-in to check if an object provides the required fields? Kind of built-in duck-typing, a-la my implements.js library? - [ ] Remove the need for
return nilto be added by the parser? - [ ] Much better compiler error messages
- [ ] Better errors in general (VM)
- [ ] Check limits (i.e. 2^48 for instruction's value, etc.)
- [ ] Refactor compiler
- [ ] REPL
- [ ] Optimizations
- [ ] Debugger