home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / Updates / 5.mm < prev    next >
Text File  |  1991-04-15  |  9KB  |  258 lines

  1. .\" Use -mm macros
  2. .ds Rh 1003.5: Ada Bindings
  3. .ds Au Jayne Baker <cgb@d74sun.mitre.org>
  4. .ds Dt January 7-11, 1991
  5. .ds Lo New Orleans, LA
  6. .ds Ed Jeffrey S. Haemer <jsh@usenix.org>
  7. .ds Wd U\s-3SENIX\s0 Standards Watchdog Committee
  8. .if '\*(Su'' \{\
  9. .ds Su the \*(Dt meeting in \*(Lo:
  10. .\}
  11. .if n \{\
  12. .tm Subject: Standards Update, \*(Rh
  13. .tm From: \*(Ed
  14. .tm Reply-To: std-unix@uunet.uu.net
  15. .tm Organization: \*(Wd
  16. .tm
  17. .\}
  18. .S 12
  19. .TL
  20. An Update on U\s-3NIX\s0\u\s-41\s0\d-Related Standards Activities
  21. .FS 1.
  22. UNIX\u\(rg\d is a Registered Trademark of UNIX System Laboratories
  23. in the United States and other countries.
  24. .FE
  25. .nr :p 1
  26. .sp
  27. \*(Rh
  28. .AF "\*(Ed, Report Editor"
  29. .AU "\*(Wd"
  30. .MT 4
  31. .if n \{\
  32. .nh
  33. .na
  34. .\}
  35. .PF "'\*(DT Standards Update'     '\*(Rh'"
  36. \*(DT
  37. .sp
  38. .P
  39. \fB\*(Au\fP reports on \*(Su
  40. .P
  41. .H 1 Introduction
  42. The Ada Language Binding to
  43. the \s-1POSIX\s0 1003.1 Base Specification (P1003.5)
  44. is moving through the \s-1IEEE\s0 ballot process.
  45. .P
  46. Now that ballot resolution has begun,
  47. the P1003.5 working group no longer exists;
  48. we are now the P1003.5 Ballot Resolution Group.
  49. We spent the New Orleans meeting doing just that
  50. \(emballot resolution\(em
  51. addressing issues from our first ballot, chapter by chapter.
  52. This is no small task,
  53. so we also held an interim meeting, February 20 \- 22,
  54. near Washington, D.C.
  55. .P
  56. This report outlines
  57. some issues from the first round of balloting,
  58. and touches on both potential future Ada work,
  59. and our attempts to spread the P1003.5 word.
  60. .H 1 "Ballot Resolution Issues"
  61. Here's who is responsible for
  62. specific sections of the P1003.5 binding:
  63. .DS
  64. .TS
  65. center;
  66. a a a.
  67. Mitch Gart/Alsys    Section 1    General
  68. Steve Schwarm/DEC    Section 2    Terminology and General Requirements
  69. Ted Baker/Florida State    Section 3    Process Primitives
  70. Steve Deller/Verdix    Section 4    Process Environment
  71. Jim Lonjers/Unisys    Section 5    Files and Directories
  72. Mitch Gart/Alsys    Section 6    Input and Output Primitives
  73. Steve Schwarm/DEC    Section 7    Device- and Class-Specific Functions
  74. Jim Moore/IBM    Section 8    Language-Specific Services for Ada
  75. Dave Emery/MITRE    Chapter 9    System Databases
  76. .TE
  77. .DE
  78. And here are some things
  79. I found particularly interesting in the discussions they led.
  80. .H 2 "Naming Convention Issues"
  81. One global issue,
  82. more editorial than technical
  83. but that drew many ballot comments and objections,
  84. was our lack of a procedure-and-function-naming convention.
  85. We left names to the individual chapter authors,
  86. promising ourselves that
  87. we would address this issue later in document development.
  88. We never really did,
  89. but Bevin Brett/\s-1DEC\s0 proposed a naming convention
  90. before New Orleans via electronic mail, with these guidelines:
  91. .DL
  92. .LI
  93. Eliminate multiple names with same meaning by picking one
  94. (e.g., change ``bad,'' ``invalid,'' etc. to ``bad'');
  95. .LI
  96. Eliminate lengthy prefixes
  97. (e.g., change ``POSIX_Process_Primitives_Process_Template'' to ``Template'');
  98. .LI
  99. Make the parameter and subtype names the same.
  100. .LE
  101. .P
  102. Unfortunately,
  103. he also restructured packages liberally.
  104. We worried about
  105. making such sweeping changes after balloting had begun,
  106. but adopted several of his recommendations.
  107. Bevin agreed to revise his proposal,
  108. incorporating the changes accepted by the group.
  109. Chapter authors will evaluate the revised proposal.
  110. Accepted naming changes,
  111. supported by official ballot comments,
  112. will be incorporated into the document.
  113. .H 2 "I/O Units"
  114. At least one balloter requests we use ``byte''
  115. instead of ``I/O unit,''
  116. since an \s-1I/O\s0 unit is both
  117. ``large enough to hold any member of the basic execution character set''
  118. and ``>= 7 bits.''
  119. Another goes farther,
  120. arguing that if ``I/O unit'' is exactly same as C's ``char''
  121. we should eliminate confusion by saying so.
  122. A third balloter requests that \s-1POSIX\s0, C, and Ada character sets
  123. be somehow unified.
  124. .H 2 "Signals Discussion"
  125. Many balloters objected to signal semantics.
  126. .P
  127. In the current, balloted draft (Draft 6)
  128. signals are interrupt entries
  129. and include semantics for interrupt delivery.
  130. .P
  131. P1003.4a uses a \s-1SIGWAIT\s0 model
  132. with a single procedure equivalent to the Ada delay statement.
  133. Our current model may
  134. only support per-process signals,
  135. not per-thread signals,
  136. i.e., a subset of P1003.4a.
  137. Should we try to develop an approach to signals
  138. that does not break P1003.4a and P1003.4a/Ada?
  139. .P
  140. We also need to review P1003.4's new signal proposal carefully
  141. to decide how much to change the P1003.5 binding to accommodate it.
  142. We do not know how balloters will react to such changes.
  143. Some balloters do not want signals tied to Ada tasks,
  144. because they want to use signals without using tasks.
  145. We could provide this,
  146. but others think signals without tasks is absurd.
  147. We continue to work on this.
  148. .H 2 "File Descriptor Types"
  149. File descriptor types are controversial.
  150. Balloters are divided on alternatives.
  151. Should file descriptors be private types?
  152. limited private types?
  153. integers?
  154. Each has its advocates.
  155. Here are sample arguments for making file descriptors private:
  156. .DL
  157. .LI
  158. Arithmetic operations are available for integer types.
  159. Does it make sense to perform additions on file descriptors?
  160. .LI
  161. Sockets and 1003.4 memory-mapped files are used like file descriptors
  162. but may not be implemented as small integers, even in C;
  163. .LI
  164. In V.4 the file descriptor limit has gone
  165. from 20 to some high number (4K?),
  166. making arrays of file descriptors less practical.
  167. (Array indexing with file descriptors
  168. is arguably bad C programming style anyway.)
  169. .LE
  170. .P
  171. Despite such arguments,
  172. we left file descriptors integer types
  173. because of the P1003.1 standard
  174. (note the definition of \fIdup(2)\fP).
  175. We noted in the rationale
  176. that we could have made file descriptors a private Ada type,
  177. required that they look like integers,
  178. and included special operations
  179. to disallow arithmetic functions on them,
  180. but the group thought that this would be too cluttered.
  181. File descriptors are acceptably close to integers.
  182. .H 2 "Blocking Behavior"
  183. Tasks are a major source of complaints for Unix Ada users.
  184. No one wants a whole process to block
  185. when one task within that process performs \s-1I/O\s0
  186. or waits for a file lock.
  187. Unfortunately, P1003.1 doesn't support threads;
  188. blocking blocks an entire process,
  189. so our document provides support for per-process blocking.
  190. Should it also provide per-task blocking?
  191. Making implementors provide both behaviors
  192. could prove the wrong decision once POSIX supports threads.
  193. .P
  194. After some discussion,
  195. two models for blocking were proposed:
  196. .DL
  197. .LI
  198. the knife-switch model, and
  199. .LI
  200. the file model.
  201. .LE
  202. .P
  203. A knife-switch-model implementation elects either
  204. program blocking on \s-1I/O\s0
  205. or task-level blocking on \s-1I/O\s0 for all files.
  206. Only one is supported.
  207. A file-model implementation selects
  208. either task- or program-level blocking for \s-1I/O\s0
  209. on a per-file basis.
  210. .P
  211. Mitch Gart suggested we relax our text in several places
  212. to allow alternative behaviors.
  213. He argued that separate predicates for blocking or non-blocking behavior
  214. are unnecessary
  215. because users will specify one or the other when files are opened;
  216. on the other hand,
  217. each system should provide an inquiry function
  218. that returns the blocking behaviors it supports.
  219. .P
  220. We will add a statement
  221. to the normative conformance definition section (got all that?)
  222. saying that a strictly conforming application
  223. \fIshall not\fP depend on either task blocking or program blocking.
  224. .H 1 "Future Work"
  225. .H 2 "Test Assertions for Current Work"
  226. To become an \s-1IEEE\s0 standard,
  227. the P1003.5 document must include test assertions.
  228. Jim Leathrum/Clemson University and his graduate students
  229. have volunteered to develop a set.
  230. We like this is approach,
  231. because the assertion writers will lack the working group's
  232. preconceptions and biases.
  233. Also, we won't have to do the work
  234. and it frees the working group to press forward
  235. to other important \s-1POSIX/A\s0da tasks.
  236. We are well into the ballot process,
  237. and will probably defer the test assertions to a separate document.
  238. .H 2 "Ada Binding to Shells and Utilities (P1003.2)"
  239. Dave Emery continues to develop the Ada binding to P1003.2.
  240. .H 2 "Ada Binding to Real-Time Extensions to \s-1POSIX\s0 (P1003.4)"
  241. Mars Gralia/Johns Hopkins University offered to put together
  242. an Ada/P1003.4 Project Authorization Request (\s-1PAR\s0)
  243. broad enough to cover both the P1003.4 and .4a work.
  244. Ted Baker (former .5 snitch) generously provided the paper,
  245. ``Realtime Extension for Portable Operating Systems Ada Binding,''
  246. some months back,
  247. which we will use as a starting point.
  248. We are currently refining a schedule to include in the \s-1PAR\s0.
  249. .H 1 "Spreading the P1003.5 Word in Europe"
  250. In my last Snitch Report,
  251. I said that our group is making a real effort
  252. to educate people about the coming \s-1POSIX\s0 Ada Language Binding Standard.
  253. Dave Emery/\s-1MITRE\s0 submitted a team proposal
  254. for a tutorial at Ada Europe in Athens, Greece.
  255. It was accepted and scheduled as a half-day session for May 17, 1991.
  256. Unfortunately, we will probably cancel it
  257. because travel to Greece is currently discouraged.
  258.