Changeset 3543


Ignore:
Timestamp:
08/30/03 17:05:12 (20 years ago)
Author:
piso
Message:

C::%COMPILE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/compiler.lisp

    r3521 r3543  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: compiler.lisp,v 1.36 2003-08-25 19:17:23 piso Exp $
     4;;; $Id: compiler.lisp,v 1.37 2003-08-30 17:05:12 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    186186                 (cons first args)))))))
    187187
    188 
    189 (defun compile-package (pkg &key verbose)
    190   (dolist (sym (sys::package-symbols pkg))
    191     (when (fboundp sym)
    192 ;;       (unless (or (special-operator-p sym) (macro-function sym))
    193       (unless (special-operator-p sym)
    194         (let ((f (fdefinition sym)))
    195           (unless (compiled-function-p f)
    196             (when verbose
    197               (format t "compiling ~S~%" sym)
    198               (finish-output))
    199             (compile sym))))))
    200   t)
    201 
    202 
    203 ;; (defun compile (name &optional (definition (fdefinition name)))
    204 (defun compile (name &optional definition)
     188(defun %compile (name &optional definition)
    205189  (unless definition
    206190    (setq definition (or (macro-function name) (fdefinition name))))
     
    223207      (sys::%set-call-count result (sys::%call-count definition))
    224208      (sys::%set-arglist result (sys::arglist definition))
    225 ;;       (setf (fdefinition name) result))
    226209      (if (macro-function name)
    227210          (setf (fdefinition name) (sys::make-macro result))
     
    229212    (values (or name result) nil nil)))
    230213
     214(defun compile-package (pkg &key verbose)
     215  (dolist (sym (sys::package-symbols pkg))
     216    (when (fboundp sym)
     217      ;;       (unless (or (special-operator-p sym) (macro-function sym))
     218      (unless (special-operator-p sym)
     219        (let ((f (fdefinition sym)))
     220          (unless (compiled-function-p f)
     221            (when verbose
     222              (format t "compiling ~S~%" sym)
     223              (finish-output))
     224            (%compile sym))))))
     225  t)
     226
    231227(compile-package :compiler)
    232228(compile-package :sys)
     
    234230
    235231(in-package :cl)
     232
     233(defun compile (name &optional definition)
     234  (c::%compile name definition))
    236235
    237236;; Redefine DEFUN to compile the definition on the fly.
     
    239238  `(prog1
    240239    (sys::%defun ',name ',lambda-list ',body)
    241     (compile ',name)))
     240    (compiler::%compile ',name)))
    242241
    243242;; Redefine DEFMACRO to compile the expansion function on the fly.
     
    250249    `(progn
    251250       (if (special-operator-p ',name)
    252          (sys::%put ',name 'macroexpand-macro (sys::make-macro (compile nil ,expander)))
    253          (sys::fset ',name (sys::make-macro (compile nil ,expander))))
     251         (sys::%put ',name
     252                    'macroexpand-macro
     253                    (sys::make-macro (c::%compile nil ,expander)))
     254         (sys::fset ',name
     255                    (sys::make-macro (c::%compile nil ,expander))))
    254256       ',name)))
    255257
Note: See TracChangeset for help on using the changeset viewer.