Print

Print


Hmmm, it looks like ftp.j3-fortran.org no longer exists, and ftp to
j3-fortran.org doesn't answer.  Use http://j3-fortran.org/doc/meeting/167
to access the papers cited in the original message (quoted below).

> James Giles wrote:
>
> > Alvaro Fernandez wrote:
>
> > > But what Van Snyder said was that he had a _single version_ which he
> > > wrote for all kinds and selected internally. That's at least what I
> > > understood.
> >
> > There is a proposal for that (two, so far, although I've not officially
> > submitted mine yet since it overlaps with several other proposals
> > and I want to see how they fare).  Mine goes something like this:
> >
> >    Function mean(r1,r2)
> >       integer, inferred :: k1, k2
> >       real(^k1)::r1    ! k1 is implicitly set to the value of r1's KIND
> >       real(^k2)::r2    ! k2 in implicitly set to the value of r2's KIND
> >       real(kind(0.0_k1+0.0_k2)) :: mean   ! mean's KIND is determined by the
> > usual rule
> >
> >       mean = (r1+r2)/2
> >    end function mean
> >
> > This function is now generic with respect to KIND.  The definition of
> > the named constants in that form is called "inference".
>
> At meeting 167, after a convincing tutorial by Aleksandar Donev, J3 voted
> not to remove the general topic of "Generic Programming" from the list of
> candidates that J3 will advocate to WG5 are worthy of future consideration.
>
> We managed to reduce the list from about 150 proposals to about 120.  We
> still need another factor of six or so reduction in order to fit the next
> revision into the schedule (tentatively, frozen in 2008 and published in
> 2009).
>
> Aleks and I are now advocating essentially the same thing, with different
> details in the spelling:  A program unit "template" that has parameters.
> The user is required explicitly to instantiate the template.  My proposal
> is consciously modeled on Ada generic packages, in that I propose to
> generalize modules.  Aleks wants a new program unit spelled differently
> from modules.  This is a detail we can settle later.  We each have our
> preferences; I obviously prefer my approach, but I would be far happier to
> have what Aleks proposes than to have nothing.  I can't speak definitively
> for Aleks, but I think his view of my proposal is similar.
>
> Dan Nagle also proposed an "Assumed-kind" procedure, which is similar
> to what James proposes, but with "*" instead of "^k1" for the kinds.
>
> What James and Dan are proposing is a bit simpler in the special case of
> kind, but (at least as far as I can tell) doesn't handle the more general
> cases that Aleks and I want to handle.
>
> Aleks and I both propose that package parameters not be limited to
> integers.  We propose that package parameters can be any kind of value,
> types, procedures, and packages.  The procedures can be either specific
> or generic, and the packages can be instances or "templates."
>
> My paper is ftp://ftp.j3-fortran.org/doc/meeting/167/04-153.ps.gz.  Aleks
> has two similar papers, .../04-239.txt.gz and .../04-247.txt.gz.  Dan's
> paper was .../04-237.txt.gz.  My paper has examples of the general cases
> that Aleks and I hope to address, in its section 7.
>
> --
> Van Snyder                    |  What fraction of Americans believe
> [log in to unmask]       |  Wrestling is real and NASA is fake?
> Any alleged opinions are my own and have not been approved or disapproved
> by JPL, CalTech, NASA, Sean O'Keefe, George Bush, the Pope, or anybody else.