Subject: Re: bug#7146: (make-symbol "") issues

From: Johan Bockgård <[email-masked]>
Date: Sun, 03 Oct 2010 12:28:55 +0200

Chong Yidong <[email-masked]> writes:

> Frank <[email-masked]> writes:
>
>> 1) Start `emacs -Q'
>> 2) Load the file bug.el into a buffer via the menu
>> 3) <M-x> byte-compile-file
>> 4) <M-x> load-file bug.elc
>> 5) <C-x b> *scratch*
>> 6) (foo) *** emacs crashes or foo returns some odd number ***
>
> I assume by (foo) you mean typing "(foo)" and doing C-j or C-x C-e.
>
> I'm afraid I don't see any crash.  The number 6 appears in the echo
> area, that's all.

The problem is that there is no read syntax for a symbol with an empty
name, so it can't reliably be printed to a string (file) and read back.

  (symbol-name (aref [#: x] 0)) => "x" ; This is what happens in the report.

  but (symbol-name (aref [#:] 0)) => ""

You could change the reader to somehow recognize the first case. The
problem would come back if you changed `make-symbol' to `intern',
though, since it really prints as nothing at all.