diff --git a/TODO b/TODO index d89910f8..523ebc74 100644 --- a/TODO +++ b/TODO @@ -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