Changeset 11725
- Timestamp:
- 04/03/09 21:17:53 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/precompiler.lisp
r11720 r11725 422 422 (defun precompile-dolist (form) 423 423 (if *in-jvm-compile* 424 (precompile1 (macroexpand form ))424 (precompile1 (macroexpand form *compile-file-environment*)) 425 425 (cons 'DOLIST (cons (mapcar #'precompile1 (cadr form)) 426 426 (mapcar #'precompile1 (cddr form)))))) … … 428 428 (defun precompile-dotimes (form) 429 429 (if *in-jvm-compile* 430 (precompile1 (macroexpand form ))430 (precompile1 (macroexpand form *compile-file-environment*)) 431 431 (cons 'DOTIMES (cons (mapcar #'precompile1 (cadr form)) 432 432 (mapcar #'precompile1 (cddr form)))))) … … 464 464 (defun precompile-do/do* (form) 465 465 (if *in-jvm-compile* 466 (precompile1 (macroexpand form ))466 (precompile1 (macroexpand form *compile-file-environment*)) 467 467 (list* (car form) 468 468 (precompile-do/do*-vars (cadr form)) … … 646 646 (parse-body (cddr form) nil) 647 647 `(locally ,@decls ,@(mapcar #'precompile1 body))))) 648 649 ;; "If the restartable-form is a list whose car is any of the symbols SIGNAL,650 ;; ERROR, CERROR, or WARN (or is a macro form which macroexpands into such a651 ;; list), then WITH-CONDITION-RESTARTS is used implicitly to associate the652 ;; indicated restarts with the condition to be signaled." So we need to653 ;; precompile the restartable form before macroexpanding RESTART-CASE.654 (defun precompile-restart-case (form)655 (let ((new-form (list* 'RESTART-CASE (precompile1 (cadr form)) (cddr form))))656 (precompile1 (macroexpand new-form sys:*compile-file-environment*))))657 648 658 649 (defun precompile-symbol-macrolet (form) … … 747 738 (defun precompile-case (form) 748 739 (if *in-jvm-compile* 749 (precompile1 (macroexpand form ))740 (precompile1 (macroexpand form *compile-file-environment*)) 750 741 (let* ((keyform (cadr form)) 751 742 (clauses (cddr form)) … … 762 753 (defun precompile-cond (form) 763 754 (if *in-jvm-compile* 764 (precompile1 (macroexpand form ))755 (precompile1 (macroexpand form *compile-file-environment*)) 765 756 (let ((clauses (cdr form)) 766 757 (result nil)) … … 867 858 (defun precompile-when (form) 868 859 (if *in-jvm-compile* 869 (precompile1 (macroexpand form ))860 (precompile1 (macroexpand form *compile-file-environment*)) 870 861 (precompile-cons form))) 871 862 872 863 (defun precompile-unless (form) 873 864 (if *in-jvm-compile* 874 (precompile1 (macroexpand form ))865 (precompile1 (macroexpand form *compile-file-environment*)) 875 866 (precompile-cons form))) 876 867 … … 891 882 (defun precompile-nth-value (form) 892 883 (if *in-jvm-compile* 893 (precompile1 (macroexpand form ))884 (precompile1 (macroexpand form *compile-file-environment*)) 894 885 form)) 895 886 896 887 (defun precompile-return (form) 897 888 (if *in-jvm-compile* 898 (precompile1 (macroexpand form ))889 (precompile1 (macroexpand form *compile-file-environment*)) 899 890 (list 'RETURN (precompile1 (cadr form))))) 900 891 … … 982 973 PSETF 983 974 PSETQ 984 RESTART-CASE985 975 RETURN 986 976 RETURN-FROM
Note: See TracChangeset
for help on using the changeset viewer.