aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Engster2013-07-29 22:28:22 +0200
committerDavid Engster2013-07-29 22:28:22 +0200
commit86b192c1479d167c13edb9cdaa026c231c8a0442 (patch)
tree11eaea65e24ad6c9fd4db7d1b1c166ac0356bd20
parent218e063750a79e79651eb41f67c0b07209980056 (diff)
parent18657165bb88252b8285c4655e907dd4fc29a0f7 (diff)
downloademacs-86b192c1479d167c13edb9cdaa026c231c8a0442.tar.gz
emacs-86b192c1479d167c13edb9cdaa026c231c8a0442.zip
Merge CEDET upstream (rev. 8579)
-rw-r--r--doc/misc/ChangeLog8
-rw-r--r--doc/misc/eieio.texi58
-rw-r--r--lisp/cedet/ChangeLog17
-rw-r--r--lisp/cedet/cedet.el3
-rw-r--r--lisp/cedet/semantic/analyze/fcn.el5
-rw-r--r--lisp/cedet/semantic/decorate/mode.el4
-rw-r--r--lisp/cedet/semantic/wisent/python.el1
7 files changed, 72 insertions, 24 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index b4cd73bda08..b306ce5ba0a 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,11 @@
12013-07-29 David Engster <deng@randomsample.de>
2
3 * eieio.texi (top): Make clear that EIEIO is not a full CLOS
4 implementation.
5 (Introduction): Add further missing features.
6 (Building Classes): Add introductory paragraph.
7 (Wish List): Add metaclasses and EQL specialization.
8
12013-07-29 Michael Albinus <michael.albinus@gmx.de> 92013-07-29 Michael Albinus <michael.albinus@gmx.de>
2 10
3 * tramp.texi (Frequently Asked Questions): Mention 11 * tramp.texi (Frequently Asked Questions): Mention
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index b16144e98a2..c8e8fb6d2e2 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -46,10 +46,10 @@ modify this GNU manual.''
46@comment node-name, next, previous, up 46@comment node-name, next, previous, up
47@top EIEIO 47@top EIEIO
48 48
49@eieio{} (``Enhanced Implementation of Emacs Interpreted Objects'') is 49@eieio{} (``Enhanced Implementation of Emacs Interpreted Objects'')
50a CLOS (Common Lisp Object System) compatibility layer for Emacs Lisp. 50provides an Object Oriented layer for Emacs Lisp, following the basic
51It provides a framework for writing object-oriented applications in 51concepts of the Common Lisp Object System (CLOS). It provides a
52Emacs. 52framework for writing object-oriented applications in Emacs.
53 53
54@ifnottex 54@ifnottex
55@insertcopying 55@insertcopying
@@ -201,8 +201,6 @@ Byte compilation support of methods.
201@item 201@item
202Help system extensions for classes and methods. 202Help system extensions for classes and methods.
203@item 203@item
204Automatic texinfo documentation generator.
205@item
206Several base classes for interesting tasks. 204Several base classes for interesting tasks.
207@item 205@item
208Simple test suite. 206Simple test suite.
@@ -212,20 +210,31 @@ Public and private classifications for slots (extensions to CLOS)
212Customization support in a class (extension to CLOS) 210Customization support in a class (extension to CLOS)
213@end enumerate 211@end enumerate
214 212
215Here are some CLOS features that @eieio{} presently lacks: 213Here are some important CLOS features that @eieio{} presently lacks:
216 214
217@table @asis 215@table @asis
218@item Complete @code{defclass} tag support
219All CLOS tags are currently supported, but the following are not
220currently implemented correctly:
221 216
222@table @code 217@item Method dispatch
223@item :metaclass 218EIEO does not support method dispatch for built-in types and multiple
224There is only one base superclass for all @eieio{} classes, which is 219arguments types. In other words, method dispatch only looks at the
225the @code{eieio-default-superclass}. 220first argument, and this one must be an @eieio{} type.
226@item :default-initargs 221
222@item Support for metaclasses
223There is just one default metaclass, @code{eieio-default-superclass},
224and you cannot define your own. The @code{:metaclass} tag in
225@code{defclass} is ignored. Also, functions like `class-of' and
226`find-class', which should return instances of the metaclass, behave
227differently in @eieio{} in that they return symbols or plain structures
228instead.
229
230@item EQL specialization
231EIEIO does not support it.
232
233@item @code{:around} method tag
234This CLOS method tag is non-functional.
235
236@item :default-initargs in @code{defclass}
227Each slot has an @code{:initarg} tag, so this is not really necessary. 237Each slot has an @code{:initarg} tag, so this is not really necessary.
228@end table
229 238
230@item Mock object initializers 239@item Mock object initializers
231Each class contains a mock object used for fast initialization of 240Each class contains a mock object used for fast initialization of
@@ -233,15 +242,23 @@ instantiated objects. Using functions with side effects on object slot
233values can potentially cause modifications in the mock object. @eieio{} 242values can potentially cause modifications in the mock object. @eieio{}
234should use a deep copy but currently does not. 243should use a deep copy but currently does not.
235 244
236@item @code{:around} method tag
237This CLOS method tag is non-functional.
238
239@end table 245@end table
240 246
241@node Building Classes 247@node Building Classes
242@comment node-name, next, previous, up 248@comment node-name, next, previous, up
243@chapter Building Classes 249@chapter Building Classes
244 250
251First off, please note that this manual cannot serve as a complete
252introduction to object oriented programming and generic functions in
253LISP. Although EIEIO is not a complete CLOS implementation and also
254differs from CLOS in several aspects, it follows the same basic
255concepts. Therefore, it is highly recommended to learn these from a
256textbook or tutorial first, especially if you only know OOP from
257languages like C++ or Java. If on the other hand you are already
258familiar with CLOS, you should be aware that @eieio{} does not implement
259the full CLOS specificiation and also differs in some other aspects
260(@xref{Introduction}, and @ref{CLOS compatibility}).
261
245A @dfn{class} is a definition for organizing data and methods 262A @dfn{class} is a definition for organizing data and methods
246together. An @eieio{} class has structures similar to the classes 263together. An @eieio{} class has structures similar to the classes
247found in other object-oriented (OO) languages. 264found in other object-oriented (OO) languages.
@@ -1930,8 +1947,9 @@ Some important compatibility features that would be good to add are:
1930 1947
1931@enumerate 1948@enumerate
1932@item 1949@item
1950Support for metaclasses and EQL specialization.
1951@item
1933@code{:around} method key. 1952@code{:around} method key.
1934
1935@item 1953@item
1936Method dispatch for built-in types. 1954Method dispatch for built-in types.
1937@item 1955@item
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog
index 1b8e4725dc1..c39a8a700ef 100644
--- a/lisp/cedet/ChangeLog
+++ b/lisp/cedet/ChangeLog
@@ -1,3 +1,20 @@
12013-07-29 David Engster <deng@randomsample.de>
2
3 * lisp/cedet/cedet.el (cedet-packages): Remove speedbar since its
4 development does no longer happens in CEDET upstream but in Emacs
5 proper. Also remove cedet-contrib and cogre since those are only
6 in upstream.
7
8 * semantic/analyze/fcn.el (semantic-analyze-type-to-name): If TYPE
9 has a parent, return a fully qualified name.
10
11 * semantic/decorate/mode.el
12 (semantic-decoration-on-includes-p-default)
13 (semantic-decoration-on-includes-highlight-default): Declare for
14 byte compiler.
15
16 * semantic/wisent/python.el (semantic/format): New require.
17
12013-07-27 Eric Ludlam <zappo@gnu.org> 182013-07-27 Eric Ludlam <zappo@gnu.org>
2 19
3 * lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap 20 * lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap
diff --git a/lisp/cedet/cedet.el b/lisp/cedet/cedet.el
index e8720bc6624..f34442996c1 100644
--- a/lisp/cedet/cedet.el
+++ b/lisp/cedet/cedet.el
@@ -46,9 +46,6 @@
46 (semantic "2.2" nil "semantic/doc") 46 (semantic "2.2" nil "semantic/doc")
47 (srecode "1.2" nil "srecode" ) 47 (srecode "1.2" nil "srecode" )
48 (ede "1.2" nil "ede" ) 48 (ede "1.2" nil "ede" )
49 (speedbar "1.0.4" nil "speedbar" )
50 (cogre "1.2" nil "cogre" )
51 (cedet-contrib "1.2" "contrib" nil )
52 ) 49 )
53 "Table of CEDET packages to install.") 50 "Table of CEDET packages to install.")
54 51
diff --git a/lisp/cedet/semantic/analyze/fcn.el b/lisp/cedet/semantic/analyze/fcn.el
index 4300c89c9df..7512b7ca15a 100644
--- a/lisp/cedet/semantic/analyze/fcn.el
+++ b/lisp/cedet/semantic/analyze/fcn.el
@@ -165,7 +165,10 @@ SCOPE is the scope object with additional items in which to search for names."
165The TYPE field in a tag can be nil (return nil) 165The TYPE field in a tag can be nil (return nil)
166or a string, or a non-positional tag." 166or a string, or a non-positional tag."
167 (cond ((semantic-tag-p type) 167 (cond ((semantic-tag-p type)
168 (semantic-tag-name type)) 168 (if (semantic-tag-named-parent type)
169 (semantic-analyze-unsplit-name `(,(semantic-tag-named-parent type)
170 ,(semantic-tag-name type)))
171 (semantic-tag-name type)))
169 ((stringp type) 172 ((stringp type)
170 type) 173 type)
171 ((listp type) 174 ((listp type)
diff --git a/lisp/cedet/semantic/decorate/mode.el b/lisp/cedet/semantic/decorate/mode.el
index ba06c73936b..cc5e9d9bec2 100644
--- a/lisp/cedet/semantic/decorate/mode.el
+++ b/lisp/cedet/semantic/decorate/mode.el
@@ -541,6 +541,10 @@ Use a primary decoration."
541 541
542;;; Decoration Modes in other files 542;;; Decoration Modes in other files
543;; 543;;
544(declare-function semantic-decoration-on-includes-p-default
545 "semantic/decorate/include")
546(declare-function semantic-decoration-on-includes-highlight-default
547 "semantic/decorate/include")
544(define-semantic-decoration-style semantic-decoration-on-includes 548(define-semantic-decoration-style semantic-decoration-on-includes
545 "Highlight class members that are includes. 549 "Highlight class members that are includes.
546This mode provides a nice context menu on the include statements." 550This mode provides a nice context menu on the include statements."
diff --git a/lisp/cedet/semantic/wisent/python.el b/lisp/cedet/semantic/wisent/python.el
index 719868f7635..2c0ed5868ce 100644
--- a/lisp/cedet/semantic/wisent/python.el
+++ b/lisp/cedet/semantic/wisent/python.el
@@ -39,6 +39,7 @@
39(require 'semantic/find) 39(require 'semantic/find)
40(require 'semantic/dep) 40(require 'semantic/dep)
41(require 'semantic/ctxt) 41(require 'semantic/ctxt)
42(require 'semantic/format)
42 43
43(eval-when-compile 44(eval-when-compile
44 (require 'cl)) 45 (require 'cl))