- Sufficient documentation for easy learning and usage of Noodle
- Larger suite of acceptance tests
- Rewrite parser (and possibly scanner as well) to be in C, using bison or PyBison. Bison is much more powerful, faster, etc., makes it simpler to define and handle error conditions, and won't require GPL code to be distributed with Noodle as does PLY. (I plan to release Noodle under an MIT/X11-style license)
- Errors from scanner should indicate position in text
- Class docstrings
- Disallow some code arrangements that will make the Python VM upset-
- No using unqualified 'exec' when there are any cell or free variables
- No using import-all-from (like "from foo import *") except at the module level
- Macro called get-module which will be used to implement "import foo as bar" functionality
- Conditionals in for loops (including list comprehensions and generator expressions): (for (foo in bar if baz) do-something)
- Consider adding syntax for what I call Python's multidimensional for loops (no idea what they're really called): i.e.,
[t for foo in bar for t in foo]
- Function argument unpacking, as when a function is declared with tuples in the argument list: i.e.,
(define (my-function foo (bar (baz bonk) boom))
function-body) - Define builtin functions to complement certain builtin macros; especially those which might be useful to pass to map, filter, etc, or might need to accept *varargs arguments. For example, the + macro.
- Fix a bug with nested quasiquote calls
- Add a syntax for the functionality offered by Python's print chevron
- Tweaks to the Vim syntax-highlighting definition
Most of these are fairly simple and won't take much time. Of course everything depends on available time, but I'm planning on an initial public release June 1st.

0 comments:
Post a Comment