From: "Riley Williams" <Riley@Williams.Name>
To: "Alan Cox" <alan@lxorguk.ukuu.org.uk>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>
Subject: RE: kernel support for non-English user messages
Date: Fri, 11 Apr 2003 10:21:16 +0100 [thread overview]
Message-ID: <BKEGKPICNAKILKJKMHCAIEBJCGAA.Riley@Williams.Name> (raw)
In-Reply-To: <1050001294.12494.11.camel@dhcp22.swansea.linux.org.uk>
Hi Alan.
>> If we use 32-bit hash codes, there's a real chance of different
>> messages
> There are less than 65536 files each of which is less than 65536
> lines long, so it seems that a properly chosen automated index
> ought to be collision free ?
Some thoughts on that:
1. If the printk() messages are internationalised, we are going to
see log extracts posted here in various languages, including some
that the relevant maintainers don't understand. To stand any
realistic chance of dealing with the resultant bug reports, we
need to include the message code in the report so we can just
feed the various reports through a tool that translates them into
our preferred language.
2. For the above to work, we need the following guarantees:
a. A particular message code always refers to the same message.
b. A particular message is always referred to by the same
message code.
3. To obtain these guarantees, we need to ensure that the translation
tool supplied with any particular kernel can handle all message
codes from that kernel or from any earlier kernel in its direct
ancestry. We thus can't reuse message codes once issued.
4. In some languages, the parameters will need to be specified in a
different order to the English order.
5. We wish to keep the kernel size to a minimum.
The combination of the above points would lead me to suggest the
following design:
1. The printk() function must NEVER be on the RHS of any #define
statement. Many source files currently do this, and it kills any
hope of an automated tool going through the kernel sources and
allocating message numbers, irrespective of the numbering method
chosen.
2. Given the above, it would be possible to change the compilation
sequence such that the message indexing tool runs first and
pre-processes each printk() call to replace the format string with
an index into a table of message formats. This table would contain
in each row first the message code allocated to that row, then the
format string, and finally a key to the parameter order to be used.
The table generated would thus be the English language file, and
would be generated such that any existing messages therein were
reused. This would have the benefit that where any particular
message format occurs multiple times, they would be merged.
3. Given all of the above, a new printk() function would be written
to index into the table and pick out the relevant row, then to
produce a call to the current printk() function (renamed as
printk2() or whatever) with its parameters sorted into the order
specified by the final field in the table.
4. Where functions will be called prior to such internationalisations
being available, they would call the printk2() function directly,
and the message indexing tool would be designed to ignore such
calls when doing its parsing.
5. The next step of the compilation would process the files produced
by this tool rather than the original kernel sources.
This would then lead to the actual messages existing in a separate
directory in the kernel source tree with the `make *config` process
allowing one to select the appropriate language to be used, and
auto-indexing the available languages (not hard to do). The compilation
would then run a separate tool that created a *.h file with the relevant
version of the table for that particular compilation.
One detail that would need to be handled is this: If the selected
language file did not contain an entry for a particular message code,
the entry for that message code would need to be extracted from the
English language file. To help with translation, it should produce a
report stating which message codes it had to do that for.
Also, the table would want to be sorted by message number to speed up
access to the individual messages.
Best wishes from Riley.
---
* Nothing as pretty as a smile, nothing as ugly as a frown.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.471 / Virus Database: 269 - Release Date: 10-Apr-2003
next prev parent reply other threads:[~2003-04-11 9:09 UTC|newest]
Thread overview: 122+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-09 23:31 kernel support for non-english user messages Jim Keniston[UNIX]
2003-04-10 19:01 ` Alan Cox
2003-04-11 9:21 ` Riley Williams [this message]
2003-04-11 12:16 ` kernel support for non-English " Alan Cox
2003-04-11 13:39 ` John Bradford
2003-04-11 13:11 ` Alan Cox
2003-04-11 14:48 ` John Bradford
-- strict thread matches above, loose matches on Subject: below --
2003-04-14 21:27 Chuck Ebbert
2003-04-12 20:31 Chuck Ebbert
2003-04-14 9:07 ` Denis Vlasenko
2003-04-12 16:47 Chuck Ebbert
2003-04-12 15:20 Chuck Ebbert
2003-04-12 15:34 ` Alan Cox
2003-04-12 17:22 ` Robert P. J. Day
2003-04-13 3:59 ` Martin J. Bligh
2003-04-13 6:21 ` John Bradford
2003-04-12 9:52 Chuck Ebbert
2003-04-11 23:38 Chuck Ebbert
2003-04-11 23:36 Jim Keniston[UNIX]
2003-04-11 22:21 Chuck Ebbert
2003-04-11 22:53 ` Martin J. Bligh
2003-04-12 7:55 ` John Bradford
2003-04-12 7:48 ` John Bradford
2003-04-14 11:40 ` Denis Vlasenko
2003-04-14 12:55 ` John Bradford
2003-04-14 17:29 ` Linus Torvalds
2003-04-14 18:15 ` John Bradford
2003-04-14 23:04 ` Felipe Alfaro Solana
2003-04-15 13:21 ` Alex Combas
2003-04-15 18:02 ` Eric Altendorf
2003-04-17 13:46 ` Alan Cox
2003-04-17 15:07 ` Randolph Bentson
2003-04-17 18:49 ` Eric Altendorf
2003-04-14 13:18 ` Sean Neakums
2003-04-14 14:23 ` Valdis.Kletnieks
2003-04-16 5:03 ` Denis Vlasenko
[not found] <A46BBDB345A7D5118EC90002A5072C780BEBA7DD@orsmsx116.jf.inte l.com>
2003-04-11 20:55 ` kernel support for non-english " Ruth Ivimey-Cook
2003-04-11 20:02 Perez-Gonzalez, Inaky
2003-04-11 16:57 kernel support for non-English " Chuck Ebbert
2003-04-11 17:38 ` Richard B. Johnson
2003-04-11 18:10 ` Matti Aarnio
2003-04-11 14:52 Paolo Ciarrocchi
2003-04-11 13:17 Chuck Ebbert
2003-04-11 13:40 ` John Bradford
2003-04-16 1:59 ` Gerrit Huizenga
2003-04-16 14:28 ` Timothy Miller
2003-04-16 14:37 ` Alan Cox
2003-04-16 16:20 ` Timothy Miller
2003-04-16 17:04 ` Bruce Harada
2003-04-16 18:34 ` Timothy Miller
2003-04-16 18:37 ` Bruce Harada
2003-04-11 14:37 ` Richard B. Johnson
2003-04-11 16:00 ` Linus Torvalds
2003-04-12 8:22 ` Kai Henningsen
2003-04-12 11:08 ` John Bradford
[not found] <20030409051006$1ecf@gated-at.bofh.it>
[not found] ` <20030409081011$5257@gated-at.bofh.it>
[not found] ` <20030409221017$6c98@gated-at.bofh.it>
[not found] ` <20030409225009$2558@gated-at.bofh.it>
[not found] ` <20030410014009$78fb@gated-at.bofh.it>
[not found] ` <20030410200019$3e8f@gated-at.bofh.it>
[not found] ` <20030410202016$7d48@gated-at.bofh.it>
2003-04-11 11:29 ` kernel support for non-english " Tim Connors
2003-04-11 10:10 Chuck Ebbert
2003-04-10 23:23 Chuck Ebbert
2003-04-10 22:13 Chuck Ebbert
2003-04-10 22:33 ` Stephen Hemminger
2003-04-10 21:20 Perez-Gonzalez, Inaky
2003-04-10 22:06 ` Andreas Dilger
2003-04-11 7:38 ` Ville Herva
2003-04-10 20:54 Chuck Ebbert
2003-04-10 21:08 ` Bernd Petrovitsch
2003-04-10 19:21 Perez-Gonzalez, Inaky
2003-04-10 20:41 ` Robert White
2003-04-11 9:21 ` kernel support for non-English " Riley Williams
2003-04-11 20:49 ` Robert White
2003-04-11 22:53 ` Riley Williams
2003-04-15 3:44 ` Robert White
2003-04-15 11:08 ` Alan Cox
2003-04-15 11:08 ` Alan Cox
2003-04-15 14:07 ` Timothy Miller
2003-04-11 21:04 ` Ruth Ivimey-Cook
2003-04-11 21:31 ` Daniel Stekloff
2003-04-10 10:47 kernel support for non-english " Ruth Ivimey-Cook
2003-04-09 19:25 Perez-Gonzalez, Inaky
2003-04-09 19:01 Perez-Gonzalez, Inaky
2003-04-09 5:02 Frank Davis
2003-04-09 5:29 ` Oliver Neukum
2003-04-09 5:50 ` Frank Davis
2003-04-09 9:37 ` Bernd Petrovitsch
2003-04-09 11:04 ` Alan Cox
2003-04-09 5:53 ` Andreas Dilger
2003-04-09 8:08 ` Matti Aarnio
2003-04-09 9:33 ` Oliver Neukum
2003-04-09 10:24 ` Matti Aarnio
2003-04-09 22:07 ` Werner Almesberger
2003-04-09 22:41 ` Frank Davis
2003-04-09 22:55 ` Ulrich Drepper
2003-04-09 23:53 ` Johannes Ruscheinski
2003-04-10 1:43 ` Richard B. Johnson
2003-04-10 18:57 ` Alan Cox
2003-04-10 20:13 ` Trond Myklebust
2003-04-10 19:42 ` Alan Cox
2003-04-11 0:48 ` Christer Weinigel
2003-04-11 15:56 ` Daniel Stekloff
2003-04-10 20:53 ` Richard B. Johnson
2003-04-10 23:05 ` Jon Portnoy
2003-04-11 5:39 ` DevilKin
2003-04-11 5:49 ` Arnaldo Carvalho de Melo
2003-04-11 6:17 ` DevilKin
2003-04-11 17:51 ` Randy.Dunlap
2003-04-11 11:57 ` Helge Hafting
2003-04-11 17:55 ` David Lang
2003-04-10 20:36 ` John Bradford
2003-04-10 22:20 ` Shaya Potter
2003-04-11 4:19 ` Valdis.Kletnieks
2003-04-11 4:23 ` Shaya Potter
2003-04-11 8:40 ` Henning P. Schmiedehausen
2003-04-11 9:09 ` John Bradford
2003-04-11 10:59 ` Valdis.Kletnieks
2003-04-11 11:11 ` John Bradford
2003-04-11 11:40 ` Helge Hafting
2003-04-10 8:19 ` Oliver Neukum
2003-04-09 13:11 ` Giuliano Pochini
2003-04-10 3:08 ` Linus Torvalds
2003-04-10 9:05 ` kernel support for non-English " Riley Williams
2003-04-10 17:35 ` Linus Torvalds
2003-04-10 18:32 ` John Bradford
2003-04-12 2:55 ` Chris Wedgwood
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=BKEGKPICNAKILKJKMHCAIEBJCGAA.Riley@Williams.Name \
--to=riley@williams.name \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.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.
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).