🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.modula2
Article #2145

Re: Oberon-2 discussion continues

#2145
From: Andreas Borchert
Date: Mon, 23 Nov 1992 06:55
53 lines
3501 bytes
In article <37695@uflorida.cis.ufl.edu>, bmr@buoy.cis.ufl.edu (Benedict Rafanello) writes:
> |> >>>  e) DEFINITION & IMPLEMENTATION merged.
> 
> |>  >>This was a really bad move.  Now you can't define the interface separately
> |>  >>and enforce it, and the "*" and "-" stuff is really kludgy, very atypical
> |>  >>of Wirth's work.  Even if you accept that merging the def and imp is good,
> |>  >>interface details like READONLY really deserve their own keywords.
> 
> |>  No, this is a good move.  The maintenance of only 1 file is a big
> |>  win.  If you are concerned about the definition being published with
> |>  the source, don't worry.  There is a `Browser' module which will
> |>  output a definition for a compiled module.  You can then ship the
> |>  defintion (sans comments, unless you provide them) with your object
> |>  modules.
> 
> If both the interface and the implementation are in one file, how do you
> tell when only the implementation was changed?  This is very important for
> large projects.  Some of the projects that I have been involved with contain
> more than a million lines of code.  These projects (done in Ada) would take
> several DAYS just to compile.  If the interface to a package was changed,
> we would have to go through that horrendous compile cycle whereas if just
> the implementation was changed, we only needed to relink.  How does Oberon
> handle this?
> 
> Ben

The Zurich Oberon compiler generates symbol files (interface definitions
for the compiler itself) like Modula-2 compilers for definition modules.
On compilation of a module, you may choose whether to recreate a
symbol file or not. If you don't recreate the symbol file but the
compiler detects differences between the new module and the old symbol
file, you get some nice error messages.

This, of course, makes compiling more difficult: usually you are trying
to compile without generating new symbol files. Only in case of error
messages, to try to recompile it with the \s flag.

Until now, I haven't detected any sufficient support for something like
make on UNIX-Systems, so it's a non-trivial task to compile greater
stuff under the Oberon-System. Please tell me if this has been changed
in the latest versions or if there is some work on this in progress.

Nevertheless, I still prefer the idea that I have a source file with
a time stamp which represents the interface. That's good for my makefiles
and my personal overview. A separately formatted and hand-written
definition module is a document which cannot be replaced by the
browser tool of the Zurich Oberon system.

-- 
_______________________________________________________________________________

Andreas Borchert, University of Ulm, SAI, D-W-7900 Ulm, Germany
Internet: borchert@mathematik.uni-ulm.de
Technical Details
Message-ID: <1992Nov23.065513.5398@informatik.uni-ulm.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!cs.utexas.edu!swrinde!emory!sol.ctr.columbia.edu!ira.uka.de!math.fu-berlin.de!news.belwue.de!theorie!titania.mathematik.uni-ulm.de!borchert
References: <9211130912.A01822@MAIL.CASI.NASA.GOV> <37695@uflorida.cis.ufl.edu>

Show Full Headers
Complete Article Headers
Newsgroups: comp.lang.modula2
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!cs.utexas.edu!swrinde!emory!sol.ctr.columbia.edu!ira.uka.de!math.fu-berlin.de!news.belwue.de!theorie!titania.mathematik.uni-ulm.de!borchert
From: borchert@titania.mathematik.uni-ulm.de (Andreas Borchert)
Subject: Re: Oberon-2 discussion continues
Message-ID: <1992Nov23.065513.5398@informatik.uni-ulm.de>
Sender: usenet@informatik.uni-ulm.de (Name for nntp-posting)
Nntp-Posting-Host: titania.mathematik.uni-ulm.de
Organization: University of Ulm, SAI
References: <9211130912.A01822@MAIL.CASI.NASA.GOV> <37695@uflorida.cis.ufl.edu>
Date: Mon, 23 Nov 92 06:55:13 GMT
Lines: 53