emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Save `nil' from the mutant void, preserve the truth of falsehood, pr


From: MON KEY
Subject: Re: Save `nil' from the mutant void, preserve the truth of falsehood, prevent the falsehood of truth
Date: Tue, 14 Sep 2010 01:11:09 -0400

On Mon, Sep 13, 2010 at 5:52 AM, Stefan Monnier
<address@hidden> wrote:
>> `#1=', and related reader syntax constructs aren't bad.
>
> In source code, they are.

I'll assume you are speaking only of #=<N> syntax.

> In source code, you have other ways to express sharing, such as `let', which
> are much preferred.

No doubt this is true for "top-level" shared/circular structure.
But what of lisp source code that evaluates to the non-preferred format?
I doubt the distinction is always quite so clear (or detectable).

>
>> Indeed, they are quite prevalent in byte-code files and the language
>> would be hamstrung without them.
>
> Which language?

The one comprised of s-expressions Printed for Read to Evaluate ad nauseam.

> Note that AFAIC .el and .elc files use 2 different languages.
>
>

Hrmmm.
Is there a know non-lisp interpreter for the non-lisp one?
Is it distributed with Emacs?
What is its license?
Where can I find its source code?

>> No, the argument to `unintern' can be a symbol or string.
>
> Who cares, it's still not a boolean.

So would you agree then that where `fboundp' shouldn't take a boolean neither
should `unitern'?

>
>>> - calling unintern without an obarray arg is a bad idea.
>> Yeah,
>

This elision conveniently ignores my caveats w/re the current use value of
Emacs "other" obarrays...

>
> So: why do you do it?
>

Why do i do what, unintern? To unintern a symbol of course :P
More specifically, redefining button-types and faces are good uses.

>> Yeah, but again there is the weird corner case of interning the 0
>> length string.
>
> What's weird about it?

Whats not?

(identity (intern ""))
;=>

(put (identity (intern-soft ""))
     (identity (intern-soft ""))
     (identity (intern-soft "")))
;=>

(get (identity (intern-soft ""))
     (identity (intern-soft "")))
;=>

(setq 0len (symbol-plist (identity (intern-soft ""))))
;=> ( )

(symbol-value '0len)
=> ( )

(car (symbol-value '0len))
=>

More specifically, what is the utility?

>
>        Stefan
>

On Mon, Sep 13, 2010 at 5:52 AM, Stefan Monnier
<address@hidden> wrote:
>> `#1=', and related reader syntax constructs aren't bad.
>
> In source code, they are.  In source code, you have other ways to
> express sharing, such as `let', which are much preferred.
>
>> Indeed, they are quite prevalent in byte-code files and the language
>> would be hamstrung without them.
>
> Which language?  Note that AFAIC .el and .elc files use
> 2 different languages.
>
>>> - unintern takes a symbol as argument, not a boolean, so it should
>>> not be called with the return value of (fboundp ...)
>> No, the argument to `unintern' can be a symbol or string.
>
> Who cares, it's still not a boolean.
>
>>> - calling unintern without an obarray arg is a bad idea.
>> Yeah,
>
> So: why do you do it?
>
>>> Maybe we should make the second argument mandatory.
>> That would be nice.
>
> Indeed.
>
>>> since `intern' only takes a string rather than a symbol.
>> Yeah, but again there is the weird corner case of interning the 0
>> length string.
>
> What's weird about it?
>
>
>        Stefan
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]