I for one have never understood the anal compulsiveness* of many Lispers over package sanctity.
* Does it solve a problem, or is it just aneatness obsession? Dis donc, francois, how did you handle source that might be a good-sized little sexpr? -- His Professionalness On Mon, Nov 18, 2013 at 3:44 AM, Alessio Stalla <alessiosta...@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 <p...@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.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 >>> > >>> >>> >> > > > -- > Some gratuitous spam: > > http://ripple.com <http://ripple-project.org> 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 >