~ chicken-core (chicken-5) fb74f2a13695b275e942de06b384ec72bf791e40
commit fb74f2a13695b275e942de06b384ec72bf791e40 Author: felix <felix@y.(none)> AuthorDate: Wed Mar 31 23:47:43 2010 +0200 Commit: felix <felix@y.(none)> CommitDate: Wed Mar 31 23:47:43 2010 +0200 removed broken toplevel-alias optimization diff --git a/compiler.scm b/compiler.scm index bf4c0d24..cb856acb 100644 --- a/compiler.scm +++ b/compiler.scm @@ -90,7 +90,6 @@ ; ##compiler#profile -> BOOL ; ##compiler#unused -> BOOL ; ##compiler#foldable -> BOOL -; ##compiler#toplevel-alias -> SYMBOL ; - Source language: ; diff --git a/manual/Modules and macros b/manual/Modules and macros index 2c33a089..9f901994 100644 --- a/manual/Modules and macros +++ b/manual/Modules and macros @@ -290,6 +290,8 @@ Allows augmenting module-exports from inside the module-body. {{module}} export list. An export must precede its first occurrence (either use or definition). +If used outside of a module, then this form does nothing. + ==== import <macro>(import IMPORT ...)</macro> diff --git a/optimizer.scm b/optimizer.scm index c17bda6f..14a39f27 100644 --- a/optimizer.scm +++ b/optimizer.scm @@ -97,14 +97,6 @@ (copy-node! (make-node '##core#undefined '() '()) p)) - (when (and (not escaped) - (not (memq var e)) - (not (memq var unsafe)) - (eq? '##core#variable (node-class val))) - (let ((valname (first (node-parameters val)))) - (unless (memq valname e) - (debugging 'x (sprintf "toplevel-alias: ~s -> ~s" var valname)) - (##sys#put! var '##compiler#toplevel-alias valname)))) (unless (memq var e) (mark var)) (remember var n) ) ) ] @@ -223,7 +215,6 @@ (touch) (debugging 'o "substituted constant variable" var) (qnode (car (node-parameters (test var 'value)))) ) - ((##sys#get var '##compiler#toplevel-alias) => replace) (else (if (not (eq? var (first params))) (begin @@ -1458,20 +1449,20 @@ (define (find-lifting-candidates) ;; Collect potentially liftable procedures and return as a list of (<name> . <value>) pairs: ;; - Also build a-list that maps lambda-nodes to names. - (let ([cs '()]) + (let ((cs '())) (##sys#hash-table-for-each (lambda (sym plist) - (and-let* ([val (assq 'value plist)] - [refs (assq 'references plist)] - [css (assq 'call-sites plist)] - [nrefs (length (cdr refs))] ) - (when (and (not (assq 'unknown plist)) - (eq? 'lambda (node-class (cdr val))) - (not (assq 'global plist)) - #;(> nrefs 1) - (= nrefs (length (cdr css))) ) - (set! lambda-values (alist-cons (cdr val) sym lambda-values)) - (set! cs (alist-cons sym (cdr val) cs)) ) ) ) + (and-let* ((val (assq 'value plist)) + (refs (assq 'references plist)) + (css (assq 'call-sites plist)) ) + (let ((nrefs (length (cdr refs)))) + (when (and (not (assq 'unknown plist)) + (eq? 'lambda (node-class (cdr val))) + (not (assq 'global plist)) + #;(> nrefs 1) + (= nrefs (length (cdr css))) ) + (set! lambda-values (alist-cons (cdr val) sym lambda-values)) + (set! cs (alist-cons sym (cdr val) cs)) ) ) ) ) db) cs) )Trap