unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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).