Commit 70e1dad8 authored by Richard M. Stallman's avatar Richard M. Stallman

*** empty log message ***

parent 0137dbf7
;;; -*- Mode:Emacs-Lisp -*-
;;; The optimization passes of the emacs-lisp byte compiler.
;;; Copyright (c) 1991 Free Software Foundation, Inc.
;; By Jamie Zawinski <jwz@lucid.com> and Hallvard Furuseth <hbf@ulrik.uio.no>.
;; last modified 29-oct-91.
;; This file is part of GNU Emacs.
......@@ -131,11 +129,6 @@
;;; the code that relies on dynamic scope of non-defvarred variables.
(require 'byte-compile "bytecomp")
(or (fboundp 'byte-compile-lapcode)
(error "loading bytecomp got the wrong version of the compiler."))
(defun byte-compile-log-lap-1 (format &rest args)
(if (aref byte-code-vector 0)
(error "The old version of the disassembler is loaded. Reload new-bytecomp as well."))
......@@ -196,11 +189,11 @@
(cdr form))))
;; Splice the given lap code into the current instruction stream.
;; If it has any labels in it, you're responsible for making sure there
;; are no collisions, and that byte-compile-tag-number is reasonable
;; after this is spliced in. The provided list is destroyed.
(defun byte-inline-lapcode (lap)
"splice the given lap code into the current instruction stream.
If it has any labels in it, you're responsible for making sure there
are no collisions, and that byte-compile-tag-number is reasonable
after this is spliced in. the provided list is destroyed."
(setq byte-compile-output (nconc (nreverse lap) byte-compile-output)))
......@@ -528,10 +521,10 @@ after this is spliced in. the provided list is destroyed."
((not (symbolp (, form))))
((eq (, form) t)))))
;; If the function is being called with constant numeric args,
;; evaluate as much as possible at compile-time. This optimizer
;; assumes that the function is associative, like + or *.
(defun byte-optimize-associative-math (form)
"If the function is being called with constant numeric args,
evaluate as much as possible at compile-time. This optimizer
assumes that the function is associative, like + or *."
(let ((args nil)
(constants nil)
(rest (cdr form)))
......@@ -550,10 +543,10 @@ assumes that the function is associative, like + or *."
(apply (car form) constants))
form)))
;; If the function is being called with constant numeric args,
;; evaluate as much as possible at compile-time. This optimizer
;; assumes that the function is nonassociative, like - or /.
(defun byte-optimize-nonassociative-math (form)
"If the function is being called with constant numeric args,
evaluate as much as possible at compile-time. This optimizer
assumes that the function is nonassociative, like - or /."
(if (or (not (numberp (car (cdr form))))
(not (numberp (car (cdr (cdr form))))))
form
......@@ -1052,11 +1045,11 @@ assumes that the function is nonassociative, like - or /."
(byte-compile-tag-number 0))
(byte-decompile-bytecode-1 bytes constvec)))
;; As byte-decompile-bytecode, but updates
;; byte-compile-{constants, variables, tag-number}.
;; If the optional 3rd arg is true, then `return' opcodes are replaced
;; with `goto's destined for the end of the code.
(defun byte-decompile-bytecode-1 (bytes constvec &optional make-splicable)
"As byte-decompile-bytecode, but updates
byte-compile-{constants, variables, tag-number}.
If the optional 3rd arg is true, then `return' opcodes are replaced
with `goto's destined for the end of the code."
(let ((length (length bytes))
(ptr 0) optr tag tags op offset
lap tmp
......
......@@ -24,7 +24,7 @@
(load "subr")
(garbage-collect)
(load "bytecomp-runtime")
(load "byte-run")
(garbage-collect)
(load "map-ynp")
(garbage-collect)
......
;;; rmailsort.el --- Rmail: sort messages.
;; Copyright (C) 1990 Masanobu UMEDA
;; umerin@tc.Nagasaki.GO.JP?
;; Copyright (C) 1990 Free Software Foundation, Inc.
;; 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 1, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY. No author or distributor
;; accepts responsibility to anyone for the consequences of using it
;; or for whether it serves any particular purpose or works at all,
;; unless he says so in writing. Refer to the GNU Emacs General Public
;; License for full details.
;; Everyone is granted permission to copy, modify and redistribute
;; GNU Emacs, but only under the conditions described in the
;; GNU Emacs General Public License. A copy of this license is
;; supposed to have been given to you along with GNU Emacs so you
;; can know your rights and responsibilities. It should be in a
;; file named COPYING. Among other things, the copyright notice
;; and this notice must be preserved on all copies.
;; 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, 675 Mass Ave, Cambridge, MA 02139, USA.
(require 'rmail)
(require 'sort)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment