Presentation is loading. Please wait.

Presentation is loading. Please wait.

Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility.

Similar presentations


Presentation on theme: "Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility."— Presentation transcript:

1 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility

2 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 2 Why is THtml important? Obviously for ROOT – but there is more: Users combine different code packages, demand for (uniform) documentation ROOT is everywhere – THtml widely used for documentation of non-ROOT code Future: delivers content to ROOT’s online, context sensitive help system

3 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 3 Do We Need a New Implementation? THtml’s horizon “limited by CINT”, but code usually compiled with ACLiC ROOT allows “foreign” code – so should THtml Too many feature requests saying “my compiler understands it, why doesn’t THtml” Help system needs doc objects, but THtml generates HTML Answer: YES.

4 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 4 Can’t We Use Another Tool? Could be Doc++, Doxygen,... Don’t understand ROOT doc syntax No interface to ROOT’s RTTI No doc objects generated but text files No multiple, independent code packages No versioning O(10) slower (Doxygen takes >20mins) Answer: NO.

5 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 5 Goals Support for complete c++ syntax friend, operator, inline, typedef, template, struct,… C preprocessor and c++ parser Current THtml doesn’t parse c++ tokens but characters – slower & no way to integrate a code parser Need CPP to get valid c++ and to document CPP macros Fast (at least as fast as current) Small (only a few files, simple & clean interface – Rene would prefer 1 class with 10 lines of code) Source “beautifier” understanding c++ syntax e.g. count method calls to determine how important it is

6 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 6 Goals Documentation objects, independent of output Content for ROOT’s online help, doc objects in file Generate HTML doc from file – parse once, output many Versioned documentation Often doc is needed for older releases Allow for non-ROOT doc syntax Seamless linking of separate documentation sites Not only UserLib  ROOT, but also UserLib1  UserLib2 Need doc object file for UserLib2 to link doc against it

7 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 7 Design Linked tokens are passed through layer of parsers (CPP parser, type parser, doc extraction) Allows for easy maintenance & customization Nice OO structure with independent parsers Fast, parsers ignore classes of tokens (e.g. CPP) Tiny memory usage Cross-linked documentation objects for doc elements: packages, modules, files, namespaces, classes, methods…

8 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 8 Design - Customization Extensive customization abilities: split code into packages (ROOT, AliROOT,…) specifying versions split packages into modules (e.g. libraries) specifying source dirs (i.e. not relying on ClassImp) add doc elements of external packages for parsing

9 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 9 Design - Interfaces Most important: hide everything! same old (but lightweight) interface MakeAll, MakeClass, talking to doc manager, reads doc objects from file (using rlibmap to find file for class) or generates them THtmlNewROOT online help DocManager docfile.root Parser SourceBeautifyHtmlGenerator

10 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 10 Status Not usable yet :-( Not in ROOT’s cvs yet Concept seems to work 4500 lines of code in 7 header / source files Runs over all (i.e. Unix and WinNT) ROOT sources (1660 files) in 1 minute: tokenizing, CPP’ing and extracting all types & methods

11 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 11 Design of HTML Pages I need comments from you: What do you want a doc page to look like? Plain typewriter pages, or condensed “stylish” ones? Sorting methods by frequency of usage a good idea? To trigger discussion: peek on possible HTML layout Uses optional CSS2, Javascript and cookies Plain html files on server-side (no cgi/php/…) Works on IE6, Mozilla 1.6, NS4, Opera7

12 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 12 HTML Output Example

13 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 13 HTML Output Example Modules (or alphabetical list)

14 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 14 Page header with location (package, version, module, type) and basic type properties (include file, library, ClassDef’ed) HTML Output Example

15 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 15 Member overview – expand to see documentation HTML Output Example

16 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 16 HTML Output Example (Method) Documentation shown by clicking method name

17 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 17 HTML Output Example (Go to Class) Switch to different class using menu

18 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 18 HTML Output Example (Go to Class)...or “JumpTo” box

19 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 19 Example Only showing TExMap’s local methods Click “Show Derived” and...

20 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 20 Example...TObject’s methods will be added

21 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 21 Example http://www-clued0.fnal.gov/~axel/example

22 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 22 Is Help In Reach?

23 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 23 Is Help In Reach? Parser 70% done tokenizer, CPP, templates & most types done Manager 70% done (missing: doc file) Generate on-demand, manage doc elements, packages & modules, parsing by source dirs Doc elements 90% done Output generator 0% done

24 Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop 24 Is Help In Reach? Needs about 3 months of continuous work for basic version Available for 6 months starting October ’04 – need bread & water, though... First version by end of the year!


Download ppt "Axel Naumann University of Nijmegen / NIKHEF, NL 2004-02-27 ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility."

Similar presentations


Ads by Google