19 Jui
2013
19 Jui
'13
13:40
For anyone interested, on a 64bit installation: f.scm contains: (define (proc arg) (list 'proc-got-arg: arg)) $ gsc Gambit v4.6.9
(compile-file "f.scm") (load "f.o1") (proc (##encoding->object #xffffffffffffffea)) (proc-got-arg: #<absent>)
(define (proc arg) (list 'proc-got-arg: arg)) (proc (##encoding->object #xffffffffffffffea)) *** ERROR IN (console)@4.1 -- Wrong number of arguments passed to procedure (proc) 1>
In interpreted mode, any absent object passed as argument disappears. This has the funny consequence that a procedure overlapping ##wr must be compiled, (define original-wr ##wr) (set! ##wr (lambda (write-env obj) (original-wr write-env obj))) (##encoding->object #xffffffffffffffea) this only works if it's compiled.