Skip to content
This repository has been archived by the owner on Mar 15, 2019. It is now read-only.

Beyond v0.1 #2

Open
2 of 11 tasks
mna opened this issue Jun 22, 2013 · 0 comments
Open
2 of 11 tasks

Beyond v0.1 #2

mna opened this issue Jun 22, 2013 · 0 comments

Comments

@mna
Copy link
Owner

mna commented Jun 22, 2013

  • Built-in or keyword to get type of variable's value (a.(type) would be nice) is conv.Type(val)
  • 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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant