[J3] [SC22WG5.6386] RE: [ukfortran] WG5 Letter Ballot 2

Malcolm Cohen malcolm at nag-j.co.jp
Wed May 11 00:52:44 UTC 2022


Actually, you can’t write it to a character string without defined i/o, and that can’t be done because a pure procedure can’t have a dummy argument of that type. (And luckily, this means no additional edit will be needed for simple procedures.)

 

So I conclude that there would appear to be no circumstances where the structure constructor could be used anyway.

 

So unless I am very much mistaken, even with a misreading of the constraint, there would appear to be no change in what one can do.

 

Cheers,

-- 

..............Malcolm Cohen, NAG Oxford/Tokyo.

 

From: J3 <j3-bounces at mailman.j3-fortran.org> On Behalf Of Malcolm Cohen via J3
Sent: Tuesday, May 10, 2022 12:20 PM
To: 'General J3 interest list' <j3 at mailman.j3-fortran.org>
Cc: Malcolm Cohen <malcolm at nag-j.co.jp>
Subject: Re: [J3] [SC22WG5.6386] RE: [ukfortran] WG5 Letter Ballot 2

 

So what are you going to do with this constructor? Assign it to a local variable? Oops, not allowed to have the local variable. Pass it as an argument? Not allowed either.

 

I suppose you could write it into a character string. Is this the hill we’re going to have the interp die on? I am struggling to imagine any other context where it could potentially be valid...

 

...and anyway, the existing text does not ban type names. Type REAL is not of type REAL or any other type, type CHARACTER is not of type CHARACTER or any other type, and type RANDOM_DERIVED_TYPE is not of any type either.

 

(There might be consequences for SIMPLE procedures here; we definitely need to ban the type name or have some constraint on structure constructors.)

 

Cheers,

-- 

..............Malcolm Cohen, NAG Oxford/Tokyo.

 

From: J3 <j3-bounces at mailman.j3-fortran.org <mailto:j3-bounces at mailman.j3-fortran.org> > On Behalf Of Robert Corbett via J3
Sent: Tuesday, May 10, 2022 11:53 AM
To: General J3 interest list <j3 at mailman.j3-fortran.org <mailto:j3 at mailman.j3-fortran.org> >
Cc: Robert Corbett <rpcorbett at att.net <mailto:rpcorbett at att.net> >
Subject: Re: [J3] [SC22WG5.6386] RE: [ukfortran] WG5 Letter Ballot 2

 

The text bans a named local entity or construct entity.  If type names are not banned, they can be used in constructors, which are not named entities.

Robert Corbett

 

On May 9, 2022, at 7:39 PM, Malcolm Cohen via J3 <j3 at mailman.j3-fortran.org <mailto:j3 at mailman.j3-fortran.org> > wrote:



<<< 

A type name can name a local entity that might seem to be
subject to the new constraint.  However, I do not think that
a derived type is "of a type" (it is a type), and therefore,
is not subject to the constraint.  I find that to be a slender
reed. 

>>> 

 

A derived type name does not itself have a type, any more than the name of a module (that might contain type definitions that contain data components) has a type. In my opinion this is not a weak or slender reed.

 

> A named local or construct data entity

 

Apart from having ambiguous grammar, there is also no such thing as a “construct data entity”.

 

> be of a {declared} type

 

We never say “of a declared type”, as the “declared” part goes with the entity, not with the type.

 

Making such changes to the edit would change my vote to “N”.

 

<<< 

Specifically, it might be read as banning
type names that name derived types that include default
initializations of pointer components to targets.

>>> 

 

I disagree, but in any case, how exactly do you envisage such a type name being used unproblematically within a pure procedure (and without creating any local entity or construct entity of such a type)?

 

Cheers,

-- 

..............Malcolm Cohen, NAG Oxford/Tokyo.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20220511/dc3534bd/attachment-0001.htm>


More information about the J3 mailing list