Re[1]: update: problem with wisent

2005-08-12 Thread Eric M. Ludlam
The file wisent-yourlanguagedefhere-wy.el is a generated file.  If you
did a make clean or similar in cedet or cedet/semantic, it will
delete those files.  If you follow the INSTALL instructions for
building CEDET, it should eventually construct those files for you.

Eric

 Ernst Reissner [EMAIL PROTECTED] seems to think that:
Hello,

i just updated to 2.3.5 and now jde is not loaded at all.
A look into the messages buffer shows:

Loading wisent-java-tags (source)...
eval-buffer:
Cannot open load file: wisent-java-tags-wy
Loading lazy-lock...done
Fontifying BasicTypesCompatibilityChecker.java... (regexps..)
Loading lazy-lock...done
Loading mwheel...done


a, yes, a look into 
/usr/share/emacs/cedet-1.0beta3b/semantic/wisent/wisent-java-tags.el
shows the line

(require 'wisent-java-tags-wy)

and there is no file wisent-java-tags-wy.el
only
wisent-java-tags.el  wisent-java-tags.wy  wisent-java.el   
wisent-java.wy

What's wrong here?


greetings

Ernst


-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[6]: header line bugs and artifacts

2005-04-28 Thread Eric M. Ludlam
Howdy,

 Jens Lautenbacher [EMAIL PROTECTED] seems to think that:
On Thu, 2005-04-28 at 08:08 -0400, Eric M. Ludlam wrote:
 Hi,
   To be clear, is it just the header line, and semantic decorations
 that scare people away, or the whole set of code helpers including
 imenu, summary-mode, completion mode, and what-not.

It's different.

The header line is most problematic in my case (and maybe others) as I
use the very cool tabbar.el by David Ponce (which is unexplainable to me
still not part of standard emacs...) - So putting something there
exclusively doesn't work for me.

I queried the emacs devel mailing list some time ago about multi-line
headers, or having methods for two tools to operate on the header-line
so tabbar could work with stickyfunc mode.  Sadly, they cannot be
combined. :(

Semantic decorations of methods would be nice, but I never understood
the somehow arbitrary exclusion of small methods/functions, but as

I'll remove that arbitrary restriction.

Nascif said in another mail, it would be ever so much nicer to use the
fringe to have e.g. clickeable markers for methods which could be used
to show/hide them on demand.=20

There is a contributed semantic-tag-folding mode that could be
enabled.  Custom fringe bitmaps can only currently be done in the CVS
version of Emacs.  His folding mode is very high on the glitz
factor.  He recently sent me a patch to make it a little less shocking
on first use which I hope to integrate into CVS soon.

His mode also exposed a limitation in the current decoration system I
need to figure out how to solve, though I haven't had time to test his
patch yet to see if it was resolved.

Completion mode is quite nice, but seems to have problems, e.g. (or it's
a problem of semantic/java - I can't decide) the following construct,
point at end of it in second line, will not complete as it doesn't
seem to recognize iter to be in scope:
for (Iterator iter =3D in.iterator(); iter.hasNext();) {
   itpoint
}
Another thing from a users point of view is that it would be really cool
to have jde's class file based completion of methods and semantics
source based completion of in-scope variables merged into _one_. The
problem of semantic in this regard (and the problem many of my coworkers
seem to have with it) is that it has some GUI related features, that
somehow peek through the tools that use it (like JDE, ECB) without
really integrating with them.=20

I have the good fortune to not only work at the same company as Paul
K. but also in the same building.  We have spent many an hour
contemplating the various merits of Emacs things.

Alternately, we come from surprisingly different backgrounds on how to
use Emacs.  My fingers have a hard time using his configuration. ;)

Anyway, Paul has been very helpful with contributions to semantic,
including the first imenu implementation, and the first draft code for
what is now the semanticdb back-end abstraction.

I would like nothing more than for there to be a JDE based back-end to
semanticdb.  It is my understanding that there is a method name
nomenclature issue preventing a simple implementation, in addition to
the usual gads, I don't have time type thing.

Paul and I have different goals as well, as I need to somehow write an
API that lets Java and Makefiles look sort-of the same to tools like
ECB.  Paul just wants to make Emacs be the best thing for working on
Java.

I could expound some more, but I need to give my kids a bath.

Please don't take this as an insult to your great work (and the great
work the ECB and JDE guys do) - it's just the impression of the user
visible parts and how they interact.

I have a pretty thick skin after 10 years of emacs contributions. ;)
I appreciate your thoughtful suggestions.  Some just take longer to
tidy up than others.

Thanks!
Eric



Thanks,
   jtl


 Thanks
 Eric
=20
  Nascif Abousalh-Neto [EMAIL PROTECTED] seems to think t=
hat:
 Hi Eric,
 
 This approach can also be overwhelming and frustrating - I saw it
 first hand with some co-workers, having to stop their work to find out
 and turn off new features they didn't want in the first place.
 
 Another tactic might be to start with the more powerful features
 disabled and provide documentation on them, including
 screenshots. Curious users will find the info and tinker with them,
 and spread the word in wikis and mailing lists; less sophisticated
 users won't be frustrated with all the colors and extra fontification
 getting in their way, coming from nowhere, as soon as they install the
 new library. They might them be more receptive to turn them on later.
 
 Best regards,
   Nascif
 
 
  -Original Message-
  From: Eric M. Ludlam [mailto:[EMAIL PROTECTED]
  Sent: Saturday, April 23, 2005 8:46 AM
  To: Felix Dorner
  Cc: jde@sunsite.dk
  Subject: Re[2]: header line bugs and artifacts
 =20
  Hi,
 =20
Stickyfunc mode puts the first line of the method/class=20
  that is on the top line of the window into the header line. =20

Re[6]: header line bugs and artifacts

2005-04-28 Thread Eric M. Ludlam
The distinctions between some of the APIs, and the various modes is
very thin.

My goal with semantic is to provide a set of APIs to get and
manipulate tags.

The various modes, such as boundary mode, or sticky func, are usually
very thin wrappers around the built-in APIs that add things such as a
face and the mode functions, and the hook-glue to make them work.  For
example, the meat of the tag-boundary mode is 28 lines, half of which
is effectivly white-space.

Anyway, I'll continue to tune the initial set up based on what input I
get.

I addressed the folding feature you mention below in a different email
to the jde mailing list.

Eric

 Nascif Abousalh-Neto [EMAIL PROTECTED] seems to think that:
Hi again,

I think those improvements will be nice. As for your question, I would
guess that in 90% of the times what scares people away (and creates
the urge to turn things off) are the semantic decorations, that 1) are
visually very intrusive and 2) come as a complete surprise. I think a
lot of users are getting CEDET because it is a requirememnt for JDE
and/or ECB - so they may have not read its documentation, assuming it
is just a under-the-covers library like a parser (which it is) not
realizing it has also UI-affecting features. Underlines are also bad
because they hide underscores (a small problem that can be annoying
sometimes).

Perhaps using the fringe now that Emacs allows you to have more
control on what goes there? I think other IDEs (e.g. Eclipse) take
that approach, of adding small icons on a left to give you feedback
about the code. Just an idea :-)

Regards,
  Nascif

 -Original Message-
 From: Eric M. Ludlam [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, April 28, 2005 8:08 AM
 To: Nascif Abousalh-Neto
 Cc: [EMAIL PROTECTED]; jde@sunsite.dk
 Subject: Re[4]: header line bugs and artifacts
 
 Hi,
 
   Thanks for the input.  All I usually see is What is that 
 and how to I turn it off?, and after an explanation, oh, 
 that's neat.  As such, I don't get this perspective.
 
   I've been fiddling with the header line already.  In the 
 next version, clicking on it will provide a menu with a few 
 semantic things in it, and a what is this? note in it.
 
   The decorations should probably have an explicit list in a 
 menu to be turned on and off.
 
   In the meantime, I will split the default code-helpers 
 install into two sections.  The basic code helpers will have 
 the subtle stuff, and then move stickyfunc and decoration 
 mode into the existing excessive setup fcn.
 
   I'll also update the semantic INSTALL file to make it 
 easier to do a custom setup.
 
   To be clear, is it just the header line, and semantic 
 decorations that scare people away, or the whole set of code 
 helpers including imenu, summary-mode, completion mode, and what-not.
 
 Thanks
 Eric
 
  Nascif Abousalh-Neto [EMAIL PROTECTED] 
 seems to think that:
 Hi Eric,
 
 This approach can also be overwhelming and frustrating - I 
 saw it first 
 hand with some co-workers, having to stop their work to find out and 
 turn off new features they didn't want in the first place.
 
 Another tactic might be to start with the more powerful features 
 disabled and provide documentation on them, including screenshots. 
 Curious users will find the info and tinker with them, and 
 spread the 
 word in wikis and mailing lists; less sophisticated users won't be 
 frustrated with all the colors and extra fontification 
 getting in their 
 way, coming from nowhere, as soon as they install the new 
 library. They 
 might them be more receptive to turn them on later.
 
 Best regards,
   Nascif
 
 
  -Original Message-
  From: Eric M. Ludlam [mailto:[EMAIL PROTECTED]
  Sent: Saturday, April 23, 2005 8:46 AM
  To: Felix Dorner
  Cc: jde@sunsite.dk
  Subject: Re[2]: header line bugs and artifacts
  
  Hi,
  
Stickyfunc mode puts the first line of the method/class 
 that is on 
  the top line of the window into the header line.
  That way you can always see what function you are working on. 
   It's something I always thought would be useful.
  
The overline is simply a decoration to help divide 
 different types 
  of tags from eachother in the buffer.  I copied the idea from some 
  Java editor I saw a coworker using.
   It is a part of semantic-decoration-mode.  You can 
 concoct your own 
  decorations with `define-semantic-decoration-style'.
  
I have seen several times that people look at these 
 things and go 
  Eeww!  What's all this?  and after a little bit change 
 their minds 
  and think they are useful.
  
You can turn all the code-helpers off and suffer no 
 ill effect.  
  I turn most things on in the default so you get exposed to 
 them, and 
  can later choose which tools you like and turn off the others.
  
  Eric
  
   Felix Dorner [EMAIL PROTECTED] seems to think that:
  
  
  That's the because of semantic stickyfunc mode. Try M-x 
  global-semantic-stickyfunc-mode.

  
  
  OK thanks

Re[1]: Update Tag Table messages

2005-03-02 Thread Eric M. Ludlam
 Joseph Shraibman jks@selectacast.net seems to think that:
I am being driven mad by these Update Tag Table messages that semantic 
is giving me.  Whenever this happens emacs freezes on me for a few 
seconds.  How can I turn this off?


You can either increase the idle time via
semantic-idle-scheduler-idle-time or you can disable
global-semantic-idle-scheduler-mode.

The advantage of the idle scheduler is that it provides tag summaries
and some completion features.  The disadvantage is the amount of time
it may take to parse a file.  If you don't use those, you can postpone
tag updates till you request some action from semantic via some other
mechanism.

It is supposed to be possible to interrupt the incremental parsing
mechanism by just pressing a key.  It is unclear to me why this would
not work for you.  There are atomic operations that it doesn't work
in, but I thought those were all pretty short.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: semantic-tag-folding.el

2005-02-20 Thread Eric M. Ludlam
Hi,

  That is quite nifty.  I wrote one also which is in CEDET CVS only
right now, but yours is much niftier.  I like the highlight that is
the line down the side.  That is a nice effect.  The pre-existing
function `semantic-momentary-unhighlight-tag' could do well to emulate
it.

  In CEDET cvs, you will find new utility functions to make folding
easier, including `semantic-set-tag-folded' which works well with
isearch.  That is in CVS in semantic-decorate.el.

  I my version, if I click on the little + or - in the fringe too
much, my Emacs would crash, so I didn't persue it very far as I still
need to produce a good bug report.

 Suraj Acharya [EMAIL PROTECTED] seems to think that:
I've been working on a semantic-decoration style which allows tags to
be folded and unfolded, and uses fringe bitmaps to indicate where the
tags are.

http://www.emacswiki.org/elisp/semantic-tag-folding.el

From the commentary :

  [ ... ]

Eric,  I have a couple of questions about semantic-decorate-mode:

1)  The definition of semantic-decoration-styles seems to be missing a
:require attribute for semantic-decorate-mode. Currently, if I try to
customize its value, after starting up emacs I end with each style
listed twice in semantic-decoration-styles.

That variable maintains itself.  To fix that I probably need a second
variable that is customized, that the first references as new items
are auto-added.  I'll have to look into that.

2) I need to add a keybinding for clicking on the fringe for this
mode, it would be nice if there was key map for
semantic-decoration-mode.

If you look at semantic-fold.el from CVS, you will see how I
accomplished that task with a semantic-folding-mode of its own.  I
tend to create lots of modes for all the features to make them easy to
turn on and off without tromping other obscure features.

3) What is a good way to enable semantic-decoration-mode by default ? I tried
(add-hook 'jde-mode-hook 'semantic-decoration-mode) but it complains
Buffer Foo.java was not set up for parsing.

If you look in the INSTALL, you will see there are several startup
functions, and one is `(semantic-load-enable-code-helpers)' which
happens to have decoration mode enabled by default.

For any semantic mode, there is a `global-' version.  If you use that,
it will auto-add itself to any semantic enabled mode.

Semantic modes need to be added to `semantic-init-hooks'.  This hook
is run after the major-mode hook, which is why the buffer is not yet
setup for parsing.

4) Once semantic-decoration-mode is up and running and all the tags
have been decorated, if I make any edits in a tag it looks like all
the decorations for the tag are deleted and it is sent to the
highlight-default function again. Is there any way for the function to
be called with the old decorations intact so it can remove them only
if it wants to ?
  [ ... ]

I'm not quite sure what you mean.  Are you trying to prevent a folded
tag from being decorated by other decoration modes?  That could be
tricky as you probably want to keep some, but disable others.

Some decoration modes purposely do not decorate short functions, such
as boundary mode.  Perhaps they should just be made savvy toward tags
that are artificially shortened.  The detection of this in a generic
way may be challenging.

Lastly, you might want to run `M-x checkdoc' on your code to make your
doc-strings RMS compatible.

Your code is nifty!  Thanks.
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: [CEDET-devel] semantic-tag-folding.el

2005-02-20 Thread Eric M. Ludlam
 Suraj Acharya [EMAIL PROTECTED] seems to think that:
Hi Eric, 

Thanks for your answers.

I've just checked out the code from CVS and it is neat. If you'd like
I could take a shot at adding the addtional features from my code and
creating a patch for semantic-fold.el.

I have not spent enough time to decide which is the better
implementation to start from... other than that mine crashes Emacs. ;)

If you think the baseline in semantic-cvs is better, feel free to
upgrade it.
 
On Fri, 18 Feb 2005 22:27:23 -0500, Eric M. Ludlam
[EMAIL PROTECTED] wrote:
 Hi,
 
   That is quite nifty.  I wrote one also which is in CEDET CVS only
 right now, but yours is much niftier.  I like the highlight that is
 the line down the side.  That is a nice effect.  The pre-existing
 function `semantic-momentary-unhighlight-tag' could do well to emulate
 it.
 
   In CEDET cvs, you will find new utility functions to make folding
 easier, including `semantic-set-tag-folded' which works well with
 isearch.  That is in CVS in semantic-decorate.el.

I'll take a look. Btw, if you set the  'reveal-toggle-invisible
property on 'semantic-fold you can make the fringe bitmaps when if the
tag is opened by reveal-mode.

I'm not that familiar with that mode, but the doc makes it sound
useful.
 
   I my version, if I click on the little + or - in the fringe too
 much, my Emacs would crash, so I didn't persue it very far as I still
 need to produce a good bug report.
 
[...]
 4) Once semantic-decoration-mode is up and running and all the tags
 have been decorated, if I make any edits in a tag it looks like all
 the decorations for the tag are deleted and it is sent to the
 highlight-default function again. Is there any way for the function to
 be called with the old decorations intact so it can remove them only
 if it wants to ?
   [ ... ]
 
 I'm not quite sure what you mean.  Are you trying to prevent a folded
 tag from being decorated by other decoration modes?  That could be
 tricky as you probably want to keep some, but disable others.

What I'm trying to do is quite simple. Currently, if I unfold a tag,
make some edits inside and then move outside it, then the next time
the idle-timer kicks in and the tag is reparsed, it gets folded again.
What I'd like is that it remember the fact that I unfolded the tag and
not fold it. The simplest way to do this would be to somehow not clear
the decorations on the tag at all, since any edits would not require
them to be changed. Perhaps the decoration-style-highlight-default
function could get called only for new tags, while something like
decoration-style-update-after-edits could get called when the tag is
updated.

But I don't know much about semantic internals, so this might not make
sense. In that case  I just can store the fold state as an attribute
on the tag overlay or somewhere else.
  [ ... ]

Ah, I see.  I used decoration mode to put the markers in the file, but
not to actually fold the tags.  Having tag folded or not is a separate
attribute which I placed on the tags using the new function
`semantic-set-tag-folded'.  The option of folding all the tags (or
not) is then part of the major mode initialization.

As my version doesn't start stuff out folded, doing so would have
conflicting goals.  I've tried to set things up so files are not
parsed until after the buffer is shown, with the exception of tags
loaded in from a database.  This conflicts with the goal of forcing
the tags to be folded when the minor-mode starts up.

Loading a file might look like this:

 - find-file
 - foo-mode
   - foo-mode-hook
   - semantic-setup-foo-mode
 - semantic-init
   - semantic-init-hook
   - semanticdb-semantic-init-hook-fcn
   - semantic-tag-folding-mode
 * If no tags from DB, setup a reparse hook
   otherwise fold everything.
 * file is displayed
 - semantic-idle-scheduler
   - semantic-fetch-tags
   - semantic-after-toplevel-cache-change-hook
 - semantic-folding-tag-mode-after-first-reparse-hook
   * Decide if you want to fold all your new tags.
   * remove hook from list.

Does that make sense?

One other thing I noticed:

