Hello,
While implementing srfi25 for bigloo, I experimented with using generic 
functions for the api and noticed that although you can have generics return 
non-bigloo types such as int64 the methods defined for that generic function 
always return boxed values. This is not a problem from a correctness 
perspective but it is a performance issue. For example in my scenario, the 
method was computing an int64 boxing it and then returning it to the generic 
function dispatcher which immediately unboxed it. Is there a way to remove this 
boxing/unboxing overhead?
A very simple example demonstrating this is below.

(module example   (export         (generic test o::base i::long)  
       (class base)       (class deriv::base))
   (main main))

(define-generic (test::int64 o::base i::long))
(define-method (test::int64 o::deriv i::long)    #s64:0)
(define (main args)    (print "result: " (test (instantiate::deriv) 0))

Thank You,Joe

Reply via email to