Mercurial > emacs
view lisp/byte-run.el @ 19445:94a54fbffb3e
A lot of comment and doc fixes.
Replace: 'nil by nil, '() by nil, 't by t.
(ps-print-version): New version number (3.05).
(ps-zebra-stripe, ps-number-of-zebra, ps-line-number)
(ps-print-background-image, ps-print-background-text): New variables
to customize zebra stripes, line number, image background and text
background features, respectively.
(ps-adobe-tag): Tagged to PostScript level 3.
(ps-print-buffer, ps-print-buffer-with-faces)
(ps-print-region, ps-print-region-with-faces)
(ps-spool-buffer, ps-spool-buffer-with-faces)
(ps-spool-region, ps-spool-region-with-faces): Call more primitive
functions for PostScript printing (functions below).
(ps-print-with-faces, ps-print-without-faces)
(ps-spool-with-faces, ps-spool-without-faces): More primitive
functions for PostScript printing.
(ps-line-lengths, ps-nb-pages-buffer, ps-nb-pages-region)
(ps-line-lengths-internal, ps-nb-pages): Doc fixes.
(ps-print-prologue-1): a lot of PostScript programming:
/dobackgroundstring, /dounderline, /UL: Postscript functions deleted.
/reencodeFontISO, /F, /BG, /HL, /W, /S, /BeginDSCPage, /BeginPage,
/EndPage: adjusted for new effects (outline, shadow, etc).
/PLN, /EF, /Hline, /doBox, /doRect, /doShadow, /doOutline,
/FillBgColor, /doLineNumber, /printZebra, /doColumnZebra,
/doZebra, /BeginBackImage, /EndBackImage, /ShowBackText: New procedures.
(ps-current-underline-p, ps-set-underline): Var and fn deleted.
(ps-showline-count, ps-background-pages, ps-background-all-pages)
(ps-background-text-count, ps-background-image-count): New variables.
(ps-header-font, ps-header-title-font)
(ps-header-line-height, ps-header-title-line-height)
(ps-landscape-page-height): Set initial value to nil.
(ps-print-face-extension-alist, ps-print-face-map-alist):
New variables for face remapping.
(ps-new-faces, ps-extend-face-list, ps-extend-face):
New functions for face remapping.
(ps-override-list, ps-extension-to-bit-face)
(ps-extension-to-screen-face, ps-extension-bit)
(ps-initialize-faces, ps-map-font-lock, ps-screen-to-bit-face):
New internal functions for face remapping.
(ps-get-page-dimensions): Fix error message.
(ps-insert-file): Doc fix and programming enhancement.
(ps-begin-file, ps-end-file, ps-get-buffer-name, ps-begin-page)
(ps-next-line, ps-plot-region, ps-face-attributes)
(ps-face-attribute-list, ps-plot-with-face)
(ps-generate-postscript-with-faces): Handle new output features.
(ps-generate): save-excursion inserted to return back point at
position before calling ps-print.
(ps-do-spool): Access dos-ps-printer variable through symbol-value.
(ps-prsc, ps-c-prsc, ps-s-prsc): Use backquote.
(ps-basic-plot-whitespace, ps-emacs-face-kind-p): Internal blank
line eliminated.
(ps-float-format, ps-current-effect): New internal variables.
(ps-output-list, ps-count-lines, ps-background-pages)
(ps-get-boundingbox, ps-float-format, ps-background-text)
(ps-background-image, ps-background, ps-header-height)
(ps-get-face): New internal functions.
(ps-control-character): Handle control characters.
(ps-gnus-print-article-from-summary): Updated for Gnus 5.
(ps-jack-setup): Replace 'nil by nil, 't by t.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 20 Aug 1997 23:11:35 +0000 |
parents | 83f275dcd93a |
children | cc3f3c1ea725 |
line wrap: on
line source
;;; byte-run.el --- byte-compiler support for inlining ;; Copyright (C) 1992 Free Software Foundation, Inc. ;; Author: Jamie Zawinski <jwz@lucid.com> ;; Hallvard Furuseth <hbf@ulrik.uio.no> ;; Keywords: internal ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; interface to selectively inlining functions. ;; This only happens when source-code optimization is turned on. ;;; Code: ;; Redefined in byte-optimize.el. ;; This is not documented--it's not clear that we should promote it. (fset 'inline 'progn) (put 'inline 'lisp-indent-hook 0) ;;; Interface to inline functions. ;; (defmacro proclaim-inline (&rest fns) ;; "Cause the named functions to be open-coded when called from compiled code. ;; They will only be compiled open-coded when byte-compile-optimize is true." ;; (cons 'eval-and-compile ;; (mapcar '(lambda (x) ;; (or (memq (get x 'byte-optimizer) ;; '(nil byte-compile-inline-expand)) ;; (error ;; "%s already has a byte-optimizer, can't make it inline" ;; x)) ;; (list 'put (list 'quote x) ;; ''byte-optimizer ''byte-compile-inline-expand)) ;; fns))) ;; (defmacro proclaim-notinline (&rest fns) ;; "Cause the named functions to no longer be open-coded." ;; (cons 'eval-and-compile ;; (mapcar '(lambda (x) ;; (if (eq (get x 'byte-optimizer) 'byte-compile-inline-expand) ;; (put x 'byte-optimizer nil)) ;; (list 'if (list 'eq (list 'get (list 'quote x) ''byte-optimizer) ;; ''byte-compile-inline-expand) ;; (list 'put x ''byte-optimizer nil))) ;; fns))) ;; This has a special byte-hunk-handler in bytecomp.el. (defmacro defsubst (name arglist &rest body) "Define an inline function. The syntax is just like that of `defun'." (or (memq (get name 'byte-optimizer) '(nil byte-compile-inline-expand)) (error "`%s' is a primitive" name)) (list 'prog1 (cons 'defun (cons name (cons arglist body))) (list 'eval-and-compile (list 'put (list 'quote name) ''byte-optimizer ''byte-compile-inline-expand)))) (defun make-obsolete (fn new) "Make the byte-compiler warn that FUNCTION is obsolete. The warning will say that NEW should be used instead. If NEW is a string, that is the `use instead' message." (interactive "aMake function obsolete: \nxObsoletion replacement: ") (let ((handler (get fn 'byte-compile))) (if (eq 'byte-compile-obsolete handler) (setcar (get fn 'byte-obsolete-info) new) (put fn 'byte-obsolete-info (cons new handler)) (put fn 'byte-compile 'byte-compile-obsolete))) fn) (defun make-obsolete-variable (var new) "Make the byte-compiler warn that VARIABLE is obsolete, and NEW should be used instead. If NEW is a string, then that is the `use instead' message." (interactive (list (let ((str (completing-read "Make variable obsolete: " obarray 'boundp t))) (if (equal str "") (error "")) (intern str)) (car (read-from-string (read-string "Obsoletion replacement: "))))) (put var 'byte-obsolete-variable new) var) (put 'dont-compile 'lisp-indent-hook 0) (defmacro dont-compile (&rest body) "Like `progn', but the body always runs interpreted (not compiled). If you think you need this, you're probably making a mistake somewhere." (list 'eval (list 'quote (if (cdr body) (cons 'progn body) (car body))))) ;;; interface to evaluating things at compile time and/or load time ;;; these macro must come after any uses of them in this file, as their ;;; definition in the file overrides the magic definitions on the ;;; byte-compile-macro-environment. (put 'eval-when-compile 'lisp-indent-hook 0) (defmacro eval-when-compile (&rest body) "Like `progn', but evaluates the body at compile time. The result of the body appears to the compiler as a quoted constant." ;; Not necessary because we have it in b-c-initial-macro-environment ;; (list 'quote (eval (cons 'progn body))) (cons 'progn body)) (put 'eval-and-compile 'lisp-indent-hook 0) (defmacro eval-and-compile (&rest body) "Like `progn', but evaluates the body at compile time and at load time." ;; Remember, it's magic. (cons 'progn body)) ;;; I nuked this because it's not a good idea for users to think of using it. ;;; These options are a matter of installation preference, and have nothing to ;;; with particular source files; it's a mistake to suggest to users ;;; they should associate these with particular source files. ;;; There is hardly any reason to change these parameters, anyway. ;;; --rms. ;; (put 'byte-compiler-options 'lisp-indent-hook 0) ;; (defmacro byte-compiler-options (&rest args) ;; "Set some compilation-parameters for this file. This will affect only the ;; file in which it appears; this does nothing when evaluated, and when loaded ;; from a .el file. ;; ;; Each argument to this macro must be a list of a key and a value. ;; ;; Keys: Values: Corresponding variable: ;; ;; verbose t, nil byte-compile-verbose ;; optimize t, nil, source, byte byte-compile-optimize ;; warnings list of warnings byte-compile-warnings ;; Legal elements: (callargs redefine free-vars unresolved) ;; file-format emacs18, emacs19 byte-compile-compatibility ;; ;; For example, this might appear at the top of a source file: ;; ;; (byte-compiler-options ;; (optimize t) ;; (warnings (- free-vars)) ; Don't warn about free variables ;; (file-format emacs19))" ;; nil) ;;; byte-run.el ends here