----- Original Message ----- From: "Eric Wilhelm" <ewilhelm@xxxxxxxxxxxxx> To: <cad-linux-dev@xxxxxxxxxxxxx> Sent: Tuesday, June 08, 2004 6:01 AM Subject: [cad-linux-dev] Re: uber-converter > # The following was supposedly scribed by > # cr88192 > # on Sunday 06 June 2004 09:19 pm: > > >> Transparency is the primary goal of the textual format, and I don't think > >>XML really gives that. > > > >I believe it is flexibility... > >for me flexibility implies the ability to tack on new features as needed > >without breaking anything... > > Well, I'd call that extensibility. A setup might be flexible within a given > boundary, but if it can't go beyond that, then it isn't extensible. > understood. I like things to be heavily extensible then (even if the extension mechanism can make things look really crufty). > >I am thinking yaml might be a bit overly structured, and this might > >interfere with the ability to easily tack things on... > > > >I believe the core should be minimalistic and extensible, the rest should be > >extensions... > > An extension to data? The idea behind the hub-spoke model is that each format > which is available on a spoke is fully representable by the core. Without > that, we can't have a core. > I believe the core should be minimalistic and extensible (itself sort of a hub for new features). if all the core features are defined up front and no real extension mechanism is provided, then one will run into problems once there is something missing. of course, a lot could be defined in the core, which could at least avoid things looking too crufty. > Note that I'm not talking about a geometry engine or anything of the sort. > Simply a core data format which can represent the union of all of the other > formats. > understood. I believe the best way to allow "a union of all other formats" is to allow a strong extensibility mechanism, so if anything is missing it can be added... > Also, remember that if XML is not suitable for the core, that doesn't mean > that you can't use the thing to make xml files. It just means that the XML > part needs to be a spoke rather than the hub. > maybe... I don't think xml would be too big of a problem though (the main issue would likely be breaking things up so that it is tolerably fast, but not so that it is wasting craploads of hd space due to fs overhead...). I had before spec'ed out some ideas for "random access archives", sadly I have just never gotten to implementing them. the idea I had considered was basically about like fat+compression (eg: deflate)+end packing. other features could be useful as well. an issue I had wondered about was how to handle compression, basically if I should compress enough data to fill a certain buffer (possibly problematic) or if I should compress blocks of data and grab enough archive blocks to hold the compressed block (eg: the file is compressed in 16 or 64 kB chunks), with the end being padded. this could be problematic as it would be waseful of space due to internal fragmentation, and wouldn't be succeptible to end packing. yet another approach could be to treat the file space sort of like a mm heap, using either a bitmap or a "chunk chain" to locate free space (or maybe a run-list, which is more common to file formats, and also makes "repacking" fairly easy). yet another approach is not to "really" allow random io on files, but instead to fake it occasionally writing out the file in single bursts. this could help in choosing whether to store or compress files. if the whole file is written at once then best compression could be achieved, at the cost that it would be a little more difficult to fake random io (or at least not without using a lot of memory in the case of larger files...). even with no compression, however, just the fact that I am using 512 byte blocks will win over the host fs (fat32 in my case), in that I wont be using, eg, 4kB blocks... hmm, I don't know. as of yet I have just been using os files though... all for now.