all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Steve Yegge <steve.yegge@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: proposal to make null string handling more emacs-y
Date: Fri, 27 Apr 2012 12:05:32 -0700	[thread overview]
Message-ID: <CAGtm15ntnkSBNiLeSYCQ8OUm+oQNA0NqZxvqeT1TGwPJjjwqgw@mail.gmail.com> (raw)
In-Reply-To: <83zk9xheam.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2153 bytes --]

On Thu, Apr 26, 2012 at 11:36 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> > Date: Thu, 26 Apr 2012 21:17:36 -0700
> > From: Steve Yegge <steve.yegge@gmail.com>
> > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
> >
> > But type errors are for *developers*.  They are supposed to happen at
> > compile time.  When you're running the byte compiler or the unit tests,
> you
> > want it to fail loudly and early.
>
> This is Lisp, not C++ or even Java.  Some Lisp code is never compiled
> at all.  A notable example is the code you put in .emacs.


Perhaps we need a strict mode, then.


> > But when you ship the software, and it's in the hands of end-users
> > who may not be able to debug it, then unless it's running a nuclear
> > reactor or an airplane, you want the software to be robust.  Your
> > browser shouldn't crash because of a misbehaved site; your web page
> > shouldn't fail to load because of a misbehaved widget; your CAD
> > program shouldn't stop functioning because of a misbehaved polygon.
> > Yes, the resulting bug will be annoying, but it's far less annoying
> > than having your work interrupted altogether.
>
> I don't think you can have an interpreted language without runtime
> exceptions.  In Lisp, if you want robust programs, you need to catch
> exceptions and do something reasonable.  Asking to avoid exceptions
> altogether is IMO impractical.
>

I agree with you.  Fortunately that's not what I'm arguing.  I'm arguing
that
for a very specific corner of the type system, we merge two separate
meanings of nil.  I'm arguing that the empty string as it is used today is,
for all intents, just another nil.  So it should not signal an error if
they are
treated the same.


> > Similarly, I see a whole bunch of file-name manipulation functions that
> > accept the empty string as an argument.  But the empty string has no
> > semantic meaning whatsoever as a valid filename.  Without any semantic
> > meaning, it's arguably a bug to pass one in.
>
> The usual Emacs semantics for an empty file name is that it stands for
> the current directory.
>

 That sounds like a wonderful semantics for a nil filename.

-steve

[-- Attachment #2: Type: text/html, Size: 3192 bytes --]

  reply	other threads:[~2012-04-27 19:05 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-25  0:24 proposal to make null string handling more emacs-y Steve Yegge
2012-04-25  4:45 ` Karl Fogel
2012-04-25  6:28 ` Miles Bader
2012-04-25  6:34   ` Miles Bader
2012-04-25 13:21   ` Ted Zlatanov
2012-05-01 22:01     ` Randal L. Schwartz
2012-04-25  7:53 ` Helmut Eller
2012-04-25  8:22 ` Eli Zaretskii
2012-04-25 14:28   ` Stefan Monnier
2012-04-25 14:35     ` Eli Zaretskii
2012-04-25 15:30       ` Stefan Monnier
2012-04-25 16:41         ` Miles Bader
2012-04-25 16:45         ` Andreas Schwab
2012-04-25 16:46         ` Juanma Barranquero
2012-04-26 21:20         ` Steve Yegge
2012-04-26 22:11           ` Miles Bader
2012-04-26 23:52             ` Steve Yegge
2012-04-27  0:29               ` Miles Bader
2012-04-27  3:20                 ` Jeremiah Dodds
2012-04-27  3:41                   ` Miles Bader
2012-04-27  3:59                     ` Jeremiah Dodds
2012-04-27  4:24                       ` Miles Bader
2012-04-27  8:49                         ` Thien-Thi Nguyen
2012-04-27 14:23                         ` Nix
2012-04-28  2:07                         ` Better startup error handling (was: proposal to make null string handling more emacs-y) Stefan Monnier
2012-04-28 12:04                           ` Better startup error handling Nix
2012-04-28 15:16                             ` Stefan Monnier
2012-04-28 15:42                               ` David Engster
2012-04-28 15:55                               ` Drew Adams
2012-04-28 19:39                                 ` Stefan Monnier
2012-04-28 17:26                           ` Lars Magne Ingebrigtsen
2012-04-30  8:43                           ` Christian Lynbech
2012-04-30  9:18                             ` chad
2012-04-27 16:35                   ` proposal to make null string handling more emacs-y Richard Stallman
2012-04-27  1:10           ` Stefan Monnier
2012-04-27  1:16             ` Lars Magne Ingebrigtsen
2012-04-27 16:35               ` Richard Stallman
2012-04-28 11:13                 ` Eli Barzilay
2012-04-28 17:02                   ` Richard Stallman
2012-04-28 19:48                     ` Stefan Monnier
2012-04-28 21:56                     ` Eli Barzilay
2012-06-03  3:45                       ` Richard Stallman
2012-04-27  4:17             ` Steve Yegge
2012-04-27  6:36               ` Eli Zaretskii
2012-04-27 19:05                 ` Steve Yegge [this message]
2012-04-27 21:24                   ` Drew Adams
2012-04-28  4:43                     ` Steve Yegge
2012-04-28  6:58                       ` Andreas Schwab
2012-04-29 21:26                   ` Odd formatting (was: proposal to make null string handling more emacs-y) Lars Magne Ingebrigtsen
2012-04-30  7:48                     ` Odd formatting Steinar Bang
2012-04-30 10:14                       ` Antoine Levitt
2012-04-30 13:27                         ` Nix
2012-04-28  2:02               ` proposal to make null string handling more emacs-y Stefan Monnier
2012-04-25 14:51 ` Lars Magne Ingebrigtsen
2012-04-29 17:00 ` Andreas Röhler
2012-04-29 17:08   ` Drew Adams
2012-04-29 17:29     ` Andreas Röhler
2012-04-29 18:01       ` Drew Adams
2012-04-29 19:51       ` PJ Weisberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGtm15ntnkSBNiLeSYCQ8OUm+oQNA0NqZxvqeT1TGwPJjjwqgw@mail.gmail.com \
    --to=steve.yegge@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.