This demonstration is intended for people interested in software documentation, and more specifically, in what can be achieved with a reflexive language, fully equipped for introspection.
Quickref is a global documentation project for the Common Lisp Ecosystem. In a single function call, it builds an entire website containing reference manuals for almost two thousand Common Lisp libraries. The system is unintrusive: library authors do not have anything to do to make their code “Quickref aware”. A public website is maintained with the resulting full documentation, but individuals can also use Quickref to generate a local website, documenting only what is present on their machine.
Each library is downloaded / updated, compiled, loaded, and introspected. From the collected information, a Texinfo file is generated, which is then processed into HTML. The advantage of Texinfo is that the documentation can be created in other formats than HTML (PDF, for example).
The generated documentation for a library contains the description of its structure (components, dependencies, packages etc.) and the provided definitions. Exported and internal definitions are listed separately, allowing the reader to have a quick view on the library’s public API. Definitions include constants, variables, symbol macros, macros, (setf) expanders, compiler macros, functions, generic functions and methods, method combinations, conditions, structures, classes and types.
The generated documentation includes every possible bit of information that introspection can provide: documentation strings, lambda lists (including qualifiers and specializers where appropriate), slots (including type, allocation and initialization arguments), definition source file etc.
Every documented item provides a full set of cross-references to related items: component dependencies, parents and children, classes direct methods, super and subclasses, slot readers and writers, setf expanders access and update functions etc.
Finally, the documentation includes exhaustive and multiple-entry indexes for every documented item.
Dr. Didier Verna has a Ph.D. in Computer Science and is currently working as an assistant professor for EPITA, a private Computer Science university located in Paris. He gives or has given lectures on Operating Systems, Computer Graphics, Object-Oriented, Functional Programming and Typesetting. His main research interests are multi-paradigm approaches to genericity and performance.
Didier Verna is the president of the European Lisp Symposium steering committee and serves as a program committee member in various conferences (International Lisp Conference, European Lisp Symposium, Dynamic Languages Symposium, ACM Symposium on Applied Computing, Context-Oriented Programming workshop etc. ).
Didier Verna is also quite involved in free software: he was one of the core maintainers of XEmacs for more than 15 years, a contributor to Gnus and BBDB, and an occasional contributor to other Free Software projects (the GNU Autotools most notably; he was one of the technical reviewers for the “Goat Book”). He is the author of several LaTeX packages and Common Lisp libraries.
All of this is in fact half-true: two days a week, Didier Verna drops his scientific hat and wears the semi-professional Jazz musician one instead. He also is a certified Aikido teacher, and gives coaching sessions on the theme “Aikido and Conflict Management” for large companies.
Wed 3 Apr
|13:45 - 14:15|
Johan FabryRaincode Labs, Belgium, Vadim ZaytsevRaincode Labs, Belgium, Kim MensUniversité Catholique de Louvain, Belgium, Siegfried Nijssen UC Louvain, Hoang Son PhamUC Louvain, Coen De RooverVrije Universiteit Brussel, Dario Di NucciVrije Universiteit Brussel, Tim MolderezVrije Universiteit Brussel
|14:15 - 14:45|
Didier VernaEPITA / LRDE
|14:45 - 15:30|