I completely agree with what you said here, John.  We both took a good look, 
but you squinted with your right eye, and I with my left. :-)  Either point of 
view is correct; the two together yield depth perception.  Yay!

> On May 3, 2019, at 4:21 PM, John Rose <john.r.r...@oracle.com> wrote:
> 
> On Apr 29, 2019, at 8:48 AM, Guy Steele <guy.ste...@oracle.com> wrote:
>> 
>>> On Apr 28, 2019, at 4:32 PM, Brian Goetz <brian.go...@oracle.com> wrote:
>>> 
>>> . . .
>>> Looking ahead to the next round, we can build on this.  In the first round, 
>>> we mistakenly thought that there was something that could reasonably be 
>>> called a “raw” string, but this notion is a fantasy; no string literal is 
>>> so raw that it can’t recognize its closing delimiter.  So “rawness” is 
>>> really only a matter of degree.  
>> 
>> This is _almost_ true.  If a string is truly raw (that is, it can contain 
>> _anything_), then one absolutely cannot depend on recognizing the closing 
>> delimiter by examining what might be the raw content.
>> 
>> Put another way: one cannot determine how long the raw content is by 
>> examining it.  That’s a solid principle.
> 
> I'm going to be nit-picky here and refer to my earlier
> mentions of the paradigm of strong quoting, which
> at its heart simply means you have an infinite set of
> delimiters to choose from, when wrapping a payload
> into a literal syntax.
> 
> Adding a numeral to the open quote means that there
> are now an unbounded set of open quotes, so it is an
> instance of strong quoting.  Another instance of strong
> quoting adds nonces, and yet another just lengthens
> the quote pattern until it doesn't occur (anywhere) in
> the raw string payload.
> 
> The numeric prefix convention is different from other
> kinds of strong quoting conventions, in that the end-quote
> can be a substring of the payload.  Actually, the end-quote
> is most naturally the empty string, which is a substring
> of every string.
> 
> The numeric prefix convention and other strong-quote
> conventions all share a common property:  The convention
> as a whole is universal for arbitrary payloads, but for
> any given payload there are quotes which work and others
> that don't work.  In the case of the numeric prefix
> convention, once you choose an open-quote (with
> numeral) you are limited to payloads of that length.
> That's not quite a "raw string" any more, since it's
> suitable only for a fixed-sized character field.
> Likewise, once you choose a particular nonce-based
> or patterned quote (e.g., seven double-quotes),
> payloads containing the corresponding end-quote
> as a substring are no longer suitable.
> 
> Once you pick a particular payload string, the next
> question is whether you can embed that particular
> string into your program without inserting escape
> sequences.  Only with a strong quote scheme of
> some sort is this possible.  But, with any of several
> strong quote schemes, it is possible to dispense
> with escapes for any given string; it is not a fantasy.
> 
> — John

Reply via email to