home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.30 / text0086.txt < prev    next >
Encoding:
Text File  |  1993-03-11  |  15.8 KB  |  328 lines

  1. Submitted-by: stephe@mks.com (Stephen Walli)
  2.  
  3.                        Corwin's Razor
  4.                       Stephen R. Walli
  5.                      stephe@usenix.org
  6.  
  7. In December, I wrote at length about a couple of fundamental
  8. problems with  the  structure and  process  of defining  the
  9. POSIX family  of standards.  POSIX  will collapse under  its
  10. own structure if not rescued soon was the premise.[1] It was
  11. motivated by  the  concern that  we  will lose the  existing
  12. valuable model  for  portable applications  programming,  if
  13. POSIX  continues along  its  current path.   These  concerns
  14. settled  around  test  methods  requirements placed  on  the
  15. working  groups,  and  language  independent  specifications
  16. (LIS).
  17.  
  18. __________
  19. 1.  comp.std.unix,  Volume  29,   Number  86,  and  ;login:,
  20.     January/February 1993.
  21.  
  22. It  provoked  some  people  to  do  the  net  equivalent  of
  23. ``writing to their congressman,'' and the email addresses at
  24. the end of the article received some mail.  It also provoked
  25. some discussion  on  the net,  which  is good, because  this
  26. stuff is important  to you if you care about writing C, Ada,
  27. and Fortran programs that are as portable as possible across
  28. the widest possible set of architectures.  YOUR viewpoint is
  29. important!  Ultimately, it  was a source  of a lot of debate
  30. and discussion at  the IEEE POSIX meetings in January, which
  31. is responsible for  developing these source code portability
  32. standards.
  33.  
  34. One of the driving arguments in these discussions was who is
  35. the customer for this work.  This sentiment is best embodied
  36. by something  said  by Bill  Corwin,  the chair  of  POSIX.4
  37. (Real-time extensions), which became:
  38.  
  39.   Corwin's Razor: If they're not willing to put their money
  40.   where their mouth is, they're not a customer.
  41.  
  42. Let's see where it got us.
  43.  
  44. Test Method Madness -- Part II
  45. ==============================
  46. I expressed  a  lot of  concern  with the  creation of  test
  47. methods  standards.   These  are standards  containing  test
  48. assertions,  based on  the  test methodologies  outlined  in
  49. POSIX.3, which could  act as the  basis for a test suite.  I
  50. was concerned about  the setting up  of a directly competing
  51. body  of  text,  used  to  create  test  suites  to  measure
  52. conformance of implementations of base standards, before the
  53. base standard had even received wide spread implementation.
  54.  
  55. After the last editorial hit the net, I discovered something
  56. which only fueled  my concerns.  The test methods which were
  57. balloted as  part  of the XOM  (Object Management) API,  and
  58. X.400 API (P1224 and P1224.1) received no comment in ballot.
  59. Changes made to  the test methods were done by the technical
  60. editor  during  ballot to  keep  them synchronized  as  best
  61. possible  with  changes  made to  the  base API  text.   The
  62. POSIX.17 (X.500  Directory  Services) test methods  received
  63. very few comments  in ballot, in  relation to the  volume of
  64. comments on the base API.
  65.  
  66. All three of these test methods standards are about to go to
  67. the IEEE Standards  Board in March  for final approval.  One
  68. might  think  that  their  test  methods weren't  read  very
  69. carefully by the balloting group, which was concentrating on
  70. balloting the base  API that it cared about.  Would you want
  71. NIST to  choose  these standards as  the specification of  a
  72. conformance test suite?
  73.  
  74. All three of  these documents had their test methods written
  75. for them by a couple of contractors in the employ of X/Open.
  76. X/Open wants  these base specifications  to get through  the
  77. standardization process.  The  process demands there be test
  78. methods for the  base documents to  exit ballot.  There  are
  79. now test methods.   At least X/Open  was willing to  put its
  80. money where its mouth is.  POSIX.10 (Supercomputing Profile)
  81. has just  completed  its first  ballot  cycle, and no,  they
  82. received no  ballot comments on  their test methods  section
  83. either.
  84.  
  85. There is  an  example, however, of  a test methods  standard
  86. that is, IMHO, a well-constructed standard.  POSIX.3.1 (IEEE
  87. Std  2003.1-1992)  is  the  test  methods standard  for  the
  88. POSIX.1 base functionality.  What's different about it:
  89.  
  90. -- It  lags  the original  standard  by four  years,  since
  91.   POSIX.1  was  originally   approved  in  1988   (IEEE  Std
  92.   1003.1-1988).
  93.  
  94. -- At least  four implementations of  real test suites  fed
  95.   its creation.   (The NIST  PCTS, Perennial's POSIX.1  test
  96.   suite, X/Open's  VSX,  built by  Unisoft, and  Mindcraft's
  97.   CTS.)
  98.  
  99. -- People that wanted  to have a  standard for test methods
  100.   to  measure conformance  to  POSIX.1 got  together  (i.e.,
  101.   found  the  time  and  money) and  did  the hard  work  of
  102.   defining, drafting, and balloting a document.
  103.  
  104. -- The document was  balloted separately and seriously by a
  105.   group of people  that seriously cared about the outcome of
  106.   the standard (i.e.,  the implementors of  the base POSIX.1
  107.   standard), as well as the people that cared about having a
  108.   standard test suite.
  109.  
  110. Many working groups that have written test methods for their
  111. base functional definitions,  even just partially, feel that
  112. their base specifications are stronger for the effort.  They
  113. aren't  sure  whether  or  not  they've  written  good  test
  114. methods.   They don't  care.   Their base  specification  is
  115. better.  That's what they came together to do.
  116.  
  117. You can't legislate  a standard.  Especially from a group of
  118. volunteers.   Just  because  one  group  of  people  want  a
  119. standard ``test suite,''  does not mean  that the group that
  120. originally got  together  to define and  draft and ballot  a
  121. standard for some  base functionality wants  to do the extra
  122. work of  defining,  drafting, and  balloting a test  methods
  123. standard.  Corwin's Razor.
  124.  
  125. So  what  happened?   Most  of  the  Steering  Committee  on
  126. Conformance Testing's (SCCT's)  discussions agreed that  the
  127. market will speak.  If and when it cares about standards for
  128. test methods, people will find the money and energy.
  129.  
  130. A motion was  made in the  Sponsor Executive Committee (SEC)
  131. to  remove  the  testing  requirement  from  balloting  base
  132. documents.  It was  modified to ``suspend'' the requirement.
  133. It passed.  The SCCT will consider if there are alternatives
  134. to the current  process, but until  such time as they report
  135. back to the  SEC, the requirements placed on the wrong group
  136. of people have been lifted.
  137.  
  138. It does not  mean POSIX considers  test methods standards to
  139. be bad  things.  POSIX.3.1  stands as an  example of a  well
  140. developed test  methods  standard.  It  also  does not  mean
  141. POSIX doesn't care about building good documents.  Quite the
  142. contrary.  A tool  exists, called ``writing  test methods,''
  143. that working groups  can use, when and where appropriate, to
  144. improve  the   clarity   and  preciseness   of  their   base
  145. specification.   It  does  mean  that  the  POSIX  standards
  146. working  groups  feel that  people  that want  test  methods
  147. standards should go to the effort of building them.
  148.  
  149. LIS -- Again!
  150. =============
  151. The scope of  POSIX.1 says that  it is a  standard operating
  152. system interface to  support applications portability at the
  153. source code level.  It is to be used by systems implementors
  154. and application developers.   This would tend to indicate it
  155. should  be  a   readable  document.   It   is  the  official
  156. ``contract'' with which  an applications developer  can call
  157. up their systems vendor and say ``this is supposed to behave
  158. this way,'' or  vice versa.  Just  like the ANSI C standard.
  159. Together, these two documents define an environment in which
  160. to design  more portable applications,  written in C.   (The
  161. Ada based POSIX.5 has similar statements in its scope.)
  162.  
  163. I raised  concerns  over the  structure  and format  of  the
  164. programming-language-independent  specifications  method  of
  165. defining POSIX  standards.   It takes  what  I believe is  a
  166. useful single-book,  single-context format,  as used in  the
  167. current C-based POSIX.1  and Ada-based POSIX.5, and makes it
  168. hard to read  and harder to use by creating a two-book, two-
  169. context standard.
  170.  
  171. The LIS debate  is far more political and emotional.  ISO is
  172. involved.  The  ISO working  group responsible for  bringing
  173. IEEE POSIX  documents  forward as  international  standards,
  174. WG15,  requires  that  they  be  brought forward  as  thick,
  175. semantic LI  specifications  with attendant thin,  syntactic
  176. language bindings.
  177.  
  178. This requirement was  agreed to by  the U.S. member  body to
  179. WG15, which passed  it on to the IEEE working groups back in
  180. 1988, which  also  agreed to  do  it.  Some  argue that  the
  181. United States  is  not fulfilling  its  obligations if  they
  182. don't follow the LIS approach.
  183.  
  184. This is just  plain wrong.  The  IEEE is the POSIX standards
  185. development organization.  The  IEEE is a ``trans-national''
  186. organization, open  to  all.  While  the IEEE POSIX  working
  187. groups are  predominantly attended by  people living in  the
  188. United States,  a  fair number  of  people hail  from  other
  189. locations, and the  IEEE POSIX working groups have never not
  190. entertained a  person's  point of  view.  They really  don't
  191. care where you  live.  The ``U.S.  member body'' to  WG15 is
  192. merely the  administrative  point between  the IEEE and  ISO
  193. WG15.
  194.  
  195. The IEEE then spent a lot of time and effort, first defining
  196. a methodology,  then  applying that  methodology where  they
  197. could.   As  with  the  test-methods  tool,  working  groups
  198. discovered holes  and  errors in  their  base text  as  they
  199. reviewed it critically,  asking the question,  ``How would I
  200. express  this  concept  such  that  I  could write  the  Ada
  201. equivalent of it?''   Or Fortran.  They  discovered they can
  202. more clearly  express  some of  the  meaning in  their  base
  203. documents.
  204.  
  205. The people  most  able to  do  this work  in the IEEE  POSIX
  206. working group's experience  were the people in POSIX.5 (Ada)
  207. and POSIX.9  (Fortran).   They did  the painful exercise  of
  208. critically  reading  the   text  of  C-based   POSIX.1,  and
  209. recasting it into the words and programming semantics/syntax
  210. of their own language.
  211.  
  212. The funny thing  is, they did  this without the benefit of a
  213. language-independent specification of POSIX.1.  The only way
  214. that the  POSIX.1/LIS  could be  created  was for  the  IEEE
  215. Technical Committee on  Operating Systems to  open the purse
  216. strings and pay a contractor to write the first drafts of an
  217. LIS of POSIX.1 and its attendant C binding.
  218.  
  219. And these other  language groups, which pay money to come to
  220. IEEE  POSIX  meetings  to  do  the  work of  building  POSIX
  221. standards  in  their  own  language (which  they  understand
  222. well), are concerned  with the current POSIX LIS methodology
  223. being used and  the format of  the documents it produces.  I
  224. think I hear Corwin's Razor being sharpened.
  225.  
  226. The POSIX.5 Ada working group built their version of POSIX.1
  227. without  the  POSIX.1/LIS.  They  feel  it would  have  been
  228. easier to build  their document if one had existed, but they
  229. don't know what that LIS would have looked like.  They don't
  230. particularly like the one that has been produced.
  231.  
  232. They further chose to ignore the ISO requirement of ``thin''
  233. syntactic  bindings,  which  don't  reproduce  the  semantic
  234. description of the ``thick'' base LIS document.  They wanted
  235. their standard to  be self-contained and readable, such that
  236. programmers would only  require the one  book on their desk.
  237. Their  gamble  failed!  ISO  WG15  refused to  accept  their
  238. standard for international standardization.
  239.  
  240. But wait!  ISO WG9, the ISO Ada language group wants to fast
  241. track the  IEEE POSIX.5  standard.  They feel  it is a  good
  242. standard.  So maybe their gamble didn't fail.
  243.  
  244. So who actually  benefits by presenting  the standard as  an
  245. LIS?  Language-bindings writers  certainly.  But the  people
  246. who already care  enough to participate seem to be doing so.
  247. It doesn't take  a huge number of people to set up a working
  248. group.  There were  only about twelve  in the Fortran  group
  249. (POSIX.9).
  250.  
  251. So what  happened  at the  SEC?   A motion  came forward  to
  252. remove  the  requirement  for  the  current  LIS  method  of
  253. defining POSIX  standards.  It  was massaged into  something
  254. considerably more diplomatic,  which passed, creating  an ad
  255. hoc committee to  go investigate the  problem in detail, and
  256. without  particular restrictions,  and  report back  at  the
  257. April 1993 meetings.
  258.  
  259. This is a  good thing.  To  change the direction of POSIX at
  260. this point is  not a trivial  task to be  taken lightly, nor
  261. decided too quickly.   There will be ramifications no matter
  262. what the outcome of the report from the ad hoc.
  263.  
  264. I chair  the ad  hoc.  If I  was going to  stir up all  this
  265. fuss, then I  was going to  be made accountable for it :-) I
  266. am interested in  your thoughts or concerns, so by all means
  267. e-mail me.
  268.  
  269. There was  another  wonderful quote  that  came out  at  the
  270. January meetings, that essentially said:
  271.  
  272.   ``Standards organizations that choose to make themselves
  273.   irrelevant deserve what they get.''
  274.  
  275. This  was  actually   made  in  reference  to  a  completely
  276. different problem,  but  I believe  it  is very  appropriate
  277. here.  If we  make these standards  unusable, they won't  be
  278. used.   We  will   lose  the  ``contract''  for  a  portable
  279. programming  model   between  applications  developers   and
  280. systems implementors.
  281.  
  282. I am repeating  the list of  email addresses from the end of
  283. ``POSIX -- Caving  in Under Its Own Weight.''  I believe it
  284. is still important  that you make your concerns known to the
  285. people that can actually make the decision about this.
  286.  
  287.                               IEEE Concerns                                   
  288.     Position                      Name                   E-mail          
  289.  
  290. Chair SEC                        Jim Isaak          isaak@decvax.dec.com      
  291. Vice Chair Interpretations       Andrew Twigger     att@root.co.uk            
  292. Vice Chair Balloting             Lorraine Kevra     l.kevra@att.com           
  293. Chair Comm on Conf Testing       Roger Martin       rmartin@swe.ncsl.nist.gov 
  294. Chair Project Management Comm    Shane McCarron     s.mccarron@ui.org         
  295. Chair POSIX.1                    Paul Rabin         rabin@osf.org             
  296. Chair POSIX.2                    Hal Jespersen      hlj@posix.com             
  297. Chair POSIX.3                    Lowell Johnson     3lgj@rsvl.unisys.com      
  298. Chair POSIX.4                    Bill Corwin        wmc@littlei.intel.com     
  299. Chair POSIX.5                    Jim Lonjers        lonjers@prc.unisys.com    
  300. Chair POSIX.6                    Dennis Steinauer   dsteinauer@nist.gov       
  301. Chair POSIX.7                    Martin Kirk        m.kirk@xopen.co.uk        
  302. Chair POSIX.8                    Jason Zions        jason@cnd.hp.com          
  303. Chair POSIX.9                    Michael Hannah     mjhanna@sandia.gov        
  304. Chair POSIX.12                   Bob Durst          durst@mitre.org           
  305. USENIX Institutional Rep         Jeff Haemer        jsh@canary.com
  306. EurOpen IR                       Stephen Walli      stephe@mks.com            
  307. DECUS IR                         Loren Buhle        buhle@xrt.upenn.edu       
  308. OSF IR                           John Morris        jsm@osf.org               
  309. UNIX International IR            Shane McCarron     s.mccarron@ui.org         
  310. X/Open IR                        Derek Kaufman      d.kaufman@xopen.co.uk     
  311.  
  312.                               WG15 Concerns                                   
  313.  
  314. Convener WG15                    Jim Isaak          isaak@decvax.dec.com      
  315. US Head of Delegation            John Hill          hill@prc.unisys.com       
  316. Canadian HoD                     Arnie Powell       arniep@canvm2.vnet.ibm.com
  317. UK HoD                           David Cannon       cannon@exeter.ac.uk       
  318. German HoD                       Ron Elliot         elliott%aixsm@uunet.uu.net
  319. Dutch HoD                        Herman Wegenaar    (phone: +31 50 637052)    
  320. Japanese HoD                     Nobuo Saito        ns@slab.sfc.keio.ac.jp    
  321. French HoD                       Jean-Michel Cornu  jean-michel.cornu@afuu.fr 
  322. Danish HoD                       Keld Simenson      keld@dkuug.dk             
  323. New Zealand HoD                  Keith Hopper       kh@waikato.ac.nz          
  324.  
  325.  
  326. Volume-Number: Volume 30, Number 87
  327.  
  328.