brianfeaster / worldtm

Automatically exported from code.google.com/p/worldtm
0 stars 0 forks source link

Error handling #28

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
comp.c::compVectorVectorRef needs argument count checks.

Evaluating (make-vector-vector 20) halts with a cryptic message ERROR::(9a30b 
9a30b).

The following class definition has semantic errors which, when cause an 
exception as column defaults to null.  The error reported should report the 
variable along with its environment hierarchy in a useful manner.
(define (Class)
  (define (column) ...)
  (define (fun)
    ; Since letrec, call to column is really a
    ; call to undefined letrec var.
    (letrec ((column (column)))...)))

Original issue reported on code.google.com by bri...@gmail.com on 9 Feb 2011 at 1:38

GoogleCodeExporter commented 9 years ago
(make-vector -1) will crash.  The function should catch invalid sizes.

Original comment by bri...@gmail.com on 12 Feb 2011 at 8:05

GoogleCodeExporter commented 9 years ago
(append) => (MSG: 41d748 41d748)

Original comment by bri...@gmail.com on 18 Feb 2011 at 5:45

GoogleCodeExporter commented 9 years ago
The extra arguments passed to a function are silently ignored.
((lambda (x) x) 1 2) => 1

compLambdaBody() needs to identify dotted argument lists.  If the argument list 
is lacking the "rest" symbol then it should emit code to error if the 
"restList" is not null.

Original comment by bri...@gmail.com on 25 Feb 2011 at 8:56

GoogleCodeExporter commented 9 years ago

Original comment by bri...@gmail.com on 7 Apr 2011 at 9:57

GoogleCodeExporter commented 9 years ago
Both compile time and runtime errors are caught and handled gracefully.  An 
exception handling system is in place which includes for each thread a 
redefinable exception handler who's default behavior will display the passed 
argument and then unthread.  The internal error handling code keeps track of 
and packages up the compile time static expression hierarchy along with an 
explanation for the thread's exception handler.

Original comment by bri...@gmail.com on 30 Oct 2011 at 8:19

GoogleCodeExporter commented 9 years ago
Re-opening to track an assembler enhancement:

Code blocks generated by the assembler module to not directly or indirectly 
keep track of the source expressions used to generate the code block.  
Assembled error handling code keeps track of the source expressions but this is 
haphazard and hard coded for each error case.

The code block should be augmented to include associations between assembly 
opcode position and original source expressions.  This will be used by a 
generic run time error reporting facility to easily scan and determine the 
related scheme expression where the code block faulted.

Original comment by bri...@gmail.com on 6 Feb 2012 at 6:34