emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113588: Merge CEDET upstream (rev. 8579)


From: David Engster
Subject: [Emacs-diffs] trunk r113588: Merge CEDET upstream (rev. 8579)
Date: Mon, 29 Jul 2013 20:29:15 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113588 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: David Engster <address@hidden>
branch nick: trunk
timestamp: Mon 2013-07-29 22:28:22 +0200
message:
  Merge CEDET upstream (rev. 8579)
modified:
  doc/misc/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-6331
  doc/misc/eieio.texi            
eieio.texi-20091113204419-o5vbwnq5f7feedwu-11397
  lisp/cedet/ChangeLog           changelog-20100919015713-3rbr456yray5m84f-1
  lisp/cedet/cedet.el            cedet.el-20091113204419-o5vbwnq5f7feedwu-11201
  lisp/cedet/semantic/analyze/fcn.el 
fcn.el-20091113204419-o5vbwnq5f7feedwu-11241
  lisp/cedet/semantic/decorate/mode.el 
mode.el-20091113204419-o5vbwnq5f7feedwu-11272
  lisp/cedet/semantic/wisent/python.el 
python.el-20100110003642-lq2q4e83khar4ls8-2
=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2013-07-29 09:07:30 +0000
+++ b/doc/misc/ChangeLog        2013-07-29 20:28:22 +0000
@@ -1,3 +1,11 @@
+2013-07-29  David Engster <address@hidden>
+
+       * eieio.texi (top): Make clear that EIEIO is not a full CLOS
+       implementation.
+       (Introduction): Add further missing features.
+       (Building Classes): Add introductory paragraph.
+       (Wish List): Add metaclasses and EQL specialization.
+
 2013-07-29  Michael Albinus  <address@hidden>
 
        * tramp.texi (Frequently Asked Questions): Mention

=== modified file 'doc/misc/eieio.texi'
--- a/doc/misc/eieio.texi       2013-01-01 09:11:05 +0000
+++ b/doc/misc/eieio.texi       2013-07-29 20:26:19 +0000
@@ -46,10 +46,10 @@
 @comment  node-name,  next,  previous,  up
 @top EIEIO
 
address@hidden (``Enhanced Implementation of Emacs Interpreted Objects'') is
-a CLOS (Common Lisp Object System) compatibility layer for Emacs Lisp.
-It provides a framework for writing object-oriented applications in
-Emacs.
address@hidden (``Enhanced Implementation of Emacs Interpreted Objects'')
+provides an Object Oriented layer for Emacs Lisp, following the basic
+concepts of the Common Lisp Object System (CLOS).  It provides a
+framework for writing object-oriented applications in Emacs.
 
 @ifnottex
 @insertcopying
@@ -201,8 +201,6 @@
 @item
 Help system extensions for classes and methods.
 @item
-Automatic texinfo documentation generator.
address@hidden
 Several base classes for interesting tasks.
 @item
 Simple test suite.
@@ -212,20 +210,31 @@
 Customization support in a class (extension to CLOS)
 @end enumerate
 
-Here are some CLOS features that @eieio{} presently lacks:
+Here are some important CLOS features that @eieio{} presently lacks:
 
 @table @asis
address@hidden Complete @code{defclass} tag support
-All CLOS tags are currently supported, but the following are not
-currently implemented correctly:
-
address@hidden @code
address@hidden :metaclass
-There is only one base superclass for all @eieio{} classes, which is
-the @code{eieio-default-superclass}.
address@hidden :default-initargs
+
address@hidden Method dispatch
+EIEO does not support method dispatch for built-in types and multiple
+arguments types.  In other words, method dispatch only looks at the
+first argument, and this one must be an @eieio{} type.
+
address@hidden Support for metaclasses
+There is just one default metaclass, @code{eieio-default-superclass},
+and you cannot define your own.  The @code{:metaclass} tag in
address@hidden is ignored.  Also, functions like `class-of' and
+`find-class', which should return instances of the metaclass, behave
+differently in @eieio{} in that they return symbols or plain structures
+instead.
+
address@hidden EQL specialization
+EIEIO does not support it.
+
address@hidden @code{:around} method tag
+This CLOS method tag is non-functional.
+
address@hidden :default-initargs in @code{defclass}
 Each slot has an @code{:initarg} tag, so this is not really necessary.
address@hidden table
 
 @item Mock object initializers
 Each class contains a mock object used for fast initialization of
@@ -233,15 +242,23 @@
 values can potentially cause modifications in the mock object.  @eieio{}
 should use a deep copy but currently does not.
 
address@hidden @code{:around} method tag
-This CLOS method tag is non-functional.
-
 @end table
 
 @node Building Classes
 @comment  node-name,  next,  previous,  up
 @chapter Building Classes
 
