[asdf-devel] Re: :DBG

Pascal Costanza pc at p-cos.net
Mon Nov 18 08:58:33 UTC 2013

Last time I checked, asdf was not a debugging or utilities library.

Fare's reasoning is also flawed. The problem stated in the claim "because when you need it, you need it now" is not solved with his suggestion, because it assumes that you have the right version of asdf loaded. Otherwise it is actually not available "now".

How people debug code is a highly personal and subjective choice. No matter how much Fare tries to make a variant that "gets everything right", he will fail, because what is right for him may not be right for others.

His hidden agenda seems to be to piggy back on the widespread use of asdf and force his views on how things "should" be done on the Lisp community.

I have already considered removing asdf completely from my workflow in the past. If asdf starts to mess with such fundamental rules for allowing indepently developed code to coexist, then it will be the final blow for me.


Sent from my iPad

> On 18 Nov 2013, at 09:44, Alessio Stalla <alessiostalla at gmail.com> wrote:
> Well, Faré is obviously well aware of that, and has given an explanation for why he is willing to "break the rules" this particular time. So "don't dare touch the keywords package!" does not seem the right answer to me...
> Faré, I understand your points, what fails me is: if this is a debug macro nobody won't ever use in production code, why make it available in a library at all? Why couldn't it simply live in your rc file? Or, you could include it in uiop with a non-keyword name, and only bind it to :dbg in your own environment. I fail to understand why you'd want to it be available everywhere, everytime... and for everyone as well!
> Alessio
>> On Mon, Nov 18, 2013 at 9:28 AM, Pascal Costanza <pc at p-cos.net> wrote:
>> 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.huebner at gmail.com> wrote:
>>> Pascal,
>>> if you mean what you write, can you give some reasoning?
>>> -Hans
>>> 2013/11/18 Pascal Costanza <pc at p-cos.net>
>>>> 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é <fahree at gmail.com> wrote:
>>>> >
>>>> > In ASDF, 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
>>>> >
> -- 
> Some gratuitous spam:
> http://ripple.com Ripple, social credit system
> http://common-lisp.net/project/armedbear ABCL, Common Lisp on the JVM
> http://code.google.com/p/tapulli my Lisp open source projects
> http://www.manydesigns.com/ ManyDesigns Portofino, open source model-driven Java web application framework
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20131118/48d24b82/attachment.html>

More information about the asdf-devel mailing list