Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: Project Model Improvements Re: [cdt-dev] CDT Summit Report

The .settings folder stores the Project scoped Preferences. It probably is the best place to store stuff, but they are only property files. But then nothing stops you from storing XML in a property value. I imagine you can store things other than the Preferences there but that would only make sense if it buys us something (like not locking during workspace operations).
 
Doug.


From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Mike Kucera
Sent: Wednesday, October 01, 2008 12:18 PM
To: CDT General developers list.
Subject: RE: Project Model Improvements Re: [cdt-dev] CDT Summit Report

>> With SAX you still have the problem that every time you want
>> to write your description you must serialize the entire
>> object tree, don't you?


Keep in mind that we don't have to store everything in a single file. For example JDT keeps a .settings directory that contains several files. We can have separate files that each store a subset of the data, and only write out the appropriate file when something changes.

Also the files don't all have to be XML, we can use properties files for simpler data.


Mike Kucera
Software Developer
IBM Eclipse CDT Team
mkucera@xxxxxxxxxx

Inactive hide details for "Schaefer, Doug" ---10/01/2008 11:40:57 AM---> -----Original Message-----"Schaefer, Doug" ---10/01/2008 11:40:57 AM---> -----Original Message-----


From:

"Schaefer, Doug" <Doug.Schaefer@xxxxxxxxxxxxx>

To:

"CDT General developers list." <cdt-dev@xxxxxxxxxxx>

Date:

10/01/2008 11:40 AM

Subject:

RE: Project Model Improvements Re: [cdt-dev] CDT Summit Report




> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx
> [
mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of James Blackburn
> Sent: Wednesday, October 01, 2008 11:23 AM
> To: CDT General developers list.
> Subject: Re: Project Model Improvements Re: [cdt-dev] CDT
> Summit Report
>
> Hi Doug,
>
> The 3MB I have is almost entirely -I and -D settings (and
> I've aggregated as much up the tree as I can).  Part of the
> problem is that when you override macros and includes on a
> child resource by creating a custom resource description, the
> parent settings are copied into the child wholesale.  This is
> clearly inefficient (and means that adding a -D on the
> project doesn't add it on the C files with custom resource
> descriptions...) and could be fixed.

Yes, this is exactly the kind of thing that I'm talking about that needs
to be fixed.

> With SAX you still have the problem that every time you want
> to write your description you must serialize the entire
> object tree, don't you?

SAX doesn't have an XML write mode. You have to do that yourself. So
when you do that, you have full control over what gets written. You
could be smart about it and for attributes and elements that can be
derived, don't write them. You just need to make sure the derivation
works when needed.

>  Even if duplication and clutter is reduced, it's not long
> before a project 10x the size of one that cdt developers
> regularly work with (perhaps firefox or a kernel) cause the
> same problems to appear again.
>  I just can't help but feeling that an insert / update to an
> embedded db will scale better than SAX?

I've played with Derby, for example. The minimum size of the db is 1 MB.
And it's slow. And it's hard to work with. No, XML is a good storage
format and we have lots of tools and examples on how to do it right.

> Of course I'm happy to be proven wrong and happy to chip in
> if anyone else is intending to work on the current project
> model in the very near future? Otherwise I'm tempted to take
> a punt on sqlite and see where it gets me too...

Which brings up the earlier point. How are we going to resource this
effort. I can start some of this off, but I'm going to need help from
the community to finish it.

In particular, I'll be working on extending the CModel to model the
build information we need for client tools such as indexing, debug, and
the IncrementalBuilder. (This was the original hope I had for the
project model, i.e. to actually make it part of the project model we
already have). And I'd like to put effort into enabling alternative
build systems to be easily added to the CDT and to separate out standard
from managed again.

We also need help with the Scanner Discover rearchitecture as I
mentioned earlier on the list. And we need to take a look at how to
improve the managed build situation, of which this persistance and
scalability problem is a part, but which could also include making sure
tool vendors can write their build definitions in Java to make it more
flexible.

Doug.
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev



Back to the top