Hm, just when I thought this the mailing list for professional Common Lisp users.
Off the top of my hat: http://www.lispworks.com/documentation/HyperSpec/Body/11_abcb.htm Pascal Sent from my iPad > On 18 Nov 2013, at 08:51, Hans Hübner <hans.hueb...@gmail.com> wrote: > > Pascal, > > if you mean what you write, can you give some reasoning? > > -Hans > > > 2013/11/18 Pascal Costanza <p...@p-cos.net> >> DON'T TOUCH THE KEYWORDS PACKAGE! Are you crazy?!? >> >> This will be setting a very bad precedence. Just don't. Really! >> >> Pascal >> >> Sent from my iPad >> >> > On 18 Nov 2013, at 06:17, Faré <fah...@gmail.com> wrote: >> > >> > In ASDF 3.1.0.14, I introduced a macro :DBG (in uiop/utility.lisp). >> > Yes, it's in the keyword package. Why? >> > Because it's the one and only macro I want to be accessible from everywhere >> > without a prefix, yet without modifying existing defpackage forms to make >> > it accessible — because it's only used temporarily for debugging. >> > >> > :DBG is a macro for print-debugging. The syntax is >> > (:DBG tag forms... last-form) >> > The semantics is that if tag is true, print the tag, then for each >> > form, write its source and its values; return the values of the last >> > form. If tag is false, just evaluate the last form and return its >> > values. (Tag is typically a constant keyword or string, identifying >> > the point where values are printed.) >> > The expansion is rather space and time efficient, as far as the >> > semantics permit. >> > >> > I find :DBG soooo useful for print-debugging. I've seen tens of >> > variants of it, but every time with something not quite right in the >> > syntax, semantics or implementation. I just wanted one variant that >> > got everything right, and make it ubiquitous. Because when you need >> > it, you need it now, and there's no time to modify things to load an >> > additional library. And when you're done, you want minimal cleanup, >> > too: just delete the form, except maybe keep the last subform. >> > >> > Previously, I was using (uiop:uiop-debug) from uiop/utility which >> > allows you to load a magic file of your choice that defines a debug >> > mode. The default one I provided was mine, which define :DBG as DBG in >> > your current package (thereby avoiding symbol import issues). But that >> > still adds a new definition everytime and an extra line or form to >> > cleanup. >> > >> > I was recently convinced that using the keyword package instead makes >> > perfect sense: on the one hand, that's using a shared namespace that >> > it is polite to not pollute, but on the other hand, such a temporary >> > print-debugging macro the only use case I imagine of otherwise wanting >> > something to be immediately accessible without package prefixing yet >> > without modifying the package definition form. >> > >> > It's still time to remove that macro before the next release, but I >> > believe it's the right thing to include it, and maybe some of you will >> > agree with me and start using it, if not from the yet unrelease ASDF >> > 3.1.1, perhaps from a copy in your .sbclrc. >> > >> > —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• >> > http://fare.tunes.org >> > The common argument that crime is caused by poverty >> > is a kind of slander on the poor. >> > — H. L. Mencken >> > >