problem with telnet server

jason songhurst jason.songhurst@valtech.com
Fri Dec 20 10:36:00 GMT 2002


kawa does the same thing with one line:
   (define (f n) (f))


neither of these examples should run in any scheme, because they make 
calls that have the wrong number of arguments.   however in some other 
interpreted schemes (SCM, Bigloo, MzScheme) they croak when evaluated, 
not when defined.


it seems like when kawa tries to compile these expressions, the bytecode 
emitter throws a NullPointerException and no one catches the exception 
and the JVM shuts down...

   oddly, it doesn't happen with mutually recursive functions:
      (define (f n) n)
      (define (g) (f))

   these eval just fine and when g is applied, a runtime exception
   is thrown and you find yourself back at the REPL.


this probably shouldn't kill kawa.  but for now it does.

luckily, there is a simple workaround -- match the number of arguments 
in a definition and a call.

good luck,

jason




Pinte_Stanislas@emc.com wrote:
> hello,
> 
> using the kawa telnet client, I think there is a bug somewhere...
> 
> when you evaluate the following expressions in a telnet window, the kawa
> process crashes the JVM
> 
> 
> (define (append-tab string)
>   (string-append string "\t"))
> 
> (define (get-line start values line end)
>   (if (empty? values)
>       (string-append (append-tab (string-append start line)) end)
>       (get-line (cdr values)
> 		     (string-append (append-tab line) (car values)))))
> 
> any idea why?
> 
> thanks a lot,
> 
> Stan.
> 
> 
> Stanislas Pinte - Associate Software Engineer.
> 
> Phone: +32-(0)15-401.371 
> Fax: +32-(0)15-401.400
> Address: Schaliënhoevedreef 20i, B-2800 Mechelen, Belgium
> 




More information about the Kawa mailing list