[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lexbind
From: |
Tom Tromey |
Subject: |
Re: lexbind |
Date: |
Sun, 20 Feb 2011 11:39:44 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) |
Stefan> Just a heads up that the lexbind-new branch is moving forward.
Very cool.
Stefan> It's not yet ready for inclusion (still a few things to clean up and
Stefan> a few more to change), but I finally got it to run mpc.el (compiled
Stefan> using lexical-binding).
I checked it out and did a make bootstrap.
It failed as appended.
Tom
Compiling /space/tromey/EmacsBzr/Git/emacs/lisp/emacs-lisp/chart.el
Debugger entered--Lisp error: (wrong-type-argument listp "Forgot to expand
macro eieio-object-p")
error-message-string("Forgot to expand macro eieio-object-p")
byte-compile-report-error("Forgot to expand macro eieio-object-p")
byte-compile-form((eieio-object-p (car local-args)))
byte-compile-one-arg((not (eieio-object-p (car local-args))))
byte-compile-form((not (eieio-object-p (car local-args))))
byte-compile-if((if (not (eieio-object-p (car local-args))) (signal (quote
no-method-definition) (list (quote shared-initialize) local-args)) (let
((scoped-class (quote eieio-default-superclass))
(eieio-generic-call-next-method-list nil) (eieio-generic-call-key
method-primary) (eieio-generic-call-methodname (quote shared-initialize))
(eieio-generic-call-arglst local-args)) (apply (quote (lambda (obj slots) "Set
slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the
constructor routine." (let ((scoped-class ...)) (while slots (let ... ...)
(setq slots ...))))) local-args))))
byte-compile-form((if (not (eieio-object-p (car local-args))) (signal (quote
no-method-definition) (list (quote shared-initialize) local-args)) (let
((scoped-class (quote eieio-default-superclass))
(eieio-generic-call-next-method-list nil) (eieio-generic-call-key
method-primary) (eieio-generic-call-methodname (quote shared-initialize))
(eieio-generic-call-arglst local-args)) (apply (quote (lambda (obj slots) "Set
slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the
constructor routine." (let ((scoped-class ...)) (while slots (let ... ...)
(setq slots ...))))) local-args))) nil)
byte-compile-top-level((progn (if (not (eieio-object-p (car local-args)))
(signal (quote no-method-definition) (list (quote shared-initialize)
local-args)) (if nil (apply (quote no-applicable-method) (car local-args)
(quote shared-initialize) local-args) (let ((scoped-class (quote
eieio-default-superclass)) (eieio-generic-call-next-method-list nil)
(eieio-generic-call-key method-primary) (eieio-generic-call-methodname (quote
shared-initialize)) (eieio-generic-call-arglst local-args)) (apply (quote
(lambda (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value
pairs.\nCalled from the constructor routine." (let ... ...))) local-args)))))
nil lambda)
byte-compile-lambda((lambda (&rest local-args) "Set slots of OBJ with SLOTS
which is a list of name/value pairs.\nCalled from the constructor routine." (if
(not (eieio-object-p (car local-args))) (signal (quote no-method-definition)
(list (quote shared-initialize) local-args)) (if nil (apply (quote
no-applicable-method) (car local-args) (quote shared-initialize) local-args)
(let ((scoped-class (quote eieio-default-superclass))
(eieio-generic-call-next-method-list nil) (eieio-generic-call-key
method-primary) (eieio-generic-call-methodname (quote shared-initialize))
(eieio-generic-call-arglst local-args)) (apply (quote (lambda (obj slots) "Set
slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the
constructor routine." (let ... ...))) local-args))))))
(let ((byte-compile-free-references nil) (byte-compile-warnings nil))
(byte-compile-lambda (\` (lambda (&rest local-args) (\, doc-string) (if (not
(eieio-object-p (car local-args))) (signal (quote no-method-definition) (list
(\, ...) local-args)) (if (\, (if ... nil ...)) (apply (quote
no-applicable-method) (car local-args) (\, ...) local-args) (let (... ... ...
... ...) (apply ... local-args))))))))
eieio-defgeneric-form-primary-only-one(shared-initialize "Set slots of OBJ
with SLOTS which is a list of name/value pairs.\nCalled from the constructor
routine." eieio-default-superclass (lambda (obj slots) "Set slots of OBJ with
SLOTS which is a list of name/value pairs.\nCalled from the constructor
routine." (let ((scoped-class (aref obj object-class))) (while slots (let ((rn
(eieio-initarg-to-attribute (object-class-fast obj) (car slots)))) (if (not rn)
(slot-missing obj (car slots) (quote oset) (car (cdr slots))) (eieio-oset obj
rn (car (cdr slots))))) (setq slots (cdr (cdr slots)))))))
(fset method (eieio-defgeneric-form-primary-only-one method doc-string (car
entry) (cdr entry)))
(let* ((doc-string (documentation method)) (M (get method (quote
eieio-method-tree))) (entry (car (aref M method-primary)))) (fset method
(eieio-defgeneric-form-primary-only-one method doc-string (car entry) (cdr
entry))))
eieio-defgeneric-reset-generic-form-primary-only-one(shared-initialize)
(if (generic-primary-only-one-p method)
(eieio-defgeneric-reset-generic-form-primary-only-one method)
(eieio-defgeneric-reset-generic-form-primary-only method))
(if (generic-primary-only-p method) (if (generic-primary-only-one-p method)
(eieio-defgeneric-reset-generic-form-primary-only-one method)
(eieio-defgeneric-reset-generic-form-primary-only method))
(eieio-defgeneric-reset-generic-form method))
(progn (if (generic-primary-only-p method) (if (generic-primary-only-one-p
method) (eieio-defgeneric-reset-generic-form-primary-only-one method)
(eieio-defgeneric-reset-generic-form-primary-only method))
(eieio-defgeneric-reset-generic-form method)))
(if eieio-optimize-primary-methods-flag (progn (if (generic-primary-only-p
method) (if (generic-primary-only-one-p method)
(eieio-defgeneric-reset-generic-form-primary-only-one method)
(eieio-defgeneric-reset-generic-form-primary-only method))
(eieio-defgeneric-reset-generic-form method))))
(when eieio-optimize-primary-methods-flag (if (generic-primary-only-p method)
(if (generic-primary-only-one-p method)
(eieio-defgeneric-reset-generic-form-primary-only-one method)
(eieio-defgeneric-reset-generic-form-primary-only method))
(eieio-defgeneric-reset-generic-form method)))
eieio-defmethod(shared-initialize (((obj eieio-default-superclass) slots)
"Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from
the constructor routine." (let ((scoped-class (aref obj object-class))) (while
slots (let ((rn (eieio-initarg-to-attribute (object-class-fast obj) (car
slots)))) (if (not rn) (slot-missing obj (car slots) (quote oset) (car (cdr
slots))) (eieio-oset obj rn (car (cdr slots))))) (setq slots (cdr (cdr
slots)))))))
(defmethod shared-initialize ((obj eieio-default-superclass) slots) "Set
slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the
constructor routine." (let ((scoped-class (aref obj object-class))) (while
slots (let ((rn (eieio-initarg-to-attribute (object-class-fast obj) (car
slots)))) (if (not rn) (slot-missing obj (car slots) (quote oset) (car (cdr
slots))) (eieio-oset obj rn (car (cdr slots))))) (setq slots (cdr (cdr
slots))))))
(progn (if (fboundp (quote compiled-function-arglist)) (defalias (quote
eieio-compiled-function-arglist) (quote compiled-function-arglist)) (defun
eieio-compiled-function-arglist (func) "Return the argument list for the
compiled function FUNC." (aref func 0))) (defvar eieio-hook nil "*This hook is
executed, then cleared each time `defclass' is called.") (defvar
eieio-error-unsupported-class-tags nil "Non-nil to throw an error if an
encountered tag is unsupported.\nThis may prevent classes from CLOS
applications from being used with EIEIO\nsince EIEIO does not support all CLOS
tags.") (defvar eieio-skip-typecheck nil "*If non-nil, skip all slot
typechecking.\nSet this to t permanently if a program is functioning well to
get a\nsmall speed increase. This variable is also used internally to
handle\ndefault setting for optimization purposes.") (defvar
eieio-optimize-primary-methods-flag t "Non-nil means to optimize the method
dispatch on primary methods.") (defvar this nil "Inside a method, this variable
is the object in question.\nDO NOT SET THIS YOURSELF unless you are trying to
simulate friendly slots.\n\nNote: Embedded methods are no longer supported.
The variable THIS is\nstill set for CLOS methods for the sake of routines
like\n`call-next-method'.") (defvar scoped-class nil "This is set to a class
when a method is running.\nThis is so we know we are allowed to check private
parts or how to\nexecute a `call-next-method'. DO NOT SET THIS YOURSELF!")
(defvar eieio-initializing-object nil "Set to non-nil while initializing an
object.") (defconst eieio-unbound (if (and (boundp (quote eieio-unbound))
(symbolp eieio-unbound)) eieio-unbound (make-symbol "unbound")) "Uninterned
symbol representing an unbound slot in an object.") (defvar
eieio-default-superclass nil) (defconst class-symbol 1 "Class's symbol
(self-referencing.).") (defconst class-parent 2 "Class parent slot.") (defconst
class-children 3 "Class children class slot.") (defconst class-symbol-obarray 4
"Obarray permitting fast access to variable position indexes.") (defconst
class-public-a 5 "Class attribute index.") (defconst class-public-d 6 "Class
attribute defaults index.") (defconst class-public-doc 7 "Class documentation
strings for attributes.") (defconst class-public-type 8 "Class type for a
slot.") (defconst class-public-custom 9 "Class custom type for a slot.")
(defconst class-public-custom-label 10 "Class custom group for a slot.")
(defconst class-public-custom-group 11 "Class custom group for a slot.")
(defconst class-public-printer 12 "Printer for a slot.") (defconst
class-protection 13 "Class protection for a slot.") (defconst
class-initarg-tuples 14 "Class initarg tuples list.") (defconst
class-class-allocation-a 15 "Class allocated attributes.") (defconst
class-class-allocation-doc 16 "Class allocated documentation.") (defconst
class-class-allocation-type 17 "Class allocated value type.") (defconst
class-class-allocation-custom 18 "Class allocated custom descriptor.")
(defconst class-class-allocation-custom-label 19 "Class allocated custom
descriptor.") (defconst class-class-allocation-custom-group 20 "Class allocated
custom group.") (defconst class-class-allocation-printer 21 "Class allocated
printer for a slot.") (defconst class-class-allocation-protection 22 "Class
allocated protection list.") (defconst class-class-allocation-values 23 "Class
allocated value vector.") (defconst class-default-object-cache 24 "Cache index
of what a newly created object would look like.\nThis will speed up
instantiation time as only a `copy-sequence' will\nbe needed, instead of
looping over all the values and setting them\nfrom the default.") (defconst
class-options 25 "Storage location of tagged class options.\nStored outright
without modifications or stripping.") (defconst class-num-slots 26 "Number of
slots in the class definition object.") (defconst object-class 1 "Index in an
object vector where the class is stored.") (defconst object-name 2 "Index in an
object where the name is stored.") (defconst method-static 0 "Index into
:static tag on a method.") (defconst method-before 1 "Index into :before tag on
a method.") (defconst method-primary 2 "Index into :primary tag on a method.")
(defconst method-after 3 "Index into :after tag on a method.") (defconst
method-num-lists 4 "Number of indexes into methods vector in which groups of
functions are kept.") (defconst method-generic-before 4 "Index into generic
:before tag on a method.") (defconst method-generic-primary 5 "Index into
generic :primary tag on a method.") (defconst method-generic-after 6 "Index
into generic :after tag on a method.") (defconst method-num-slots 7 "Number of
indexes into a method's vector.") (defsubst
eieio-specialized-key-to-generic-key (key) "Convert a specialized KEY into a
generic method key." (cond ((eq key method-static) 0) ((< key method-num-lists)
(+ key 3)) (t key))) (autoload (quote byte-compile-file-form-defmethod)
"eieio-comp" "This function is used to byte compile methods in a nice way.")
...)
(eval-and-compile (if (fboundp (quote compiled-function-arglist)) (defalias
(quote eieio-compiled-function-arglist) (quote compiled-function-arglist))
(defun eieio-compiled-function-arglist (func) "Return the argument list for the
compiled function FUNC." (aref func 0))) (defvar eieio-hook nil "*This hook is
executed, then cleared each time `defclass' is called.") (defvar
eieio-error-unsupported-class-tags nil "Non-nil to throw an error if an
encountered tag is unsupported.\nThis may prevent classes from CLOS
applications from being used with EIEIO\nsince EIEIO does not support all CLOS
tags.") (defvar eieio-skip-typecheck nil "*If non-nil, skip all slot
typechecking.\nSet this to t permanently if a program is functioning well to
get a\nsmall speed increase. This variable is also used internally to
handle\ndefault setting for optimization purposes.") (defvar
eieio-optimize-primary-methods-flag t "Non-nil means to optimize the method
dispatch on primary methods.") (defvar this nil "Inside a method, this variable
is the object in question.\nDO NOT SET THIS YOURSELF unless you are trying to
simulate friendly slots.\n\nNote: Embedded methods are no longer supported.
The variable THIS is\nstill set for CLOS methods for the sake of routines
like\n`call-next-method'.") (defvar scoped-class nil "This is set to a class
when a method is running.\nThis is so we know we are allowed to check private
parts or how to\nexecute a `call-next-method'. DO NOT SET THIS YOURSELF!")
(defvar eieio-initializing-object nil "Set to non-nil while initializing an
object.") (defconst eieio-unbound (if (and (boundp (quote eieio-unbound))
(symbolp eieio-unbound)) eieio-unbound (make-symbol "unbound")) "Uninterned
symbol representing an unbound slot in an object.") (defvar
eieio-default-superclass nil) (defconst class-symbol 1 "Class's symbol
(self-referencing.).") (defconst class-parent 2 "Class parent slot.") (defconst
class-children 3 "Class children class slot.") (defconst class-symbol-obarray 4
"Obarray permitting fast access to variable position indexes.") (defconst
class-public-a 5 "Class attribute index.") (defconst class-public-d 6 "Class
attribute defaults index.") (defconst class-public-doc 7 "Class documentation
strings for attributes.") (defconst class-public-type 8 "Class type for a
slot.") (defconst class-public-custom 9 "Class custom type for a slot.")
(defconst class-public-custom-label 10 "Class custom group for a slot.")
(defconst class-public-custom-group 11 "Class custom group for a slot.")
(defconst class-public-printer 12 "Printer for a slot.") (defconst
class-protection 13 "Class protection for a slot.") (defconst
class-initarg-tuples 14 "Class initarg tuples list.") (defconst
class-class-allocation-a 15 "Class allocated attributes.") (defconst
class-class-allocation-doc 16 "Class allocated documentation.") (defconst
class-class-allocation-type 17 "Class allocated value type.") (defconst
class-class-allocation-custom 18 "Class allocated custom descriptor.")
(defconst class-class-allocation-custom-label 19 "Class allocated custom
descriptor.") (defconst class-class-allocation-custom-group 20 "Class allocated
custom group.") (defconst class-class-allocation-printer 21 "Class allocated
printer for a slot.") (defconst class-class-allocation-protection 22 "Class
allocated protection list.") (defconst class-class-allocation-values 23 "Class
allocated value vector.") (defconst class-default-object-cache 24 "Cache index
of what a newly created object would look like.\nThis will speed up
instantiation time as only a `copy-sequence' will\nbe needed, instead of
looping over all the values and setting them\nfrom the default.") (defconst
class-options 25 "Storage location of tagged class options.\nStored outright
without modifications or stripping.") (defconst class-num-slots 26 "Number of
slots in the class definition object.") (defconst object-class 1 "Index in an
object vector where the class is stored.") (defconst object-name 2 "Index in an
object where the name is stored.") (defconst method-static 0 "Index into
:static tag on a method.") (defconst method-before 1 "Index into :before tag on
a method.") (defconst method-primary 2 "Index into :primary tag on a method.")
(defconst method-after 3 "Index into :after tag on a method.") (defconst
method-num-lists 4 "Number of indexes into methods vector in which groups of
functions are kept.") (defconst method-generic-before 4 "Index into generic
:before tag on a method.") (defconst method-generic-primary 5 "Index into
generic :primary tag on a method.") (defconst method-generic-after 6 "Index
into generic :after tag on a method.") (defconst method-num-slots 7 "Number of
indexes into a method's vector.") (defsubst
eieio-specialized-key-to-generic-key (key) "Convert a specialized KEY into a
generic method key." (cond ((eq key method-static) 0) ((< key method-num-lists)
(+ key 3)) (t key))) (autoload (quote byte-compile-file-form-defmethod)
"eieio-comp" "This function is used to byte compile methods in a nice way.")
...)
eval-buffer(#<buffer *load*> nil
"/space/tromey/EmacsBzr/Git/emacs/lisp/emacs-lisp/eieio.el" nil t) ; Reading
at buffer position 112490
load-with-code-conversion("/space/tromey/EmacsBzr/Git/emacs/lisp/emacs-lisp/eieio.el"
"/space/tromey/EmacsBzr/Git/emacs/lisp/emacs-lisp/eieio.el" nil t)
require(eieio)
apply(require eieio)
byte-compile-file-form-require((require (quote eieio)))
byte-compile-file-form((require (quote eieio)))
#[nil "rq\210 \203
\306
\n\"\210eb\210\307\310\307w\210\311\312!\203\"