~ chicken-core (chicken-5) 546712e8eb12eaa09b5d31173aad7e487dc1dd96
commit 546712e8eb12eaa09b5d31173aad7e487dc1dd96 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Oct 18 03:23:34 2010 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Oct 18 03:23:34 2010 -0400 direct fid-call only when not declared not-inline; also done for local values diff --git a/compiler.scm b/compiler.scm index e3d499bd..5ccd7894 100644 --- a/compiler.scm +++ b/compiler.scm @@ -2166,7 +2166,13 @@ (cons name (if varfn (let* ([varname (first (node-parameters fn))] - [val (and (not (test varname 'unknown)) (test varname 'value))] ) + [val (and (not (test varname 'unknown)) + (not (eq? + 'no + (variable-mark + varname '##compiler#inline))) + (or (test varname 'value) + (test varname 'local-value)))] ) (if (and val (eq? '##core#lambda (node-class val))) (let* ([params (node-parameters val)] [llist (third params)] @@ -2176,6 +2182,7 @@ [custom (and refs sites (= (length refs) (length sites)) + (test varname 'value) (proper-list? llist) ) ] ) (when (and name customTrap