home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / eiffel / 1444 < prev    next >
Encoding:
Internet Message Format  |  1993-01-21  |  3.7 KB

  1. Path: sparky!uunet!pipex!demon!cix.compulink.co.uk!arh
  2. Newsgroups: comp.lang.eiffel
  3. From: arh@cix.compulink.co.uk (Andrew Henson)
  4. Subject: TITLE: "Eiffel: The Language" 2nd printing ERRATA
  5. Reply-To: arh@cix.compulink.co.uk
  6. Date: Thu, 21 Jan 1993 23:57:00 +0000
  7. Message-ID: <memo.884925@cix.compulink.co.uk>
  8. Sender: usenet@demon.co.uk
  9. Lines: 152
  10.  
  11.  
  12. There is a partial errata I've picked up from the 2nd printing.
  13. There are a lot of improvements over the 1st printing, especially in
  14. the code fragments near the back, but there's some way to go!
  15.  
  16.  
  17. p88: Margin note on NONE
  18.  
  19. States that NONE is the type of address parameters.  Since the
  20. introduction of POINTER (now listed as a reserved word in the 2nd
  21. printing this is no longer the case.  (in the 1st printing POINTER
  22. does not appear).
  23.  
  24.  
  25. p241:  Caroline.pay_salary
  26.  
  27. style rules suggest this should be `caroline', not `Caroline'. (What
  28. happened to `jane' from the first printing?).
  29.  
  30.  
  31. p388:  Real constants (box) :  a.b
  32.        where a & b are integer constants.
  33.  
  34. This implies 1.-2 is a legal real :-)
  35. Also it would be nice to have some examples with underlines on this
  36. page, e.g. 1_234.5
  37.  
  38.  
  39. p419: "With the exception of @ for arrays, free operators are not
  40.        used in the Basic libraries..."
  41.  
  42. infix "#" is used on p480 in the basic libraries
  43.  
  44.  
  45. p422:  String_with_backspace:INTEGER is "AAA%BZZZ"
  46.  
  47. Should be :STRING
  48.  
  49. This page also needs to mention comments - specifically is
  50.   -- increases by 50%.
  51. illegal because "%." is not a legal % sequence, and is %N, viz:
  52.   class ANY -- header comment%N inherit PLATFORM end
  53. a valid way of terminating a comment?
  54.  
  55.  
  56. p434:  class interface ANY exported features
  57.  
  58. Elsewhere, shortforms used
  59.    class interface CLASNAME feature specification
  60.  
  61. so why the change?
  62.  
  63.  
  64. p435:  frozen clone
  65.  
  66. is correct, but the margin comment on p543 would be useful here.
  67.  
  68.  
  69. p436:  Maximum_character_code >= 128
  70.  
  71. Why 128?
  72. If using ASCII, codes run from 0 to 127.  Should it be >= 127 ?
  73.  
  74.  
  75. p453:  is_developer_exception(code:INTEGER):INTEGER
  76.  
  77. should be ...):BOOLEAN
  78. as should the next: is_assertion_violation ... :BOOLEAN
  79.  
  80. (Note to those with 1st printing: these are new in 2nd printing;
  81. good software engineering technique - changing the spec without
  82. telling anyone :-)).
  83.  
  84.  
  85. p471 (chapter31): out(x)
  86.  
  87. Should be x.out
  88.  
  89.  
  90. p472: io.putstring(out(temperature))
  91.  
  92. Should be io.putstring(temperature.out)
  93.  
  94.  
  95. p474: readstream
  96.  
  97. Is this correct?  Should it be readstring?
  98.  
  99.  
  100. p491: feature
  101.         set(minindex,maxindex:INTEGER) is
  102.  
  103. a) Since it's defined as `make' in `creation', it should be `make'
  104. here (1st printing called both `set').
  105.  
  106. b) since --`lower' initialised to 0 by default
  107. is assumed, then is should only be called as a creation, so it should
  108. be exported to none.
  109.  
  110. i.e.  feature {NONE}
  111.         make(minindex,maxindex:INTEGER) is
  112.  
  113. c) so now we need a new
  114.       feature
  115. before lower: INTEGER so we can start exporting again.
  116.  
  117.  
  118. p491(again): empty_if_impossible: minindex < maxindex implies count=0
  119.  
  120. Nope!  Try ">"
  121.  
  122.  
  123. p571: Parent_list
  124.  
  125. `end' here is ambiguous with `end' from Class_declaration if no 
  126. rename, export, undefine, redefine or select preceed.
  127.  
  128.  
  129. p572: New_export_item
  130.       Class_name box
  131.  
  132. Should be Feature_name
  133.  
  134.  
  135. p572(again): Routine
  136.  
  137. Should optionally allow `else' and `then' after require and ensure
  138.  
  139.  
  140. p573: Instruction
  141.  
  142. if and inspect paths allow `end' to be omitted
  143.  
  144. creation needs an identifier before .unqualified_call
  145.  
  146.  
  147. p574: Loop
  148.  
  149. after variant a Tag_mark is permitted. Called \box{Identifier}\box{:}
  150. in this appendix.
  151.  
  152.  
  153. p574(again): Call
  154.  
  155. Identifier is an alternative to ( Expression )
  156. e.g. io.newline   as well as
  157.      (io).newline
  158. This error also occurs in appendix H & I.
  159.  
  160. --------------
  161. Andy Henson;  voice: +44.923.825275;  voicemail: +44.426.910223
  162. arh@cix.compulink.co.uk; Cix is a mail service: I'm independant.
  163.