Mercurial > emacs
view etc/README @ 110524:bf806d096e9a
Update to CEDET 1.0's version of EIEIO.
* emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key): New
function.
(eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
(eieio-default-eval-maybe): Eval val instead of unquoting only.
(class-precedence-list): If class is nil, return nil.
(eieio-generic-call): If class of first input arg is nil, don't
look up static methods, and do check for primary methods.
(initialize-instance): See if the default needs to be evaluated
during the constructor.
(eieio-perform-slot-validation-for-default): Don't do the check
for values that will eventually be evaluated.
(eieio-eval-default-p): New function.
(eieio-default-eval-maybe): Use it.
* emacs-lisp/eieio.el (eieio-defclass): Allow :c3
method-invocation-order.
(eieio-c3-candidate, eieio-c3-merge-lists): New functions.
(eieio-class-precedence-dfs): Compute class precedence list using
dfs algorithm.
(eieio-class-precedence-bfs): Compute class precedence list using
bfs algorithm.
(eieio-class-precedence-c3): compute class precedence list using
c3 algorithm.
(class-precedence-list): New function.
(eieiomt-method-list, eieiomt-sym-optimize): Use it.
(inconsistent-class-hierarchy): New error symbol.
(call-next-method): Stow the replacement argument list for future
call-next-method invocations.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 19 Sep 2010 00:23:57 -0400 |
parents | 1d1d5d9bd884 |
children | 376148b31b5e |
line wrap: on
line source
This directory contains the architecture-independent files used by or with Emacs. This includes some text files of documentation for GNU Emacs or of interest to Emacs users, and the file of dumped docstrings for Emacs functions and variables. `forms-d2.dat' is an example data file used by forms-d2.el. COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES File: emacs.icon Author: Sun Microsystems, Inc Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. License: GNU General Public License version 3 or later (see COPYING)