agora icon indicating copy to clipboard operation
agora copied to clipboard

Beyond v0.1

Open mna opened this issue 12 years ago • 0 comments

  • [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 implements built-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 nil to 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

mna avatar Jun 22 '13 15:06 mna