9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Rob Pike" <robpike@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: [9fans] speaking of kenc
Date: Fri, 27 Apr 2007 07:41:10 -0700	[thread overview]
Message-ID: <7359f0490704270741i76150820yb43bdae6603e83bc@mail.gmail.com> (raw)
In-Reply-To: <eada9dbbf85f37aabb76006763392fcf@coraid.com>

\u doesn't add anything useful to the plan 9 c compiler because of the
way its input language is defined.  it is useful in c99, because of the
way its input language is defined.

in plan 9, each escape sequence in a string constant represents a
unicode code point.  "\x1234" represents a string with a single
character with value 0x1234.  but in c99, that is an erroneous
string because each escape sequence represents a byte. thus
to represent a unicode value, one is expected to write out the
utf-8 byte sequence.  plan 9's "\x1234" becomes, in c99,
"\xe1\x88\xb4".  the \u escapes were created to give plan 9's
functionality without breaking compatibility with the existing
implicit meaning of the \x escapes.

this subject is quite long and involved - where does utf-8 fit in?
how does source encoding interact with internal representation?
output encoding? etc. etc. - but the key point about \u is that
it makes sense in a utf-8 world with standard c and c++.

plan 9's c is very non-standard in this regard.  i prefer its design
but i don't find \u to be a bad solution.  there are a number of
related notations in the standards pipeline to deal with some of
the other issues, such as forcing utf-8 byte sequences. the
notation is going to get pretty ugly.

