From xemacs-m  Tue Jul  1 20:25:21 1997
Received: from altair.xemacs.org (steve@xemacs.miranova.com [206.190.83.19])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id UAA18400
	for <xemacs-beta@xemacs.org>; Tue, 1 Jul 1997 20:25:08 -0500 (CDT)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.6/8.8.6) id SAA02100;
	Tue, 1 Jul 1997 18:23:53 -0700
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Cc: weiner@altrasoft.com
Subject: Re: LOSING_BYTECODE
References: <m290zsj0z4.fsf@altair.xemacs.org> 	<kig90zsz2lg.fsf@jagor.srce.hr> 	<m2g1tzoqyk.fsf@altair.xemacs.org> 	<QQcwgj03476.199707010329@crystal.WonderWorks.COM> 	<m2en9jl9rv.fsf@altair.xemacs.org> 	<QQcwgl03902.199707010356@crystal.WonderWorks.COM> 	<QQcwgn04347.199707010422@crystal.WonderWorks.COM> 	<m2vi2vcr7u.fsf@altair.xemacs.org> 	<QQcwii14807.199707011602@crystal.WonderWorks.COM> 	<87wwnazeh0.fsf@mharnois.workgroup.net> <QQcwjn24421.199707012358@crystal.WonderWorks.COM>
X-Url: http://www.miranova.com/%7Esteve/
X-Face: #!T9!#9s-3o8)*uHlX{Ug[xW7E7Wr!*L46-OxqMu\xz23v|R9q}lH?cRS{rCNe^'[`^sr5"
 f8*@r4ipO6Jl!:Ccq<xoV[Qz2u8<8-+Vwf2gzJ44lf_/y9OaQ`@#Q65{U4/TC)i2`~/M&QI$X>p:9I
 OSS'2{-)-4wBnVeg0S\O4Al@)uC[pD|+
X-Attribution: sb
From: Steven L Baur <steve@xemacs.org>
In-Reply-To: Kyle Jones's message of "Tue, 1 Jul 1997 19:58:23 -0400 (EDT)"
Mime-Version: 1.0 (generated by tm-edit 7.108)
Content-Type: text/plain; charset=US-ASCII
Date: 01 Jul 1997 18:23:53 -0700
Message-ID: <m2soxyl00m.fsf@altair.xemacs.org>
Lines: 96
X-Mailer: Gnus v5.4.61/XEmacs 20.3(beta11) - "Stockholm"

(Bob, there are those who wish the feature allowing byte code to be
referenced as a vector to go away).

> efs is manufacturing its own byte code.  Whee.

O.K.  Here's the results of grepping through lisp looking for byte-code.

gnus/(gnus-spec|gnus-sum|gnus-util).el:

Declares and uses something called gnus-byte-code.  Is this usage clean?


hyperbole/hact.el:
(defun action:commandp (function)
  "Return interactive calling form if FUNCTION has one, else nil."
  (let ((action
         (cond ((null function) nil)
               ((symbolp function)
                (and (fboundp function)
                     (hypb:indirect-function function)))
               ((and (listp function)
                     (eq (car function) 'autoload))
                (error "(action:commandp): Autoload not supported: %s" function)
)
               (t function))))
    (if (hypb:v19-byte-code-p action)
        (if (commandp action)
            (list 'interactive (aref action 5)))
      (commandp action))))


hyperbole/hypb.el:
(defun hypb:debug ()
  "Loads Hyperbole hbut.el source file and sets debugging traceback flag."
  (interactive)
  (or (featurep 'hinit) (load "hsite"))
  (or (and (featurep 'hbut)
           (let ((func (hypb:indirect-function 'ebut:create)))
             (not (or (hypb:v19-byte-code-p func)
                      (eq 'byte-code
                          (car (car (nthcdr 3 (hypb:indirect-function
                                               'ebut:create)))))))))
      (load "hbut.el"))
  (setq debug-on-error t))

There is other highly evil code in this file.  cf. hypb:function-copy,
hypb:function-overload, hypb:function-symbol-replace.


ilisp/ilisp-mod.el:
(defun ilisp-byte-code-to-list (function)
  "Returns a list suitable for passing to make-byte-code from FUNCTION."
  (let ((function-object 
         (if (symbolp function)
             (symbol-function function)
           function)))
    (if (fboundp 'compiled-function-arglist)
        ;; XEmacs
        (read (concat "("
                      (substring (let ((print-readably t))
                                   (prin1-to-string function-object))
                                 2 -1)
                      ")"))
      ;; FSFmacs
      (append function-object nil))))

packages/apropos.el:
(defun apropos-safe-documentation (function)
  "Like documentation, except it avoids calling `get_doc_string'.
Will return nil instead."
  (while (and function (symbolp function))
    (setq function (if (fboundp function)
                       (symbol-function function))))
  (if (eq (car-safe function) 'macro)
      (setq function (cdr function)))
  ;; XEmacs change from: (setq function (if (byte-code-function-p function)
  (setq function (if (compiled-function-p function)
                     (if (> (length function) 4)
                         (aref function 4))
                   (if (eq (car-safe function) 'autoload)
                       (nth 2 function)
                     (if (eq (car-safe function) 'lambda)
                         (if (stringp (nth 2 function))
                             (nth 2 function)
                           (if (stringp (nth 3 function))
                               (nth 3 function)))))))
  (if (integerp function)
      nil
    function))

utils/skeleton.el:
The function skeleton-proxy looks suspicious.

-- 
steve@calag.com baur
Unsolicited commercial e-mail will be billed at $250/message.

