Thread: [Lxr-developer] LXR transition news
Brought to you by:
ajlittoz
|
From: Malcolm B. <ma...@br...> - 2001-05-21 04:59:17
|
Hi all, I see from the subscription list that several people have moved over from the old LXR list to this new list and I have to say I'm heartened :-) The new setup is coming along nicely. The CVS tree has been sent over to Sourceforge, and hopefully the admins there will have it up within a day or two. I've made an interim release 0.7 of the current lxr code base so that there is a visible place for people to get this new lxr. We also have some more project developers/admins, currently Per Kristian and Peder have joined the new project, bring with them much needed expertise on the lxr code! I thought I'd outline some of the things I want to be working on over the next few months (other than the transition of course). The first one of these is to improve the interface of lxr to the exuberant ctags (ectags) program. This is used to find the indentifiers in the source code. Currently there are several problems with the interface: 1) lxr doesn't work properly with ectags 5.0, the latest release last time I looked 2) Because C++ & Java are essentially supported by C.pm, the tagging is wrong sometimes (e.g. C++ reserved words are indexed) 3) lxr can't make use of all the other languages that ectags supports easily My plan for fixing this goes something like this: First, create a new tagger class called ectags which is a generic interface to ectags - ie it will correctly index any file that ectags can parse. Specifically, this would implement indexfile(). Create a "meta-language" class that derives from ectags and is driven by data file for each language we wish to support. This would implement referencefile(). Specifically, the SimpleParse spec and reserved words should be taken from a data file for each language. Then basic support for any language can be provided by the metalang class once some simple configuration data has been provided. If specific languages have more complex needs then of course new lang subclasses can still be defined and used as before. Finally, replace the hardwired pathname <-> lang subclass mapping in Lang.pm with a data file, so that no code has to be changed either to decide which files are what type (ie recognise .c++ as C++ or .j as Java) or to change which class is used to index which type. So then the adding of basic support for languages supported by ectags will consist of writing a few regexps in a data file (which if we're really cunning we can extract from ectags itself - serious bonus points for this!). So that's one part. What other things do I want to see improved? 1) The mysql db backend. At the moment the indexes and queries on mysql are not optimal when generating the browsing output. Expect patches soon :-) 2) I have heard reports that the postgresql backend is broken - this needs fixing 3) I've implemented locally the ability to suppress reference display when doing an indent query - this makes it *much* faster for the common case of looking for the definition of something, since generating the references for a common identifier can take 90+seconds on my database. This may be worth putting in. 4) On a more bluesky note, I'd like to improve the browsing interface generally by making better use of CSS and HTML 4.0 to support more configurable fontification and perhaps mouse/sidebar interaction. Integrating this with mozilla's XUL/RDF support could result in a killer source browser. 5) And finally, I want to try to understand the demonic perl that generates the templates for browsing :-) So I guess these are my initial thoughts on directions to go in and what I'm likely to be working on in the coming months, and some of the directions I'd like to take the project. If anyone else has things they'd like to see or hack on, then it would be good to hear about it on this list. Cheers, Malcolm |
|
From: Neil S. <ns...@ci...> - 2001-05-22 12:19:37
|
Hi Malcom, Thanks for the reponse. > There are no plans to continue with this. The new codebase makes > extensive use of relational dbs to speed up the browsing. It's pretty > simple to set up either MySQL or Postgres, so it shouldn't be a big > deterant. Fair enough :) > Of course, if you wanted to contribute a dbm backend then I'd be happy > to add it to the project :-) I'm afraid I don't even have time to properly contribute to the main project I help out on just now :( - also on sourceforge. But I hope to use LXR for something at work, so it may well get tested. > P.S. In future, can you followup to the list, so others can see the > discussion? No problem, I just hit reply assuming it would do this. It was only after I'd sent the message that I noticed that it didn't. I think I've seen this happen before. I think there's an option on sourceforge to allow you to set things up so that replying to a message from the list will, by default, go to the list. Cheers, Neil. P.S. I like your domain name, do you live in Newcastle by any chance? ----- Original Message ----- From: "Malcolm Box" <ma...@br...> To: "Neil Salter" <ns...@ci...> Sent: Tuesday, May 22, 2001 12:59 PM Subject: Re: [Lxr-developer] LXR transition news > Hi Neil, > > Neil Salter wrote: > > > > Just a thought... the LXR I currently have (0.3) does not require MySQL or > > any other DB. It uses dbm files. This makes it relatively simple to set up, > > i.e. download LXR, tweak one or two things, and go. Are there any plans to > > continue this facility, or will LXR users need to put in place a DB? > > There are no plans to continue with this. The new codebase makes > extensive use of relational dbs to speed up the browsing. It's pretty > simple to set up either MySQL or Postgres, so it shouldn't be a big > deterant. > > Of course, if you wanted to contribute a dbm backend then I'd be happy > to add it to the project :-) > > Cheers, > > Malcolm > > P.S. In future, can you followup to the list, so others can see the > discussion? |
|
From: Malcolm B. <ma...@br...> - 2001-05-23 13:25:59
|
Neil Salter wrote: <snip re Dbm backend> > Malcolm Box wrote: >>Of course, if you wanted to contribute a dbm backend then I'd be happy >>to add it to the project :-) >> Shows what I know about the code! I've just been poking through the CVS files, and it appears that there is already a dbm backend called DB.pm in lib/LXR/Index/DB.pm However, I haven't tested this - does anyone else out there use it or know if it works? Cheers, Malcolm |