From: Alan Mackenzie <acm@muc.de>
To: Anna Glasgall <anna@crossproduct.net>
Cc: emacs-devel@gnu.org
Subject: Re: "Raw" string literals for elisp
Date: Wed, 8 Sep 2021 21:28:08 +0000 [thread overview]
Message-ID: <YTkq6LrlqbUKC2AZ@ACM> (raw)
In-Reply-To: <c539acf4a29f85e82c138706e7146dd537eb8534.camel@crossproduct.net>
Hello, Anna.
On Wed, Sep 08, 2021 at 16:40:09 -0400, Anna Glasgall wrote:
> On Tue, 2021-09-07 at 21:49 -0400, Anna Glasgall wrote:
[ .... ]
> Alan (Dr. Mackenzie? Forgive me, not sure what standards are here),
Just "Alan" is fine. No, I don't have a PhD. :-) Young or old, novice
or experienced, we just use first names around here. What is unwanted is
unkind or hostile language, and curse words are not accepted at all, and
never appear. But you don't seem like you want to write that way anyhow.
;-)
> your point about strings ending in \ is very well taken and I'm frankly
> not sure what the easiest path forward here is. Having "raw literals
> cannot end in a \" is a weird and unpleasant restriction, although the
> fact that it is one that Python places on r-strings (to my considerable
> surprise; I've been using Python since the mid-00s and have never run
> across this particular syntax oddity before) may mean that it is
> perhaps not so bad.
I think it would be bad in Emacs. Sooner or later somebody will be
writing a regexp to match another regexp, and not being able to end in \
could be quite awkward.
Maybe giving consideration to using the C# convention of representing a "
in a raw string by "" would be advantageous. Even this isn't entirely
simple, since a raw string with two "s in it would look something like
#r"foo""""". From after the #r", to find the end of the raw string,
you'd have to search for the first occurrence of an odd number of
consecutive "s, which isn't entirely trivial. It might be a rare
occurrence, but you've still got to handle it.
Or, maybe something like the python convention: #r"......""", though this
looks and feels somewhat wierd.
> The C++ concept of allowing r-strings to specify their own delimiters
> is perhaps maximally flexible, but is definitely going to be a heavier
> lift to implement than any of the above. I'd love to hear people's
> opinions on the merits of the various possible approaches here.
When implementing the C++ raw strings, that flexibility caused me a lot
of grief. For example, changing text in the middle of a C++ raw string,
I had to check the new text didn't, by chance, form a closing delimiter
matching the opening one. I would recommend not implementing anything
like the C++ raw string identifiers.
> You've all given me a great deal of food for thought, which I will
> attempt to digest before spinning a new revision of this patch.
> thanks,
> Anna
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2021-09-08 21:28 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-08 1:49 "Raw" string literals for elisp Anna Glasgall
2021-09-08 7:10 ` Po Lu
2021-09-08 14:19 ` Anna Glasgall
2021-09-08 7:12 ` Lars Ingebrigtsen
2021-09-08 14:20 ` Anna Glasgall
2021-09-08 11:30 ` Alan Mackenzie
2021-09-08 14:27 ` Anna Glasgall
2021-09-08 11:34 ` Adam Porter
2021-09-08 13:59 ` Clément Pit-Claudel
2021-09-08 14:12 ` Adam Porter
2021-09-09 3:09 ` Richard Stallman
2021-09-08 13:10 ` Stefan Monnier
2021-09-08 14:31 ` Anna Glasgall
2021-09-08 15:27 ` Mattias Engdegård
2021-09-08 15:41 ` Stefan Kangas
2021-09-08 16:45 ` Mattias Engdegård
2021-09-08 16:01 ` Alan Mackenzie
2021-09-08 18:24 ` Mattias Engdegård
2021-09-08 19:00 ` Alan Mackenzie
2021-09-08 19:22 ` Philip Kaludercic
2021-09-08 19:36 ` Alan Mackenzie
2021-09-08 21:11 ` Stefan Kangas
2021-09-08 21:24 ` Philip Kaludercic
2021-09-09 6:52 ` tomas
2021-09-08 15:54 ` Stefan Kangas
2021-09-08 16:05 ` tomas
2021-09-08 16:42 ` Lars Ingebrigtsen
2021-09-08 20:08 ` Stefan Monnier
2021-09-08 20:18 ` Stefan Monnier
2021-09-09 7:04 ` tomas
2021-09-09 10:30 ` Mattias Engdegård
2021-09-09 11:36 ` Stefan Kangas
2021-09-09 13:33 ` Mattias Engdegård
2021-09-09 14:32 ` tomas
2021-09-14 10:43 ` Augusto Stoffel
2021-09-14 11:42 ` Ihor Radchenko
2021-09-14 13:18 ` Stefan Monnier
2021-09-14 13:22 ` Stefan Kangas
2021-09-14 14:01 ` Ihor Radchenko
2021-09-14 14:39 ` Clément Pit-Claudel
2021-09-14 15:33 ` Amin Bandali
2021-09-14 16:05 ` Eli Zaretskii
2021-09-14 17:49 ` Jose E. Marchesi
2021-09-08 20:40 ` Anna Glasgall
2021-09-08 21:28 ` Alan Mackenzie [this message]
2021-10-02 21:03 ` Daniel Brooks
2021-10-04 0:13 ` Richard Stallman
2021-10-04 0:36 ` Daniel Brooks
2021-10-04 12:00 ` Eli Zaretskii
2021-10-04 15:36 ` character sets as they relate to “Raw” " Daniel Brooks
2021-10-04 16:34 ` Stefan Monnier
2021-10-04 20:49 ` Daniel Brooks
2021-10-04 21:19 ` Alan Mackenzie
2021-10-04 22:19 ` Daniel Brooks
2021-10-05 11:20 ` Alan Mackenzie
2021-10-05 17:08 ` Daniel Brooks
2021-10-06 20:54 ` Richard Stallman
2021-10-07 7:01 ` Eli Zaretskii
2021-10-05 8:55 ` Yuri Khan
2021-10-05 16:25 ` Juri Linkov
2021-10-05 17:15 ` Eli Zaretskii
2021-10-05 18:40 ` [External] : " Drew Adams
2021-10-06 20:54 ` Richard Stallman
2021-10-07 6:54 ` Eli Zaretskii
2021-10-07 13:14 ` Stefan Kangas
2021-10-07 13:34 ` Eli Zaretskii
2021-10-07 14:48 ` Stefan Kangas
2021-10-07 16:00 ` Eli Zaretskii
2021-10-08 0:37 ` Stefan Kangas
2021-10-08 6:53 ` Eli Zaretskii
2021-10-08 15:09 ` Display of em dashes in our documentation Stefan Kangas
2021-10-08 16:12 ` Eli Zaretskii
2021-10-08 17:17 ` Stefan Kangas
2021-10-10 8:00 ` Juri Linkov
2021-10-08 17:27 ` Daniel Brooks
2021-10-08 18:26 ` [External] : " Drew Adams
2021-10-08 17:17 ` character sets as they relate to “Raw” string literals for elisp Alan Mackenzie
2021-10-08 17:42 ` Eli Zaretskii
2021-10-08 18:47 ` Eli Zaretskii
2021-10-08 20:01 ` Alan Mackenzie
2021-10-09 6:18 ` Eli Zaretskii
2021-10-09 10:57 ` Alan Mackenzie
2021-10-09 11:49 ` Eli Zaretskii
2021-10-09 13:08 ` Alan Mackenzie
2021-10-09 13:15 ` Eli Zaretskii
2021-10-09 15:07 ` Alan Mackenzie
2021-10-11 0:45 ` linux console limitations Daniel Brooks
2021-10-12 10:18 ` Alan Mackenzie
2021-10-14 4:05 ` Daniel Brooks
2021-10-10 8:03 ` character sets as they relate to “Raw” string literals for elisp Juri Linkov
2021-10-05 18:23 ` [External] : " Drew Adams
2021-10-05 19:13 ` Stefan Kangas
2021-10-05 19:20 ` Drew Adams
2021-10-05 17:13 ` Daniel Brooks
2021-10-05 12:04 ` Eli Zaretskii
2021-10-05 21:20 ` Richard Stallman
2021-10-05 22:13 ` Daniel Brooks
2021-10-06 12:13 ` Eli Zaretskii
2021-10-06 18:57 ` Daniel Brooks
2021-10-07 4:23 ` Eli Zaretskii
2021-10-07 22:27 ` Richard Stallman
2021-10-08 10:37 ` Po Lu
2021-10-08 10:53 ` Basil L. Contovounesios
2021-10-08 11:27 ` tomas
2021-10-05 22:25 ` character sets as they relate to “Raw†" Stefan Kangas
2021-10-06 6:21 ` Daniel Brooks
2021-10-07 22:20 ` Richard Stallman
2021-10-06 12:29 ` Eli Zaretskii
2021-10-06 12:52 ` Stefan Kangas
2021-10-06 13:10 ` Jean-Christophe Helary
2021-10-06 11:53 ` character sets as they relate to “Raw” " Eli Zaretskii
2021-10-04 18:57 ` Eli Zaretskii
2021-10-04 19:14 ` Yuri Khan
2021-10-05 21:20 ` Richard Stallman
2021-10-06 3:48 ` character sets as they relate to “Raw†" Matthew Carter
2021-10-04 22:29 ` "Raw" " Richard Stallman
2021-10-05 5:39 ` Daniel Brooks
2021-10-05 5:43 ` Jean-Christophe Helary
2021-10-05 8:24 ` Richard Stallman
2021-10-05 12:23 ` Eli Zaretskii
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=YTkq6LrlqbUKC2AZ@ACM \
--to=acm@muc.de \
--cc=anna@crossproduct.net \
--cc=emacs-devel@gnu.org \
/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.