JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for COMP-FORTRAN-90 Archives


COMP-FORTRAN-90 Archives

COMP-FORTRAN-90 Archives


COMP-FORTRAN-90@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

COMP-FORTRAN-90 Home

COMP-FORTRAN-90 Home

COMP-FORTRAN-90  2002

COMP-FORTRAN-90 2002

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Re: Dependencies due to modules (tricky)

From:

Daniel Grimwood <[log in to unmask]>

Reply-To:

Fortran 90 List <[log in to unmask]>

Date:

Fri, 14 Jun 2002 16:03:59 +0800

Content-Type:

TEXT/PLAIN

Parts/Attachments:

Parts/Attachments

TEXT/PLAIN (95 lines)

Hi,

On Wed, 12 Jun 2002, Van Snyder ([log in to unmask]) wrote:

> I did, and complained several times, both during the latter stages of
> development and during public comment.  I was not serving on X3J3 at the
> time, so I cannot speculate why the problem was not corrected before
> Fortran 90 was published.

I'm glad I'm not the only one frustrated by all of this.

At the moment I'm optimising PRIVATE routines of a particular module.
This module only takes a minute to compile, but the one that USEs it takes
about ten minutes to compile.  Linking takes about a minute.  The test job
that I run to make sure I haven't stuffed up (eg, typos) takes only 25
seconds to run.  Avoiding the cascade is a *big* issue for me :).

> It has now been realized that there are problems, and a Type-II Technical
> Report has been authorized to address the deficiencies.  The subject of
> the report is to allow expressing a module as an "interface" part and
> zero or more "implementation" parts, as is done in Modula-2 (only one
> implementation part) and Ada (multiple implementation parts by way of
> "library subunits").  The "interface" part will be compatible with
> Fortran 2000 modules.  I.e., you can put everything there, and have no
> "implementation" parts.  The "implementation" parts for a single module
> will depend on its "interface" part, not vice-versa, and perhaps on each
> other.  Nothing else can depend on them, so you can change a detail of an
> "implementation" part of a module, and not get a compilation cascade.
> More importantly, if your software engineering protocol requires
> re-certification of every program unit that gets re-compiled, you don't
> get a re-certification cascade, which could be far more expensive than a
> compilation cascade.

I really like the sound of this.  I don't mind additional files generated
by the compiler hanging around that contain "implementation" stuff if
they need it, but it would be great to *require* .mod files contain only
"interface" stuff.  It wouldn't fully address the problems of having files
up to date (still have to use timestamp files, recursive Make, checksums,
or ...), but it would absolutely minimise the cascade and make our silly
"cmp" scripts redundant.

> A Type-II Technical Report has nearly the stature of a standard.  The
> agreement is that it will be incorporated into the next standard
> exactly as specified, unless substantial implementation problems or usage
> problems are discovered.  There have already been two Type-II Technical
> Reports that amend Fortran 95.  Many vendors have implemented them, and
> they are being incorporated into the Fortran 2000 standard.
> The plan is that the technical report on module facilities will be
> published at about the same time as the standard.

Will the report be published separately?  It would be great to have part
of it in section C.8.2 of the standard, i.e., say that module information
files contain interface information only.

While we're at it, I think a slight modification to C.8.2.1 of the
standard would go a long way to universal makefiles/scripts.  For example,
in regard to module information files, "Thus the processor may have to
provide a mapping between Fortran name and system names" is a bit vague,
as there's nothing about file extensions or uppercase/lowercase.  Whilst
MS-DOS can't handle names more than 8 characters long, it seems that
all(?) O/S's can handle a .mod suffix, so it would not be difficult to
force the generation of a .mod file with interface-only information.
Likewise, most Unices can handle uppercase and lowercase, yet the vendors
are split down the middle as to who uses uppercase and who uses lowercase.
MS-DOS has it's limits, but does this have to translate into ambiguity for
the rest?  (Note that just because a compiler is forced to generate a
certain file doesn't necessarily mean it has to use that file, so
compilers don't need to be rewritten to achieve this.).

Section C.8.2.1 also mentions that .mod files that propogate PUBLIC
information may have pointers to other .mod files rather than just copying
the PUBLIC information into their own .mod files.  I don't think that any
vendors use these pointers, so now is a good time to get rid of the
suggestion.  Such a method makes a meal out of the avoidance of cascading
recompilation, because not only do you have to examine the modules that
you USE, but also the ones that they USE, and so on.  But of course this
is only true for PUBLIC information, not PRIVATE information, so your
dependency generator would have to keep track of PUBLIC and PRIVATE
entities in all prerequisites.  Aargh! Let's get rid of it, and make
"including copies of information originally specified in other modules"
the only option.

F2k is a good opportunity to fix up modules, and this interface-only
requirement sounds like a good idea.  I hope we can fix up these other
smaller problems too.

Regards,
Daniel.

--------------------------------------------------------------------------
Daniel Grimwood                       Department of Chemistry
Email : [log in to unmask]     The University of Western Australia
Phone : +61 8 93803138                35 Stirling Highway
Fax   : +61 8 93801005                Crawley WA 6009

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
February 2023
November 2022
September 2022
February 2022
January 2022
June 2021
November 2020
September 2020
June 2020
May 2020
April 2020
December 2019
October 2019
September 2019
March 2019
February 2019
January 2019
November 2018
October 2018
September 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
December 2015
November 2015
October 2015
September 2015
August 2015
June 2015
April 2015
March 2015
January 2015
December 2014
November 2014
October 2014
August 2014
July 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
July 2013
June 2013
May 2013
April 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
August 2010
July 2010
June 2010
March 2010
February 2010
January 2010
December 2009
October 2009
August 2009
July 2009
June 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager