home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / modula2 / 1437 < prev    next >
Encoding:
Text File  |  1992-11-22  |  2.5 KB  |  50 lines

  1. Newsgroups: comp.lang.modula2
  2. Path: sparky!uunet!mcsun!news.funet.fi!cs.joensuu.fi!jpussi
  3. From: jpussi@cs.joensuu.fi (Jarmo Pussinen)
  4. Subject: Re: Oberon-2 discussion continues
  5. Message-ID: <1992Nov23.081453.5152@cs.joensuu.fi>
  6. Organization: University of Joensuu
  7. X-Newsreader: Tin 1.1 PL5
  8. References: <37695@uflorida.cis.ufl.edu>
  9. Date: Mon, 23 Nov 1992 08:14:53 GMT
  10. Lines: 38
  11.  
  12. Benedict Rafanello (bmr@buoy.cis.ufl.edu) wrote:
  13. : |> >>>  e) DEFINITION & IMPLEMENTATION merged.
  14. : |>  >>This was a really bad move.  Now you can't define the interface separately
  15. : |>  >>and enforce it, and the "*" and "-" stuff is really kludgy, very atypical
  16. : |>  >>of Wirth's work.  Even if you accept that merging the def and imp is good,
  17. : |>  >>interface details like READONLY really deserve their own keywords.
  18. : |>  No, this is a good move.  The maintenance of only 1 file is a big
  19. : |>  win.  If you are concerned about the definition being published with
  20. : |>  the source, don't worry.  There is a `Browser' module which will
  21. : |>  output a definition for a compiled module.  You can then ship the
  22. : |>  defintion (sans comments, unless you provide them) with your object
  23. : |>  modules.
  24. : If both the interface and the implementation are in one file, how do you
  25. : tell when only the implementation was changed?  This is very important for
  26. : large projects.  Some of the projects that I have been involved with contain
  27. : more than a million lines of code.  These projects (done in Ada) would take
  28. : several DAYS just to compile.  If the interface to a package was changed,
  29. : we would have to go through that horrendous compile cycle whereas if just
  30. : the implementation was changed, we only needed to relink.  How does Oberon
  31. : handle this?
  32. : Ben
  33.  
  34. There is a compiler option, which tells to the compiler that interface 
  35. may change. If you compile a source file without that option you cannot 
  36. change the interface (create a new .sym file) without a compile time error.
  37. So there is no need to recompile the other stuff (and as you know there is
  38. no linking phase in Oberon :-), after changes that do not affect interface.
  39.  
  40. In short in Oberon it is the compiler which creates the interface file.
  41. -- 
  42. --------------------------------------------------------------------------------
  43. | University of Joensuu                 |   When I was younger I always thought|
  44. | jpussi@cs.joensuu.fi                  |   but nowadays I don't.              |
  45. | or something like that                |                                      |
  46.