* bug#20643: 24.5; Please improve documentation of `pcase-let'
@ 2015-05-24 10:36 Philipp Stephani
2015-05-25 2:39 ` Stefan Monnier
0 siblings, 1 reply; 4+ messages in thread
From: Philipp Stephani @ 2015-05-24 10:36 UTC (permalink / raw
To: 20643
The documentation of `pcase-let' is very terse. Please expand it to
state what happens to each binding in the case that the pattern of a
binding matches, in the case where it doesn't match, and in the case
where there are no binding constructs in a pattern.
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: Emacs-Lisp
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:
Auto-saving...done
Mark set
Sending...
Mark set [2 times]
Sending via mail...
Sending email
Sending email done
gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated.
Sending...done
Load-path shadows:
None found.
Features:
(eieio-opt speedbar sb-image ezimage dframe find-func gnutls
network-stream starttls tls mailalias smtpmail auth-source eieio
byte-opt bytecomp byte-compile cl-extra cconv eieio-core password-cache
cus-edit cus-start cus-load wid-edit cl-loaddefs cl-lib help-mode pp
shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils warnings help-fns files-x 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 121758 16283)
(symbols 48 21489 1)
(miscs 40 70 436)
(strings 32 20572 5003)
(string-bytes 1 573284)
(vectors 16 11348)
(vector-slots 8 377433 8228)
(floats 8 77 372)
(intervals 56 1062 144)
(buffers 960 20))
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#20643: 24.5; Please improve documentation of `pcase-let'
2015-05-24 10:36 bug#20643: 24.5; Please improve documentation of `pcase-let' Philipp Stephani
@ 2015-05-25 2:39 ` Stefan Monnier
2015-06-21 13:10 ` Philipp Stephani
0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2015-05-25 2:39 UTC (permalink / raw
To: Philipp Stephani; +Cc: 20643
> The documentation of `pcase-let' is very terse. Please expand it to
> state what happens to each binding in the case that the pattern of a
> binding matches, in the case where it doesn't match, and in the case
> where there are no binding constructs in a pattern.
I added:
The macro is expanded and optimized under the assumption that those
patterns *will* match, so a mismatch may go undetected or may cause
any kind of error."
-- Stefan
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#20643: 24.5; Please improve documentation of `pcase-let'
2015-05-25 2:39 ` Stefan Monnier
@ 2015-06-21 13:10 ` Philipp Stephani
2015-06-22 1:23 ` Stefan Monnier
0 siblings, 1 reply; 4+ messages in thread
From: Philipp Stephani @ 2015-06-21 13:10 UTC (permalink / raw
To: Stefan Monnier; +Cc: 20643
[-- Attachment #1: Type: text/plain, Size: 675 bytes --]
Stefan Monnier <monnier@iro.umontreal.ca> schrieb am Mo., 25. Mai 2015 um
04:39 Uhr:
> > The documentation of `pcase-let' is very terse. Please expand it to
> > state what happens to each binding in the case that the pattern of a
> > binding matches, in the case where it doesn't match, and in the case
> > where there are no binding constructs in a pattern.
>
> I added:
>
> The macro is expanded and optimized under the assumption that those
> patterns *will* match, so a mismatch may go undetected or may cause
> any kind of error."
>
>
>
Thanks. Though I think it would be better to be more defensive and
guarantee to raise a signal in the case of a mismatch.
[-- Attachment #2: Type: text/html, Size: 1023 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#20643: 24.5; Please improve documentation of `pcase-let'
2015-06-21 13:10 ` Philipp Stephani
@ 2015-06-22 1:23 ` Stefan Monnier
0 siblings, 0 replies; 4+ messages in thread
From: Stefan Monnier @ 2015-06-22 1:23 UTC (permalink / raw
To: Philipp Stephani; +Cc: 20643
> Thanks. Though I think it would be better to be more defensive and
> guarantee to raise a signal in the case of a mismatch.
If you want that, you need to use pcase, or pcase-exclusive.
This is a judgment call, but it lets pcase-let generate significantly
shorter and more efficient code and hence better serve the expected
common case.
Stefan
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-06-22 1:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-24 10:36 bug#20643: 24.5; Please improve documentation of `pcase-let' Philipp Stephani
2015-05-25 2:39 ` Stefan Monnier
2015-06-21 13:10 ` Philipp Stephani
2015-06-22 1:23 ` Stefan Monnier
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).