Daniel Clemente | 7 Dec 2008 12:39
Picon
Favicon

nil classes, like in: eieiomt-method-list(semanticdb-synchronize 0 nil)


Hi,
  I'm getting following error:

---------------
Debugger entered: nil
  eieiomt-method-list(semanticdb-synchronize 0 nil)
  (setq lambdas (cons tlambdas lambdas) keys (cons method-static keys) primarymethodlist
(eieiomt-method-list method method-static mclass))
...
---------------

  with CEDET from yesterday's CVS. I attach the full backtrace in a file. What I did was just opening a file
(jabber-core.el), but similar errors happen continuously. For instance this one:

-------------
Debugger entered: nil
  eieiomt-method-list(ede-object-keybindings 0 nil)
  eieio-generic-call(ede-object-keybindings (nil))
  ede-object-keybindings(nil)
...
-------------

  It's not the first time I got a class=nil in eieiomt-method-list. I don't know if that's supposed to happen. So:

1.  Could you please add some documentation to eieiomt-method-list which says whether receiving a nil
class is part of the normal behaviour or not?

2.  Since it seems that more people have had similar problems with nil classes coming here, could the error be
catched and an error message be shown instead? In this way you can get a message asking to report the bug,
(Continue reading)

Eric M. Ludlam | 7 Dec 2008 17:20
Gravatar

Re: nil classes, like in: eieiomt-method-list(semanticdb-synchronize 0 nil)

Hi,

 I tried calling the same functions, such as:

(ede-object-keybindings nil)

or

 (semanticdb-synchronize-table nil)

and got no errors.  I looked through the eieio code, and as far as I
can tell, the values passed in are all ok.

The stacks, in fact, look suspicious, as it just says:

>Debugger entered: nil

which, as far as I can tell, is not an error.

The times when I do see errors in the code pointed to by your stacks
is when I load EIEIO twice, or if I byte-compile EIEIO in an Emacs
that already has an EIEIO loaded.

I checked in some changes to EIEIO with a little more doc, and error
checks around that spot, but also put code at the top to prevent
double loading of EIEIO.  Perhaps that will detect some setup issue
you may have.