+First off, please note that this manual cannot serve as a complete
+introduction to object oriented programming and generic functions in
+LISP.  Although EIEIO is not a complete CLOS implementation and also
+differs from CLOS in several aspects, it follows the same basic
+concepts.  Therefore, it is highly recommended to learn these from a
+textbook or tutorial first, especially if you only know OOP from
+languages like C++ or Java.  If on the other hand you are already
+familiar with CLOS, you should be aware that @eieio{} does not implement
+the full CLOS specificiation and also differs in some other aspects
+(@xref{Introduction}, and @ref{CLOS compatibility}).
+
 A @dfn{class} is a definition for organizing data and methods
 together.  An @eieio{} class has structures similar to the classes
 found in other object-oriented (OO) languages.
@@ -1930,8 +1947,9 @@
 
 @enumerate
 @item
+Support for metaclasses and EQL specialization.
address@hidden
 @code{:around} method key.
-
 @item
 Method dispatch for built-in types.
 @item

=== modified file 'lisp/cedet/ChangeLog'
--- a/lisp/cedet/ChangeLog      2013-07-27 21:09:43 +0000
+++ b/lisp/cedet/ChangeLog      2013-07-29 20:26:19 +0000
@@ -1,3 +1,20 @@
+2013-07-29  David Engster <address@hidden>
+
+       * lisp/cedet/cedet.el (cedet-packages): Remove speedbar since its
+       development does no longer happens in CEDET upstream but in Emacs
+       proper.  Also remove cedet-contrib and cogre since those are only
+       in upstream.
+
+       * semantic/analyze/fcn.el (semantic-analyze-type-to-name): If TYPE
+       has a parent, return a fully qualified name.
+
+       * semantic/decorate/mode.el
+       (semantic-decoration-on-includes-p-default)
+        (semantic-decoration-on-includes-highlight-default): Declare for
+       byte compiler.
+
+       * semantic/wisent/python.el (semantic/format): New require.
+
 2013-07-27  Eric Ludlam <address@hidden>
 
        * lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap

=== modified file 'lisp/cedet/cedet.el'
--- a/lisp/cedet/cedet.el       2013-01-31 19:58:56 +0000
+++ b/lisp/cedet/cedet.el       2013-07-29 20:26:19 +0000
@@ -46,9 +46,6 @@
     (semantic      "2.2"           nil       "semantic/doc")
     (srecode       "1.2"           nil       "srecode"     )
     (ede           "1.2"           nil       "ede"         )
-    (speedbar      "1.0.4"         nil       "speedbar"    )
-    (cogre         "1.2"           nil       "cogre"       )
-    (cedet-contrib "1.2"           "contrib" nil           )
     )
   "Table of CEDET packages to install.")
 

=== modified file 'lisp/cedet/semantic/analyze/fcn.el'
--- a/lisp/cedet/semantic/analyze/fcn.el        2013-06-01 18:02:58 +0000
+++ b/lisp/cedet/semantic/analyze/fcn.el        2013-07-29 20:26:19 +0000
@@ -165,7 +165,10 @@
 The TYPE field in a tag can be nil (return nil)
 or a string, or a non-positional tag."
   (cond ((semantic-tag-p type)
-        (semantic-tag-name type))
+        (if (semantic-tag-named-parent type)
+            (semantic-analyze-unsplit-name `(,(semantic-tag-named-parent type)
+                                             ,(semantic-tag-name type)))
+          (semantic-tag-name type)))
        ((stringp type)
         type)
        ((listp type)

=== modified file 'lisp/cedet/semantic/decorate/mode.el'
--- a/lisp/cedet/semantic/decorate/mode.el      2013-06-19 07:28:47 +0000
+++ b/lisp/cedet/semantic/decorate/mode.el      2013-07-29 20:26:19 +0000
@@ -541,6 +541,10 @@
 
 ;;; Decoration Modes in other files
 ;;
+(declare-function semantic-decoration-on-includes-p-default
+                 "semantic/decorate/include")
+(declare-function semantic-decoration-on-includes-highlight-default
+                 "semantic/decorate/include")
 (define-semantic-decoration-style semantic-decoration-on-includes
   "Highlight class members that are includes.
 This mode provides a nice context menu on the include statements."

=== modified file 'lisp/cedet/semantic/wisent/python.el'
--- a/lisp/cedet/semantic/wisent/python.el      2013-06-02 13:33:09 +0000
+++ b/lisp/cedet/semantic/wisent/python.el      2013-07-29 20:26:19 +0000
@@ -39,6 +39,7 @@
 (require 'semantic/find)
 (require 'semantic/dep)
 (require 'semantic/ctxt)
+(require 'semantic/format)
 
 (eval-when-compile
   (require 'cl))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]