Declt 4.0 beta 1 "William Riker" is released
By Didier Verna on Tuesday, May 10 2022, 17:25 - Lisp - Permalink
Today, after two years and a half of (irregular) development, and 465 commits, I have released the first beta version of Declt 4.0, my reference manual generator for Common Lisp libraries.
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.
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 Quickref to closely follow the evolution of Declt.
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.
Backward Incompatible Changes
For the benefit of Separation of Concerns, but also for other reasons, a number of keyword arguments to the declt
function have been renamed. :hyperlinks
becomes :locations
, :version
becomes :library-version
, :texi-directory
becomes :output-directory
, and :texi-name
becomes :file-name
.
New Features
Default / Standard Values
Declt now has the ability to advertise or hide properties that get default / standard values (e.g. standard method combination, :instance
slot allocation, etc.).
Support for Aliases
Declt now recognizes and advertises "aliases", that is, funcoids which have their fdefinition
, macro, or compiler macro function set manually to another, original, definition.
Support for New Programmatic Entities
Typed structures and setf
compiler macros are now properly detected and documented with all the specific information.
Proper Support for Uninterened Symbols
Such symbols may be encountered on several occasions such as slot names (trivialib
, 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 empty set package (∅).
SBCL 2.1.2 Required
The following enhancements depend on it:
- short form
setf
expanders now get correct source information, - method combinations lambda-lists are now documented.
Domestic vs. Foreign Definitions
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, initialize-instance
) will now always appear in the documentation.
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 initialize-instance
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).
Introspection Heuristic
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.
Supported Licenses
The Microsoft Public License has been added.
Info Installation Category
In other words, the value of Texinfo's @direntry
command is now customizable (instead to being hardwired to "Common Lisp").
Improvements
Documentation Thinning
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.
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.
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.
Slot documentation now advertises the slot name's package only when different from that of the parent classoid.
Non standalone method documentation now advertises the source file only when different from that of the parent generic function.
The rendering of EQL specializers has been inmproved.
The documentation of setf
/ writer methods doesn't render the "new value" argument / specializer anymore.
Merging
Generic definitions containing only reader / writer methods are upgraded to specific reader / writer categories, and definition merging is now only attempted on those.
Lambda Lists
Uninformative parts of lambda lists are now filtered out. This includes &whole
, &environment
, &aux
variables, along with options / keyword variables and default values.
Method specializers in lambda lists now link back to their respective class definitions.
Method Combinations
The method combination discovery scheme has been upgraded to benefit from SBCL 1.4.8's enhancements (themselves following my ELS 2018 paper). The old code didn't break, but prevented unused method combinations from being detected.
Bug Fixes and Workarounds
ASDF
Better handling of missing / unloaded components or dependencies (this can happen for instance with feature-dependent conditional inclusion).
Cope with the lack of specification of the license information in ASDF systems by coercing to a string.
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).
Anchoring
After years 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.
Setf
Expanders
Fix the computation of short form setf
epxander lambda lists (which didn't correctly handle the presence of optional or rest arguments before.
Handle the potential unavailability of a setf
expander's update function or short form operator. Document it if applicable. Also signal a warning when the expander is domestic.
Comments
Thank you for the update. One thing I miss in CL documentation generation is the ability to include external files that have diagrams or charts. Sometimes it makes it much easier to explain usage of the finished product. s there any way to do that with Declt?
lancia thesis <a href="https://thesismelon.com/ ">definition of a thesis</a> thesis statement for global warming https://thesismelon.com/
thesis questions <a href="https://thesisabbess.com/ ">university of utah thesis office</a> thesis coral gables https://thesisabbess.com/
dbq thesis <a href="https://thesismetre.com/ ">thesis length</a> how to find the thesis https://thesismetre.com/
thesis writer <a href="https://papermelanin.com/ ">need help with paper</a> hiring a writer https://papermelanin.com/
blog writing services packages <a href="https://paperabbrs.com/ ">custom writers</a> custom dissertation writing service https://paperabbrs.com/
what is a phd thesis <a href="https://thesismethyl.com/ ">thesis defense presentation</a> what's a thesis statement example
help with writing personal statement <a href="https://papermetering.com/ ">ghostwriter service</a> coursework writing services
honors thesis example <a href="https://thesismethod.com/ ">michelle obama thesis</a> introduction paragraph with thesis statement examples
resume writing services online <a href="https://papermethodist.com/ ">research writing help</a> i don't want to write my paper
opinion essay examples <a href="https://essaymeshing.com/ ">shark essay</a> appendix essay
we the students essay contest <a href="https://essaymerino.com/ ">abortion essay</a> 600 word essay
college essay heading <a href="https://essaymerrily.com/ ">mit essay</a> how to start a paragraph in an essay
scholarship essay examples <a href="https://essaymesa.com/ ">climate change essay</a> common app essay examples
how to cite a book in an essay <a href="https://essaymesh.com/ ">college essay example</a> rubric for essay
how to write a title in an essay <a href="https://essaymercantile.com/ ">college essay heading</a> essay start
sildenafil buy online india <a href="https://mimovigra.com/ ">viagra 15 mg</a> sildenafil india buy
lisinopril kidney disease <a href="https://lisinoprildrh.com/ ">enalapril and hydrochlorothiazide</a> valsartan hydrochlorothiazide dose
dexcel metformin aok <a href="https://metforminynd.com/ ">synthroid metformin pcos</a> glucophage i ovulacija
hydrochlorothiazide vs furosemide for edema <a href="https://lasixona.com/ ">what is furosemide side effects</a> furosemide spironolactone
changing from atenolol to lisinopril <a href="https://tenorminzrv.com/ ">tenormin 20 mg</a> farmaci tenormin
bactrim ds tablet <a href="https://bactrimtui.com/ ">cost of bactrim</a> bactrim itchy
tamoxifen aching legs <a href="https://nolvadexaec.com/ ">tamoxifen serum levels</a> tamoxifen and male pattern baldness
lasix scan <a href="https://lasixona.com/ ">furosemide infusion</a> side effects of furosemide for dogs
flagyl serve para corrimento <a href="https://flagylrcd.com/ ">thanh phan thuoc flagyl</a> dosis flagyl 125 mg
is furosemide a water pill <a href="https://lasixujm.com/ ">can you get high off of furosemide</a> furosemide effect on potassium
nolvadex ft <a href="https://nolvadexolf.com/ ">taking nolvadex pct</a> how to cycle nolvadex
amlodipine hydrochlorothiazide combination <a href="https://lisinopriltgj.com/ ">hydrochlorothiazide brand</a> hydrochlorothiazide over the counter alternative
chemical structure of synthroid <a href="https://synthroidthg.com/ ">does synthroid affect liver</a> synthroid strengths of tablets
withdrawal symptoms from trazodone <a href="https://trazodonenui.com/ ">trazodone and erectile dysfunction</a> trazodone tricyclic
flagyl 500mg tab <a href="https://flagylztu.com/ ">drugs with metronidazole</a> definition metronidazole medicine
pregabalin buy <a href="https://lyricaecf.com/ ">lyrica dosage nerve pain</a> lyrica maximum dose
atenolol en urgencias <a href="https://atenololzol.com/ ">atenolol effects on dental treatment</a> bula atenolol 100mg
tamoxifen withdrawal headaches <a href="https://tamoxifenycs.com/ ">nolvadex hard on the liver</a> tamoxifen citrate tablets used
atorvastatin rdy 122 <a href="https://lipitorthj.com/ ">atorvastatin recall 2019</a> lipitor side effects weight gain
glucophage y anticonceptivos orales <a href="https://glucophagedvj.com/ ">glucophage blurred vision</a> metformin 69 z
taking synthroid and adderall together <a href="https://levothyroxineika.com/ ">does synthroid cause headache</a> do you lose weight with synthroid
trazodone and alcohol <a href="https://trazodonetjc.com/ ">trazodone with gabapentin</a> trazodone mixed with alcohol
does metronidazole affect the depo injection <a href="https://metronidazoleecv.com/ ">instructions for taking metronidazole</a> metronidazole and . ketoconazole
valacyclovir hcl structure <a href="https://valacyclovirsvt.com/ ">valacyclovir liver problems</a> valacyclovir hcl 1 reviews
tadalafil vs sildenafil vs vardenafil <a href="https://tadalaflynvvw.com/ ">savar tadalafil</a> buy generic tadalafil online cheap
can women take tadalafil <a href="https://tadalaflynvvw.com/ ">daily tadalafil</a> vardenafil ed il tadalafil
tadalafil 30mg <a href="https://tadalaflynvvw.com/ ">dapoxetine tadalafil</a> tadalafil generic in usa
https://711casino.net/ 카지노사이트
https://711casino.net/baccaratsite/ 바카라사이트
https://711casino.net/ 온라인카지노
https://711casino.net/woori/ 우리카지노
https://711casino.net/totosite/ 토토사이트
https://711casino.net/pharaoh/ 파라오카지노
https://711casino.net/first/ 퍼스트카지노
https://711casino.net/merit/ 메리트카지노
https://711casino.net/totosite/ 스포츠토토사이트
https://711casino.net/ 카지노
https://711casino.net/ 라이브카지노
https://711casino.net/first/ F1카지노
https://711casino.net/first/ 개츠비카지노
https://711casino.net/merit/ 더킹카지노
https://711casino.net/slot-real/ 슬롯머신사이트
https://711casino.net/pharaoh/ 홀덤사이트
https://711casino.net/pharaoh/ 포커사이트
https://711casino.net/pharaoh/ IDN포커
https://711casino.net/pharaoh/ 온라인홀덤
https://711casino.net/pharaoh/ 온라인포
https://main7.net/ 카지노사이트
https://main7.net/baca/ 바카라사이트
https://main7.net/coin/ 코인카지노
https://main7.net/first/ 퍼스트카지노
https://main7.net/crazy/ 크레이지슬롯
https://main7.net/yes/ 샌즈카지노
https://main7.net/obama/ FM카지노
https://main7.net/theking/ 메리트카지노
https://main7.net/thenine/ 파라오카지노
https://main7.net/woori/ 우리카지노
https://main7.net/%ec%83%8c%ec%a6%8... 샌즈카지노
https://main7.net/%ec%b9%b4%ec%a7%8... 카지노사이트추천
https://main7.net/aria/ 아리아카지노
sildenafil 25 mg tablet <a href="https://zenviagrok.com/ ">generic sildenafil in us</a> sildenafil online purchase
sildenafil price in mexico <a href="https://tabviagrleo.com/ ">viagra capsule</a> 75 mg sildenafil
snyder order cenforce 150mg kayvirginia cenforce 200 price cenforce sildenafil -
cenforce 200 for sale [url=http://cenforcecenter.com/#]cenfor... 200mg online[/url] committeein cenforce 50
sildenafil 100 coupon <a href="https://vigrixvix.com/ ">sildenafil 12.5 mg</a> sildenafil 1000 mg
hi opp ggeis 2022 ert go fi
drinking while taking lisinopril <a href="https://lisinoprilseh.com/ ">hydrochlorothiazide when to take</a> solubility of hydrochlorothiazide https://lisinoprilseh.com/
metformin nedir <a href="https://metforminukx.com/ ">harga glucophage 500mg</a> metformin and levothroid https://metforminukx.com/
atenolol coq10 <a href="https://tenorminscx.com/ ">atenolol mitral valve prolapse</a> tenormin farmaco https://tenorminscx.com/
chronic renal failure and furosemide <a href="https://lasixyvf.com/ ">furosemide and ethacrynic acid</a> furosemide visual snow https://lasixyvf.com/
metronidazole koi <a href="https://flagylaqa.com/ ">can flagyl cure a std</a> metronidazole gel while pregnant https://flagylaqa.com/
tamoxifen duration breast cancer <a href="https://nolvadexsrm.com/ ">tamoxifen induced uterine cancer</a> natural alternative to tamoxifen https://nolvadexsrm.com/
treating allergic reaction to bactrim <a href="https://bactrimrol.com/ ">acne antibiotics bactrim</a> bactrim diluiГ§ao https://bactrimrol.com/
gabapentin 200 <a href="https://gabapentinujv.com/ ">gabapentin ataxia</a> neurontin administration https://gabapentinujv.com/
metformin everolimus <a href="https://metforminukx.com/ ">miscarriage on metformin</a> difference between glucophage xr and glucophage xr https://metforminukx.com/
affordable lipitor <a href="https://tenorminscx.com/ ">lipitor discounts</a> consecuencias lipitor https://tenorminscx.com/
lyrica cause weight gain <a href="https://lyricaxol.com/ ">pregabalin control</a> inject lyrica https://lyricaxol.com/
synthroid itchy rash <a href="https://synthroidsdu.com/ ">positives of synthroid</a> synthroid dosing https://synthroidsdu.com/
valacyclovir safety <a href="https://valtrexujd.com/ ">valtrex soleil</a> valtrex tier https://valtrexujd.com/
atorvastatin anxiety <a href="https://lipitorxer.com/ ">atorvastatin metformin</a> atorvastatin dizziness https://lipitorxer.com/
neurontin erfahrung <a href="https://gabapentinujv.com/ ">gabapentin er</a> gabapentin craving https://gabapentinujv.com/
wait for you lyrica <a href="https://lyricaxol.com/ ">you all over me lyrica</a> goodrx pregabalin https://lyricaxol.com/
lipitor yahoo <a href="https://tenorminscx.com/ ">lipitor professional</a> lipitor breathlessness https://tenorminscx.com/
tablets [url=https://www.walmart.com/ip/Cialis-T... porno[/url] etkenlerin milf porno salonlar