home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / std / internat / 1144 < prev    next >
Encoding:
Text File  |  1993-01-11  |  4.4 KB  |  116 lines

  1. Newsgroups: comp.std.internat
  2. Path: sparky!uunet!spool.mu.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
  3. From: terry@cs.weber.edu (A Wizard of Earth C)
  4. Subject: Re: islands
  5. Message-ID: <1993Jan11.190644.29108@fcom.cc.utah.edu>
  6. Sender: news@fcom.cc.utah.edu
  7. Organization: Weber State University  (Ogden, UT)
  8. References: <C0MKEu.5or@poel.juice.or.jp>
  9. Date: Mon, 11 Jan 93 19:06:44 GMT
  10. Lines: 104
  11.  
  12. In article <C0MKEu.5or@poel.juice.or.jp> erik@poel.juice.or.jp (Erik M. van der Poel) writes:
  13. >One conceivable approach is to extend this rudimentary
  14. >file typing to actual file attributes ("groan, not this guy again" I
  15. >hear all of you saying), extending NFS as well with a negotiated file
  16. >type option.
  17.  
  18. This is the approach I advocate; I have already made a version of the
  19. 4.3 UFS (for 386BSD) which includes per-file locale typing.  For a
  20. multilingual document, this type is LL_MULTILINGUAL... monolingual
  21. documents have a locale specific typing based on the language used.
  22.  
  23. The big problem, as Ohta pointed out, is the "cat" problem.  I have this
  24. solved for all but one pessimal case.  This is fairly easy if you handle
  25. several issues up front:
  26.  
  27. o    All file arguments to cat are checked for type; cat is linked
  28.     with a library (I have not yet made it a shared library, but
  29.     I will) which can convert from monolingual to a simple format
  30.     for embedded multilingual.  To do this, I have stolen several
  31.     code points within Unicode for locale attribution; in a font,
  32.     these code points would be represented as non-spacing blanks.
  33.     These code points are embedded in the output stream as the
  34.     conversion from attributed monolingual to multilingual takes
  35.     place.
  36.  
  37. o    All in-core file descriptors must handle language attribution
  38.     via ioctl.  This allows language attribution of pipes by
  39.     type, as well as assignment of locale information to files
  40.     created by redirection of the output to "cat".
  41.  
  42. o    Output coercion.
  43.  
  44.  
  45. Currently, I am only forcing attribution, not "compact storage" using a
  46. per language 8-bit spanning set.  I expect this to provide a reduction
  47. to pre-international storage for small glyph-set languages, as well as
  48. interoperability with existing non-internationalized systems.
  49.  
  50. The pessimal case which is disallowed is the input through a pipe of
  51. multiple streams of non-monolingual data which would thus result in
  52. a loss of attribution (unless interchange was always done using the
  53. in-band attribution -- I felt this would be "bad").  For those of you
  54. who are having a hard time coming up with an example of this case:
  55.  
  56.     :
  57.     # pessimal use of cat with attributed data
  58.     #
  59.  
  60.     for i in file.1 file.2 file.3
  61.     do
  62.         cat $i
  63.     done | cat > file.multi
  64.  
  65. Some may note that the construct:
  66.  
  67.     :
  68.     # questionable case
  69.     #
  70.  
  71.     for i in file.1 file.2 file.3
  72.     do
  73.         cat $i
  74.     done > file.multi
  75.  
  76. Should fail also.  This is not the case, because output is coerced to
  77. be multinational by the shell providing the transitional stream for
  78. the output of each of the "cat" commands (stdout), which is attributed
  79. with a non-modifiable attribute which is checked by "cat" before it
  80. decides on the output format.
  81.  
  82. This does have the drawback that the case of "file.1", "file.2", and
  83. "file.3" containing data in the same monolingual locale result in a
  84. "multilingual" file on output.  I'll respond that the proper mechanism
  85. for the operation in question is:
  86.  
  87.     :
  88.     # proper way to do questionable case
  89.  
  90.     cat file.1 file.2 file.3 > file.multi
  91.  
  92. and that even if this isn't observed, the resulting file is both usable
  93. and "compactable" to a non-multilingual locale, perhaps by a post-pass
  94. mechanism running as a cron job.
  95.  
  96. If you are interested in a more general discussion of file system
  97. attribution and transport extension (since, as you suggest, an NFS
  98. extension could be useful for homogenous internationalized systems,
  99. thus avoiding "the island problem"), you should check out John
  100. Heidemann's papers on Ficus (available by anonymous FTP from ftp.ucla.edu)
  101. and David Rosenthal's "Evolving the vnode interface" in the June 1990
  102. USENIX Conference Proceedings (pages 107-118).
  103.  
  104.  
  105.                     Terry Lambert
  106.                     terry@icarus.weber.edu
  107.                     terry_lambert@novell.com
  108. ---
  109. Any opinions in this posting are my own and not those of my present
  110. or previous employers.
  111. -- 
  112. -------------------------------------------------------------------------------
  113.                                         "I have an 8 user poetic license" - me
  114.  Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
  115. -------------------------------------------------------------------------------
  116.