Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 135

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 187

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 188

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 189

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 194

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 195

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 196

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 197

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 241

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 264

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 269

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 275

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 285

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 286

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 296

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 297

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 298

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 308

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 309

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 310

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 311

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 321

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 322

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 323

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 324

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 325

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 497

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 527

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 540

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 587

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 626

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 668

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 670

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 673

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 682

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 688

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 693

Deprecated: Array and string offset access syntax with curly braces is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php on line 699

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410

Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 410

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 272

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 274

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 110

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/public/lib.urlhandlers.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.json.php:309) in /home/didierve/didierverna.net/blog/inc/libs/clearbricks/common/lib.http.php on line 295
Didier Verna's Scientific Blog - Tag - documentation Didier Verna's scientific blog: Lisp, Emacs, LaTeX and random stuff. 2024-01-31T17:45:28+00:00 Didier Verna urn:md5:a22c53786aff986a2da4c770c233a8f9 Dotclear Quickref 4.0 beta 1 "The Aftermath" is released urn:md5:8f02a28bc783b6ec739e129a4aee9838 Thursday, May 26 2022 Thursday, May 26 2022 Didier Verna Lisp Common LispdocumentationQuicklispQuickrefreference manualsreleaseTexinfotypesetting <p>Dear all,</p> <p>as <a href="https://www.didierverna.net/blog/index.php?post/2022/05/10/Declt-4.0-beta-1-William-Riker-is-released">previously announced</a>, I have released the first Quickref version compatible with Declt 4.0 (which is now at beta 2) and which is going to keep track of the development over there. Because Declt 4 is currently considered in beta state, so is Quickref 4 for the time being.</p> <p>There are a number of important changes in this new major version of the library. Not much interesting from the outside is an infrastructure overhaul which improves the parallel support. The index generation code has also been rewritten to benefit from the recent changes in Declt. Slightly more interesting from the outside is an improvement of the self-documenting aspects of the public interface when used interactively, along with more usage correctness checks. Also, the build environment has been upgraded to Debian Bullseye.</p> <p>But the most critical change, of course, is the name for the 4.x series. In compliance with the general theme (Iron Maiden songs), and because Quickref 4 is meant to closely follow the brave new Declt version, I thought "Brave New World" would be nice. On the other hand, as Declt wanders through its uncharted 4.0 beta territory, Quickref 4 is likely to suffer the consequences, so perhaps "The Aftermath" is more appropriate...</p> <p>Anyway, the Docker images are up to date, and so is the <a href="https://quickref.common-lisp.net/" hreflang="en" title="Quickref Website">Quickref website</a>, currently documenting 2110 Common Lisp libraries.</p> <p>Enjoy!</p> https://www.didierverna.net/blog/index.php?post/2022/05/26/Quickref-4.0-beta-1-The-Aftermath-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/171 Declt 4.0 beta 1 "William Riker" is released urn:md5:1c96271acd67ac54443f9a8e9622871a Tuesday, May 10 2022 Tuesday, May 10 2022 Didier Verna Lisp Common LispDecltdocumentationreference manualsTexinfo <p>Today, after two years and a half of (irregular) development, and 465 commits, I have released the first beta version of <a href="https://github.com/didierverna/declt" title="Declt Repository">Declt</a> 4.0, my reference manual generator for Common Lisp libraries.</p> <p>I seldom release official beta versions of software, let alone make announcements about them, but this one deserves an exception. Since version 3, Declt has been undergoing a massive, SOC-oriented, overhaul. The intent is to reimplement it into a clean 3-stages pipeline. Stage one, the "assessment" stage is in charge of gathering information. Stage two, the "assembly" stage, creates a documentation template specifying how the information is to be organized. Finally, Stage three, the "typesetting" stage, renders the template in a specific output format. Of course, the purpose is to eventually be able to support different kinds of templates and output formats.</p> <p>Declt 4.0b1 marks the achievement of Stage one, which is now complete. It also contains a lot of new (and long awaited) features and improvements. The user manual has been updated to provide an overview of the new architecture, along with some details about Stage one of the pipeline. From now on, I'm also going to release new versions of <a href="https://gitlab.common-lisp.net/quickref/quickref" title="Quickref Repository">Quickref</a> to closely follow the evolution of Declt.</p> <p>Apart from the aforementioned architecture overhaul, which really boils down to internals shaking and shouldn't affect the end-user much, a lot of new features and improvements are also provided in this release. They are listed below.</p> <h3>Backward Incompatible Changes</h3> <p>For the benefit of Separation of Concerns, but also for other reasons, a number of keyword arguments to the <code>declt</code> function have been renamed. <code>:hyperlinks</code> becomes <code>:locations</code>, <code>:version</code> becomes <code>:library-version</code>, <code>:texi-directory</code> becomes <code>:output-directory</code>, and <code>:texi-name</code> becomes <code>:file-name</code>.</p> <h3>New Features</h3> <h4>Default / Standard Values</h4> <p>Declt now has the ability to advertise or hide properties that get default / standard values (e.g. standard method combination, <code>:instance</code> slot allocation, <em>etc.</em>).</p> <h4>Support for Aliases</h4> <p>Declt now recognizes and advertises "aliases", that is, funcoids which have their <code>fdefinition</code>, macro, or compiler macro function set manually to another, original, definition.</p> <h4>Support for New Programmatic Entities</h4> <p>Typed structures and <code>setf</code> compiler macros are now properly detected and documented with all the specific information.</p> <h4>Proper Support for Uninterened Symbols</h4> <p>Such symbols may be encountered on several occasions such as slot names (<code>trivialib</code>, for example, defines structures with uninterned slot names in order to prevent access to them). Definitions named with uninterned symbols are considered private, and denoted by the <em>empty set</em> package (∅).</p> <h4>SBCL 2.1.2 Required</h4> <p>The following enhancements depend on it:</p> <ul> <li>short form <code>setf</code> expanders now get correct source information,</li> <li>method combinations lambda-lists are now documented.</li> </ul> <h4>Domestic <em>vs.</em> Foreign Definitions</h4> <p>The concept of domestic (as opposed to foreign) definition has been extended to include those created in one of the sources files of the library being documented, even if the symbol naming the definition is from a foreign package. If the source file is unknown, then the symbol's package must be domestic. The general intent is to consider language extensions as domestic, hence, always documented. For example, a new method on a standard generic function (say, <code>initialize-instance</code>) will now always appear in the documentation.</p> <p>This refinement is accompanied by a new option allowing to include foreign definitions in the generated documentation. Of course, only foreign definitions somehow related to the library being documented will appear in the documentation. Also, those definitions will in general be partial: only the parts relevant to the library being documented will appear. Continuing with the <code>initialize-instance</code> example, new methods normally appear as toplevel, standalone definitions in the documentation (and their parent generic function is simply mentioned). If foreign definitions are included however, there will be a toplevel entry for the generic function, and all methods defined in the library will be documented there (truly foreign methods won't appear at all).</p> <h4>Introspection Heuristic</h4> <p>Until now, there was a single heuristic for finding domestic definitions, which was to start from domestic packages and scan as many connections between symbols as possible. That heuristic is reasonably fast, but may occasionally miss some domestic definitions. Declt now has the ability to scan all symbols in the Lisp image instead of only the ones from domestic packages. This new option ensures that all domestic definitions are found, at the expense of a much greater computation time.</p> <h4>Supported Licenses</h4> <p>The Microsoft Public License has been added.</p> <h4>Info Installation Category</h4> <p>In other words, the value of Texinfo's <code>@direntry</code> command is now customizable (instead to being hardwired to "Common Lisp").</p> <h3>Improvements</h3> <h4>Documentation Thinning</h4> <p>Packages reference lists do not point to methods directly anymore (as they can be reached via the generic function's reference). Also, only slots for which the parent classoid is named from another package are now referenced.</p> <p>Files reference lists do not point to slots anymore (as they can be reached via the parent classoid's reference). Also, only methods for which the parent generic function is defined in another file are now referenced.</p> <p>The readability of long references has been improved. In particular, they don't advertise the type of the referenced definitions anymore, when there is no ambiguity.</p> <p>Slot documentation now advertises the slot name's package only when different from that of the parent classoid.</p> <p>Non standalone method documentation now advertises the source file only when different from that of the parent generic function.</p> <p>The rendering of EQL specializers has been inmproved.</p> <p>The documentation of <code>setf</code> / writer methods doesn't render the "new value" argument / specializer anymore.</p> <h4>Merging</h4> <p>Generic definitions containing only reader / writer methods are upgraded to specific reader / writer categories, and definition merging is now only attempted on those.</p> <h4>Lambda Lists</h4> <p>Uninformative parts of lambda lists are now filtered out. This includes <code>&amp;whole</code>, <code>&amp;environment</code>, <code>&amp;aux</code> variables, along with options / keyword variables and default values.</p> <p>Method specializers in lambda lists now link back to their respective class definitions.</p> <h4>Method Combinations</h4> <p>The method combination discovery scheme has been upgraded to benefit from SBCL 1.4.8's enhancements (themselves following my <a href="https://www.lrde.epita.fr/~didier/research/publications/papers.php#verna.18.els" title="Paper Link">ELS 2018 paper</a>). The old code didn't break, but prevented unused method combinations from being detected.</p> <h3>Bug Fixes and Workarounds</h3> <h4>ASDF</h4> <p>Better handling of missing / unloaded components or dependencies (this can happen for instance with feature-dependent conditional inclusion).</p> <p>Cope with the lack of specification of the license information in ASDF systems by coercing to a string.</p> <p>Fix several cases of system files documentation duplication. Declt automatically documents .asd files as special cases of Lisp files. However, some systems have the bad (IMHO) habit of mentioning them explicitly as components (e.g. static files). When this happens, Declt silently discards that definition and keeps its own (at the expense of having a slightly incorrect system documentation).</p> <h4>Anchoring</h4> <p>After <strong>years</strong> of vain attempts at providing human-readable yet unique anchor names (which was only really useful for Info, BTW), I finally got rid of my last bit of idealism. Anchor names now use numerical definition UIDs, and since Texinfo allows me to expand references with some more information than just the anchor, it's good enough. Besides, it fixes the last remaining rare cases exhibiting the fact that it's just impossible to have anchors that are both human-readable and unique.</p> <h4><code>Setf</code> Expanders</h4> <p>Fix the computation of short form <code>setf</code> epxander lambda lists (which didn't correctly handle the presence of optional or rest arguments before.</p> <p>Handle the potential unavailability of a <code>setf</code> expander's update function or short form operator. Document it if applicable. Also signal a warning when the expander is domestic.</p> https://www.didierverna.net/blog/index.php?post/2022/05/10/Declt-4.0-beta-1-William-Riker-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/170 Quickref 3.0 "The Alchemist" is released urn:md5:b03de99bb1f33499218b1ec82abc4367 Thursday, November 21 2019 Thursday, November 21 2019 Didier Verna Lisp Common LispdocumentationQuickrefreference manualsrelease <p>Following up with the latest <a href="https://www.didierverna.net/blog/index.php?post/2019/11/19/Declt-3.0-Montgomery-Scott-is-released">release of Declt</a>, I'm also happy to announce the release of <a href="https://www.lrde.epita.fr/~didier/software/lisp/typesetting.php#quickref" hreflang="en" title="Quickref homepage">Quickref 3.0</a> "The Alchemist", our reference manuals aggregator for Quicklisp libraries. The official <a href="http://quickref.common-lisp.net" hreflang="en" title="Quickref official website">website</a> has been updated yesterday with both the latest Quicklisp version, and the new Declt, resulting in the documentation of 1792 Common Lisp libraries.</p> https://www.didierverna.net/blog/index.php?post/2019/11/21/Quickref-3.0-The-Alchemist-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/162 Declt 3.0 "Montgomery Scott" is released urn:md5:089d24770a162c421feec49d6bdc041d Tuesday, November 19 2019 Tuesday, November 19 2019 Didier Verna Lisp Common LispDecltdocumentationreference manualsreleaseTexinfo <p>I'm pleased to announce the release of Declt 3.0 "Montgomery Scott", my Texinfo reference manual generator for Common Lisp libraries.</p> <p>This is a new major release of the library, although the changes may not be so visible from the outside. The main concern in this release has been to increase the robustness of the output, from three different angles.</p> <ol> <li>Many places from where Declt attempts to extract meaningful information are underspecified (ASDF system slots notably).</li> <li>The pretty-printing of Lisp items can be difficult, given the liberalism and extensibility of the language.</li> <li>Finally, several restrictions in the syntax of Texinfo itself (anchor names notably) get in the way.</li> </ol> <p>These issues were described in a <a href="https://www.lrde.epita.fr/~didier/research/publications/papers.php#verna.19.tug" hreflang="en" title="TUG 2019 Paper">paper</a> presented at the TeX Users Group conference, this summer in Palo Alto. This release goes a long way toward fixing them.</p> <p>The new generated reference manuals look mostly the same as before, but some important things have changed under the hood, notably the names of hyperlinks and cross-references (backward-incompatible, hence the increase in the major version number). The output is now also much more robust with respect to the final output format: the generation of HTML, DVI, Postscript, PDF, and even plain Info should work fine and has been tested on all Quicklisp libraries (in fact, Quickref will also be upgraded in the near future to provide all those formats at once).</p> <p>Those improvements do come at a cost. Unicode is now required (even for Info readers). To be honest, many Lisp libraries already had that implicit requirement. Also, this release depends on improvements and bug fixes only available in Texinfo 6.7, now a requirement as well. I have to thank Gavin Smith, from the Texinfo team, for his collaboration.</p> <p>Apart from that, this release also has a number of bug fixes.</p> <ul> <li>Some method specializers were not handled properly.</li> <li>The manuals were missing documentation for some non-Lisp source files.</li> <li>There were some glitches in the pretty-printing of unreadable objects.</li> </ul> <p>Get it at the <a href="https://www.lrde.epita.fr/~didier/software/lisp/typesetting.php#declt" hreflang="en" title="Declt home page">usual place</a>, and enjoy!</p> https://www.didierverna.net/blog/index.php?post/2019/11/19/Declt-3.0-Montgomery-Scott-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/161 Quickref 2.0 "Be Quick or Be Dead" is released urn:md5:d222f8ae490f9a3e218807c72a48f4e9 Monday, April 8 2019 Monday, April 8 2019 Didier Verna Lisp Common LispDecltdocumentationLispQuicklispQuickrefreference manuals <p>Surfing on the energizing wave of ELS 2019, the <a href="https://european-lisp-symposium.org/2019/index.html" hreflang="en" title="12th European Lisp Symposium">12 European Lisp Symposium</a>, I'm happy to announce the release of Quickref 2.0, codename "Be Quick or Be Dead".</p> <p>The major improvement in this release, justifying an increment of the major version number (and the very appropriate codename), is the introduction of parallel algorithms for building the documentation. I presented this work last week in Genova so I won't go into the gory details here, but for the brave and impatient, let me just say that using the parallel implementation is just a matter of calling the <code>BUILD</code> function with <code>:parallel t :declt-threads x :makeinfo-threads y</code> (adjust x and y as you see fit, depending on your architecture).</p> <p>The second featured improvement is the introduction of an author index, in addition to the original one. The author index is still a bit shaky, mostly due to technical problems (calling <code>asdf:find-system</code> almost two thousand times simply doesn't work) and also to the very creative use that some library authors have of the ASDF <code>author</code> and <code>maintainer</code> slots in the system descriptions. It does, however, a quite decent job for the majority of the authors and their libraries'reference manuals.</p> <p>Finally, the repository now has a fully functional continuous integration infrastructure, which means that there shouldn't be anymore lags between new Quicklisp (or Quickref) releases and new versions of the <a href="http://quickref.common-lisp.net" hreflang="en" title="documentation website">documentation website</a>.</p> <p>Thanks to Antoine Hacquard, Antoine Martin, and Erik Huelsmann for their contribution to this release! A lot of new features are already in the pipe. Currently documenting 1720 libraries, and counting...</p> https://www.didierverna.net/blog/index.php?post/2019/04/08/Quickref-2.0-Be-Quick-or-Be-Dead-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/159 Quickref open-sourced urn:md5:304a614a4980be94308da4b4dd7073f4 Tuesday, August 7 2018 Tuesday, August 7 2018 Didier Verna Lisp Decltdockerdocumentationquicklispquickrefreference manuals <p>8 months after the <a href="https://www.didierverna.net/blog/index.php?post/2017/12/13/Announcing-Quickref%3A-a-global-documentation-project-for-Common-Lisp">original announcement</a>, we finally open-sourced Quickref. The complete source code is available <a href="https://gitlab.common-lisp.net/quickref/quickref" hreflang="en">here</a>.</p> <p>I gave a lightning talk at <a href="https://european-lisp-symposium.org/2018/index.html" hreflang="en">ELS 2018</a>, in which I claimed I would release the code in "something like two weeks". That was 4 months ago :-). I apologize for the delay, especially to Zach who expressed interest in how we did the Docker thing at the time. I wanted to clean up the code before the first public release (I'm a maniac like that), which I did, but it took some time.</p> <p>Compared to what I announced at ELS, Quickref also has a couple of new features, most importantly the ability to generate documentation for only what's already installed, rather than for the whole Quicklisp world. This can be very convenient if you just want some local documentation for the things you use daily. Finally, there is also a very rudimentary support for multithreading, which currently doesn't bring much. But the code has been prepared for going further in that direction; this will be the topic of another internship which will start next September.</p> <p>Browse no less than 1588 reference manuals right now at <a href="https://quickref.common-lisp.net/" hreflang="en">https://quickref.common-lisp.net/</a>, and recreate your own local version with this Docker 2-liner:</p> <pre> docker run --name quickref quickref/quickref docker cp quickref:/home/quickref/quickref . </pre> https://www.didierverna.net/blog/index.php?post/2018/08/07/Quickref-open-sourced#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/156 Announcing Quickref: a global documentation project for Common Lisp urn:md5:f1aa517f7c1930e0f40691fb0c3c7909 Wednesday, December 13 2017 Wednesday, December 13 2017 Didier Verna Lisp Common LispDecltdocumentationreference manuals <p>Today, we deployed the first version of <a href="http://quickref.common-lisp.net" hreflang="en">Quickref</a>, a new global documentation project for Common Lisp.</p> <p>The purpose of Quickref is to provide a centralized collection of reference manuals for the whole <a href="https://www.didierverna.net/blog/index.php?post/2017/12/13/quicklisp.org" hreflang="en">Quicklisp</a> world. This means around 1500 libraries, for a total of around 3000 ASDF systems. The reference manuals are generated by <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt" hreflang="en">Declt</a>, which is probably the most complete documentation system for Common Lisp currently available, and delivered in HTML (PDF versions could easily be made available as well).</p> <p>A lot of things can still be improved, but I'm pretty satisfied with the result so far. 3000 ASDF systems is a hell of a test suite for Declt, and I'm happy to report that it passes on practically all of them. Only a couple of issues remain, not even due to Declt itself, and less than a dozen or so libraries still pose problems (mostly technical difficulties due to foreign dependencies).</p> <p>Quickref was made by Antoine Martin, as part of an internship with me. Many thanks to him! We still have some cleanup and packaging to do, but we expect to open-source the infrastructure soon. I also want to thank Mark Evenson, Erik Huelsmann and the <a href="http://cl-foundation.org/" hreflang="en">Common Lisp Foundation</a> for hosting the project on common-lisp.net (it was only natural)!</p> <p>Finally, let me restate this again (and again): reference manuals are not user manuals. They are... reference manuals. Although automatically generated, there are some things you can do, as a library author, to improve the output (this is an area of Declt which I intend to work on in the future). Please refer to the Declt user manual (notably section 3.2 <a href="https://www.lrde.epita.fr/~didier/software/lisp/declt/user/" hreflang="en">Coding Style</a>) for more information.</p> https://www.didierverna.net/blog/index.php?post/2017/12/13/Announcing-Quickref%3A-a-global-documentation-project-for-Common-Lisp#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/154 Declt 2.3 "Robert April" is out urn:md5:c62c272c8682fecab7cc014fb36bfbe1 Monday, October 16 2017 Monday, October 16 2017 Didier Verna Lisp Common LispDecltdocumentationreference manualsreleasesoftwareTexinfo <p>I'm happy to announce the release of Declt 2.3. Declt is my reference manual generator for Common Lisp libraries.</p> <p>The improvements and bug fixes in the last two releases are the result of running Declt against the whole Quicklisp world (around 3000 ASDF systems for 1500 libraries). See this <a href="https://www.didierverna.net/blog/index.php?post/2017/12/13/Announcing-Quickref%3A-a-global-documentation-project-for-Common-Lisp">post</a> for more information.</p> <p>New in this release:</p> <ul> <li>Advertise file extensions in references.</li> <li>Advertise the type of foreign definitions.</li> <li>More robust display and indexing of, and with, lambda-lists.</li> <li>Use UTF8 special characters to denote invisble ones.</li> <li>More robust support for Texinfo brace escaping.</li> <li>Handle modules sharing the same location.</li> <li>Ensure output is done with standard IO syntax.</li> <li>Fix potential duplication of some (non-lisp) files and document all static files.</li> <li>Fix potential duplication of packages documentation.</li> </ul> <p>From the 2.2 "Christopher Pike" release (not previously advertised):</p> <ul> <li>Require a UTF-8 environment.</li> <li>Understand ASDF's notion of inferred system, and also be more protective against ASDF extensions.</li> <li>Support for improper lambda lists (e.g. destructuring ones).</li> <li>Improve contact defaulting code.</li> <li>Update support for SBCL's setf expanders introspection.</li> <li>Accept ASDF system designators.</li> <li>Various bug fixes in the areas of method combinations, accessor definition merging and setf expanders.</li> </ul> <p>Find it at the usual <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>...</p> https://www.didierverna.net/blog/index.php?post/2017/10/16/Declt-2.2-Christopher-Pike-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/152 Declt 2.1 "Jonathan Archer" is out urn:md5:14f228dcdb2b1b0feaf268d6dcdb523a Tuesday, February 28 2017 Tuesday, February 28 2017 Didier Verna Lisp ASDFCommon LispDecltdocumentationreference manualsrelease <p>I'm happy to announce the release of Declt 2.1 "Jonathan Archer".</p> <p>New in this release:</p> <ul> <li>Handle recent change in SBCL's <code>SB-INT:INFO</code> API.</li> <li>Handle list of contacts (strings) in ASDF systems author and maintainer slots.</li> <li>Some backward-incompatible changes in the keyword arguments to the <code>DECLT</code> function.</li> <li>More hyperlinks between systems and source files.</li> <li>More robust system's packages collection (no more code walking).</li> <li>More robust handling of unavailable ASDF components.</li> <li>More robust naming of cross-references.</li> </ul> <p>Find it at the usual <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>...</p> https://www.didierverna.net/blog/index.php?post/2017/02/28/Declt-2.1-Jonathan-Archer-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/150 Declt 2.0.1 "Benjamin Sisko" is out urn:md5:0c5f5b9f5ab65da29b5d73d88e331b6a Wednesday, November 4 2015 Wednesday, November 4 2015 Didier Verna Lisp ASDFCommon LispDecltdocumentationreference manualsrelease <p>Declt 2.0.1 "Benjamin Sisko" is out. This is a bugfix release with one internal change (a special variable was not following the earmuffs convention) and one actual bugfix (the same Texinfo anchor was generated for symbols with the same name but in different packages).</p> <p>Find it at the usual <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>...</p> https://www.didierverna.net/blog/index.php?post/2015/11/04/Declt-2.0.1-Benjamin-Sisko-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/144 Declt 2.0 is out -- IMPORTANT urn:md5:2f726f4c179437afc9ce519a7a68a6d8 Monday, July 13 2015 Monday, July 13 2015 Didier Verna Lisp ASDFCommon LispDecltdocumentationreference manualsrelease <p>Declt 2.0 "Kathryn Janeway" is out. This release doesn't contain any change in functionality, yet deserves a major version upgrade since it contains 3 important changes: an infrastructure revamp (along the lines of what <a href="https://www.lrde.epita.fr/~didier/software/lisp/clon.php">Clon</a> endured not so long ago), a license switch from the GNU GPL to a BSD one, and finally a system / package name change. The prefix is now <code>net.didierverna</code> instead of <code>com.dvlsoft</code>. Do I need to apologize for this again? :-)</p> <p>Find it at the usual <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>...</p> https://www.didierverna.net/blog/index.php?post/2015/07/13/Declt-2.0-is-out-IMPORTANT#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/137 Declt 1.1 is released urn:md5:cf66e12c7fba041f4e4b74a36ee51dd6 Monday, June 29 2015 Monday, June 29 2015 Didier Verna Lisp ASDFDecltdocumentationreference manualsrelease <p>Hello,</p> <p>as promised last week, I've just released a new version of <a href="https://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">Declt</a>, my reference manual generator for ASDF systems. This new version (1.1) is now able to document <a href="https://www.lrde.epita.fr/~didier/software/lisp/clon.php">Clon</a> again (the documentation of which has been updated on the website).</p> <p>New in this release:</p> <ul> <li>Declt now properly handles and documents complex system and component dependencies, such as <code>:feature</code> <code>:require</code> and <code>:version</code> statements,</li> <li>Declt also documents a system's <code>:if-feature</code> if any.</li> </ul> <p>But the most important addition is the ability to document several ASDF systems in the same reference manual. More precisely, Declt now documents not only the main system but also all its subsystems. A subsystem is defined as a system on which the main one depends on in any way, and which is also part of the same distribution (under the same directory tree). Declt also understands multiple system definitions from the same <code>.asd</code> file.</p> <p>Enjoy!</p> https://www.didierverna.net/blog/index.php?post/2015/06/29/Declt-1.1-is-released#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/136 Declt 1.0b15 "Kyoto" is out urn:md5:6cff3803caf4b135de4419ca9fafaa1c Tuesday, October 23 2012 Tuesday, October 23 2012 Didier Verna Lisp Common LispDecltdocumentationreleasesoftware <p>This is Declt 1.0b15, the "Kyoto" release... Declt is a reference manual generator for Common Lisp libraries.</p> <p>This version underwent a major internals overhaul, required by some of the new features described below:</p> <ul> <li>Packages sections now advertise all definitions instead of just the symbols naming them. They also advertise their use-list and used-by-list, with cross-references.</li> <li>Conditions, structures and classes now advertise their sub- and super-classes, direct methods, initargs and slots, with cross-references.</li> <li>Slots documentation include docstring, type, initargs, initforms, readers and writers with cross-references.</li> <li>Declt now documents symbol macros and compiler macros.</li> <li>The <code>*LINK-FILES*</code> special is gone (<code>M-x all-hail-purely-functional-style</code>).</li> <li>All ASDF components now advertise their descriptions and long descriptions, if any.</li> <li>Docstrings are displayed in a more reader-friendly fashion.</li> <li>Documentation entries for methods are nested within the corresponding generic function entry.</li> </ul> <p>Grab it at the usual <a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>.</p> https://www.didierverna.net/blog/index.php?post/2012/10/23/Declt-1.0b15-Kyoto-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/109 Declt 1.0b14 is out urn:md5:d77f9ac7e5b772b6ce0eed42fb1ab6a9 Tuesday, September 25 2012 Tuesday, September 25 2012 Didier Verna Lisp Common LispDecltdocumentationreleasesoftware <p>I've just released a new version of Declt, my reference manual generator for ASDF systems.</p> <p>This release containts some improvements based on Sabra Crolleton's feedback. The most notable improvements are support for two new license types (MIT and LGPL), a new <code>:DECLT-NOTICE</code> keyword argument that gives you control on the "automatically generated by Declt" notice that appears in the reference manuals, and a bug fix (missing support for empty lists in lambda-lists).</p> <p>Grab it at the usual <a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>.</p> https://www.didierverna.net/blog/index.php?post/2012/09/25/Declt-1.0b14-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/106 Declt 1.0b13 is out urn:md5:75565e9e8fc0846abe5cbc6d222d0c1e Monday, June 4 2012 Monday, June 4 2012 Didier Verna Lisp Common LispDecltdocumentationreleasesoftware <p>I've just released a new version of Declt, my reference manual generator for ASDF systems. This release includes some uninteresting internals update, plus an important bug fix: there were two calls to <code>FIND-METHOD</code> missing an <code>ERRORP</code> flag set to nil, leading to Declt throwing an error where it shouldn't have.</p> <p>Grab it at the usual <a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">place</a>.</p> https://www.didierverna.net/blog/index.php?post/2012/06/04/Declt-1.0b13-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/104 Declt 1.0b12 is out urn:md5:f84bd63cbacdbf6ae2f09763f8bca49b Wednesday, June 29 2011 Wednesday, June 29 2011 Didier Verna Lisp ASDFCommon LispDecltdocumentationreleasesoftwareTexinfo <p>I've just released the next version of Declt, my reference manual generator for ASDF systems.</p> <p>This release includes some fixes for the Info format target but most notably, support for documenting (generic) writer functions and methods. When it makes sense, the documentations for <code>func</code> and <code>(setf func)</code> are grouped together. Getting closer to an official 1.0 stable version...</p> <p>Grab it <a href="http://www.lrde.epita.fr/~didier/software/lisp/misc.php#declt">here</a>, and enjoy!</p> https://www.didierverna.net/blog/index.php?post/2011/06/29/Declt-1.0b12-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/86 Declt 1.0b11 is out urn:md5:67f641ec65f442cf39670f9c41520eb0 Tuesday, May 31 2011 Tuesday, May 31 2011 Didier Verna Lisp ASDFCommon LispDecltdocumentationreleasesoftwareTexinfo <p>I've just released a new version of Declt, my Texinfo reference manual generator for ASDF systems. This release contains only one bugfix: when trying to create links to source files, Declt now checks whether the files actually exist or not.</p> <p>Tracking this bug down had the side-effect of exhibiting a misfeature of SBCL's introspection facility: the <code>COPY-&lt;struct&gt;</code> functions (automatically generated by <code>defstruct</code> calls) have their definition source set to <code>target-defstruct.lisp</code> which is an SBCL source file. It would make more sense to set it to the file containing the <code>defstruct</code> call instead, as is already the case for constructors, predicates and accessor functions. Patch sent to the SBCL developers.</p> https://www.didierverna.net/blog/index.php?post/2011/05/31/Declt-1.0b11-is-out#comment-form https://www.didierverna.net/blog/index.php?feed/navlang:en/atom/comments/84