XML Literate Documentation - Changes |
1.0.0.6 to 1.0.0.7
We now do Java. Should do other languages too, although we hardcode "Java" and "C++"
in some different places, so that needs to change. We generate java code for the
object schema now, but since there is no "JavaXmlObjs", we don't use it yet. Also added
delayed loading so that xtangle now works super fast if you want just one object tangled.
Detailed list:
- Java code support. "schema" builds for Java, but no code
is really implemented. You could use xmlliterate for Java development
now though.
- Enumerations can be generated again.
- Turn on XMLOBJ delayed loading in the toolrun_context.
- Schemas are now global objects. Only one of them exists in memory. Speeds
up loading and allows delayed loading to work correctly.
- Documentation changes. Now all the files.xml's are correct.
- Support "virtual" and "abstract" methods when overriding.
- Query "pretendable()" interface on objects to get the real object
when using generic xmlobj_vectors (non-typed).
- Add named_object_visitor accepts() to all objects.
- When generating docs, "HTMLified XML" is created for all XML files.
- Tangle tool is cleaner now. Streams are not passed around everywhere, just
added. But should use a visitor.
- Schemas specify "name" attributes for all includes so that delayed
loading will work better.
1.0.0.5 to 1.0.0.6
Now builds on GCC 4.0 and latest Boost. That means it runs on Tiger (OS X) and the
latest linux variants. Tangle supports generating an object and all it's
descendants (the most useful option) by placing a "+" after the object name. It also
supports generating the global files (Jam files or whatever) by using "." as the
object name. By default, global files AREN'T rebuilt, which is the most useful option.
There is a script to generate XSD files, and all XML files correctly provide
the namespace now so that you can embed DocBook specific features in WEB's. With this,
we support all those things that other XML based formats support.
Detailed list:
- add docbook namespace to docbook XML files.
- add WEB/CWEB difference chapter.
- change schema documentation links.
- correct installation notes.
- cleanup style and look of generated HTML pages.
- removed "subobjecthasmemberequal" and "subobjecthasany" objects.
- added "vectorhasany", "logical_and", "istypeimplfieldequal" and "blockgreater" objects.
- added versioning system.
- added "genericlib" from cppxmlobjects to handle arbitrary XML objects.
- added "makexsd.sh" and "schema2xsd.xsl" to convert to XSD files.
- tangle now supports "+" at the end of an object name to tangle all descendant
objects.
- tangle now supports "." as an object name to tangle just the global files.
- weave is now installed as "xweave" and tangle as "xtangle" to handle those
systems where "weave" and "tangle" are already installed.
- handle different versions of BOOST when generating source code. This is the
first step towards generating different code depending on the system that
is generating the code.
- xmlobj code generation now handles inline "accept" and "copy" calls for those
objects which don't have members that require real code. This makes the generated
code much smaller.
- removed license at the top of each file and replaced with a single generated
license file in the root of the project.
- added namespaces to all XML files (we now support alternative
namespaces correctly).
- added implementation attributes (for alternative boost versions, but can
be used generally).
- removed "cppimplementation" and "pseudocode" objects.
- converted all XML "cppimplementation" objects into "web" objects.
- added "get_value()" member to all blocks to get the text value of
a block.
- got code correctly compiling for GCC 4.0 and latest BOOST (1.33.1).
- added web section names to code when generating for tracking generated
code back to the documentation. Just like WEB.
- when searching for objects to tangle, we use "findwithtype()" in cppxmlobjs.
This allows objects that are not an "object" to have the same physical name.
1.0.0.4 to 1.0.0.5
Added "web" and "webtangle" for implementations to more closely follow the original CWEB system designed and implemented by Donald Knuth.
Rewrote type system using new "typeimpls" in each object to describe an implementation of a type. Also added
generation of tests from an object and lot's of XSL fixes. Projects can now safely be defined outside the
cppliterate folder. The system should be able to handle multiple programming languages now.
Detailed list:
- add boostdatetimelib for builds.
- add in "extradefs" parameter to jam.exe and jam_noregister.exe to
pass extra build args through for projects that need it.
- cleanup weave script so that the literate folder can be in the root folder.
- moved all correct_type()'s to register function.
- added "virtual" as an inheritance type to methods.
- add in "readonly" to object methods that don't modify the object.
- major revamp of type system. Added in separate "typeimpl"'s to the object for
multi-language stuff. Removed need for "cppdata" table-based definitions of implementation details.
This also allows other projects to easily define new types.
- add in "tests" to an object to describe test info for unit testing.
- also generate entire test source tree from "tangle test".
- add in "attributes" to typenames so that method arguments and members can
have arbitrary attributes for tangle and weave to use.
- use "findwithtype()" to find objects to tangle so that objects can have the same names as members etc.
- cleanup ptrtypename to only be used for reftype's. Other types of pointers should have there own template
object and a typeimpl.
- introduced "web" schema object for defining implementations, and "webtangle" tangle object for generating
source from them. This fit's in with the original "web" system that Donald Knuth originally envisaged.
All the features of the original CWEB system should eventually be available here.
- changed "includes" implementation to use "web" instead of the old cppimplementation.
- removed comments from code output. Just read the woven docs!.
- modularize XSL files and rewrite handling of complex fragment cases.
- moved docs generated into a docs folder with html and docbook branches.
- added ability for weave to weave an individual method of an object, and the index and tree separately.
- added the following objects to "schema":
- "attribute"
- "pathtype"
- "voidtype"
- "podtype"
- "booltype"
- "chartype"
- "doubletype"
- "inttype"
- "longtype"
- "stringtype"
- "othertypename"
- "compositetype"
- "objreftype"
- "objvectortype"
- "templatevectortype"
- "typedcompositetype"
- "typedobjreftype"
- "typedobjvectortype"
- "pseudoimpl"
- "test"
- "typeimpl"
- "web"
- "@webobj"
- "websource"
- "webtest"
- "webuse"
- "websection"
- added the following objects to "tgl":
- "counter"
- "istypenamecomposite"
- "typeimplfield"
- "webtangle"
Generated: Thu Apr 6 00:28:59 EST 2006 using "xsltproc ... docbook.xsl".
Copyright (c) 2003, 2004, 2005; Paul Hamilton; pHamtec P/L.