Re: xmls 0.2 released
Sven Van Caekenberghe <[email protected]>
| Newsgroups | gmane.lisp.clump |
|---|---|
| Message-ID | <[email protected]> |
On Thursday, June 12, 2003, at 10:34 PM, Miles Egan wrote: > I wonder if we could somehow pool our efforts? The free lisp world > probably doesn't need two lightweight xml parsers. I like your > event/dom api better than my everything-in-ram approach. I do need > namespace and cdata support to do soap or beep, though. Although I certainly don't want competing implementations, I don't see why there couldn't be multiple open source CL XML parsers - the more the better (how many C or Java XML parsers would there be ? - and Lisp is that much more easier and fun to write a parser in - in fact every programmer should try it ;-). No seriously, I think that my implementation is too different from yours to really merge them. My hard coded parser is uglier than your approach. Mine is missing namespaces and cdata. Since we're both Open Source, there can be cross-fertilization. These discussions and comparisons are already just that. In a first version, I did a DOM directly. Converting this to the elegant functional event interface was actually easy. The hard part was understanding the SSAX ideas. BTW, I believe Franz's parser is Open Source, there is CL-XML I believe, and SSAX (written in Scheme) seems very complete as well (including validation) - a port of SSAX to CL could be the 'complete' solution. Another problem with a pro XML parser is the need for Unicode support, no ? > I've noticed you're using the same xml tag as keyword approach that > Franz' parser uses. I like this approach overall. Does it create any > gc issues? If a long-running parser parses a wide variety of documents > with different tags will it eventually exhaust memory with all the new > keyword symbols? The ultimate solution would be to make this a selectable option ;-) Symbols are faster and more efficient all the way. And doesn't an unbound, unused symbol get GC-ed ? I think the symbol table implementation should use weak references. Sven