unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20636: 24.5; pcase: nil should be an UPattern
@ 2015-05-23 18:27 Philipp Stephani
  2015-05-24  0:25 ` Johan Bockgård
  0 siblings, 1 reply; 4+ messages in thread
From: Philipp Stephani @ 2015-05-23 18:27 UTC (permalink / raw)
  To: 20636


The pcase help says that SELFQUOTING is a UPattern.  This works for
e.g. t, but not for nil.  E.g.,

(pcase nil (nil 1))

raises a `setting-constant' signal.  I think that nil should be
supported as upattern.



In GNU Emacs 24.5.1 (x86_64-apple-darwin14.1.0, NS apple-appkit-1344.72)
 of 2015-04-12 on p
Configured using:
 `configure --prefix=/usr/local/Cellar/emacs/24.5
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs/24.5/share/info/emacs
 --with-file-notification=gfile --with-dbus --with-gnutls --with-rsvg
 --with-imagemagick --without-popmail --with-ns
 --disable-ns-self-contained'

Important settings:
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Entering debugger...
Back to top level.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
help-fns mail-prsvr mail-utils help-mode easymenu debug pcase xterm
time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel ns-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind gfilenotify cocoa ns multi-tty
emacs)

Memory information:
((conses 16 80412 6720)
 (symbols 48 17807 0)
 (miscs 40 34 132)
 (strings 32 10771 4791)
 (string-bytes 1 282032)
 (vectors 16 7394)
 (vector-slots 8 343172 26626)
 (floats 8 63 594)
 (intervals 56 193 6)
 (buffers 960 12))





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20636: 24.5; pcase: nil should be an UPattern
  2015-05-23 18:27 bug#20636: 24.5; pcase: nil should be an UPattern Philipp Stephani
@ 2015-05-24  0:25 ` Johan Bockgård
  2015-05-24 11:00   ` Philipp Stephani
  0 siblings, 1 reply; 4+ messages in thread
From: Johan Bockgård @ 2015-05-24  0:25 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 20636

Philipp Stephani <p.stephani2@gmail.com> writes:

> The pcase help says that SELFQUOTING is a UPattern.  This works for
> e.g. t

Actually, t is not self-matching; it is equivalent to _ (match
anything). But this "feature" seems to be undocumented.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20636: 24.5; pcase: nil should be an UPattern
  2015-05-24  0:25 ` Johan Bockgård
@ 2015-05-24 11:00   ` Philipp Stephani
  2016-07-01  2:42     ` npostavs
  0 siblings, 1 reply; 4+ messages in thread
From: Philipp Stephani @ 2015-05-24 11:00 UTC (permalink / raw)
  To: Johan Bockgård; +Cc: 20636

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

Johan Bockgård <bojohan@gnu.org> schrieb am So., 24. Mai 2015 um 02:27 Uhr:

> Philipp Stephani <p.stephani2@gmail.com> writes:
>
> > The pcase help says that SELFQUOTING is a UPattern.  This works for
> > e.g. t
>
> Actually, t is not self-matching; it is equivalent to _ (match
> anything). But this "feature" seems to be undocumented.
>
>
Thanks, I really wasn't aware of that! nil and t should work as QPatterns
(they are atoms), but the documentation about UPatterns seems less clear.
Specifically, 'self-quoting' doesn't seem to be an established or widely
known term.  The Elisp manual talks about 'self-evaluating forms' (anything
that is not a list or symbol), but 'self-quoting' in the `pcase' sense
seems to be a more comprehensive construct as it also includes keywords.
The Elisp manual talks about 'symbols acting like self-evaluating-forms' in
the following paragraph:

   The symbols `nil' and `t' are treated specially, so that the value
of `nil' is always `nil', and the value of `t' is always `t'; you
cannot set or bind them to any other values.  Thus, these two symbols
act like self-evaluating forms, even though `eval' treats them like any
other symbol.  A symbol whose name starts with `:' also self-evaluates
in the same way; likewise, its value ordinarily cannot be changed.

So this definition includes both keywords and nil and t. Ideally,
'self-quoting' in the pcase sense would have the same meaning (right now it
includes keywords but not nil or t). The documentation should really
enumerate all the forms exhaustively to make the definitions clearer.

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#20636: 24.5; pcase: nil should be an UPattern
  2015-05-24 11:00   ` Philipp Stephani
@ 2016-07-01  2:42     ` npostavs
  0 siblings, 0 replies; 4+ messages in thread
From: npostavs @ 2016-07-01  2:42 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 20636, Johan Bockgård

tags 20636 wontfix
close 20636
quit

In 20784 it was decided to that nil and t should not be valid patterns
at all (t is still supported as a match-all, but deprecated).





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-07-01  2:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-23 18:27 bug#20636: 24.5; pcase: nil should be an UPattern Philipp Stephani
2015-05-24  0:25 ` Johan Bockgård
2015-05-24 11:00   ` Philipp Stephani
2016-07-01  2:42     ` npostavs

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).