1 |
;;; bytecomp.el --- compilation of Lisp code into byte code |
;;; bytecomp.el --- compilation of Lisp code into byte code |
2 |
|
|
3 |
;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002 |
;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002, 2003 |
4 |
;; Free Software Foundation, Inc. |
;; Free Software Foundation, Inc. |
5 |
|
|
6 |
;; Author: Jamie Zawinski <jwz@lucid.com> |
;; Author: Jamie Zawinski <jwz@lucid.com> |
3614 |
`(funcall '(lambda (,tmp) (defconst ,var ,tmp)) |
`(funcall '(lambda (,tmp) (defconst ,var ,tmp)) |
3615 |
,value)) |
,value)) |
3616 |
;; `defvar' sets `var' only when unbound. |
;; `defvar' sets `var' only when unbound. |
3617 |
`(if (not (boundp ',var)) (setq ,var ,value))) |
`(if (not (default-boundp ',var)) (setq-default ,var ,value))) |
3618 |
(when (eq fun 'defconst) |
(when (eq fun 'defconst) |
3619 |
;; This will signal an appropriate error at runtime. |
;; This will signal an appropriate error at runtime. |
3620 |
`(eval ',form))) |
`(eval ',form))) |
3984 |
|
|
3985 |
;;; report metering (see the hacks in bytecode.c) |
;;; report metering (see the hacks in bytecode.c) |
3986 |
|
|
3987 |
|
(defvar byte-code-meter) |
3988 |
(defun byte-compile-report-ops () |
(defun byte-compile-report-ops () |
|
(defvar byte-code-meter) |
|
3989 |
(with-output-to-temp-buffer "*Meter*" |
(with-output-to-temp-buffer "*Meter*" |
3990 |
(set-buffer "*Meter*") |
(set-buffer "*Meter*") |
3991 |
(let ((i 0) n op off) |
(let ((i 0) n op off) |