On 2007-09-28, at 20:43 EDT, Henry Minsky wrote:
* Does this mean we don't ever need to build the dtd again -- and we
can finally get rid of the need for python anywhere in our build
process?
We need to generate the DTD some other way, but I think we
have all the information needed "in-core" in the in the compiler,
now that
it has this simple model of which tags can be allowed as children
of other
tags, so I think
I can hack up something pretty easily which will walk that and
generate a
DTD.
This would actually be a gigantic improvement, as we have not
generated a correct DTD since the 2.x era. Oliver somehow generated
a DTD that included the components and we lost the recipe for that.
It would be fantastic if you could address that issue as a part of
this. See:
http://jira.openlaszlo.org/jira/browse/LPP-3179
http://jira.openlaszlo.org/jira/browse/LPP-2300
We should also respect/enforce a dtd/namespace declaration, e.g., if
an LZX app declares that it uses the 3.x dtd, we should refuse to
compile it in 4.x, so the developer knows they have some work to do
to update their app. Currently, we just default to whatever the
compiler believes the dtd to be.
* How does this affect the doc process? We will have to work this one
through in person, I imagine.
Yeah, I have only a vague concept of how the doc tools process the
lzx.rnc
file now (or do they process the lzx.rng file?). So we'll have to
have a
pow-wow about that. I carefully copied all the comments from the
lzx.rncfile over to the new
lfc.lzx file, so we can hopefully extract them in some analogous
manner to
what is being done now.
A simple fix here is to simply provide an empty .rng file. The right
fix is to excise the part of the tool that tries to grovel the .rng
file and merge it with the rest of the documentation. This should be
a huge improvement, as the .rng file could not convey inheritance --
the doc tools have to infer inheritance in the .rng file using a
really kludgey heuristic.