[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: PCB suggestion
On Sat, Jan 08, 2005 at 08:19:06AM -0800, Daniel J Wisehart wrote:
> On Friday 07 January 2005 09:44, Evan Lavelle wrote:
> >
> > Maybe I'm being thick here, but what exactly would the advantages of an
> > XML file format be?
>
> The main point is that XML is self-describing for people reading the file,
> which makes backward and forward compatibility trivial compared to what we
> have now.
>
> If you look at the documentation for some PCB feature, it will say there are
> four arguments, but the the output file will have six arguments. You don't
> know what the last two are, so you set them to zero when you add to the file,
> but that causes PCB to crash.
>
> How do you write your own scripts to modify the file when you do not know what
> new fields mean? How do you submit changes to the source when you do not
> know what fields you have to protect for older versions of the program?
The problem with documenting PCB's file format is the following:
- the file format has evolved over the years because more information
needed to be stored.
- to not leave people with old designs in trouble, each newer version
of PCB has been able to read all old formats.
- there are old footprints using various older versions around. These
aren't all simple to "just update to the new format" because they're
generated by various m4 macros and a seemingly small change needs to be
well tested because it can affect many footprints.
So now, what do you put in the manual? You can put the latest and greatest
format, but that will not clearly document many footprints and .pcb design
files you may find. You can document the older ones, but in the end a
complete documentation is really no easier to read than the parse_y.y file.
And now you have 2 places to keep things in sync. This is really what
has stopped me from stepping up and "fixing" the manual because its
simple not clear what the definition of "fixed" is.
This problem will probably exist in whatever sort of new file format
one may come up with. In other words, great go to xml or whatever.
If you don't figure out, up front, _everything_ which may go into
the file, you'll eventually end up with things out of sync again.
-Dan
--