-rob


  reply	other threads:[~2007-04-27 14:41 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-27  3:08 erik quanstrom
2007-04-27  3:44 ` David Leimbach
2007-04-27  4:56   ` Bruce Ellis
2007-04-27  6:21     ` Skip Tavakkolian
2007-04-27  4:54 ` Joel C. Salomon
2007-04-27  4:58   ` Bruce Ellis
2007-04-27 11:00   ` Charles Forsyth
2007-04-27 13:49     ` David Leimbach
2007-04-27 16:23       ` Douglas A. Gwyn
2007-04-29  2:02         ` erik quanstrom
2007-04-29  2:55           ` Tim Wiess
2007-04-29  6:42             ` Uriel
2007-04-29 20:47           ` Charles Forsyth
2007-04-30  8:29           ` Douglas A. Gwyn
2007-04-30 13:08             ` Uriel
2007-05-01  0:22             ` erik quanstrom
2007-05-01 14:45               ` Jon Snader
2007-05-01 14:56                 ` Devon H. O'Dell
2007-05-01 15:12                   ` erik quanstrom
2007-05-01 15:29                     ` Devon H. O'Dell
2007-05-01 21:32                   ` Jon Snader
2007-05-02  0:04                   ` Derek Fawcus
2007-05-02  8:44                     ` Charles Forsyth
2007-05-01 15:51                 ` Anthony Sorace
2007-05-02  8:32                   ` Douglas A. Gwyn
2007-05-02  9:00                     ` Steve Simon
2007-05-03  1:32                       ` David Arnold
2007-05-03  3:39                         ` Adrian Tritschler
2007-05-03  3:57                           ` Paul Lalonde
2007-05-03  4:11                             ` Federico Benavento
2007-05-03 13:34                               ` Anthony Sorace
2007-05-03 22:04                               ` LiteStar numnums
2007-05-04  1:45                               ` Roman Shaposhnick
2007-05-04  1:51                                 ` Lyndon Nerenberg
2007-05-04  2:00                                 ` erik quanstrom
2007-05-04  2:08                                   ` Roman Shaposhnick
2007-05-04  2:12                                     ` Lyndon Nerenberg
2007-05-04  2:20                                       ` Roman Shaposhnick
2007-05-04  2:35                                         ` Lyndon Nerenberg
2007-05-04  6:53                                           ` Bruce Ellis
2007-05-05  4:49                                             ` Roman Shaposhnick
2007-05-05  5:11                                           ` Roman Shaposhnick
2007-05-05  5:14                                             ` Bruce Ellis
2007-05-05 18:52                                               ` erik quanstrom
2007-05-05 19:13                                                 ` lucio
2007-05-05 23:09                                                   ` Bruce Ellis
2007-05-06  1:24                                                     ` Rogelio Serrano
2007-05-06  4:08                                                   ` erik quanstrom
2007-05-06  4:53                                                     ` W B Hacker
2007-05-06  5:01                                                     ` lucio
2007-05-06  5:01                                                     ` Rogelio Serrano
2007-05-06  5:07                                                       ` Rogelio Serrano
2007-05-06  5:15                                                         ` lucio
2007-05-06  5:37                                                           ` Bruce Ellis
2007-05-06  6:30                                                           ` Rogelio Serrano
2007-05-06  6:46                                                             ` lucio
2007-05-06  6:49                                                             ` lucio
2007-05-06  7:35                                                               ` Rogelio Serrano
2007-05-06  6:51                                                             ` W B Hacker
2007-05-06 10:25                                                               ` Rogelio Serrano
2007-05-06  6:04                                                         ` Skip Tavakkolian
2007-05-06  7:24                                                           ` lucio
2007-05-06 11:47                                                             ` Bruce Ellis
2007-05-07  1:55                                                           ` Roman Shaposhnik
2007-05-06  5:12                                                       ` lucio
2007-05-06 13:18                                                         ` Richard Miller
2007-05-06 20:23                                                           ` Roman Shaposhnik
2007-05-07  1:57                                                         ` Roman Shaposhnik
2007-05-07  4:29                                                           ` W B Hacker
2007-05-07 15:08                                                             ` Tim Wiess
2007-05-06  5:15                                                       ` W B Hacker
2007-05-06  7:43                                                         ` Rogelio Serrano
2007-05-06  8:02                                                           ` W B Hacker
2007-05-06  8:12                                                             ` Rogelio Serrano
2007-05-06  9:00                                                               ` W B Hacker
2007-05-06  8:03                                                           ` lucio
2007-05-06  8:42                                                             ` Rogelio Serrano
2007-05-06 10:20                                                               ` matt
2007-05-06 10:29                                                                 ` Rogelio Serrano
2007-05-06  9:09                                                             ` W B Hacker
2007-05-06  5:10                                                     ` W B Hacker
2007-05-06  5:32                                                       ` lucio
2007-05-06  6:18                                                         ` Rogelio Serrano
2007-05-06  6:30                                                           ` W B Hacker
2007-05-06  6:21                                                         ` W B Hacker
2007-05-07  1:47                                                     ` Roman Shaposhnik
2007-05-06  1:13                                               ` Rogelio Serrano
2007-05-06  3:31                                                 ` W B Hacker
2007-05-06  4:10                                                 ` erik quanstrom
2007-05-06  4:55                                                   ` Rogelio Serrano
2007-05-06  5:10                                                     ` lucio
2007-05-06  6:05                                                       ` W B Hacker
2007-05-06  8:45                                                         ` matt
2007-05-06  6:45                                                       ` Rogelio Serrano
2007-05-06  6:52                                                         ` lucio
2007-05-06  7:09                                                           ` W B Hacker
2007-05-06  7:34                                                             ` Rogelio Serrano
2007-05-06  7:49                                                               ` W B Hacker
2007-05-06  7:54                                                               ` lucio
2007-05-06  8:35                                                                 ` Rogelio Serrano
2007-05-06  7:40                                                             ` lucio
2007-05-06  8:59                                                               ` W B Hacker
2007-05-06  7:03                                                         ` W B Hacker
2007-05-06  5:21                                                 ` Bruce Ellis
2007-05-06  7:01                                                   ` Rogelio Serrano
2007-05-05  5:30                                             ` lucio
2007-05-04  2:16                                     ` erik quanstrom
2007-05-04  9:24                                       ` C H Forsyth
2007-05-04 11:18                                         ` erik quanstrom
2007-05-04 16:19                                         ` Paul Lalonde
2007-05-04 21:58                                           ` Dave Eckhardt
2007-05-04 22:27                                             ` Paul Lalonde
2007-05-04  8:46                                 ` Douglas A. Gwyn
2007-05-05  4:47                                   ` Roman Shaposhnick
2007-05-02  8:33                 ` Douglas A. Gwyn
2007-05-02 11:25                   ` Jon Snader
2007-05-02  8:33               ` Douglas A. Gwyn
2007-05-02 11:30                 ` erik quanstrom
2007-04-27 16:21     ` Douglas A. Gwyn
2007-04-27 11:12   ` Charles Forsyth
2007-04-27 11:46   ` erik quanstrom
2007-04-27 14:21     ` Joel C. Salomon
2007-04-27 14:26       ` erik quanstrom
2007-04-27 14:41         ` Rob Pike [this message]
2007-04-27 14:55         ` Joel C. Salomon
2007-04-27 15:24           ` erik quanstrom
2007-04-27 15:53           ` C H Forsyth
2007-04-28  9:09   ` ron minnich
2007-04-28  9:17     ` Lucio De Re
2007-04-28 13:48       ` Eric Van Hensbergen
2007-04-28 13:57         ` Lucio De Re
2007-04-28 14:15         ` LiteStar numnums
2007-04-28 21:21         ` Roman Shaposhnik
2007-04-28 21:54           ` ron minnich
2007-04-28 22:33             ` Steve Simon
2007-04-28 15:45     ` Charles Forsyth
2007-04-28 17:58       ` Rodrigo Miranda
2007-04-28 20:12         ` Eric Van Hensbergen
2007-04-28 21:10           ` Roman Shaposhnik
2007-04-28 18:15       ` Lluís Batlle i Rossell
2007-04-29  2:39       ` Joel C. Salomon
2007-04-29 12:41         ` erik quanstrom
2007-04-29 16:00           ` Joel C. Salomon
2007-04-28 21:24     ` Roman Shaposhnik
2007-05-06 12:36 erik quanstrom
2007-05-06 15:18 ` lucio
2007-05-06 16:23   ` W B Hacker
2007-05-06 17:53     ` Benn Newman
2007-05-06 17:56       ` Francisco J Ballesteros

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=7359f0490704270741i76150820yb43bdae6603e83bc@mail.gmail.com \
    --to=robpike@gmail.com \
    --cc=9fans@cse.psu.edu \
    /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.
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 NNTP newsgroup(s).