Changeset 5340
- Timestamp:
- Oct 13, 2006, 3:53:43 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/nx0.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/nx0.lisp
r5131 r5340 1847 1847 (make-acode (%nx1-operator self-call) (nx1-arglist args args-in-regs) spread-p)) 1848 1848 (multiple-value-bind (lambda-form containing-env token) (nx-inline-expansion sym *nx-lexical-environment* global-only) 1849 (or (nx1-expand-inline-call lambda-form containing-env token args spread-p )1849 (or (nx1-expand-inline-call lambda-form containing-env token args spread-p *nx-lexical-environment*) 1850 1850 (multiple-value-bind (info afunc) (if (and (symbolp sym) (not global-only)) (nx-lexical-finfo sym)) 1851 1851 (when (eq 'macro (car info)) … … 1868 1868 val))))))))) 1869 1869 1870 (defun nx1-expand-inline-call (lambda-form env token args spread-p )1870 (defun nx1-expand-inline-call (lambda-form env token args spread-p old-env) 1871 1871 (if (and (or (null spread-p) (eq (length args) 1))) 1872 1872 (if (and token (not (memq token *nx-inline-expansions*))) 1873 1873 (let* ((*nx-inline-expansions* (cons token *nx-inline-expansions*)) 1874 1874 (lambda-list (cadr lambda-form)) 1875 (body (cddr lambda-form))) 1875 (body (cddr lambda-form)) 1876 (new-env (new-lexical-environment env))) 1877 (setf (lexenv.mdecls new-env) 1878 `((speed . ,(speed-optimize-quantity old-env)) 1879 (space . ,(space-optimize-quantity old-env)) 1880 (safety . ,(space-optimize-quantity old-env)) 1881 (compilation-speed . ,(compilation-speed-optimize-quantity old-env)) 1882 (debug . ,(debug-optimize-quantity old-env)))) 1876 1883 (if spread-p 1877 (nx1-destructure lambda-list (car args) nil nil body env)1878 (nx1-lambda-bind lambda-list args body env))))))1884 (nx1-destructure lambda-list (car args) nil nil body new-env) 1885 (nx1-lambda-bind lambda-list args body new-env)))))) 1879 1886 1880 1887 ; note that regforms are reversed: arg_z is always in the car
Note:
See TracChangeset
for help on using the changeset viewer.
