This commit is contained in:
Justin Ethier 2015-07-22 22:50:42 -04:00
parent cbb175d477
commit 9f72e6699d

26
TODO
View file

@ -14,21 +14,13 @@ Working TODO list:
- improved error handling:
- param count checks
* should have checks in compiler as well. could possibly
use prim metadata to autogenerate the runtime checks (later, perhaps).
absolutely need this, but may require some thought. which phase should
do the checks? also may require looking at lib files because you need
to check each application point, and need to look up the function to
see how many args it can receive.
is what we have now robust enough to prevent segfaults?
- type checking
ideally want to do this in a way that minimizes performance impacts.
will probaby require extensive checks within apply() though, since that
all happens at runtime.
- error checking
need errors for things such as file not existing, to bullet-proof the runtime
some things to check for - file not found, divide by zero. what else?
without these, it will be impossible (or at least time-consuming) to debug issues going forward
2) Need to either allow code to read an import after macro expansion, or have another main module for self-hosting
@ -85,12 +77,14 @@ Working TODO list:
http://www.pvk.ca/Blog/2012/02/19/fixed-points-and-strike-mandates/
- Error handling
need to perform much more error handling of input code. one of the biggest is to report if a function is passed the wrong number of arguments, as this will result in segfauls, bad transport errors, etc downstream if it is allowed.
idea: set num_args and var_args in closure types. then can modify apply() to
check that the right number of args is provided for closure types. don't want to check
numargs all the time, especially for compiled code. but this seems like a good compromise.
- FUTURE error handling
- param count checks
* should have checks in compiler as well. could possibly
use prim metadata to autogenerate the runtime checks (later, perhaps).
absolutely need this, but may require some thought. which phase should
do the checks? also may require looking at lib files because you need
to check each application point, and need to look up the function to
see how many args it can receive.
- Add unit tests for exception handlers, and new constructs added to lib