hello,
just for a try (trying to get more SRFI compatibility with bigloo ) i want
to change the arity of the error procedure in bigloo,
i succeed in making run at toplevel,
but when compiled it fail back to the old
behavior

i modify error.scm in runtime/Llib

like this to :
i want to bypass the 3 arg bigloo limitation with avriable number of args:
so here is my modification in export part:
(error ::obj ::obj ::obj . obj)

and in definition:

;*---------------------------------------------------------------------*/

;*    error ...
*/

;*---------------------------------------------------------------------*/

(define (error proc msg obj . more-obj)
   (raise
      (instantiate::&error
         (proc proc)
         (msg msg)
         (obj obj))))

this works at toplevel:

1:=> (error 1 2 3)
*** ERROR:1:
2 -- 3
1:=> (error 1 2 3 4)
*** ERROR:1:
2 -- 3
1:=> (error 1 2 3 4 5)
*** ERROR:1:

but not when compiled from a file:

File "BiglooCode.scm", line 497, character 21308:
#    (error "vas y plante!" 2 3 4 5)
#    ^
*** ERROR:ResultatMesuresF
Illegal application: 3 arg(s) expected, 5 provided -- (error vas y plante!
2 3 4 5)
1 error occured, ending ...
make: *** [BiglooCode.class] Error 255

i suppose i didnot hack enought the bigloo system , it has a feature that
check at compile time the good number of arguments even if my error
function now support more than 3 args it fails to compile the code,where is
this feature coded in bigloo?
Manuel perheaps have you time to answer me?
of course it is not perhaps a good idea to do that , and i have other way
to use SRFI -  like feature in bigloo
regards,
damien

Reply via email to