Here are a couple other comments I have about your code:

  Returns non-nil if TAG is to be considered for folding.  TAG
  has to have valid start and end locations in the
  buffer. Customize `semantic-tag-folding-allow-folding-of' to
  influence the output of this
  function.  
  (let ((c (semantic-tag-class tag)))
(and
 (semantic-tag-end tag)
 (semantic-tag-start tag)

You can use `semantic-tag-with-position-p' to find out if the tag has
a position.


Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: java folding

2005-02-02 Thread Eric M. Ludlam
 [EMAIL PROTECTED] seems to think that:
Jens Lautenbacher wrote:
 On Wed, 2005-02-02 at 11:59 +, Phillip Lord wrote:
 Guy == Guy Thomas [EMAIL PROTECTED] writes:
 
   Guy I first of all want to have a quick overview of the method
   Guy signatures in the current file.
 
 
 ECB might be what you are looking for. If this takes up too much
 screen real estate for you, imenu, or the classes menu might be what
 you want.
 
 Still it would be nice to have (as many other IDEs do) e.g. a small
 + sign in the margin/gutter besides every method to simply
 hide/show the body of that method. I don't see how this can work
 currently, at least I never had much luck with the current
 folding/hideshow or whatever package with java files.

IMHO hideshow works well but nevertheless i agree with Jens about
the +-sign in the fringe (at least GNU Emacs calls it so... ;-)...
probably it should be possible to enhance hideshow.el so that this +
is displayed besides each method (or whatever is foldable in a buffer)
and clicking onto this + runs the appropriate commands of hideshow.el
for the related method...

I do not know the API Emacs offers for the fringe - but my assumption
is this stuff should not be too hard - gud could be a good starting-
example because displaying an arrow for the current debugging-location
is in principle nothing else then displaying a +-sign at a certain
location - the only thing i'm not sure if it is possible to make 
symbols displayed in the fringe clickable so a command can be 
bound to it??
  [ ... ]

Klaus,

  This is the sort of thing `semantic-decorate-mode' is for.  If you
take the `semantic-tag-boundary' in semantic-decorate-mode.el as a
baseline (about 44 lines), all you need to change (other than names)
is that the overlay be given a fringe/image to display instead of
underlining the text.

  Activating the +/- to keyboard input is a different story.

  I gave it a quick test and learned I don't know as much about fringe
images.  I'll provide my hack to anyone who wants to tweak it to
support fringe images properly.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[4]: jde and emacs memory usage

2004-11-19 Thread Eric M. Ludlam
Sounds like a good idea to me.  I'll fix it.

Eric

 Troy Daniels [EMAIL PROTECTED] seems to think that:
At 11:02 PM 11/18/2004 -0500, Eric M. Ludlam wrote:

  Raul Acevedo [EMAIL PROTECTED] seems to think that:
 Wow, that chart thing is pretty cool.   :)

There are several random chart functions, plus a chart menu item
in the Senator menu.

Is there a reason chart-space-usage explicitly calls csh with 
call-process-region?  My cygwin installation doesn't have csh, only bash 
and sh.  At the very least, you should use shell-file-name.

Troy


Troy Daniels
[EMAIL PROTECTED]
781-273-3388 x218


-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: jde and emacs memory usage

2004-11-18 Thread Eric M. Ludlam
Hi,

  Here is something fun to try:

M-x load-library RET chart RET
M-x chart-emacs-storage RET

  It is possible that semantic's tag caches are filling up all your
space.  Check the size of your semanticdb.cache files for a vague clue
of how much string space is being used by semantic.

Eric

 Raul Acevedo [EMAIL PROTECTED] seems to think that:
Right now my Emacs process is using 127 Megs of memory.  While the
*jde-beanshell-scratch* buffer size is 1239491, and another buffer I
have is also just over 1 Meg, the total sum of all my buffers is still
only a few megabytes, I definitely am not consuming anywhere near 100
megabytes in buffers.

What could be taking up all the memory?  How do I free it up?  I've had
emacs run out of memory a few times in the last couple of weeks.

Raul


-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[3]: jde and emacs memory usage

2004-11-18 Thread Eric M. Ludlam
 Raul Acevedo [EMAIL PROTECTED] seems to think that:
Wow, that chart thing is pretty cool.   :)

There are several random chart functions, plus a chart menu item
in the Senator menu.

It shows strings/2 as taking up 31 Meg, which I assume means 62 Megs
and it shows it as strings/2 so the chart can be shown on a single
buffer when the next biggest item is conses at only 1 Meg.  I have 33
Java buffers averaging 10k each... so that's about 33 Meg, plus 62 Meg
for strings, adds up to 100 Meg right there. 

Why so many strings?

Most semantic.cache files are 50k, the biggest one I found is 150k.

You might have some very large hidden buffers.  Hidden buffers start
with a space character.

Probably your best task is just to get some sort of active monitor up
watching Emacs and see what you do that makes it grow very large.

Eric

Raul

On Thu, 2004-11-18 at 17:46 -0500, Eric M. Ludlam wrote:
 Hi,
 
   Here is something fun to try:
 
 M-x load-library RET chart RET
 M-x chart-emacs-storage RET
 
   It is possible that semantic's tag caches are filling up all your
 space.  Check the size of your semanticdb.cache files for a vague clue
 of how much string space is being used by semantic.
 
 Eric
 
  Raul Acevedo [EMAIL PROTECTED] seems to think that:
 Right now my Emacs process is using 127 Megs of memory.  While the
 *jde-beanshell-scratch* buffer size is 1239491, and another buffer I
 have is also just over 1 Meg, the total sum of all my buffers is still
 only a few megabytes, I definitely am not consuming anywhere near 100
 megabytes in buffers.
 
 What could be taking up all the memory?  How do I free it up?  I've had
 emacs run out of memory a few times in the last couple of weeks.
 
 Raul
 
 



JDEE release status?

2004-10-12 Thread Eric Raymond
Any update on when the next version of JDE will be released?  Java 5.0 
(aka 1.5) is released, so I'm sure people would love to have support for 
that in either a new release  or beta (2.3.4beta5 is a bit old and not 
ready for prime-time).  I realize the CVS heads is available

Thanks!


Re: how to get semantic to shut up

2004-09-29 Thread eric
On Wed, 29 Sep 2004 13:39:54 -0700, Raul Acevedo wrote:
 How do I get semantic to shut up?
 
 It has a really, really annoying habit of constantly filling the
 minibuffer with annoying messages like incremental parser error and
 Variables: foo bar and who knows what other nonsense.  I really
 couldn't care less.
 
 Is there some global setting to tell it to keep quiet and do its job?

Most of the old debug messages in semantic are gone.
The incremental parser error sounds like a bug that needs some reproduction
steps so it can be fixed.
The Variables: ... sounds like `semantic-idle-summary-mode'.
If you don't like that, you should probably disable
`semantic-idle-completions-mode' too.

Eric


Re: how to get semantic to shut up

2004-09-29 Thread eric
On Wed, 29 Sep 2004 15:04:25 -0700, Raul Acevedo wrote:

 On Wed, 2004-09-29 at 20:46 +, [EMAIL PROTECTED] wrote:
 
  Most of the old debug messages in semantic are gone.
  The incremental parser error sounds like a bug that needs some reproduction
  steps so it can be fixed.
  The Variables: ... sounds like `semantic-idle-summary-mode'.
  If you don't like that, you should probably disable
  `semantic-idle-completions-mode' too.
 
 I'm still getting messages from semantic-edits-incremental-parser
 (incremental parser error, Update Tag Table: blah, etc.).
 
 Looks like there's no easy way to disable these, short of either
 completely disabling the semantic incremental parser or of redefining
 working-temp-message to be a no-op.  Is there a major disadvantage to
 doing either of those?

I would expect that.  The key now is to find out what editing situation causes
it to throw the error, and to get a stack trace from it next time it occurs.
If there is a way to narrow it down, that would be useful.

Eric


Re: how to get semantic to shut up

2004-09-29 Thread eric
On Wed, 29 Sep 2004 16:34:47 -0700, Raul Acevedo wrote:
 I've rarely seen the error messages, so I'm fine with those happening
 rarely.  But the other messages aren't error messages;
 semantic-edits-incremental-parser-1 calls working-temp-message for a lot
 of informative messages.  There should be a flag that tells it not to
 display those, unless you're debugging semantic or happen to care.

Hmm, you are right.  I thought they were under some sort of verbosity flag, but
I can't find it anymore.  I'll add one.  I usually run with verbosities turned on
to search for issues so I tend not to notice these things.

Eric


Re[1]: Problem with query replace in beta?

2004-07-19 Thread Eric M. Ludlam
 Eric Raymond [EMAIL PROTECTED] seems to think that:
I just upgraded to the latest beta. I noticed two weird things:

1)  When I do a query replace, emacs seems to leave parts of the 
original string when it replaces string in some places (such as where a 
class name is expected)  For example if it replace old to new in public 
class oldOne  I get public class newldOne!  This does not always 
break.  It does seem to happen if JDEE can parse original string a class 
and if the idle thread kicks in during the replace?

Hi,

  The automatic reparse mechanism attached to an idle timer fails to
save the match data iff you let the parser reparse a previous between
the time it matches and you make your decision.  This has been fixed
in CVS and will be out in a beta soon.

2) There is a gray bar at the top of each page which seems to repeat the 
first line in the file.  Is there a way to make this go away?

  That is semantic-stickyfunc-mode, and can be turned off via that
function.  That is the default behavior when you are at the top of a
buffer.  It is supposed to show a summary of the function cut off at
the top of a window.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Problem with query replace in beta?

2004-07-16 Thread Eric Raymond
I just upgraded to the latest beta. I noticed two weird things:
1)  When I do a query replace, emacs seems to leave parts of the 
original string when it replaces string in some places (such as where a 
class name is expected)  For example if it replace old to new in public 
class oldOne  I get public class newldOne!  This does not always 
break.  It does seem to happen if JDEE can parse original string a class 
and if the idle thread kicks in during the replace?

2) There is a gray bar at the top of each page which seems to repeat the 
first line in the file.  Is there a way to make this go away?


Re[1]: JDE 2.3.4beta3: strange overlining

2004-05-11 Thread Eric M. Ludlam
 =?iso-8859-1?Q?Petter_M=E5hl=E9n?= [EMAIL PROTECTED] seems to think that:
Hi,

I'm getting the weird effect shown in the attached GIF using JDE 2.3.4beta3
and cedet1.0beta2 on Emacs 21.3. All non-public methods are 'overlined',
which is really not pleasant. I guess it's some kind of highlighting of
non-public methods that has gone wrong - does anybody know of a
configuration setting to modify this behaviour or is it possibly a bug?
  [ ... ]

