From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: MON KEY Newsgroups: gmane.emacs.devel 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 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1284441082 28907 80.91.229.12 (14 Sep 2010 05:11:22 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 14 Sep 2010 05:11:22 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Sep 14 07:11:21 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OvNnc-0002bk-F7 for ged-emacs-devel@m.gmane.org; Tue, 14 Sep 2010 07:11:20 +0200 Original-Received: from localhost ([127.0.0.1]:36520 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OvNnb-00031o-OC for ged-emacs-devel@m.gmane.org; Tue, 14 Sep 2010 01:11:19 -0400 Original-Received: from [140.186.70.92] (port=39335 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OvNnU-00030b-FP for emacs-devel@gnu.org; Tue, 14 Sep 2010 01:11:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OvNnT-000817-6b for emacs-devel@gnu.org; Tue, 14 Sep 2010 01:11:12 -0400 Original-Received: from mail-ww0-f49.google.com ([74.125.82.49]:59955) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OvNnT-000813-2b for emacs-devel@gnu.org; Tue, 14 Sep 2010 01:11:11 -0400 Original-Received: by wwb24 with SMTP id 24so7699232wwb.30 for ; Mon, 13 Sep 2010 22:11:09 -0700 (PDT) Original-Received: by 10.227.138.7 with SMTP id y7mr2470191wbt.133.1284441069388; Mon, 13 Sep 2010 22:11:09 -0700 (PDT) Original-Received: by 10.216.65.140 with HTTP; Mon, 13 Sep 2010 22:11:09 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: vawhKylFGLcJDqdPvVkOz1GRN9Q X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:130116 Archived-At: On Mon, Sep 13, 2010 at 5:52 AM, Stefan Monnier wrote: >> `#1=3D', and related reader syntax constructs aren't bad. > > In source code, they are. I'll assume you are speaking only of #=3D syntax. > In source code, you have other ways to express sharing, such as `let', wh= ich > 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 neith= er 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 "")) ;=3D> (put (identity (intern-soft "")) (identity (intern-soft "")) (identity (intern-soft ""))) ;=3D> (get (identity (intern-soft "")) (identity (intern-soft ""))) ;=3D> (setq 0len (symbol-plist (identity (intern-soft "")))) ;=3D> ( ) (symbol-value '0len) =3D> ( ) (car (symbol-value '0len)) =3D> More specifically, what is the utility? > > Stefan > On Mon, Sep 13, 2010 at 5:52 AM, Stefan Monnier wrote: >> `#1=3D', and related reader syntax constructs aren't bad. > > In source code, they are. =C2=A0In 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? =C2=A0Note 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? > > > =C2=A0 =C2=A0 =C2=A0 =C2=A0Stefan >