As far as 'nil' being an issue, it turns out that nil is ok.  It is a
reasonable end condition.  Nils associated with static methods (the key
(Continue reading)

Daniel Clemente | 8 Dec 2008 13:25
Picon
Favicon

Re: nil classes, like in: eieiomt-method-list(semanticdb-synchronize 0 nil)

Hi,

"Eric M. Ludlam" <eric <at> siege-engine.com> writes:

> The stacks, in fact, look suspicious, as it just says:
>
>>Debugger entered: nil
>
> which, as far as I can tell, is not an error.
>

  That was my error... :-( Since I had had problems with nil classes before, I had written an advice before
eieiomt-method-list which would enter (debug) if the class be nil.
  I had seen no signs of that defadvice because adviced code apparently isn't visible in backtraces. I
verified this with:

(defadvice forward-sentence (before enter-debug-before-M-e activate)
  "Test whether this code ( (let) and (if) ) appears on the backtrace when (debug) appears"
(let ((total 4)) 
 (if (= total (+ 2 2)) (debug))
)
)

Debugger entered: nil
  forward-sentence(1)
  call-interactively(forward-sentence nil nil)

> The times when I do see errors in the code pointed to by your stacks
> is when I load EIEIO twice, or if I byte-compile EIEIO in an Emacs
> that already has an EIEIO loaded.
(Continue reading)

Eric M. Ludlam | 11 Dec 2008 05:09
Gravatar

Recent changes to CEDET

Greetings all,

  I've been busy chasing bugs for several mailing list questions over
the past couple weeks.  I wanted to let folks know what the latest
changes in CEDET/CVS are.

Summary:
 * Speed improvements in EDE and Semanticdb
 * Analyzer bug fixes
 * New symref tool

  Aside from several bug-fixes already discussed on the mailing list,
I've been working on some performance enhancements.  In particular, I
found that EDE was hitting the disk a lot validating various project
states.  I found a simple C file hit the disk for a single project 38
times.  More if you consider the fact that there are 5 project types
to scan for.

  The EDE project baseclass was updated to cache more info about where
it is, including the filesystem inode.  Several predicates now do an
inode compare, so the per-project scan disk hit is now 0 times after
the initial project load.  (This was measured on the cpp-root project
style.)  I'm particularly interested in hearing how these changes work
on Windows, and on XEmacs.  The internal caches are also using
hash-tables, so older versions of Emacs won't be supported anymore.

  Performance tweaks in semanticdb have also occurred.  Data base
tables now track the buffer they are associated with.  While there is
now a chance a table may erroneously point to a dead buffer, the
benefit now is that the function "file-truename" is no longer called
(Continue reading)

Alex Ott | 11 Dec 2008 12:24
Picon
Gravatar

Re: Recent changes to CEDET

Hello Eric

>>>>> "EML" == Eric M Ludlam writes:
 EML>   Ok, lastly there is a new symref tool.  You can try it with:

 EML> M-x semantic-symref RET

 EML>   It will tell you where the tag the cursor is in is used in your
 EML> project.  It has two backend implementations.  One with find/grep,
 EML> and one using GNU Global.  It will detect which one to use.  I've
 EML> only tested this with C/C++ so far.  The find/grep solution works
 EML> well for small projects like CEDET.  The GNU Global is nice on big
 EML> projects.

Here is small patch, that fix problem with incorrect setting of read-only
status for symref-mode -- buffer not always was switched to read-only,
allowing to enter any text

and i also try to implement hiding of the buffer when user will press q
button

P.S. is it necessary to ask user each time - does he want to search given
tag? May be it's better to ask user for name of tag, suggesting current tag
as variant?

Attachment (cedet-symref.patch): text/x-diff, 1279 bytes

--

-- 
(Continue reading)

Eric M. Ludlam | 11 Dec 2008 14:41
Gravatar

Re: Recent changes to CEDET

>>> Alex Ott <alexott <at> gmail.com> seems to think that:
>
>>>>>> "EML" == Eric M Ludlam writes:
> EML>   Ok, lastly there is a new symref tool.  You can try it with:
>
> EML> M-x semantic-symref RET
>
>
>Here is small patch, that fix problem with incorrect setting of read-only
>status for symref-mode -- buffer not always was switched to read-only,
>allowing to enter any text
>
>and i also try to implement hiding of the buffer when user will press q
>button

Good stuff.  Thanks.  I applied the patch.

>P.S. is it necessary to ask user each time - does he want to search given
>tag? May be it's better to ask user for name of tag, suggesting current tag
>as variant?

For GNU Global, there is a distinction between searching for a tag in
your project, or symbols not in your project.  As such, this
particular API restricts things to a tag Semantic knows about.  When
it didn't ask, the function ran off and did stuff, and I assumed this
would be unexpected.

I would expect there to be a second version of the command that
searches for symbols not in the local project (ie, strcmp for
example.)
(Continue reading)

Eric M. Ludlam | 12 Dec 2008 05:31
Gravatar

GNU Global database added.

There is now a semanticdb backend for GNU Global in CEDET/CVS.

It depends on the semantic-symref API I posted about yesterday.

It does name-only searches.  To enabled it, do:

(semanticdb-enable-gnu-global-databases 'c-mode)

or

(semanticdb-enable-gnu-global-databases 'c++-mode)

and if you have a GLOBAL database, it will show up in your Semantic
database lists.

I have little notion on what exactly this will do in most cases,
particularly in C++ with complex systems, and in WRT the typecache.
I'll figure that out on a different day.  In the meantime, you can now
complete/jump to new and exciting locations.

Eric

--

-- 
          Eric Ludlam:                       eric <at> siege-engine.com
   Siege: www.siege-engine.com          Emacs: http://cedet.sourceforge.net

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
(Continue reading)

Alex Ott | 12 Dec 2008 08:51
Picon
Gravatar

Re: GNU Global database added.

Hello Eric

>>>>> "EML" == Eric M Ludlam writes:
 EML> There is now a semanticdb backend for GNU Global in CEDET/CVS.  It
 EML> depends on the semantic-symref API I posted about yesterday.

 EML> It does name-only searches.  To enabled it, do:

 EML> (semanticdb-enable-gnu-global-databases 'c-mode)

 EML> or

 EML> (semanticdb-enable-gnu-global-databases 'c++-mode)

 EML> and if you have a GLOBAL database, it will show up in your Semantic
 EML> database lists.

 EML> I have little notion on what exactly this will do in most cases,
 EML> particularly in C++ with complex systems, and in WRT the typecache.
 EML> I'll figure that out on a different day.  In the meantime, you can
 EML> now complete/jump to new and exciting locations.

Thanks for this addition. Here is small patch, that allow proper
compilation & load of new feature

Attachment (cedet-globaldb.patch): text/x-diff, 1103 bytes

--

-- 
(Continue reading)

Eric M. Ludlam | 12 Dec 2008 13:48
Gravatar

Re: GNU Global database added.

>>> Alex Ott <alexott <at> gmail.com> seems to think that:
>
>Thanks for this addition. Here is small patch, that allow proper
>compilation & load of new feature

Thanks.  I probably should have used the command line to build before
checking in.

I updated the EDE project, and checked in those changes.

Eric

--

-- 
          Eric Ludlam:                       eric <at> siege-engine.com
   Siege: www.siege-engine.com          Emacs: http://cedet.sourceforge.net

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
Jake Colman | 15 Dec 2008 03:18

CVS Access to cedet


Do provide anonymous access to the cedet CVS repository?  The web pages
only provide access to 1.0pre4 and I would prefer trying the latest
features.

--

-- 
Jake Colman
Director of Software Development
Principia Partners LLC
101 West Elm Street
Suite 620
Conshohocken, PA  19428
+1 (610) 755-9786
www.principiapartners.com

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/

Gmane