That is part of `semantic-show-tag-boundaries-mode'.  It actually
overlines any method over a certain length (In characters.)  It is a
part of a set of decorating minor modes.  This one is used to mimic a
feature I saw in intellij, though the graphics of Emacs are a bit
different.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: speeding up variable loading

2004-02-09 Thread Eric M. Ludlam
 Paul Kinnucan [EMAIL PROTECTED] seems to think that:
  [ ... ]
The only solution to this problem that I can see is to provide a
custom-set function for JDEE variables that updates the dirty variable
list whenever the user customizes a variable during a session. Since
the custom-set function is also invoked by the defcustom macro to set
the variable s default value, the JDEE's custom-set function would
have to detect that it is being invoked by a defcustom macro and not
update the dirty variable list. This change will require adding the
set function to every defcustom form in the JDEE code base but is
probably worth it.
  [ ... ]

Hi Paul,

  You may want to create a macro defjdeoption other other specific
name for any variable that is part of a project, and reserve defcustom
for variables that do not get saved.  After the initial change to all
sources, this will save you lots of time in the future.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: speeding up variable loading

2004-02-09 Thread Eric M. Ludlam
 Phillip Lord [EMAIL PROTECTED] seems to think that:
  [ ... ]
This will also make it easy for third parties to piggy back into the
JDE project system I think, without having to use the jde- namespace
which the system currently depends on. 

I'd be quite happy to give this a go if you'd like. Might take a day
or two (it's pub night tonight!).

You loose the nice fontification of defcustom in the lisp
though. Ain't there always something!
  [ ... ]

See font-lock-add-keywords on how to fix that last problem.  I think
that is only available in newer versions of Emacs.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


RE: JDE tools to validate Tomcat's web.xml?

2003-12-19 Thread Eric . D . Friedman
Michael,

XML editing is handled by a completely different set of modes than those
that comprise the JDEE.  From emacs' standpoint, Tomcat's web.xml file is
just another XML file -- no special role or relation to java, jdee, etc.
So, you'll need to figure out what's wrong with your emacs configuration
vis-a-vis XML editing, and that's not a JDEE issue.

To take a wild guess, you probably have an error in your load path that is
preventing emacs from finding psgml mode.  If you're not experienced with
emacs lisp, I suggest that you approach the problem incrementally: comment
out most (all?) of your .emacs file and gradually add things back in to the
point where they stop working correctly.  You don't need to keep starting
and stopping emacs:  you can just mark a region that you'd like to evaluate
and M-x evaluate-region.  Or you can post your .emacs file to comp.emacs and
ask for help -- that's a general purpose newsgroup and this list is for JDEE
problems exclusively.

Good luck,
Eric

-Original Message-
From: Michael Coughlan [mailto:[EMAIL PROTECTED] 
Sent: Friday, December 19, 2003 6:38 AM
To: [EMAIL PROTECTED]
Subject: JDE tools to validate Tomcat's web.xml?


Hello all,

What emacs JDE tools are availble for validating a Tomcat web.xml file?

Yesterday, I could edit my web.xml file and see the emacs JDE color coding
the tags blue and data black. Hurray!

As of today, I seem to have lost the pretty colors.

: (

I treied to explicity set xml-mode, but that didn't fix the trouble.

A test edit of foo.java shows that java-mode is still working for java
files. (more pretty colors)

I would love it if my JDE could help to validate my web.xml in some way.
It's a pain to restart tomcat and parse the logs every time. I'd at least
like to get my color coding back.

Thanks,

MPC


Versions:

I am running a Cignys Xwindows Server on Windows XP to connect to a Red Hat
linux box running both the X Client Tomcat 5.

On lunix...
# rpm -qa | grep emacs
emacs-21.2-33

eieio, speedbar, etc are all latest versions, but not the singular beta
install



Re[2]: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Eric M. Ludlam
 Paul Kinnucan [EMAIL PROTECTED] seems to think that:
 Michael == Michael Schierl [EMAIL PROTECTED] writes:
  [ ... ]
Michael (defcustom jde-enable-senator t
Michael   Enable senator minor mode.
Michael This mode provides Java-aware buffer navigation and
Michael searching commands.
Michael   :group 'jde-project :type 'boolean :set '(lambda (sym
Michael   val)
Michael   ;; Starting with version 1.4 beta 12 Semantic
Michael   ;; can globally enable `senator-minor-mode'.
Michael   ;; So don't override the global setting in
Michael   ;; JDE's buffers.
Michael   (or (and (boundp 'global-senator-minor-mode)
Michaelglobal-senator-minor-mode)
Michael t ;;  added
Michael by me
Michael   (mapc
Michael(lambda (buff)
Michael  (save-excursion
Michael(set-buffer buff) (senator-minor-mode
Michael(if val 1 -1
Michael(jde-get-java-source-buffers)))
Michael (set-default sym val)))

Michael which seems to work as expected (although i might have
Michael broken senator, but I don't care about that on my
Michael machine).

This effectively disables the resetting of existing open buffers
when a user customizes jde-enable-senator. I would rather fix the
bug then cripple a function in order to avoid it. I've narrowed
the problem, i.e., resetting the value of jde-enable-senator
triggers the error:

  Setting JDE variables to startup values... [3 times]
  wisent-java-tags-lexer: 
  Wrong type argument: stringp, nil


to the java version of the semantic-parse-region function. However, I
cannot get any further because the semantic java parser is implemented
via macros that cannot be enabled for edebugging, which is the only
way I know how to find the exact line that causes a particular
error. (BTW, I find the heavy reliance on macros a serious problem
with the design of semantic 2.0; it makes debugging problems with
semantic next to impossible, at least that has been my experience so
far.)  Perhaps Eric or David can find the line that causes the error
or suggest a way for me to find it so this bug can be fixed.
  [ ... ]

Hi Paul ( co)

  In semantic 2.0 we are spending brain power on a pair of goals in the
parser generation area.  Make it fast, and make it easy to implement
new languages.

  The best way to make a lexer fast is to cut back on the number of
regexp matches and remove as many function calls as possible.
Side-effect: funny-macros for constructing custom lexers.

  On the make it easy side, Emacs Lisp is just not a great language
for making an easy-to-read lexical analyzer.  The macros let you write
and mix individual analyzers in a convenient high-level way.

  As for debugging, there is the `semantic-lex-debug' command.  This
lets you debug the meaning of an analyzer, and is unfortunately not
what you are really looking for.

  Also, it is easy to just re-evaluate the lexer construction element,
and toggle-debug-on-error to see what aspect of a given lexer is
failing, which is what I usually use.

  I will try and track you down at work sometime to see what solutions
there may be.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-12-18 Thread Eric M. Ludlam
 Kai Grossjohann [EMAIL PROTECTED] seems to think that:
Eric M. Ludlam [EMAIL PROTECTED] writes:

   On the make it easy side, Emacs Lisp is just not a great language
 for making an easy-to-read lexical analyzer.  The macros let you write
 and mix individual analyzers in a convenient high-level way.

My understanding was that Common Lisp has a configurable reader that
is flexible enough so that one does not need to use lexers.  Is this
true?

This I don't know, but it sounds like something CL would do.

I wonder if it would be a workable approach to augment Emacs to have a
better reader, then to use that as the lexer.

I have thought of this often.  My consideration was something like
'parse-partial-sexp'.  The Emacs syntax-table really is exactly the
way to build a nice lexical analyzer.

I don't have practical experience with building parsers.
Theoretically, one wouldn't need a lexer, just something that returns
the next character from the input would be sufficient and the rest
could be done from the grammar.  (I mean that one doesn't need lex and
could do everything in yacc instead.)  But that makes parsers
difficult to write, and also probably slow.  So one does need lexers.
But the theory seems to imply that the lexers don't need to be
all-powerful: if the lexer is too stupid, then one can still do it
from the grammar.
  [ ... ]

Lexical analysis is nice because matching characters is really easy to
to do compared to actual syntax parsing.

Regexp matching is nice because you can have fairly complex lexical
tokens such as #include.  Mixed mode code such as C preprocessor
and C code is made simpler to handle this way.

Semantic's lexers are pretty simple.  Syntax table regexps such as
\s. or \s_ are used so specific generic analyzers can be used
in most lexers.

Anyway, the problem is how to debug a lexer.  I can imagine this
being even more difficult if it were a built-in. ;)

If you were to look at a lex file sometime, it's syntax and content
is usually really simple, along the lines of (from the man page):

if|then|begin|end|procedure|function {  some action here }

which basically says if you see the characters i f, it makes a
token if.  Your action then does whatever.

Semantic lex analyzers are the same, and could be:

(define-lex-simple-regexp-analyzer my-analyzer
  obligatory docstirng
  if\\|then\\|begin\\|end\\|procedure\\|function
  'keyword
  0  ; index into the regexp
  (other code here))

so it is very similar.  What is different is that you have to then
combine your named analyzers via the define-lex call.

Another big difference is that the semantic lexer can skip over lists
like { a method body } as a single token.  The process of identifying
those characters is very fast (an Emacs built in) and when tagging a
file, often those characters are not needed anyway.  This short cut is
what makes the C and Java semantic parsers fast enough to be usable in
while editing without getting in the way too much.

Have fun
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[3]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-07 Thread Eric M. Ludlam
The support for highlighting unmatched syntax is still rudimentary,
but it is a longterm goal to highlight all syntactic issues.  Parsing
an entire file is pretty slow.  Parsing only the visible parts, is one
option.  For missing ; after things already being parsed (method and
type declarations) you will get the highlighting.  The new incremental
parser helps with this.

Detecting missing imports or methods is not a part of any short term
plan.  The semantic analyzer has not been modified much as we've been
concentrating on low level APIs, and speed.

The version of eieio in the beta includes a feature similar to
something I think is called flymake.  You can run a build, and it will
detect the errors, and highlight them for you.  I think flymake may
have more user features.  The version in eieio is an example program
for using a line highlighting feature.

Eric 

 =?iso-8859-1?Q?Henrik_Kj=E6r?= [EMAIL PROTECTED] seems to think that:
Hi

Will it support parsing of java files so the most obvious errors in a class,
like a missing ;, missing imports, unknown methods, etc. can be caught
before compiling.

Henrik
- Original Message - 
From: Eric M. Ludlam [EMAIL PROTECTED]
To: Raul Acevedo [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Thursday, November 06, 2003 9:01 PM
Subject: Re[1]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2


 Semantic 2.0 lives in cedet-1.0beta1.tar.gz on the cedet web page.
 There was no formal announcement as I'm still working through build
 and compatibility issues for various versions of Emacs.  In fact, I'm
 a bit behind on a mountain of reports.

 For those willing to work around some of the problems, the overall
 response has been positive.  There are a few patches for some problems
 in the cedet-devel mailing list archive for those brave enough to try
 it.

 Eric

  Raul Acevedo [EMAIL PROTECTED] seems to think that:
 Semantic 2.0 is out???
 
 Paul Kinnucan wrote:
 
Ed == Ed Soniat [EMAIL PROTECTED] writes:
  
   Ed I tried install JDEE-2.3.2 which claims compatibility with
   Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
   Ed semantic-bnf in Aug/03 or so.
  
   Ed The change log in JDEE is out of date, makes it look like a
   Ed dead project.
  
   Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
   change log.
  
   Paul
  
  
 

 -- 
   Eric Ludlam: [EMAIL PROTECTED],
[EMAIL PROTECTED]
Home: http://www.ludlam.netSiege: www.siege-engine.com
 Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org





-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: [jde] cedet-1.0beta1 /Semantic 2.0 and JDEE-2.3.2

2003-11-06 Thread Eric M. Ludlam
Semantic 2.0 lives in cedet-1.0beta1.tar.gz on the cedet web page.
There was no formal announcement as I'm still working through build
and compatibility issues for various versions of Emacs.  In fact, I'm
a bit behind on a mountain of reports.

For those willing to work around some of the problems, the overall
response has been positive.  There are a few patches for some problems
in the cedet-devel mailing list archive for those brave enough to try
it.

Eric

 Raul Acevedo [EMAIL PROTECTED] seems to think that:
Semantic 2.0 is out??? 

Paul Kinnucan wrote:

   Ed == Ed Soniat [EMAIL PROTECTED] writes:
  
  Ed I tried install JDEE-2.3.2 which claims compatibility with
  Ed Semantic 1.blah.blah or greater.  Semantic 2.0 deleted
  Ed semantic-bnf in Aug/03 or so.
  
  Ed The change log in JDEE is out of date, makes it look like a
  Ed dead project.
  
  Install JDEE 2.3.3beta6 to get semantic 2.0 support and an updated
  change log.
  
  Paul
  
  


-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: Is there for the JDEE an UML tool available.

2003-10-29 Thread Eric M. Ludlam
 Theo Kromhout van der Meer [EMAIL PROTECTED] seems to think that:
Hello,

I like the JDEE a lot. Because of the I can tailor the IDE. I like to work
with Emacs.
But now I need to with UML, is there a UML tool available that integrates
with JDEE?
  [ ... ]

The cogre tool can make some pretty small and primitive UML diagrams.

http://cedet.sf.net/cogre.el

An upcoming release of semantic/cogre (real soon now) will be able to
generate complex diagrams via dot.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[1]: Make imenu more appropriate for interactive use?

2003-10-07 Thread Eric M. Ludlam
If you use senator, which comes with semantic, you can use the
keybinding:

C-c , j

and its effect will be similar to a flattened imenu setup.

Alternately, if you have senator running, look in the senator menu
for Imenu Config.  In there, just turn off anything that says
bin, and you will get a flattened version of imenu.

Eric

 Kai Grossjohann [EMAIL PROTECTED] seems to think that:
I have bound C-c m to the imenu command.  My idea was that I do C-c m
on a method and then jump to the definition of this method.

But, with JDEE installed, and thus Semantic installed, I instead need
to do:

C-c m   invoke imenu
c RET   invoke Classes
TAB RET select the only item, class.Foo
m RET   invoke Methods
.foo TAB RETselect the foo method

I'm glad that I have partial-completion-mode turned on, for otherwise
that last line wouldn't have worked.  I'm also glad that method
return types usually don't contain periods in my code, for in that
case my method would have failed, too.

However, I like the Speedbar display with the submenus.

Can I have the cake (better M-x imenu RET interface) and eat it, too
(keep the Semanticized Speedbar display)?

Like I said, when point is on a construct such as foo() or
x.bar(), then IWBNI M-x imenu RET selected foo (or bar) as the
default method to jump to, so that just hitting RET goes there.



-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: Refactoring with JDE?

2003-09-04 Thread Eric M. Ludlam
 Andrew Hyatt [EMAIL PROTECTED] seems to think that:
  [ ... ]
I would be very interested if someone who really knew semantic well
could tell us if it could do the kind of parsing necessary for these
more advanced features.  It seems to have more then the advertised
API, since you can get the speedbar to know about types of local
variables, while the advertised API does not go into within-method
information.

Hi,

  Semantic 1.4 local variable parsing depends on programmers having
some mysterious need to declare all local variables before writing any
code.  As such, it can use the regular tagging parser within a method
body scope and do a reasonable job.  That particular function is
advertised in the manual under context parsing, not under the general
tagging information.

  As Paul mentioned, Semantic 2.0 includes David Ponce's full bison
port, and a Java parser that can parse an entire Java file, including
method code, faster than the Semantic 1.4 parser could tag the same
file.  The new incremental parser handles about 90% of common edits
without a full reparse.  My long term goals include indentation and
font lock engines, underlining bad syntax, and all that good stuff.
My long term goals could probably keep several people busy for several
decades.

  When I wrote semantic 1.0 I was learning what a parser is as I wrote
it, so the road to semantic 2.0 includes a massive renaming campaign
to give all the nouns the correct names and reduce confusion.  I
wrote the thing and it confused me.  Now it does not.

  Anyway, all that's done.  The parser API is an elegant thing to
behold.  The new tag searching and completion engines bring joy to my
heart.  The parser construction process will bring new languages into
the fold.  All the wacky new minor modes will lure the young-uns to
the glory of Emacs.

  Well, something like that.  Paul gave me a little too much credit
perhaps.

  Your other question was when?.  Here is the inside scoop on
Semantic 2.0.

Scoop 1:

   Semantic, EIEIO, Speedbar, EDE, and Corge will all be shipped
together as one package called CEDET 1.0 and have one master
Makefile, but each will maintain their own version number and
identity, and can be installed one chunk at a time.  It cuts down on
maintenance since they are all co-dependent.  Version number
dependencies will be enfoced with a new inversion package.

Scoop 2:

   We've been trying to bring the Doc to be at least vaguely relevant
to what's in CVS, and get the build harness working to desired
parameters (a bit of EDE development there.)  That's it before a CEDET
1.0 beta1 is built and published.

Note 1:

   Most major API functions had their names changed.  We devised a
nice obsoletion mechanism that lets ECB and the JDE work fine with the
new version.  They just throw lots of warnings during byte-compilation
time.  (At least I think the JDE works.  Isn't that so David?)

Note 2:

   This beta version of semantic will have no indentation or font lock
magic in it.  The substructure is there, but little attention has
been placed on it yet.

Note 3:

   I owe David Ponce a huge debt of gratitude for the amazing things
he has done to bring Semantic 2.0 to where it is today.  I am also
indebted to Richard Kim who has been instrumental to much of the new
documentation, and for writing the python parser.

Have fun
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


RE: Implement interface wizard.

2003-08-04 Thread Eric . D . Friedman
Sounds good to me.

-Original Message-
From: Paul Kinnucan [mailto:[EMAIL PROTECTED]
Sent: Monday, August 04, 2003 10:16 AM
To: Ole Arndt
Cc: jde
Subject: Re: Implement interface wizard.


Ole Arndt writes:
  Andy, Eric, Paul,
  
  [EMAIL PROTECTED] writes:
  
   I'd like to point out that if a method from an interface has no
javadoc, the
   javadoc program will copy the documentation from the interface itself.
   Consequently, it might be a reasonable default to generate no javadoc
at all
   in the implement interface wizard, or at least to make it optional.
  
  an alternative is to use the [EMAIL PROTECTED] inline tag. A combined
  solution would look like this:
  
  /**
   * [EMAIL PROTECTED]
   *
   * @see package.Class#origMethod
   */
  


The @see tag seems redundant to me. Also please note that @inheritDoc
will not work for JDK releases earlier than JDK 1.4. So I'd like to
offer an alternative proposal:

If the JDK version used to generate the skeleton method implementation
is earlier than 1.4, generate the skeleton without a comment. Otherwise,
generate the skeleton with the following comment:

  /**
* [EMAIL PROTECTED]
*/

- Paul


aspectj jde

2003-07-09 Thread Eric . D . Friedman
Has there been any discussion/interest with the AspectJ folks about pulling
their JDE extensions into the main JDE distro?  I know they forked
something called AJDE a while back, but now that they're off in
eclipse-land, that's probably not a huge priority (I am speculating, with no
information either way).

In any event, I find myself writing aspectj code in emacs and wishing that
JDE groked the syntax and keywords.  Does anyone else feel my pain?

More productively, I'm curious to hear Paul's thoughts on how JDE should
(not) accomodate language extensions of this kind.  There've been a lot of
these over the years and JDE has wisely ignored most of them, but it's my
opinion that AspectJ is likely to survive longer than some of the
niche-extensions, like SQLJ.  Is it possible to shovel everything associated
with an extension of this kind into a minor mode?  I'm guessing it won't
work with semantic unless someone puts together a grammar for the bovinator,
but could keywords and indentation be done that way?

Apologies for the disconnected thoughts -- I'm not really sure what the
right thing to do is in this case.

Eric


RE: jde.sunsite.dk site

2003-06-06 Thread Eric . D . Friedman
Apropos -- perhaps if the JD Edwards acquisition goes through we can drop
the extra 'e' again.

Only half kidding,
Eric

-Original Message-
From: Sprenger, Karel [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 05, 2003 11:41 PM
To: Jeff Jensen; [EMAIL PROTECTED]
Subject: RE: jde.sunsite.dk site


Jeff,
 
Try http://jdee.sunsite.dk/. The 'e' was added a few month ago.
 
Cheers,
Karel

-Original Message-
From: Jeff Jensen [mailto:[EMAIL PROTECTED]
Sent: Friday, June 06, 2003 04:55
To: [EMAIL PROTECTED]
Subject: jde.sunsite.dk site



Hi - Has the site been down for days or is it just me (and the only page
that is not working!)?  I have not seen any messages nor updates on the
sunsite.dk page.





Re[2]: Syntax error indication oon the fly....the beginning...

2003-02-24 Thread Eric M. Ludlam
 Chitale, Sandip V [EMAIL PROTECTED] seems to think that:
  [ ... ]
2. Indicate the error messages using an underline (or user customizable) face
(say!) over the extent of the buffer text causing the error.

(unfortunately not all compilers give the column or column range where
the error is).

3. User can get details of the error message with mouse-over or
some key combination (I need to check if 'help-echo text property
will work for that).
  [ ... ]

Hi,

  I bumped into this thread a little late I guess.  I had a plan to do
this with a fancy utility of mine, but never got around to it.  I
brushed off the old plan and hacked it together.  Your mileage may
vary, but it is working well in grep buffers at the moment.

  It requires EIEIO to get the linemark package which any good JDEE
user should have.  Hopefully it doesn't require the CVS version of
linemark.el for Emacs.  I think I avoided those features.  I cannot
vouch for its usefulness on XEmacs as the release version of linemark
has an odd face related bug, and lmcompile is using 'help-echo to do
the mouse-overs.  That's what you get for quick hack I guess.

  To use it, perform a grep or compile, and use
`lmcompile-do-highlight'.  Sick of it, use `lmcompile-clear'.

  Because it uses the `linemark' package at it's core, you set up the
highlights once, and the linemark harness handles keeping all the
overlays up to date as you load different files in and out of memory.

  The below is just a harness of what can be done with linemark.  I've
adapted linemark for specialized tasks to great effect on other
projects, so there are many more possible features that could be
added.  See the visual studio bookmark look alike at the end of
linemark.el for examples.

  This functionality has little to do with what was already posted.
It is tackling the problem from a completely different angle.

Enjoy
Eric

-
;;; lmcompile.el --- highlight compile error lines

;;
;; Author: Eric M. Ludlam [EMAIL PROTECTED]
;; Maintainer: Eric M. Ludlam [EMAIL PROTECTED]
;; Keywords: lisp
;;
;; Copyright (C) 2003 Eric M. Ludlam
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
;;
;;; Commentary:
;;
;;  This package uses the compile package, and the linemark package to
;; highlight all lines showing errors.

;;; Commentary:
;; 

(require 'linemark)

;;; Code:
(defclass lmcompile-linemark-group (linemark-group)
  (
   )
  Linemark Group for compile error highlights.)

(defclass lmcompile-linemark-entry (linemark-entry)
  ((errormarker :initarg :errormarker
:type marker
:documentation
Marker pointing to the source of the match.))
  Linemark Group for one compile error highlight.
Tracks additional information about the error.)

(defmethod linemark-new-entry ((g linemark-group) rest args)
  Create a new entry for G using init ARGS.
  (let ((f (plist-get args :filename))
(l (plist-get args :line)))
(apply 'lmcompile-linemark-entry (format %s %d f l)
   args)))

(defmethod linemark-display ((e lmcompile-linemark-entry) active-p)
  Set object E to be active or inactive.
  ;; A bug in linemark prevents individual entry colors.
  ;; Fix the color here.
  (when active-p
(condition-case nil
(save-excursion
  (set-buffer (marker-buffer (oref e errormarker)))
  (goto-char (oref e errormarker))
  
  (let ((face (cond ((re-search-forward error (point-at-eol) t)
 'linemark-stop-face)
((re-search-forward warning (point-at-eol) t)
 'linemark-caution-face)
(t
 'linemark-funny-face
(oset e :face face)
))
  (error nil))
)
  ;; Do the rest of our work
  (call-next-method)

  ;; Add a tool tip
  (when (and active-p
 (slot-boundp e 'overlay)
 (oref e overlay))

(let ((em (oref e errormarker))
  (txt nil))
  (condition-case nil
  (save-excursion
(set-buffer (marker-buffer em))
(goto-char em)
(setq txt (buffer-substring-no-properties
   (point-at-bol) (point-at-eol)))
)
(error nil))

  (when txt
(linemark-overlay-put (oref e overlay

Re[3]: JDEE plugins (was JUCI)

2003-02-23 Thread Eric M. Ludlam
 Nick Sieger [EMAIL PROTECTED] seems to think that:
 PK == Paul Kinnucan [EMAIL PROTECTED] writes:

PK Eric M. Ludlam writes:
 Something I always wanted to do was use EIEIO to wrap Java objects.
 EIEIO could act as a proxy for Java objects, and there could be
 Java object proxies for EIEIO objects.  In this world people who
 know Emacs could hack Java, and vice-versa w/out having to know the
 other language much.

 
PK I've suggested to Nick Sieger that he use eieio proxies for the
PK Lisp counterparts that JUCI generates for Java classes.

I'm very interested in doing this, and as soon as I find time to learn
enough about EIEIO to feel comfortable I'll do this.  But for now, a
Java method call is mapped to a plain-old-defun :-|
  [ ... ]

I can help you do this.  I don't have a working JDEE install at home
though.  I can help you create new classes and methods at runtime
instead of in code.  The secret is that if you want to use `defclass'
or `defmethod', but don't want to write out code, you can use
`eieio-defclass' and `eieio-defmethod' instead.

Let me know what data you have and what you would ideologically like,
and I can try to prototype it for you to get you started.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[3]: FW: Syntax error indication on the fly....

2003-02-21 Thread Eric M. Ludlam
The semantic parser is a combination of what might think of as a
compiler's parser, and an iterative loop.

A traditional compiler will sometimes spit out the warning:

too many errors, giving up.

This is because it gets lost in the source file due to perhaps a
missing { or }, and it can't figure out what is going on.

To avoid this problem in semantic, the portion of a traditional
compiler that identifies multiple top-level nonterminals (functions,
variables, etc) is left out of the grammar, and is handled in Emacs
Lisp code instead.

What this means is if you start parsing at a given point in the
buffer, if the grammar completely fails to identify anything, that
parse step exits with out using any lexical tokens.  When this
happens, the Iterative Emacs Lisp looper marks that bit of syntax as
unmatched, moves forward 1 lexical token, and tries again.

That way, if you have a stray foo floating in between methods, it
gets labeled as unmatched.  A traditional parser usually can find this
error and move on as well, but the support structure needed for error
handling in a traditional grammar file is much more complicated.

David Ponce wrote a nice piece describing the differences in the
wisent parser generator manual currently residing in Semantic's CVS
repository.

Enjoy
Eric

 Chitale, Sandip V [EMAIL PROTECTED] seems to think that:
Eric,

   Can your or someone explain what the term 
unmatched syntax means ? Does it mean syntax errors ?
Does it mean syntax and semantic errors ? Does it mean
all the compilation errors ?

thanks,
sandip

 -Original Message-
 From: Eric M. Ludlam [mailto:[EMAIL PROTECTED] 
 Sent: Friday, February 21, 2003 10:10 AM
 To: Berndl, Klaus
 Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
 Subject: Re[1]: FW: Syntax error indication on the fly
 
 
 Semantic only shows unmatched syntax for definitions.  All 
 code that resides inside the body of a function is skipped 
 over.  This is to make parsing go faster.
 
 Semantic 2.0 CVS includes a full Java parser.  My assumption 
 is that it could then do unmatched syntax for all the code, 
 though I am not sure how to turn it on.  That is something 
 David Ponce could better answer.
 
 Eric
  [ ... ]

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org


Re[2]: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Eric M. Ludlam
 Berndl, Klaus [EMAIL PROTECTED] seems to think that:
  [ ... ]
Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents
from working for classes which are only available as *.class-file or
within a jar-file...
  [ ... ]

Hi Klaus,

  Your last point here about semantic not being able to look into a
.class file is valid, however the CVS version semantic 2.0 semanticdb
subsystem was recently enhanced to be extensible beyond just typical
language parsers.  The idea was Paul's originally, and I expanded on
that.

  The basic premise is to sub-class a semanticdb class, and implement
all the search methods.  Your search methods can then call external
programs, or whatever you like before returning a results table.
There is an example that will search all Emacs Lisp symbols inside
Emacs, regardless of having the sources available.  The only part
that needs to be done to make your new program support .class files
is to extend the database.

  I can provide you with more details and perhaps start the process if
you would like to try extending semanticdb.

Have fun
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: AW: Semantic 1.4.1 is released!

2002-12-16 Thread Eric M. Ludlam
 Berndl, Klaus [EMAIL PROTECTED] seems to think that:
Hello Eric and David!

I just downloaded semantic 1.4.1 and had noticed the following:

1. Bug in semantic-texi.el: It is not enough to add (defopt . 1) to
   semantic-texi-name-field-list but is also necessary to add opt to
   semantic-texi-super-regex:
   
(defvar semantic-texi-super-regex
  ^@\\(chapter\\|\\(sub\\)*section\\|unnumbered\\(\\(sub\\)*sec\\)?\\|\
\\(chap\\|\\(sub\\)+\\|major\\)?heading\\|appendix\\(\\(sub\\)*sec\\)?\\|\
centerchap\\|def\\(var\\|un\\|fn\\|opt\\)x?\\)
  Regular expression used to find special sections in a Texinfo file.)

Thanks.  I'll let David add that to the 1.4.1 branch.

2. Problems with shipped semantic-util-modes.el: With 1.4.1 there is after
   every autom. (partial) reparse a recenter of the source-buffer which is
   pretty annoying. I have replaced the version of 1.4.1 with that one shipped
   with 1.4 and all is working fine, i.e. no recentering of the source-buffer.
   
   I'm wondering why the version of semantic-util-modes.el in 1.4.1 is
   X-RCS: $Id: semantic-util-modes.el,v 1.17 2001/12/08 03:12:39
   whereas the version of 1.4 seems to be much newer:
   X-RCS: $Id: semantic-util-modes.el,v 1.17.2.2 2002/05/07 02:40:50

   There are not many differences between these versions of
   semantic-util-modes.el but nevertheless they seem to be the reason for the
   annoying recenter behavior of the source-buffer after autom. reparsing.
  [ ... ]

Semantic 1.4 was released on a 1.4 branch.  The bug you describe was
in semantic before 1.4 was released.  Perhaps the 1.4.1 file was
accidentally taken from a pre 1.4 version?  That would certainly
explain things.  I keep my 1.4.1 install at work, so I'll double
check when I get in.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[2]: Senator-Analyze-Speedbar Class Browser error

2002-12-06 Thread Eric M. Ludlam
 Raul Acevedo [EMAIL PROTECTED] seems to think that:
Eric M. Ludlam wrote:

  If I select Senator - Analyze - Speedbar Class Browser, I get an
  error: Symbol's function definition is void:
  semanticdb-find-nonterminal-by-token.  Any ideas what this is about?
  
You need have semanticdb enabled for that class browser to work.
This commonly is enabled when you have
`semantic-turn-useful-things-on' set when you installed semantic.

I have (setq semantic-load-turn-everything-on t) enabled, presumably
that's what I need.  Is this correct?

The program you found is supposed to show your classes, and the
inheritance between them.  It only works after semanticdb has
seen all the files you are interested in so it can correlate the
tags.  My copy in CVS seems to have developed a speedbar refresh
problem.  I'll have to investigate more.

How do I get semanticdb to do this?

If semanticdb is enabled (Use `global-semanticdb-minor-mode' to toggle
it on and off)  All you have to do then is visit those files you care
about in an Emacs buffer.  Semanticdb takes care of the rest.

A future version of semantic will have a bridge API enabling the
possibility of semantic programs querying .class files via whatever
mechanism some JDE hacker may choose to use.

Well, I have no idea what that means, but it sounds cool.   :)
  [ ... ]

That was a reminder to those developing cool new JDEE features that
I'm thinking about them, and want to make their lives easier.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[2]: JDEE and emacs-wiki

2002-10-29 Thread Eric M. Ludlam
 Paul Kinnucan [EMAIL PROTECTED] seems to think that:
Daniel Serodio writes:
  Well, I've found some more info on this error. emacs-wiki defines a
  line-beginning-position function with 1 optional argument, and jde-bug
  defines a function with the same name but no arguments.
  
  In emacs-wiki.el:
  
  (unless (fboundp 'line-beginning-position)
(defsubst line-beginning-position (optional N)
  (save-excursion (beginning-of-line N) (point
  
  In jde-bug.el:
  
  (when jde-xemacsp
(defun line-beginning-position ()
  (point-at-bol))
(defun line-end-position ()
  (point-at-eol)))
  
  How can I solve this conflict? Thanks for any help.
  

I apparently created this code because XEmacs does not
(or did not) define these functions. I should have 
included the optional argument, which I will do in
the next release.

Meanwhile, you can just edit jde-bug.el to read:
  [ ... ]

It is much safer to wrap such functions under new names like this:

(if (not (fboundp 'whatever))
   (defun jde-whatever () (code))
  (defalias 'jde-whatever 'whatever))

and you avoid all upgrade problems.  My packages were often being
whacked by random tools that redefine code like this, including
XEmacs' own compatibility layer that wasn't that compatible a few
years ago.  I haven't had problems since I started doing the above.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re: cedet.sourceforge.net refusing connections

2002-10-28 Thread Eric M. Ludlam
 John Collins [EMAIL PROTECTED] seems to think that:
I'm trying to set up JDEE on a new machine, and I can't get at the emacs 
tools eieio, semantic, etc. Any news?
  [ ... ]

Every once in a while the sourceforge download system fails.  I don't
know why, but it usually comes back in a little while.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: How to turn off editing recenter feature

2002-09-24 Thread Eric M. Ludlam

 Will Taylor [EMAIL PROTECTED] seems to think that:
When I am editing and have unbalanced curly brackets and pause
for more than 3-4 seconds, the buffer is automatically recentered.
I dislike this feature and would like to know how to turn it off.
I did not see anything in the User's Guide about it.
  [ ... ]

Hi,

  This happens when global-semantic-auto-parse-mode is enabled.
  There is a bug that causes this unfortunate behavior when there is
  a list error during the lexical step.  I don't remember what the
  current state of that bug is though I thought it was fixed in
  semantic 1.4.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: wrap compiler output lines

2002-08-28 Thread Eric M. Ludlam

 Marcel Schepers [EMAIL PROTECTED] seems to think that:
Does anyone know how to wrap the compiler output so that scrolling in 
the output window wouldn't be necessary anymore?
  [ ... ]

See the value of `scroll-step'.  You can probably locally set this to
a value = to the lines in the window, then it will appear to wrap, and
not scroll.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: semantic-1.4 does not load

2002-08-14 Thread Eric M. Ludlam

 van Rooyen GC [EMAIL PROTECTED] seems to think that:
I tried to upgrade to semantic-1.4, speedbar-0.14beta4, ecb-1.80,
eieio-0.17, but the following error occurs.
  [ ... ]
Debugger entered--Lisp error: (void-function semantic-map-buffers)
  (semantic-map-buffers (function (lambda nil ...)))
  (cond (( arg 0) (remove-hook ... mode) (semantic-map-buffers ...) nil)
(( arg 0) (add-hook ... mode) (semantic-map-buffers ...) t) (t (memq mode
semantic-init-hooks)))
  semantic-toggle-minor-mode-globally(semantic-show-dirty-mode 1)
  (setq global-semantic-show-dirty-mode (semantic-toggle-minor-mode-globally
(quote semantic-show-dirty-mode) arg))
  global-semantic-show-dirty-mode(1)
  byte-code(,D

Hi,

  There is a require bug in semantic-util-modes.  The simplest short
term solution before I get my patch collection for semantic 1.4.1
together is to add this to your .emacs file in front of (require
'semantic)

(autoload 'semantic-map-buffers semantic-util)

  which will let Emacs know where to find it.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: Error when using eieio-0.17 with jde-2.2.9beta10.

2002-08-08 Thread Eric M. Ludlam

 Jake Gage [EMAIL PROTECTED] seems to think that:
Hey there,
  [ ... ]
  It looks like Eric Ludlam has released eieio-0.17 on 2002-08-06
(looks like two days ago), which beta10 doesn't seem to like (the CVS
version might already be changed, and I'd be much obliged if someone
could tell me if this is the case).  In any case, on:
  [ ... ]
Loading eieio-opt...done
The wrong version of Eieio is installed, please install 0.17beta3.


  Reverting my version of EIEIO and awaiting instructions.  Thanks much.

  [ ... ]

Howdy.

  All recent editions of my tools (semantic, eieio, and speedbar) now
have a function called `PACKAGENAME-require-version'.  JDE currently
has its own compare function.  The version requirement in my tools
will know when a new release of a tool is not BACKWARDS compatible,
and otherwise will allow newer versions to be used with a JDE released
with an olderversion.  It would be up to Paul to know when a needed
feature was introduced.

  I recommend that the JDE use these functions, as it will prevent
this type of problem with new releases in the future.

  I would guess it is ok to use eieio 0.17 with the JDE as it passes
the EIEIO 0.17beta4 tests.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[1]: eieio-named is not a class?

2002-07-03 Thread Eric M. Ludlam

This happens sometimes when eieio is not byte compiled correctly.
Delete all .elc files in eieio, verify there is no other eieio on
your path, and re-run the Makefile.

Eric

 Hongbin Wang [EMAIL PROTECTED] seems to think that:
I am trying to install jde on emacs 21.1, I got the following error message.
Any idea? Thanks!
- hongbin

error message
Debugger entered--Lisp error: (error Given parent class eieio-named is not
a class)
  signal(error (Given parent class eieio-named is not a class))
  error(Given parent class %s is not a class eieio-named)
  (if (not (class-p ...)) (error Given parent class %s is not a class (car
pname)) (if (not ...) (aset ... class-children ...)) (mapcar (lambda ...
...) (class-option ... :custom-groups)) (aset newc class-parent (cons ...
...)))
  (if (and (car pname) (symbolp ...)) (if (not ...) (error Given parent
class %s is not a class ...) (if ... ...) (mapcar ... ...) (aset newc
class-parent ...)) (error Invalid parent class %s pname))
  (while pname (if (and ... ...) (if ... ... ... ... ...) (error Invalid
parent class %s pname)) (setq pname (cdr pname)))
  (progn (while pname (if ... ... ...) (setq pname ...)) (aset newc
class-parent (nreverse ...)))
  (if pname (progn (while pname ... ...) (aset newc class-parent ...)) (if
(eq cname ...) (if ... ...) (setq clearparent t) (if ... ...) (aset newc
class-parent ...)))
  (let* ((pname ...) (newc ...) (oldc ...) (groups nil) (options nil)
(clearparent nil)) (aset newc 0 (quote defclass)) (aset newc class-symbol
cname) (when oldc (aset newc class-children ...)) (cond (... ...) (... ...))
(setq options (if ... ... ...)) (if pname (progn ... ...) (if ... ... ...
... ...)) (set cname cname) (let (...) (fset csym ...)) (let (...) (fset
csym ...)) (eieio-copy-parents-into-subclass newc superclasses) (put cname
(quote eieio-class-definition) newc) (while fields (let* ... ... ... ... ...
... ... ... ... ... ... ... ...) (setq fields ...)) (aset newc
class-public-a (nreverse ...)) (aset newc class-public-d (nreverse ...))
(aset newc class-public-doc (nreverse ...)) (aset newc class-public-type
(apply ... ...)) (aset newc class-public-custom (nreverse ...)) (aset newc
class-public-custom-label (nreverse ...)) (aset newc
class-public-custom-group (nreverse ...)) (aset newc class-protection
(nreverse ...)) (aset newc class-initarg-tuples (nreverse ...)) (aset newc
class-class-allocation-type (apply ... ...)) (aset newc
class-class-allocation-values (apply ... ...)) (let* (... ... ... ... ...
... ...) (while pubsyms ... ... ... ... ...) (aset newc class-symbol-obarray
oa)) (fset cname (list ... ... ... ...)) (put cname (quote
variable-documentation) (class-option-assoc options :documentation)) (let
(...) (mapcar ... groups) (if ... ... ...)) (aset newc class-options
options) (if clearparent (aset newc class-parent nil)) (if (and ... ...)
(message Bootstrapping objects...done)) (let (...) (aset cache 0 ...)
(aset cache object-class cname) (aset cache object-name ...) (let ... ...)
(aset newc class-default-object-cache cache)) newc)
  eieio-defclass(semantic-cb-token (eieio-named eieio-speedbar) ((buttontype
:initform statictag) (buttonface :initform speedbar-tag-face) (token
:initarg :token :type semantic-token :documentation Semantic token which
represents a type.) (table :initarg :table :type semanticdb-table
:documentation This is the database table that `token' was found in.\nBe
sure to use this field when loading a token's file into memory.) (container
:initarg :container :type (or null semantic-cb-token) :documentation This
is the CB object containing this token.\nCB Containers are usually types
with attributes of methods.)) (A single semantic token.\nTokens
represented in the Class Browser database may not be loaded\nin memory, so
this forms the structure needed to access them.))
  (progn (eieio-defclass (quote semantic-cb-token) (quote ...) (quote ...)
(quote ...)))
  (eval-and-compile (eieio-defclass (quote semantic-cb-token) (quote ...)
(quote ...) (quote ...)))
  (defclass semantic-cb-token (eieio-named eieio-speedbar) ((buttontype
:initform statictag) (buttonface :initform speedbar-tag-face) (token
:initarg :token :type semantic-token :documentation Semantic token which
represents a type.) (table :initarg :table :type semanticdb-table
:documentation This is the database table that `token' was found in.\nBe
sure to use this field when loading a token's file into memory.) (container
:initarg :container :type ... :documentation This is the CB object
containing this token.\nCB Containers are usually types with attributes of
methods.)) A single semantic token.\nTokens represented in the Class
Browser database may not be loaded\nin memory, so this forms the structure
needed to access them.)
  eval-buffer(#buffer  *load*6 nil semantic-cb nil t)

load-with-code-conversion(c:/apps/emacs/emacs-21.1/site/semantic-1.4/semant
ic-cb.el semantic-cb nil t)
  require(semantic-cb)
  (progn (require (quote semantic-cb)) (require (quote semantic

Re: all of these email virus and junk e-mail

2002-06-26 Thread Eric Raymond

Yup I understand the issue.  It will be a judgement call sort of thing 
for the moderator.  We don;t need to get rid of all the spam, just most 
of it.

Notice how much quieter the list is today?  Could be a coincidence

Steinar Bang wrote:

 Eric Raymond [EMAIL PROTECTED]:

[snip!]
 - Revoke membership to repeat offenders of virus/spam

Note that spammers steal addresses.  I get lots of bounce messages
from spam that appears to come from one of my addresses.


  






Re: all of these email virus and junk e-mail

2002-06-25 Thread Eric Raymond

Do the spammers subscribe to the list?  Can they handle a two step 
signup process (described below).   If either of these is no, then the 
following measures might cut down on the noise (which IMHO is destoying 
the list):

- Limit posting privileges to members of the list

- Make the signup process require a a two step  process requiring 
positive confirmation to an email (e.g., when you subscribe, server 
sends an email which must be replied to in order for the subscription to 
be complete).

- Revoke membership to repeat offenders of virus/spam


Paul Kinnucan wrote:

Jim Snyder writes:
  Paul...
  
  Is there anything that can be done about the infected emails and junk email? Seems 
like the last few months more and more of this stuff is occurring. Maybe there are 
more and more users interested in jdee ;-), which would be understandable.

Spammers love lists. It is inevitable that with the passage of time the
JDEE list will be discovered and targeted by an ever growing number
of spammers. The options are filtering or censorship. I don't want the
responsibility for vetting incoming mail. Filtering options as I understand it are
either centralized (i.e., filtered by Sunsite Denmark) or filtering
by individual members. I'm cc'ing this to the Sunsite staff
in case they have any centralized filtering solutions.

Paul

  






Re[1]: speedbar and auto-moving of my mouse pointer

2002-05-31 Thread Eric M. Ludlam

If you select an item in speedbar via the mouse, the mouse should not
move.  If you use the keyboard, the act of moving keyboard focus to
the editing frame moves the mouse also.  Speedbar doesn't try to move
the mouse, it is just the frame switching code.  Try C-x 5 o after
making a few frames.  I think this is a side effect of supporting
focus follows mouse window managers.  (My personal favorite)

Eric

 Jim Snyder [EMAIL PROTECTED] seems to think that:
Dear Paul...

In my current version of JDEE, when I select a .java file from the =
speedbar, jdee properly loads the file, however my mouse cursor gets =
automatically moved to emacs' upper right corner.=20

Is this auto-moving of my mouse cursor part of speedbar? If so, how can =
I turn it off?

BTW, this happens when my X-server is either linux redhat 7.2 and exceed =
7.0 in which I've used for over the last 6 months but this auto-moving =
has been occurring for the last 1-2 months.


SunOS 5.8 Generic_108528-14 sun4u sparc SUNW,Ultra-2

EMACS 20.7.1

JDE_ELIB_VERSION=3D1.0
JDE_EIEIO_VERSION=3D0.17beta4
JDE_ECB_VERSION=3D1.31
JDE_COGRE_VERSION=3D0.2
JDE_VERSION=3D2.2.9beta9.1
JDE_SPEEDBAR_VERSION=3D0.14beta3
JDE_SEMANTIC_VERSION=3D1.4beta14
JDE_EDE_VERSION=3D1.0.beta2


Thanks...Jim


Jim Snyder
Chief Scientist
Copper Key Technologies
402 High Point Dr., #201
Cocoa, FL. 32926
www.copperkey.com
321.635.8194
[EMAIL PROTECTED]






Re[1]: Using semantic + import statement to open class source

2002-05-31 Thread Eric M. Ludlam

Hi,

  The function `semantic-find-nonterminal' will use
`semantic-find-dependency' on import statements.  This function in
turn uses `semantic-dependency-include-path' to seek out where a file
is.

  semantic-java does not yet support overloading
`semantic-find-dependency' nor `semantic-dependency-include-path'.  If
one of these mechanisms were extended in JDE's context, then tools
such as ECB, Speedbar, and Senator could all successfully jump to
imports without the need for specialty commands.  Doing so would be as
simple as using the existing code, and using semantic's function
overload facility to link them together.

  There is also the work that Paul mentioned he is doing in the
semantic database which I do not think touches upon either of these
two functions.  Perhaps semantic's find-dependency function should go
through semanticdb in the future.  (It was written before the
database.)

Have fun
Eric

 Timothy Babin [EMAIL PROTECTED] seems to think that:
Hi,
   I found the java-open package written by Rajeev Karunakaran to be
quite useful and quick.
I have written some functions which use the same concept but use semantic to
get the import statements instead
of reg-ex. This is very usefull if you don't have class files for the source
that you are looking for and for speed.
It would be nice if this could be used to open class source files before
using the beanshell or if the user could
specifiy which method to use first. It would also be nice to then fallback
to using tags.

Let me know what you think.


(defun jde-custom-find-fqimport (import-list class)
  Opens the source file for `class' if a fully qualified import statement
for
the class is found in `import-list' and returns t; returns nil otherwise.
Uses `jde-find-class-source' to open the file
  (let ((current-import)
(match-found nil)
(iterator import-list))
(while (and iterator (not match-found))
  (setq current-import (car (car iterator)))
  (message current-import)
  (if (string-match (concat .*\\. class \\') current-import)
  (progn
(if (not (jde-find-class-source current-import))
(message Can't find source))
(setq match-found t)))
  (setq iterator (cdr iterator)))
match-found
)
)

(defun jde-custom-find-starimport (import-list class)
  Opens the source file for `class' if a star import statement for
the class is found in `import-list' and returns t; returns nil otherwise.
Uses `jde-find-class-source' to open the file
  (let ((current-import)
(match-found nil)
(iterator import-list))
(while (and iterator (not match-found))
  (setq current-import (car (car iterator)))
  (message current-import)
  (if (string-match \\(.*\\.\\)\\* current-import)
  (progn
(setq current-import (replace-match \\1 t nil current-import))
(message found star import)
(message current-import)
(if (jde-find-class-source (concat current-import class))
(setq match-found t
  (setq iterator (cdr iterator)))
match-found
)
)


(defun jde-custom-open-class (optional unqual-class)
   Opens the source file for `class' if an import statement for
the class is found or the class is found in the current source file
directory or in java.lang.
Uses `jde-find-class-source' to open the file
 (interactive)
;;  (semantic-bovinate-toplevel t)
  (save-excursion
(let* ((class (or unqual-class
  (read-from-minibuffer Class:  (thing-at-point
'symbol
   (tokens (semantic-bovinate-toplevel t))
   (depends  (semantic-find-nonterminal-by-token 'include tokens)))
  (cond ((jde-custom-find-fqimport depends class))
((jde-custom-find-starimport depends class))
((progn
   ;; look for file in current directory
   (let ((fname (concat class .java)))
 (if (file-readable-p fname)
 (progn (find-file fname)  ; open file in current
dir
(message Opened %s (expand-file-name
fname)))
((jde-find-class-source (concat java.lang. class)))
((jde-open-class-source class))
)
  )))

(defun jde-custom-open-class-at-point()
  (interactive)
  (jde-custom-open-class (current-word)))




Tim Babin






Re:Things hang when using ClearCase

2002-04-25 Thread Eric Chastan

I'm using using JDE and Emacs with ClearCase in dynamic views on NT2000.
All is working fine . At the begining we had a lot of problem with our
NT NFS client (diskAccess), the problem was solved by applying patches
on this tool.

When all your problems will be solved my advice is to use the realy good
package clearcase.el .

Eric.




Re[1]: local-set-key for Menu Classes - classes

2002-04-16 Thread Eric M. Ludlam

 =?ISO-8859-1?Q?=22Albert=2C_J=FCrgen=22?= [EMAIL PROTECTED] seems to 
think that:
is it possible to set a key (stroke) to the menu command Classes - Classes
-  I like this feature very much but dislike it to get a command only
with the mouse.
  [ ... ]

You can use the function `imenu' to get a text version of the imenu
menu.  (Unless I misunderstood your request.)

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[2]: Interfacing Java tools with JDEE

2002-03-26 Thread Eric M. Ludlam

 Nascif Abousalh-Neto[EMAIL PROTECTED] seems to think that:
  [ ... ]
 This doesn't really help the elisp illiterate plugin tool developer,
 but it would make it easy to create and maintain a plugin 
 interface for the JDEE.

What about doing it in the other direction: creating eieio classes
from existing Java classes? The generated eieio classes could extend basic
classes designed for easy integration into the JDEE plug-in framework.

Generating Lisp from Java seems to be more appropriate in this particular
problem, since typically the Java code will already exist (in the form of a
library or tool that we want to add to JDEE).
  [ ... ]

From my perspective (as a non-java programmer) a better idea might be
defining classes in a language agnostic form, such as XML.  This is
the same notion CORBA developers used when they created the C like
IDL (Interface Description Language, not the other IDL).  I don't
recommend IDL for this task, however. ;)

My intention for discussing such an interface with Paul was so I
could hack Emacs Lisp code, and have it display UML, or other types
of graphics via a slave Java process.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re[2]: jde glitches

2002-03-26 Thread Eric M. Ludlam

 Nicholas Sushkin [EMAIL PROTECTED] seems to think that:
In my case, every time the font-lock stops working, I get the following
message in *Messages*

Stack overflow in equal

I am using

Emacs  : GNU Emacs 20.7.1 (i386-redhat-linux-gnu, X toolkit)
 of Fri Mar 16 2001 on porky.devel.redhat.com
Package: JDE version 2.2.9beta9.1
Required packages: semantic-1.4beta13 eieio-0.17beta3 speedbar-0.14beta2
  [ ... ]

Hi,

  While I haven't had this problem, I am told the patch I posted to
  this list:

http://www.mail-archive.com/jde@sunsite.dk/msg04367.html

  fixed a segv and another issue.

  If this patch also fixes the stack/equal problem, please let me
  know as I haven't received confirmation for this bug instance.

Good Luck
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



semantic 1.4beta14 patch to fix segv/font-lock death

2002-03-24 Thread Eric M. Ludlam

Hi,

  Paul told me rumors of a problem with the latest semantic causing
  font-lock to die in some versions of Emacs.  The attached patch
  should fix this problem for those older versions of Emacs.

  Apply the patch to semantic-imenu.el.

Enjoy
Eric

diff -r1.39.2.4 -r1.39.2.5
8c8
 ;; X-RCS: $Id: semantic-imenu.el,v 1.39.2.4 2002/03/07 01:26:51 zappo Exp $
---
 ;; X-RCS: $Id: semantic-imenu.el,v 1.39.2.5 2002/03/23 01:13:41 zappo Exp $
219c219,220
   (semantic-create-imenu-directory-index stream)
---
   (semantic-create-imenu-directory-index
 (or stream (semantic-bovinate-toplevel t)))

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re: Extending JDE using Java (WAS: Gosling interview)

2002-01-27 Thread Eric D. Friedman


Daniel,

If you read Paul's note, the problem he's trying to solve arises precisely
because it is too expensive to have a lot of chatter across I/O between
emacs and an external java process.  The solution he's considering --
put the display logic into the java process so as to avoid the I/O --
addresses the problem.  Your proposal - a different window layout managed
by ECB - adds more complexity (by bringing ECB into the mix) without
doing anything to reduce the high cost of I/O between the debugger and its
display.

Eric

In message [EMAIL PROTECTED], Daniel Hegyi writes:
: I think it is practical to use Java to extend Emacs where not much
: interaction is required between Emacs and the extension, the wizards
: and the debugger are examples. It may even be possible to provide
: those extensions with a Java GUI. Pettar Maehlen and I have been
: discussing the possibility of creating a Java window for JDEbug to display
: local variable values when stepping through a program. Currently
: displaying local variables slows down stepping significantly because
: it involves sending significant amounts of text across the
: standard I/O channel to Emacs. A separate local variable window
: that lives in the debugger process instead of the Emacs process would
: eliminate this bottleneck.
: I think this would be great! JDE is already a very powerful IDE, that is, it 
: has a great deal of functionality. But I'm concerned with the UI aspect of 
: it. Emacs-ers are used to doing M-x all the time, however, I think it could 
: benefit much from some GUI components instead of having to memorize so many 
: functions.
: 
: Regarding the inspection of local vars you may also want to consider 
: displaying them in an ECB window. (Although ECB is not a mandatory component 
: of JDE, it seems like a natural fit for the problem.) Maybe having the 
: option of having either Java GUI or ECB inspection view?
: 
: 
: Regards,
: Daniel
: 
: _
: MSN Photos is the easiest way to share and print your photos: 
: http://photos.msn.com/support/worldwide.aspx
: 



RE: enhancement wish

2001-12-12 Thread Eric Chastan

You can easily solve your problem by using lisp variables in you project
files like this:

in your first project file
(setq common-classpath (list tt yy))


and then in sub-project files:
(setq jde-compile-option-classpath (append (list additional-path))
common-classpath)

This is the advantage of using lisp project file.

Eric.

 hi all,

 i working now for some time with nested prj.el files.
 i have noticed that there are in particular two entries

   jde-global-classpath
   jde-help-docset

 (and related entries) which i have to overwrite quite often.
 however, in many cases (in particular within one project) i just add
 another entry to the predefined values.
 would it be possible to have some mechanism which would enable one to
do
 exactly that, i.e. add instead of overwrite?

 i am thinking of something along the following line (using the
classpath
 as an example):

 use a variable like additional-classpath-entries.
 if this variable is used, it is used to modify the existing entries,
 however when jde-global-classpath is used, all values are overwritten
 (the same behaviour as before).

 does this make any sense? what do you all think?

 heinz-dieter conradi






best mode to edit Ant files ?

2001-12-12 Thread Eric Chastan

Hello,

Do you know a good mode to edit Ant files (with colorization,
indentation, completion ...) ?

Eric.




problem with JDEbug and jde-db-option-verbose

2001-10-26 Thread Eric Chastan

On my configuration
'(jde-db-option-verbose (quote (t nil nil))) adds a -v option on the
command line runs by JDEbug when lauching a process for debugging.

Eric.




Re: jde.el and tramp

2001-10-23 Thread Eric D. Friedman


Dug a little deeper:  On linux, PATH_MAX is 4095; on Solaris it's 1024.

In message [EMAIL PROTECTED], Eric D. Friedma
n writes:
: 
: This sounds like a bug that should be fixed in tramp, not in JDE.
: 
: Directory *entry* length maximums are file system dependent too, which
: means that a correct implementation of this hack would require looking at
: the different filesystems that can be mounted on unix and windoze (both of
: which can be nfs clients, of course, and so can mount other filesystems
: through NFS or natively).  A quick look at the header files on my linux
: machine (which includes ufs_fs.h known to work with Solaris and HP/UX,
: as well as ext{2,3}_fs.h, reiser_fs.h etc.) shows that 255 is a popular
: (smile) maximum length for directory entries.
: 
: If the question being asked is what's the longest legal *path* name --
: well, on unix that can be very, very large.  I don't know how big exactly,
: but you can definitely create paths that are much bigger than the thread
: below would allow.  To illustrate: I ran this script on my linux machine
: (ext2 filesystem).  Starting at /home/eric, it happily created a directory
: structure /home/eric/0/1/2/3/../4096.  Note also that it had no trouble
: traversing the structure as it went. Note also that each of the nodes
: in this path *could* have been up to 255 characters long.  In sum,
: (255 * 4097)  100.
: 
: Obviously this is an edge case (although anyone with ClearCase experience
: knows that you can end up dealing with some mighty big pathnames once
: you start poking around in mvfs' view extended pathnames), but I
: think it shows why it would be better to solve this problem through some
: other means.  Perhaps the original poster could describe the specific
: issue with tramp in more detail?  Perhaps the folks on the tramp mailing
: list could be enlisted to help resolve it?
: 
: #!/usr/bin/perl
: 
: for my $n (0 .. 4096) {  # upper limit chosen at random (note: *inclusive*)
:   system 'mkdir', $n;
:   if ($?) { exit 1; }
:   chdir $n;
: }
: 
: In message [EMAIL PROTECTED], Paul Kinnucan writ
es
: :
: : 
: : Can anyone help with the question raised in the following 
: : thread?
: : 
: : Paul
: : 
: : Jose M Vidal writes:
: :   
: :   Yup, 100 is a hack that works for me. I don't know what the actual
: :   maximums are.
: :   
: :   On the other hand, we just need to pick a number bigger than the most
: :   unreasonably long file name but smaller than infinity. H. What is
: :   1024?
: :   
: :   Sorry,
: :   Jose
: :   
: :   
: :   On Mon, 22 Oct 2001, [EMAIL PROTECTED] wrote:
: :   
: :Jose M Vidal writes:
: :  
: :  jde 1.17 will not work with tramp because of the way it keeps
: :  trying to go up the directory hierarchy assuming ange-ftp
: :  usage. It would get into an infinite loop. I fixed this by simply
: :  constraining the length of the directory to 100 characters. I
: :  think this makes the code much
: :
: :Hi Jose,
: :
: :Why did you choose 100 characters? How do you know that there won't
: :be a valid path somewhere that is more than 100 characters.
: :I'm very leery of hacks like this based on someone's estimate
: :of what is a reasonable maximum for some value. I'd rather have
: :the maximum be greater than the maximum of the maximum paths
: :supported by Windows and Unix. Is there such a maximum? I vaguely
: :recall reading somewhere that the limit for Windows paths is
: :256 characters. If Unix and Windows have constraints on path sizes,
: :I'd be much more comfortable adopting this hack.
: :
: :- Paul
: :
: :  more robust. Here is the changed function (from jde.el):
: :  
: :  
: :  (defun jde-find-project-file (dir)
: :Finds the next project file upwards in the directory tree
: :  from DIR. Returns nil if it cannot find a project file in DIR
: :  or an ascendant directory.
: :(let ((file (find jde-project-file-name
: :  (directory-files dir) :test 'string=)))
: :  (if file
: :  (expand-file-name file dir)
: :(if ( (length dir) 100)
: :(if (not (jde-root-dir-p dir))
: :(jde-find-project-file (concat dir ../)))
: :  
: :  Cheer, and thanks for a *great* product,
: :  Jose
: :  
: :  -- 
: :  Jose M. Vidal [EMAIL PROTECTED]  http://jmvidal.cse.sc.edu
: :  University of South Carolina  http://www.multiagent.com
: :  
: :   
: :   -- 
: :   Jose M. Vidal [EMAIL PROTECTED]  http://jmvidal.cse.sc.edu
: :   University of South Carolina  http://www.multiagent.com
: :   
: : 
: 



jmaker.el modification.

2001-10-12 Thread Eric Chastan

Makefiles generated by jmaker didn't work if generated classes didn't go
in the same directory than sources.
Here is a modification that had two variables and a function.

- jmaker-dest-dir : directory where sources are to be compiled.
- jmaker-source-path : directories where sources can be found.
 - jmaker-dir-package-part (optional directory  path-list)  return
the package part from a directory name and a source path list.

jmaker-dir-package-part() is used in template to generated full path
name to compiled classes.

to use it with jde:
make jmaker-dest-dir points to jmaker-dest-dir
and jmaker-source-path points to jde-db-source-directories

Eric.

-

(require 'jde)
(require 'tempo)



(defconst jmaker-version $Revision: 1.10 $
  jmaker version number.)

(defgroup jmaker nil
  Java Makefile Maker Environment
  :group 'tools
  :prefix jmaker-)

(defcustom jmaker-dest-dir 
  Directory where source files are to be compiled
  :group 'jmaker
  :type 'string)

(defcustom jmaker-source-path 
  List of source directory paths.
  :group 'jmaker
  :type '(repeat (file :tag Path)))

(defcustom jmaker-makefile-buffer-template
  '(
\\ 'n
\ Java Makefile automatically generated by jmaker \
(jmaker-version-number) 'n
\ Creation date: \ (current-time-string) 'n
\\ 'n
'n
\ Java compiler settings\ 'n
\JAVAC   = \ jde-compiler  'n
\JAVAC_FLAGS = \ (jde-get-compile-options) 'n
\DEST_DIR = \ (jmaker-relative-dest-dir) 'n
\PACKAGE_DIR = \ (jmaker-dir-package-part) 'n
'n
\ Build Rules\ 'n
\$(DEST_DIR)$(PACKAGE_DIR)%.class: %.java\ 'n
\\\t$(JAVAC) $(JAVAC_FLAGS) $\ 'n
'n
\ Global target\ 'n
(jmaker-all-target)
'n
\ Single targets\ 'n
(jmaker-file-targets)
'n
\ Cleanup\ 'n
\clean:\ 'n
\\\t$(RM) *.class\ 'n
'n
\ Rebuild\ 'n
\build:\\tclean all\ 'n
'n
\ Usage\ 'n
\help:\ 'n
\\\t@echo \\\Usage: make [all|single
target|clean|build|help] 'n
\\\t@echo \\\  all - build all as needed
(default) 'n
\\\t@echo \\\  single target - build the given file as
needed 'n
\\\t@echo \\\  clean   - remove all .class files
'n
\\\t@echo \\\  build   - build all inconditionnally
'n
\\\t@echo \\\  help- display this help 'n
'n
)
  *Template for Java Makefile.
Setting this variable defines a template instantiation
command `jmaker-insert-makefile', as a side-effect.
  :group 'jmaker
  :type '(repeat string)
  :set '(lambda (sym val)
  (defalias 'jmaker-insert-makefile
(tempo-define-template jmaker-makefile-buffer-template
   (jde-gen-read-template val)
   nil
   Insert a Java Makefile in the
current buffer.))
  (set-default sym val)))

(defcustom jmaker-meta-makefile-buffer-template
  '(
\\ 'n
\ Java meta Makefile automatically generated by jmaker \
(jmaker-version-number) 'n
\ Creation date: \ (current-time-string) 'n
\\ 'n
'n
\ Sub-Makefiles targets\ 'n
(jmaker-sub-makefile-targets)
'n
\ Usage\ 'n
\help:\ 'n
\\\t@echo \\\Usage: make [all|single target|help] 'n
\\\t@echo \\\  all - build all as needed
(default) 'n
\\\t@echo \\\  single target - build the given target as
needed 'n
\\\t@echo \\\  help- display this help 'n
'n
)
  *Template for Java meta Makefile.
Setting this variable defines a template instantiation
command `jmaker-insert-meta-makefile', as a side-effect.
  :group 'jmaker
  :type '(repeat string)
  :set '(lambda (sym val)
  (defalias 'jmaker-insert-meta-makefile
(tempo-define-template
jmaker-meta-makefile-buffer-template
   (jde-gen-read-template val)
   nil
   Insert a Java Makefile.meta in the
current buffer.))
  (set-default sym val)))

(defun jmaker-customize ()
  Show the jmaker customization global options panel.
  (interactive)
  (customize-group jmaker))

(defun jmaker-version-number ()
  Returns jmaker version number.
  (string-match [0123456789.]+ jmaker-version)
  (match-string 0 jmaker-version))

(defun jmaker-display-version ()
  Displays jmaker version.
  (interactive)
  (message Using 'jmaker' version %s. (jmaker-version-number)))

(defun jmaker-relative-dest-dir ()
  return the compilation destination directory relative toward current
directory
(file-relative-name jmaker-dest-dir default-directory)
)

(defun jmaker-dir-package-part (optional directory  path-list)
  return the package part from a directory name and a source path
list.
  (let* (
 (dir (or directory default-directory

Re: RFE?: Suppress abbrv mode in comments

2001-10-02 Thread Eric D. Friedman


Actually jde-gen's default cflow templates are comment/quote aware.
That is, the tempo-templates include a hook that expands the abbrev
with a control flow template everywhere except when point is inside
of a comment or a double quoted string.

The problem is that the tempo-templates are activated by abbrev-mode,
which is not case sensitive and which doesn't make the text that
triggered the abbrev expansion available to the expander of that text.

There's also no mecahnism through which a template can say oh wait,
cancel the expansion and leave the text unmolested.

So, abbrev-mode expands abbrevs without regard to case, and the
jde cflow templates are forced to choose one case or the other to
use in contexts (quotes and strings) when the full expansion is not
appropriate.

In sum, this is a minor annoyance, but I'm sure you'll agree that it's
much better than getting if () { } inserted when you're trying to compose
a comment (which is what earlier versions of the templates did before I
added the quote-or-string hook).

Eric

In message [EMAIL PROTECTED], [EMAIL PROTECTED] writes:
: 
: Hi,
: 
: Is it possible to suppress abbreviation mode for comments?  For example, if
: I want to start a sentence in my comment with the word If, abbreviation
: mode always kicks in and changes it to lowercase if, thinking that I am
: entering a java keyword.  I can of course Type If C-q SPC every time, but
: considering that most often in a comment I one is not typing code, but
: comments, it would be nice if abbreviation was disabled for this.  I suppose
: if you wanted to be really fancy abbreviation mode could ignore everything
: except text inside code/code blocks.
: 
: Ian
: 
: .
: 



Re: Sorting methods

2001-10-01 Thread Eric D. Friedman


It should be pretty easy to do this with JavaCC.  Just use one of the
Java grammars that are included with JavaCC and write the parse tree
back out in whatever order you need.  This will make it possible to
preserve javadoc too.  You didn't mention where Visual Age puts field
declarations, but JavaCC should be able to help there too.

You might also want to search the comp.compilers.tools.javacc newsgroup
to see if anyone has already done something similar -- it seems like
the sort of code beautifying tool that a compulsive neat freak 
must have been inspired to write at some point.

You could also look at ANTLR for the same stuff: it's a different
parser generator, and its adherents may have done something that would
be helpful to you.

Eric


In message [EMAIL PROTECTED], Perkens-Golomb, Burkhard writes:
: I'm looking for a tool to arrange methods in Java sources
: alphabetically.
: 
: I've given away sources to a customer. They've worked with them in
: Visual Age and I want to look at their changes. They don't remember
: all changes they've made so I have to do a diff. But Visual Age stores
: the sources in a database, not in flat files, and if you want normal
: Java files from Visual Age you get them terrible formatted and the
: methods are arranged alphabetically. A diff with my sources is futile.
: 
: I'm looking for a tool to arrange the methods in my sources
: alphabetically.  Of course I could load my sources in Visual Age and
: get them back terrible formatted, too :-) . But I don't have Visual
: Age and I don't want to use it if it's possible without it!
: 
: Could Emacs do it (with semantic, senator etc.)? Or other tools? Any
: ideas or hints?
: 
: TIA,
: 
: Burkhard
: 



Re: ANN: JDE 2.2.9beta2 available... (correct URL)

2001-09-30 Thread Eric D. Friedman


I got two errors while compiling this release:

1.

While compiling toplevel forms in file /home/eric/emacs/jde/lisp/jde-bug.el:
  !! error ((Given parent class jde-db-debugger is not a class))

and 2.

While compiling toplevel forms in file /home/eric/emacs/jde/lisp/jde.el:
  !! Malformed property list (((:initarg :version :version string Compiler version.) 
(Compiler version.)))

In message [EMAIL PROTECTED], Paul Kinnucan writes:
: http://jde.sunsite.dk/rootpage.html#Downloading
: 
: JDE 2.2.9beta2
: 
: ***
: * PLEASE READ *
: ***
: * *
: * This release requires semantic 1.4beta10 (or later),*
: * speedbar 0.13 (or later), and eieio-0.16 (or later, *
: * except eieio-0.17beta1). You can obtain all three   *
: * packages at http://cedet.sourceforge.net*
: * *
: * This release requires version 1.2.2 (or later) of the   *
: * JDK.*
: * *
: * Note: This release does not work with eieio-0.17beta1, but  *
: * it does work with eieio-0.17beta2.  *
: * *
: * This release also requires avltree.el, which is part of the *
: * elib 1.0 package. You can obtain elib at the JDE web site   *
: * in compressed tar (http://sunsite.dk/jde/elib.tar.gz)   *
: * or zip (http://sunsite.dk/jde/elib.zip) format. *
: * *
: * JDEbug runs on Windows 2000 only if Service Pack 2 (or  *
: * later) is installed.*
: * *
: * If syntax-coloring does not work, download and install  *
: * overlay-fix.el from the semantic web site.  *
: * *
: ***
: 
: * The jde-build-ant-command now quotes all path arguments to 
:   accommodate Windows. This change was submitted by 
:   Kevin Jones [EMAIL PROTECTED]. I don't use Ant so I've
:not tested this change.
: 
: * Replaced the customization variable jde-db-debugger with
:   jde-debugger to be consistent with jde-compiler.
: 
: 



Re[2]: Semantic 1.4beta11

2001-09-27 Thread Eric M. Ludlam

 Berndl, Klaus [EMAIL PROTECTED] seems to think that:
I installed the new package, and tried it on a C header file.  I have
several:

typedef struct
{
  blah,
  blah,
  blah

} blah_S;

like definitions in the file.  The *ECB Methods* buffer shows a:

  ^@

for each.  It looks like:

--
^@
^@
^@
^@
^@
[Variables][+]
--


Anyone else seen this?

Yes, me too.
It´s not a problem of ECB but of semantic; speedbar shows the same output.

Eric, do you know why this happens?

Klaus

An addition into the grammar caused the wrong information to be placed
in as the typedef name.  This will be fixed in beta 12.

Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappoSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



jde-find doesn't work on win32

2001-09-07 Thread Eric Chastan

Hello,

On my NTemacs find-grep functions work well with the use of cygwin
bash :

I'm using different stuff :
- from emacro:

(setq explicit-shell-file-name (which-first bash))
  (setq sh-shell-file (which-first bash))
  (setenv ESHELL (which-first bash))
  (add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)
  (setq win32-quote-process-args t)
  (setq shell-command-switch -c)
  (add-hook 'shell-mode-hook
 '(lambda () (setq comint-completion-addsuffix t)) t))

- and (from the emacs-help newsgroup) :
(defadvice start-process-shell-command (around cygnus-workaround
activate)
  (let ((shell-file-name c:\\cygwin\\bin\\bash.exe)
 (win32-quote-process-args t)
 (shell-command-switch -c)
 (path-separator :)
 (grep-null-device NUL))
(message compile-internale advised : %s)
ad-do-it))

(setq igrep-expression-quote-char ?')
(setq igrep-parenthesis-escape-char ?\\)

The problem with jde-find is the use of  DOS drive names in the find
commande.

From where the jde command takew its directory source file names ?
Could it be possible to have a separate variable for it ?

Eric.




Re: people using jdk 1.2?

2001-08-13 Thread eric


[java 1 vs. java 2 comments]

: Has there been any documentation out about this?  I don't see why using the
: Collections API would increase performance.

Yes, a number of articles and book chapters have been written about
the cost of acquiring the synchronization lock on java objects.  Since
every method on Vector/Hashtable is synchronized, and since these were
frequently used classes in JDK  1.2, they quickly become performance
bottlenecks.  The java 2 collections are not synchronized by default
and so do not suffer from this particular shortcoming.

The second performance problem I noticed is algorithmic in nature.
The JDE builds a list of all compiled classes in your project (
5,000 in the JDK base -- not counting i18n and so forth -- alone).
When determining which class to import, it does a linear scan on this
list.  Clearly it would be faster to sort the list and then use binary
searches for lookups.

Other obvious, low hanging fruit include using StringBuffer.append()
instead of String concatenation inside of loops, and removing unnecessary
synchronized method calls in those same loops.

An alternative to using a sort/search loop algorithm would be to replace
the list data structure with a Map.  In the current implementation, the
list is comprised of fully qualified classnames.  The search looks for
the qualified classname only (the `Map' in `java.util.Map').  Clearly one
could precompute the `Map' string when building the data structure and
turn the search loop into a simple hash lookup  that resolves to either
a single String (`Map' - `java.util.Map') or a List of Strings (`List'
- {`java.util.List', `java.awt.List'}).

Eric



Re: dynamic class loading in jde+beanshell

2001-08-13 Thread eric


: 2.3 there is the concept of a Web Application.  Specifically a collection of
: files distributed as a WAR - which is just a jar with a given directory
: structure.

WAR files predate 2.3.  The new thing in 2.3 is the isolation of the
WAR classloader from the loader used by the app server.  This is valuable
b/c a WAR might have a version of, say, an XML parser that conflicts with
the one used by the servlet container.  The requirement in 2.3 that the
WAR loader not pick up classes from the container will fix this, in
most cases.

: The cool thing is the automatic class loading.  Any file within WEB-INF/class
es
: or any .jar files in WEB-INF/lib are automatically used by it's classloader.
: 
: We could do something like this for the JDE... IE load all files in PROJECT/l
ib

That's what the DCL does today, using values defined in elisp.
It's arguably better than the WAR mechanism b/c it doesn't require
everything to be in arranged in a predetermined layout.  The improvement
I'm suggesting is that it support runtime modifications to the classpath
it searches for loadable classes.  Now *that* would be cool (and easy
to do).

Eric



Re: Toggle comments in jde-gen.el

2001-08-13 Thread eric


My guess is that you need to quote (s clause) when passing it to 
(concat).  Better still: loose the (concat), since tempo-template already
concatenates strings for you. Consider this line:

 '(l ' \if (\ (p \if-clause: \ clause) \) \

It will evaluate to '(l ' if ( (p if-clause:  clause) )
which then gets passed to the tempo-template code.

Your problem line has this:

 (concat \ // end of if (\ (s clause) \)\)

which I would expect to become

 (concat  // end of if ( (s clause) ))
and then
  // end of if (XXX) ;; XXX is failed eval of (s clause)
when getting sent to tempo-template.

I bet that something like this
 \ // end of if (\ (s clause) \)\
would work fine.

Failing that, try quoting (s clause) so that it isn't evaluated when
you call concat.


In message [EMAIL PROTECTED], Mark Mynsted mmynsted@.vha.
com writes:
: OK.  I attempted to get some code working this week-end to toggle
: comments for the auto-generated code, and failed.  The problem I am
: having is that the (s clause) code keeps getting run as lisp code
: rather than as part of the tempo template.
: 
: Does anybody have any idea how to get this to work?  The following is
: a example.
: 
: I set up a boolean variable called jde-gen-comments as follows:
: 
: (defcustom jde-gen-comments t
:   *If no-nil, use comments, else do not use comments.
: with comments:
: 
:   try 
:   {
:
: 
:   } catch (Exception e) 
:   {
:
:   } // end of try-catch
: 
: witout comments:
: 
:   try 
:   {
:
: 
:   } catch (Exception e) 
:   {
:
:   }
: 
: Setting this variable to t, uses comments in skeletons and templates.
:   :group 'jde-gen
:   :type 'boolean)
: 
: 
: Here is an example of what I am attempting to do and how it does not
: work.  The error is Symbol's function definition is void: s.  I
: assume this is because the code is in a (l expression) block, and so
: the (s clause) is being evaluated.  I have tried everything I can
: think of, even putting the (s clause) in a variable then appending it
: if applicable...  If I do that, then the the literal text (s clause)
: is written in the comment rather then the value stored by tempo in
: clause.  I would really like to figure this out.  Altering the
: templates via customize is far too time consuming.  I would rather
: alter the jde-gen.el once, that keep altering via customize...
: 
: (defcustom jde-gen-cflow-if
:   '(
: (if (jde-parse-comment-or-quoted-p)
: '(l \if\)
: '(l ' \if (\ (p \if-clause: \ clause) \) \
: (if jde-gen-kr 
: ()
: ''n)
: \{\''n''r'n
: \}\
: (if jde-gen-comments 
: (concat \ // end of if (\ (s clause) \)\)
: ())
: ''n')
: )
: )
:   Skeleton if statement. To insert the if statement at point, type if 
: and then space. Note that abbrev mode must be enabled. See 
: `jde-enable-abbrev-mode'
:   :group 'jde-gen
:   :type '(repeat string)
:   :set '(lambda (sym val)
: (jde-gen-define-abbrev-template
:  if
:  (jde-gen-read-template val))
: (set-default sym val)))
: 
: 
: Please help.  
: 
: 
: -- 
: Sincerely yours;
: 
: Mark Mynsted
: 
: VHA Management Information Systems Client Services
: 972.830.0592, internal x1592
: 
: 
:  /\
:  \ / ASCII Ribbon Campaign
:   X  Against HTML Mail
:  / \
: 
: 



Re: people using jdk 1.2?

2001-08-13 Thread eric


One more thought on the classes data structure and I'll shut up. ;-)
It would be nice if the data extracted from common jars could be shared
across projects.  That is, JDE shouldn't keep a separate list of the
classes in rt.jar for each project a user has open.  Assuming that
the map approach is adopted, this would basically amount to keeping a
collection of maps (one per classpath entry) and sharing items in that
collection across projects.  This would require putting a dirty flag
on each map instead of on the project's collection of maps.

Javier and Paul - please let me know if you want help with any of this.

Eric

In message 010301c12408$532e5c10$4173d490@kinnucanp, Paul Kinnucan writes:
: Hi  All,
: 
: Unless there are any strong objections, I'd like to adopt Eric's suggestion
: and make JDK 1.2 a requirement for the JDE, beginning with JDE - 2.2.9beta1.
: (I have frozen JDE-2.2.8  and plan to release it shortly.)  I believe it's
: possible to use JDK 1.2+ to develop for JDK 1.2 anyway by not using JDK
: 1.1 and by using the JDK 1.1 cross-compile option.
: 
: BTW, thanks, Eric, for taking the time to do a performance review of the
: JDE's Java code and make specific recommendations for improving the
: performance. Your recommendations are excellent. Javier Lopez has already
: sent me updates that implement some of them and I plan to include Javier's
: updates in JDE 2.2.9beta1. It will be interesting to see if they make a
: perceptible difference.
: 
: - Paul
: 
: - Original Message -
: From: [EMAIL PROTECTED]
: To: Kevin A. Burton [EMAIL PROTECTED]
: Cc: [EMAIL PROTECTED]
: Sent: Monday, August 13, 2001 9:06 AM
: Subject: Re: people using jdk  1.2?
: 
: 
: 
:  [java 1 vs. java 2 comments]
: 
:  : Has there been any documentation out about this?  I don't see why using
: the
:  : Collections API would increase performance.
: 
:  Yes, a number of articles and book chapters have been written about
:  the cost of acquiring the synchronization lock on java objects.  Since
:  every method on Vector/Hashtable is synchronized, and since these were
:  frequently used classes in JDK  1.2, they quickly become performance
:  bottlenecks.  The java 2 collections are not synchronized by default
:  and so do not suffer from this particular shortcoming.
: 
:  The second performance problem I noticed is algorithmic in nature.
:  The JDE builds a list of all compiled classes in your project (
:  5,000 in the JDK base -- not counting i18n and so forth -- alone).
:  When determining which class to import, it does a linear scan on this
:  list.  Clearly it would be faster to sort the list and then use binary
:  searches for lookups.
: 
:  Other obvious, low hanging fruit include using StringBuffer.append()
:  instead of String concatenation inside of loops, and removing unnecessary
:  synchronized method calls in those same loops.
: 
:  An alternative to using a sort/search loop algorithm would be to replace
:  the list data structure with a Map.  In the current implementation, the
:  list is comprised of fully qualified classnames.  The search looks for
:  the qualified classname only (the `Map' in `java.util.Map').  Clearly one
:  could precompute the `Map' string when building the data structure and
:  turn the search loop into a simple hash lookup  that resolves to either
:  a single String (`Map' - `java.util.Map') or a List of Strings (`List'
:  - {`java.util.List', `java.awt.List'}).
: 
:  Eric
: 
: 



Re: Need some help

2001-08-03 Thread eric


In message [EMAIL PROTECTED], Douglas WF Ach
eson writes:
:   I know this is not JDEE related, I have not got any help from other
: emacs newsgroups/lists :-(  This message is for the XEmacs people in
: the crowd.  I want to change the functionality of the compile button. 
: I want to invoke ant and not make.  I thought I could change the vector
: defined in the toolbar.el file -- that does not work. And, there is no
: compile-button-function to alter.  Any help would be appreciated ...

The toolbar-items.el file is where I looked to find an answer to your
question (I do not use toolbar myself - takes up too much room smile).

It defines a (non-customizable) defun which includes the following:
[...]
(require 'compile)
  (if toolbar-compile-already-run
  (compile compile-command)
[...]

I then typed C-h v compile-command [RET] and found this:

`compile-command' is a variable declared in Lisp.
  -- loaded from compile

Value: make -k 

Documentation:
*Last shell command used to do a compilation; default for next compilation.

Sometimes it is useful for files to supply local values for this variable.
You might also use mode hooks to specify it in certain modes, like this:

(add-hook 'c-mode-common-hook
  (lambda ()
(or (file-exists-p makefile) (file-exists-p Makefile)
(set (make-local-variable 'compile-command)
 (concat make -k  buffer-file-name)


I conclude that you need to write a jde-mode-hook that sets `compile-command'
to `ant -find build.xml -emacs'

Unfortunately there doesn't seem to be an easy way to just use jde-ant-build
as the value of compile-command, b/c jde-ant-build wants to call 
(compile-internal compile-command), and the toolbar button wants to
do (compile compile-command) - this cannot end well. :-/

That said, it looks like the toolbar will prompt you for additional arguments
when you clikc on the compile icon, so you probably don't need jde-ant
anyway.

Sorry if this was too long winded - hope it helps,
Eric



syntax highlighting in jde-mode not working properly

2001-07-30 Thread Eric Ray

Question:  When using JDE on windows i have no problem with java syntax 
highlighting when emacs is in jde-mode.  However, on Red Hat Linux 7.1, 
when I load a java file I lose all syntax highlighting when emacs is in 
jde-mode.  If I switch to java-mode, i get my syntax highlighting but 
then I lose my JDE environment.  Does anyone know how to correct this?

BTW, paths to all JDE and lisp package are correct.

my .emacs file is pasted inline below

-

;; Red Hat Linux default .emacs initialization file

;; Are we running XEmacs or Emacs?
(defvar running-xemacs (string-match XEmacs\\|Lucid emacs-version))

;; load path for jde
(add-to-list 'load-path (expand-file-name 
/usr/share/emacs/20.7/jde-2.2.7.1/lisp))
(add-to-list 'load-path (expand-file-name 
/usr/share/emacs/20.7/lisp/eieio-0.16))
(add-to-list 'load-path (expand-file-name 
/usr/share/emacs/20.7/lisp/elib-1.0))
(add-to-list 'load-path (expand-file-name 
/usr/share/emacs/20.7/lisp/semantic-1.4beta5))
(add-to-list 'load-path (expand-file-name 
/usr/share/emacs/20.7/lisp/speedbar-0.13a))

;; If you want Emacs to defer loading the JDE until you open a
;; Java file, edit the following line
;;(setq defer-loading-jde nil)
;; to read:
;;
(setq defer-loading-jde t)
;;

(if defer-loading-jde
   (progn
 (autoload 'jde-mode jde JDE mode. t)
 (setq auto-mode-alist
   (append
'((\\.java\\' . jde-mode))
auto-mode-alist)))
 (require 'jde))


;; Sets the basic indentation for Java source files
;; to two spaces.
(defun my-jde-mode-hook ()
 (setq c-basic-offset 2))

(add-hook 'jde-mode-hook 'my-jde-mode-hook)



;; Set up the keyboard so the delete key on both the regular keyboard
;; and the keypad delete the character under the cursor and to the right
;; under X, instead of the default, backspace behavior.
(global-set-key [delete] 'delete-char)
(global-set-key [kp-delete] 'delete-char)

;; Turn on font-lock mode for Emacs
(cond ((not running-xemacs)
   (global-font-lock-mode t)
))

;; Always end a file with a newline
(setq require-final-newline t)

;; Stop at the end of the file, not just add lines
(setq next-line-add-newlines nil)

(set-background-color Black)
(set-foreground-color White )
(set-cursor-color Yellow)

;; Enable wheelmouse support by default
(require 'mwheel)
(custom-set-variables
'(display-time-day-and-date t)
'(transient-mark-mode t)
'(display-time-mode t nil (time))
'(c-basic-offset 2)
'(column-number-mode t))
(custom-set-faces
'(default ((t (:foreground white :background black
'(font-lock-comment-face ((t (:foreground green
'(font-lock-string-face ((t (:foreground yellow
'(font-lock-keyword-face ((t (:foreground blue
'(font-lock-constant-face ((t (:foreground lightgoldenrod
'(font-lock-type-face ((t (:foreground lightgrey
'(modeline ((t (:foreground black :background lightsteelblue
'(highlight ((t (:foreground black :background cyan
'(font-lock-variable-name-face ((t (:foreground LightGoldenrod
'(font-lock-function-name-face ((t (:foreground LightSteelBlue
'(font-lock-builtin-face ((t (:foreground blue)




Re: Renaming Proposal

2001-07-18 Thread eric


In message [EMAIL PROTECTED], Paul Kinnucan write
s:
: Yes, one possibility is to replace jde- with j- in symbol names, on the
: analogy of c-mode. Another is jmode-. Thus, jde-global-classpath might
: become j-global-classpath or jmode-global-classpath. 

I would very much prefer jmode- as a prefix, but I'm not gonna lose sleep
over it.



Re: ANN: Name Change Plans

2001-07-18 Thread eric


: Shall we trademark JMode just in case? It seems many of us, me included,
: are willing to help defer the legal cost of one.

Can the FSF help in this area?  That is, could the FSF set up a dedicated
fund for JMode's trademark (to which we could contribute) and take care
of whatever paperwork there is?

Keep in mind that part of owning a trademark is defending it - if
you don't send out cease and desist letters to people who violate it,
you can't later claim that they violated your rights.  Perhaps the FSF
would be willing to oversee the `trademark watch' that protects trademark
holders from such abuses?  (I must note here that I have mixed feelings
about this - the whole idea of saying that these letters are mine and you
may not use them is really very silly, but that's the way things are)

Getting the FSF involved would have several advantages that I can think of:

1. Paul wouldn't have to waste any more time on this;
2. Because of 1, jde 2.8 final will be out sooner smile
3. A precedent would be established that other open source projects could
   follow.
4. cravenness shame='none'Those of us in the US who make contributions 
   to the fund could get a tax credit for contributing to a qualified 
   non-profit organization./cravenness

Eric



Re: ANN: Name Change Plans

2001-07-18 Thread eric


In message [EMAIL PROTECTED], Udalrich wri
tes:
: 
: Keep in mind that part of owning a trademark is defending it - if
: you don't send out cease and desist letters to people who violate it,
: you can't later claim that they violated your rights.
: 
: Is that actually an issue here?  The interest in getting the trademark is 
: to prevent some company from sending Paul another cease and desist letter, 
: not to monopolize the word JMode.  Even if he loses the rights, I doubt 
: that someone else could trademark it and force him off of it.  At the very 
: least, he's got a very strong case for prior use.

IANAL, but I believe it is an issue.  In the US, I believe the rule is
defend it or lose it.  Now that may mean that if you don't defend it,
others can use it (which I'm sure would be fine with Paul).  But, it may
also mean that those who use it can get the USPTO to agree that you've
stopped defending it and so *they* should be eligible for exclusivity
on the TM.  I don't know if this is true or not for trademarks, but it
merits investigation.

Also, remember that it's not a one time expense: TMs expire and have
to be renewed.  That's what happened to JD Edwards, as others on this
list have explained it - they let their TM lapse for a year or so,
right around the time the JDE... er...Jmode was born.

Eric speculatingly wildly Friedman



History list jde-interactive-make-arg-history is unbound

2001-06-25 Thread Eric D. Friedman

When I enable jde-project - Read Make Args or jde-project - Ant Read Args
or jde-project - Ant Read Target, I get errors like the one the subject
`History list jde-interactive-make-arg-history is unbound'

This is with Xemacs, solaris, jde 2.2.8beta1.

Any ideas?

Eric



Error wrong-type-argument char-or-string-p nil

2001-06-18 Thread Eric Chastan

I'am experiencing very often the error described below.

Is someone know how to correct it ?

Thanks in advance.
Eric.

Emacs  : GNU Emacs 20.5.1 (i386-redhat-linux-gnu, X toolkit)
 of Tue Feb 22 2000 on porky.devel.redhat.com
Package: JDE version 2.2.8 beta1
ecb-1.31
eieio-0.16
elib-1.0
semantic-1.4beta7
speedbar-0.13a

jde / ecb configuration:

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -

;;; JDE configuration

;; Set the debug option to enable a backtrace when a
;; problem occurs.
;;;(setq debug-on-error t)

;; Update the Emacs load-path to include the path to
;; the JDE and its require packages. This code assumes
;; that you have installed the packages in the emacs/site
;; subdirectory of your home directory.
;;(add-to-list 'load-path (expand-file-name
/usr/local/emacs/jde/lisp))
;;(add-to-list 'load-path (expand-file-name
/usr/local/emacs/semantic))
;;(add-to-list 'load-path (expand-file-name
/usr/local/emacs/speedbar))
;;(add-to-list 'load-path (expand-file-name /usr/local/emacs/eieio))
;;(add-to-list 'load-path (expand-file-name /usr/local/emacs/elib))
(add-to-list 'load-path /home/ech/.lisp/semantic)
(add-to-list 'load-path /home/ech/.lisp/speedbar)
(add-to-list 'load-path /home/ech/.lisp/eieio)
(add-to-list 'load-path /home/ech/.lisp/elib)
(add-to-list 'load-path /home/ech/.lisp/jde/lisp)

;; If you want Emacs to defer loading the JDE until you open a
;; Java file, edit the following line
(setq defer-loading-jde nil)
;; to read:
;;
;;  (setq defer-loading-jde t)
;;

(if defer-loading-jde
(progn
  (autoload 'jde-mode jde JDE mode. t)
  (setq auto-mode-alist
(append
 '((\\.java\\' . jde-mode))
 auto-mode-alist)))
  (require 'jde))

;; Sets the basic indentation for Java source files
;; to four spaces.
(defun my-jde-mode-hook ()
  (setq c-basic-offset 4)
  (c-set-offset 'substatement-open 0) ; this is the one you care about
   (c-set-offset 'defun-open 0) ; this is the one you care about
   (c-set-offset 'inline-open 0) ; this is the one you care about
  (c-set-offset 'statement-case-open 0)
  (c-set-offset 'case-label '+)
  (setq tab-width 4
  ;; make sure spaces are used instead of tabs
  indent-tabs-mode nil)
  (message my  jde-mode-hook function executed))

(add-hook 'jde-mode-hook 'my-jde-mode-hook)

;; 
;; ECB
(add-to-list 'load-path (expand-file-name /home/ech/.lisp/ecb))
(require 'ecb)
(custom-set-variables
 '(ecb-truncate-lines nil)
 '(ecb-layout-nr 0)
 '(ecb-other-window-jump-behavior (quote only-edit)))

;;-
;; to prevent the truncated line problem with jde and ecb
(setq truncate-partial-width-windows nil)

;;  bug in overlay -
;;(require 'overlay-fix)

;;  jde checker.
;;
(require 'jde-check)
(setq
 jde-check-option-allow-maxlinelen 160
 jde-check-option-allow-protected t
 jde-check-option-allow-noauthor t
)

Error description:
-

Signaling: (wrong-type-argument char-or-string-p nil)
  insert(nil)
  (let ((p ...)) (insert text) (put-text-property p (+ p ...) (quote
mouse-face) (quote highlight)) (if facer (if ... ... ...)))
  tree-buffer-insert-text(nil nil)
  tree-buffer-add-node([nil 2 nil nil [[Parents] 1 nil t [root 0
root t nil ... t] (#0 [#(List 0 4 ...) 2 List nil #1 nil nil]) t]
nil nil] 1)
  (while --dolist-temp--98233 (setq node (car --dolist-temp--98233))
(tree-buffer-add-node node (1+ depth)) (setq --dolist-temp--98233 (cdr
--dolist-temp--98233)))
  (let ((--dolist-temp--98233 ...) node) (while --dolist-temp--98233
(setq node ...) (tree-buffer-add-node node ...) (setq
--dolist-temp--98233 ...)) nil)
  (catch (quote --cl-block-nil--) (let (... node) (while
--dolist-temp--98233 ... ... ...) nil))
  (cl-block-wrapper (catch (quote --cl-block-nil--) (let ... ... nil)))
  (block nil (let (... node) (while --dolist-temp--98233 ... ... ...)
nil))
  (dolist (node (tree-node-get-children node)) (tree-buffer-add-node
node (1+ depth)))
  (if (tree-node-is-expanded node) (dolist (node ...)
(tree-buffer-add-node node ...)))
  tree-buffer-add-node([[Parents] 1 nil t [root 0 root t nil (#0
[[Variables] 1 nil nil #1 ... t] [#(SdRouteList () 0 11 ... 11 14
nil) 0 ... nil #1 nil nil] [#(add (Object) : boolean 0 3 ... 3 5 nil 5
11 ... 11 15 nil 15 22 ...) 0 ... nil #1 nil nil] [#(add (int, Object)
: void 0 3 ... 3 5 nil 5 8 ... 8 10 nil 10 16 ... 16 20 nil 20 24 ...)
0 ... nil #1 nil nil] [#(addAll (Collection) : boolean 0 6 ... 6 8 nil
8 18 ... 18 22 nil 22 29 ...) 0 ... nil #1 nil nil] [#(addAll (int,
Collection) : boolean 0 6 ... 6 8 nil 8 11 ... 11 13 nil 13 23 ... 23
27 nil 27 34 ...) 0 ... nil #1 nil nil] [#(clear () : void 0 5 ... 5
11 nil 11 15 ...) 0 ... nil #1 nil nil] [#(contains (Object) : boolean
0 8 ... 8 10 nil 10 16 ... 16 20 nil 20 27 ...) 0 ... nil #1 nil nil]
[#(containsAll (Collection) : boolean 0 11 ... 11 13 nil 13 23

Re: JDEbug problem, cannot debug

2001-04-23 Thread eric


Two suggestions:

1) Your report included this line:

JDE -1 1 launch 1 -vmexec java -classpath ~/Development/source/  rj.pipeline.Pipeline

It seems odd to me that your compiled classes live in a directory called
source - is that correct?

2) Try installing the jdk 1.3.1 release candidate 1 (developer.java.sun.com)
and see if your results are any different.

Eric

In message [EMAIL PROTECTED], [EMAIL PROTECTED] wr
ites:
: Ok, 2nd try ;)
: 
: Hi there,
: System :
: - Suse 7.0 Linux
: - Emacs 20.7.1
: - JDE 2.2.6 / semantic-1.3.3 / speedbar-0.13a
: - java version 1.3.0
:   Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
:   Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-2623 (JIT    enabled: 
jitc))
: - prj.el is attached
: 
: Problem :
: First I set a breakpoint in the ctor of my main class. Then I start the Debug
er (JDEbug-Processes-Start Debuger) and finally start to debug (JDE-Debug A
pp) I get the following situation 
: 
: *** Debugger Output for Process rj.pipeline.Pipeline(17) ***
: 
: vm started...
: All threads suspended...
: Launch command line:
:   java -classpath ~/Development/source/  rj.pipeline.Pipeline  
: 
: Emacs connected to standard IO port 2351 for process rj.pipeline.Pipeline.
: Launched VM Java Debug Interface (Reference Implementation) version 1.3 
: Java Debug Wire Protocol (Reference Implementation) version 1.0
: JVM Debug Interface version 1.0
: JVM version 1.3.0 (Classic VM, J2RE 1.3.0 IBM build cx130-2623 (JIT disab
led))
: initSIOConnect: starting standard I/O handshake.
: initSIOConnect: starting SIO connect thread.
: Debugger waiting for Emacs to connect to app SIO port 2351.
: Setting breakpoint at line 89 in Pipeline.java.
: Debugger connected to standard I/O socket.
: Running rj.pipeline.Pipeline.
: Closed transport for application's standard output.
: rj.pipeline.Pipeline process ended.
: vm disconnected...
: 
: /---
: 
: *JDEbug* buffer
: cd /home/rjocham/Development/source/rj/pipeline/
: java -classpath /home/rjocham/emacs/lisp/jde-2.2.6/java/lib/jde.jar:/usr/lib/
java/lib/tools.jar jde.debugger.Main
: 
: 
: (jde-dbo-init-debug-session)
: 
: JDE -1 1 launch 1 -vmexec java -classpath ~/Development/source/  rj.pipeline
.Pipeline  
: 
: 
: (jde-dbo-message
: 1 Launched VM Java Debug Interface (Reference Implementation) version 1.3 
: Java Debug Wire Protocol (Reference Implementation) version 1.0
: JVM Debug Interface version 1.0
: JVM version 1.3.0 (Classic VM, J2RE 1.3.0 IBM build cx130-2623 (JIT disab
led)))
: 
: 
: (jde-dbo-message 1 initSIOConnect: starting standard I/O handshake.)
: 
: 
: (jde-dbo-message 1 initSIOConnect: starting SIO connect thread.)
: 
: 
: (jde-dbo-message
: 1 Debugger waiting for Emacs to connect to app SIO port 1137.)
: 
: 
: (jde-dbo-command-result 1 1137)
: 
: 
: (jde-dbo-event-set
: 1 all
: (list Thread 1 main waiting suspended by debugger
: (list)
: (list)
: nil)
: (list 'jde-dbo-vm-start-event))
: 
: JDE 1 2 run
: 
: 
: (jde-dbo-message 1 Debugger connected to standard I/O socket.)
: 
: 
: (jde-dbo-message 1 Closed transport for application's standard output.)
: 
: 
: (jde-dbo-message 1 Closed transport for application's standard error output.
)
: 
: 
: (jde-dbo-event-set 1 none nil
: (list 'jde-dbo-vm-death-event))
: 
: 
: (jde-dbo-event-set 1 none nil
: (list 'jde-dbo-vm-disconnected-event))
: 
: 
: (jde-dbo-command-result 2)
: 
: 
: I cannot see any error message in this text, so I am wondering why I cannot d
ebug. 
: 
: TIA
: Ralph 
: __
: Get your own FREE, personal Netscape Webmail account today at http://webmail.
netscape.com/
: 



Re: more on testing JDEbug

2001-04-22 Thread eric


In message [EMAIL PROTECTED], "Eric D. Friedman" w
rites:
: 
: Using FSF emacs (will try xemacs shortly) and 2.2.7b10, I was able to
: debug the test code I wote about earlier.

OK, I tried xemacs and it does *not* work.  Using top, sorted by
CPU usage, I see several java processes (which represent threads on
linux), all of which are inactive.  Is it possible there's a thread
synchronization issue?

I'm doing this in a `vanilla' setup.  That is, 
`xemacs -q -l just-enough-lisp-to-load-jde-beta.el path/to/my/test/Main.java'

Eric



Re: more on testing JDEbug

2001-04-22 Thread eric


Now I upgraded to jdk 1.3.1 RC-1 and my test case works with xemacs.
The release notes for jdk 1.3.1 say that there were problems with
the JPDA in 1.3 + hotspot, and I know that Optimizeit didn't work with
hotspot VMs before 1.3.1, so perhaps JDEbug is a victim of the same bugs?
At any rate, I can now debug in both emacsen.  Hooray for me! smile

Xemacs has the same problem as FSF emacs when it comes to watching
for access: the debugger doesn't understand a command argument `-sp.'

Eric

In message [EMAIL PROTECTED], eric writes:
: 
: In message [EMAIL PROTECTED], "Eric D. Friedman"
 w
: rites:
: : 
: : Using FSF emacs (will try xemacs shortly) and 2.2.7b10, I was able to
: : debug the test code I wote about earlier.
: 
: OK, I tried xemacs and it does *not* work.  Using top, sorted by
: CPU usage, I see several java processes (which represent threads on
: linux), all of which are inactive.  Is it possible there's a thread
: synchronization issue?
: 
: I'm doing this in a `vanilla' setup.  That is, 
: `xemacs -q -l just-enough-lisp-to-load-jde-beta.el path/to/my/test/Main.java'
: 
: Eric
: 



Re: more on testing JDEbug

2001-04-22 Thread eric


In message [EMAIL PROTECTED], Paul Kinnucan write
s:

: Eric, I am a little confused. Are you saying that my thread priority "fix"
: in beta10 is an improvement? If so, that is very interesting. I believer
: there other debugger threads that JDEbug sets to max priority (actually
: MAX_PRIORITY-1). I've never understood why the code, which was written by a
: Sun summer intern, was setting the priority of these threads. However,
: since the intern was working as a member of the JPDA team, I assumed he had
: access to inside information so I was reluctant to touch his code in this
: area. Recently, however, I have been reading Holub's "Taming Java Threads"
: and found his discussion of how thread scheduling differs drastically from
: platform to platform enlightening and horrifying. Holub's advice is
: basically just not to monkey with thread prioirty since you can't set
: priorities in a platform-independent way. So I'm inclined to comment out
: all the set-priority calls in the JDEbug code.

Yes, the beta10 fix yielded a working debugger in both emacsen.  There
were no changes to code or to the number of ambient processes between
the upgrade, and I repeated the exercise with a downgrade (didn't work)
and a re-upgrade (worked).  But also keep in mind the importance of
upgrading the VM itself from 1.3 = 1.3.1.

In my experience Holub is exactly right.  In VMs (linux) that implement
threading as processes, the scheduler in the kernel has an opportunity
(indeed, an obligation) to control "threads" in a way that just doesn't
happen when threading is implemented within a single process.

I was curious, so I wrote a little priority test in which I start two
threads, one with MAX_PRIORITY and the other with MIN_PRIORITY.
Each thread has an instance of a Runnable whose run method looks like
this:

long runcount = 0L;

public void run() {
  try {
while (true) {
  System.out.println(Thread.currentThread().toString() + ":" +
 runcount++);
} // end of while (true)
  } catch (Exception e) {
e.printStackTrace();
  } // end of try-catch
}

Since these runnables are just competing for CPU time (and System.out, of
course), you'd expect the one that belongs to the Thread with MAX_PRIORITY
to eventually end up with a much higher runcount.

Curiously, my results are exactly the opposite: if left to run ~10,000
times, the MIN_PRIORITY thread ends up about 1,000 iterations ahead.
I ran the test a few times, for different durations, and MIN_PRIORITY
always got more cycles.

I conclude from this (completely unscientific) test that you and Holub
are exactly right - setting thread priorities isn't worth the trouble,
because of the inherent OS dependencies in scheduling.

As to trusting the inside information of Sun's summer intern - well
The JDK has quite a few classes that were probably written by well
meaning, but poorly mentored summer interns.  The Observable/Observer
classes are a disaster because of the requirement that you sublass
Observable to use them (observable should've been an interface and Sun
should've provided an "observable support" class to which implementors
could delegate, a la property change support).  java.text.BreakIterator
is terrible because it cannot be extended to introduce more intelligent
segmentation rules, which is why IBM had to rewrite it.  Making Stack
a subclass of Vector is pretty awful too, since you end up with a data
structure that can be altered in all kinds of un-stack-like ways if
people aren't paying attention.

At any rate, it's very easy to criticize someone else with the benefit
of 20/20 hindsight (and it's fun too, as Homer Simpson once said, ha ha),
but suffice it to say that I'm not exactly shocked that a javasoft insider
would flub some multithreading code - it's still darn hard to get right,
even if you're spending a summer in the Silly Valley.

Eric




Re: more on testing JDEbug

2001-04-22 Thread eric


In message [EMAIL PROTECTED], eric writes:
: 
: Yes, the beta10 fix yielded a working debugger in both emacsen.  There
: were no changes to code or to the number of ambient processes between
: the upgrade, and I repeated the exercise with a downgrade (didn't work)
: and a re-upgrade (worked).  But also keep in mind the importance of
: upgrading the VM itself from 1.3 = 1.3.1.

Correction - I retraced my steps and realized that I hadn't tested
beta9 with VM 1.3.1 and xemacs.  I have done so and it *does* work,
so it would seem that the real problem is in VM 1.3.0, which is known
to have JPDA issues.

To summarize

   beta9beta10
---
FSF/1.3GOOD*BAD*
Xemacs/1.3 BAD* BAD*
FSF/1.3.1  GOOD GOOD
Xemacs/1.3.1   GOOD GOOD

* results were seemingly random - sometimes it works, sometimes it doesn't.
In these cases the GOOD/BAD indicator show what happened most of the time.

Apologies for the confusion,
Eric "obviously not a QA whiz on TV or anywhere else"



Re: PROPOSAL: New Java Build Feature (LONG)

2001-03-21 Thread eric


I stand corrected - the depend task works exactly as Mark says it does.

Mark, thanks for bringing this to my attention.

Eric

In message [EMAIL PROTECTED], M
ark Bucciarelli writes:
: Actually, Ant does handle the dependency example you present below.
: 
: Use the optional depend task.  The following build.xml will recompile both
: A.java and B.java in your step 4 below.
: 
: project name="tmp" default="all" basedir="."
:   property name="build" value="./build/" /
:   target name="all" 
: mkdir dir="${build}" /
: depend srcdir="${basedir}"
:   destdir="${build}"
:   cache="depcache"/
: javac srcdir="${basedir}"
:   depend="on"
:   includes="A.java, B.java"
:   destdir="${build}"
:   classpath=".;${build}"
:   debug="on"
:   /
:   /target
: /project
: 
: If you're interested in reading the docs, I've included the text from the
: Ant manual for the depend task.  Thanks for bringing this to my attention--I
: had indeed missed it.
: 
: Depend
: A task to manage Java class file dependencies. 
: Description
: The depend task works by determining which classes are out of date with
: respect to their source and then removing the class files of any other
: classes which depend on the out-of-date classes. 
: 
: To determine the class dependencies, the depend task analyses the class
: files of all class files passed to it. Depend does not parse your source
: code in any way but relies upon the class references encoded into the class
: files by the compiler. This is generally faster than parsing the Java
: source.
: 
: To learn more about how this information is obtained from the class files,
: please refer to the Java Virtual Machine Specification 
: 
: Since a class' dependencies only change when the class itself changes, the
: depend task is able to cache dependency information. Only those class files
: which have changed will have their dependency information re-analysed. Note
: that if you change a class' dependencies by changing the source, it will be
: recompiled anyway. You can examine the dependency files created to
: understand the dependencies of your classes. Please do not rely, however, on
: the format of the information, as it may change in a later release. 
: 
: Once depend discovers all of the class dependencies, it "inverts" this
: relation to determine, for each class, which other classes are dependent
: upon it. This "affects" list is used to discover which classes are
: invalidated by the out of date class. The class files of the invalidated
: classes are removed, triggering the compilation of the affected classes. 
: 
: The depend task supports an attribute, "closure" which controls whether
: depend will only consider direct class-class relationships or whether it
: will also consider transitive, indirect relationships. For example, say
: there are three classes, A, which depends on B, which in-turn depend on C.
: Now say that class C is out of date. Without closure, only class B would be
: removed by depend. With closure set, class A would also be removed. Normally
: direct relationships are sufficient - it is unusual for a class to depend on
: another without having a direct relationship. With closure set, you will
: notice that depend typically removes far more class files. 
: 
: Performance
: The performance of the depend task is dependent on a number of factors such
: as class relationship complexity and how many class files are out of date.
: The following tests have been run when build Ant itself, on the author's
: machine using JDK1.3 
: 
: Building Ant from clean using Javac 11 seconds 
: Building Ant from clean using Jikes 5 seconds 
: Running depend when up-to-date and no cache 4 seconds (Depend takes 2
: seconds) 
: Running depend when up-to-date and with a cache 2 seconds (Depend takes 1
: seconds) 
: 
: This involves compiling 177 files. The above figures are indicative only.
: The decision about whether it is cheaper to just recompile all classes or to
: use the depend task will depend on the size of your project and how
: interrelated your classes are. 
: 
: Limitations
: There are some dependencies which depend will not detect. 
: 
: If the Java compiler optimizes away a class relationship, there can be a
: source dependency without a class dependency. 
: Non public classes cause two problems. Firstly depend cannot relate the
: class file to a source file. In the future this may be addressed using the
: source file attribute in the classfile. Secondly, neither depend nor the
: compiler tasks can detect when a non public class is missing. Inner classes
: are handled by the depend task. 
: Parameters
: Attribute Description Required 
: srcDir This is the directory where the source exists. depend will examine
: this to determine

Re: PROPOSAL: New Java Build Feature

2001-03-20 Thread eric


In message [EMAIL PROTECTED]
m, "Denis, Ronald J (Ronald)** CTR **" writes:
: I too use ant for my builds.  It does not compile 
: every file every time.  However, admittedly there have 
: been times when compile errors occur which only go away 
: upon a full rebuild.  This doesn't happen often but does 
: happen often enough that its annoying.

It's quite clear why and when this happens.  Ant does an "up to date"
check on the source files you hand to its "javac" task (which could also
be handled by jikes) and passes the compiler a list of .java files that
are older than their corresponding .class files.  This is why Ant will
always rebuild classes that are not organized in a directory structure
that mirrors the package hierarchy.

It's also why Ant cannot handle the following case unless you do a full,
clean build:

1. write the following classes
class A {
  void foo() { }
}

class B extends A {
  void bar() { foo(); }
}

2. build and run: everything is fine.

3. now change A as follows:

class A {
  void foo(int i) { }
}

4. build with Ant and only A gets rebuilt (as it is the only out-of-date
source file)

5. run and you will get a java.lang.NoSuchMethodError

Conclusions:

Ant is not the panacea that some, charmingly (alarmingly?) naive users
claim that it is.  It has a couple of advantages over make: 

1. it does not fire up multiple VMs to do a build;
2. it is hard to write non-portable build files (with make the inverse is true);
3. it does not require much from users - no shell, sed, awk wizardry required;

With that said, Ant does not offer any fundamental advantage over make in
terms of dependency analysis.  Using timestamps to recompile class files
is simply not enough in java, as the example above makes clear.

Eric



Re: AW: filling javadoc comments

2001-03-02 Thread eric


: Do you think it would be a good idea for the JDE
: to require filladapt and set it up to do filling
: correctly on Javadoc comments?

Yes, please!

Eric

: 
: - Paul
: 
: 
: At 01:01 PM 3/2/2001 +0100, you wrote:
:  take a look at filladapt-mode
:  http://cc-mode.sourceforge.net/filladapt.php
: 
: Yes and then you must ajust the option filladapt-token-table:
: Call "M-x customize-option RET filladapt-token-table RET" and then
: add the following elements (but do not add this at the end but add it
: before the last to items already defined; for this simply press the
: related [INS]-button)
: 
: After your changes the customize buffer should look like:
: 
: ...
: [INS] [DEL] List:
: Regexp: @param[  ]
: Symbol: bullet
: [INS] [DEL] List:
: Regexp: @return[ ]
: Symbol: bullet
: [INS] [DEL] List:
: Regexp: @see[]
: Symbol: bullet
: [INS] [DEL] List:
: Regexp: @exception[  ]
: Symbol: bullet
: [INS] [DEL] List:
: Regexp: []+
: Symbol: space
: [INS] [DEL] List:
: Regexp: $
: Symbol: end-of-line
: [INS]
:[State]: this option has been set and saved.
: 
: Please note the last two elements are already there as default value of this
: option. Please note also that [  ] is a space and a tab between brackets
.
: 
: Then [Save for Future Sessions] and you will get well filled Javadocs!
: 
: Hope this helps,
: Klaus
: 
: 
: 
: 
: 
: 
: 
: 
:  -Original Message-
:  From:  Martin Monsorno [SMTP:[EMAIL PROTECTED]]
:  Sent:  Friday, March 02, 2001 11:57 AM
:  To:jde mailing list
:  Subject:   filling javadoc comments
:  
:  I often use M-q inside of javadoc-comments to automatically break
:  long lines. The problem is: when I have this:
:  @param id an id
:  @return something useful
:  the result is:
:  @param id an id @return something useful
:  
:  Does anybody know how to prevent emacs from filling lines with tags?
:  
:  -- 
:  Martin Monsorno
:  mailto:[EMAIL PROTECTED]
: 



JDEbug on solaris

2001-02-26 Thread Eric D. Friedman


Is anyone able to use JDEbug on solaris/xemacs?  This is with 
jde 2.2.6.2

I've followed the instructions for setting up JDEbug and am using
the 1.3.1 beta VM, which is supposed to have fixed the problems with
debugging in hotspot VMs (solaris does not have a "classic" vm).

I coded up a simple class that has a main method that creates a single
instance and invokes a single member method:

String foo(String foo) {
  foo += "y";  // breakpoint set here
  foo += "z";
  return foo;
}

I start up the debugger and do a JDEbug-Processes-Launch Process.
The app starts, but there's no indication that my breakpoint has been
hit (nothing shows up in the Locals buffer, though `foo' is definitely
a local with a value at this point.  

JDEbug-Continue runs the app to completion without hitting my breakpoint.
If I set two breakpoints, the same thing happens, so I'm pretty sure
that it's not a problem of the display not being updated to the breakpoint.

The debugger output follows.

Thanks,
Eric

*** Debugger Output for Process FooBar(5) ***

vm started...
All threads suspended...
Launch command line:
  java -classpath 
/home/eric/classes/xerces.jar:/home/eric/prj/ETJavaFoundation/classes:/home/eric  
FooBar  

Emacs connected to standard IO port 33819 for process FooBar.
Launched VM Java Debug Interface (Reference Implementation) version 1.3 
Java Debug Wire Protocol (Reference Implementation) version 1.0
JVM Debug Interface version 1.0
JVM version 1.3.1-beta (Java HotSpot(TM) Client VM, interpreted mode)
initSIOConnect: starting standard I/O handshake.
initSIOConnect: starting SIO connect thread.
Debugger waiting for Emacs to connect to app SIO port 33819.
Debugger connected to standard I/O socket.
Running FooBar.
FooBar process ended.
vm disconnected...