From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 130014 invoked by alias); 9 Sep 2017 19:08:26 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 129773 invoked by uid 89); 9 Sep 2017 19:08:25 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=promised, HTo:U*damian, cod, Damian X-HELO: mail-yw0-f174.google.com Received: from mail-yw0-f174.google.com (HELO mail-yw0-f174.google.com) (209.85.161.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 09 Sep 2017 19:08:24 +0000 Received: by mail-yw0-f174.google.com with SMTP id v72so12344689ywa.3 for ; Sat, 09 Sep 2017 12:08:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=/5ekOtzxDV/9liTAZxvaleOkRUdHdNERetY67exr+2k=; b=Wj2osE8UtmAmwtS98+l/6leoA3I20hpSGojJixz/4ENKV+jEIKk8vrMk51o7vr+Y7Q vHzM1q/x+AUjTy/MGFx2Ua1zypkJ6Mza8xNCeTvF0mBkMxTTPTHHOT4NukYcgG/W85Tp cQNtp2nWs+7EBaC1mgwJlqBxBqd2M6x8HuphN5z+3ORbqm5yw+0c6L11K/xGpGVm8vOy dV4NzRgX7pPdFw0H7At725ARpULcu5WWPaxHhgEJ8fbST/RIcFHnkNI8fZjXWeawDskj 0u5ZyvUE4rcwYuGzbyk0csuZlHBO1+2gEIJIHbwkxbhARxueSip1rmo10HMMrVvkdD7l ED/A== X-Gm-Message-State: AHPjjUiSpFut51Uk7MYKz7BpF3b7Gt5GE/7PzOCI8e+sKsMcQCpTXm1z v6HZb6d4yodi3w3krQb4Tqj4LiDtFQ== X-Google-Smtp-Source: AOwi7QDJoUWUK0/o6hoLDd4Zj7v4tQBOlpRj6mf0VsaKE1mGGXHtKzZzKwu0JS2UABtWeziBW0NQWGLMrz/Ful7v4SI= X-Received: by 10.37.187.70 with SMTP id b6mr5712281ybk.170.1504984102396; Sat, 09 Sep 2017 12:08:22 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.162.148 with HTTP; Sat, 9 Sep 2017 12:08:21 -0700 (PDT) In-Reply-To: References: From: Janus Weil Date: Sat, 09 Sep 2017 19:08:00 -0000 Message-ID: Subject: Re: [Patch, fortran] Parameterized Derived Types To: Damian Rouson Cc: Paul Richard Thomas , gfortran Content-Type: multipart/mixed; boundary="f403043d9dbcd110b90558c66a16" X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00025.txt.bz2 --f403043d9dbcd110b90558c66a16 Content-Type: text/plain; charset="UTF-8" Content-length: 1721 2017-09-09 13:27 GMT+02:00 Damian Rouson : > > Hooray!!!! Great work, Paul. +1 :D As promised, I have done some testing by now, and found several problems (ICE-on-invalid, accepts-invalid and rejects-valid), see the attached test cases. Nothing too severe I guess. > One small step for gfortran. One big step for the Fortran world. I have never looked very closely into PDTs, but now that I do, it seems like the step for the Fortran world is not quite as big as it could be (or as I had hoped). The restriction that KIND parameters cannot be assumed/deferred is a pretty severe one, isn't it? In terms of "generic programming" it makes PDTs far less powerful than e.g. C++ templates (I knew that they are less powerful, but with this restriction it's worse than I thought). In particular, it seems that I can define a nice 'generic' type that deals with arbitrary KIND values in theory, but then all the functions / TBPs that work on my type need to be implemented separately for each KIND value (which means lots of cod duplication), right? Or am I overlooking anything here? Is anyone aware if this restriction is lifted in F08 or later, or is planned to be lifted? Cheers, Janus > On September 9, 2017 at 4:15:37 AM, Paul Richard Thomas (paul.richard.thomas@gmail.com(mailto:paul.richard.thomas@gmail.com)) wrote: > >> Dear All, >> >> The patch has been committed as revision 251925. >> >> I look forward to "feedback" (aka PRs) in the coming weeks. I will >> return to Parameterized Derived Types at the end of this month to >> clear up some of the known deficiencies (see the notes attached to the >> patch submission) and any PRs that arise. >> >> Regards >> >> Paul > --f403043d9dbcd110b90558c66a16 Content-Type: text/x-fortran; charset="US-ASCII"; name="pdt1.f90" Content-Disposition: attachment; filename="pdt1.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j7doah8n0 Content-length: 761 ISBJQ0Ugb24gaW52YWxpZCAmIGFjY2VwdHMgaW52YWxpZAoKaW1wbGljaXQg bm9uZQoKdHlwZSA6OiBwYXJhbV9tYXRyaXgoYyxyKQogIGludGVnZXIsIGxl biA6OiBjLHIKICByZWFsIDo6IG0oYyxyKQplbmQgdHlwZQoKdHlwZSByZWFs X2FycmF5KGspCiAgaW50ZWdlciwga2luZCA6OiBrCiAgcmVhbChraW5kPWsp LCBhbGxvY2F0YWJsZSA6OiByKDopCmVuZCB0eXBlCgp0eXBlKHBhcmFtX21h dHJpeCgxKSkgOjogbTEgICAgICAgISBzZWdmYXVsdCBpbiBnZmNfZ2V0X3Bk dF9pbnN0YW5jZSAoZGVjbC5jKQp0eXBlKHBhcmFtX21hdHJpeCgxLDIpKSA6 OiBtMiAgICAgISBvawp0eXBlKHBhcmFtX21hdHJpeCgxLDIsMykpIDo6IG0z ICAgISBhY2NlcHRlZCwgYnV0IGludmFsaWQKdHlwZShwYXJhbV9tYXRyaXgo MSwyLjUpKSA6OiBtNCAgICEgYWNjZXB0ZWQsIGJ1dCBpbnZhbGlkCgp0eXBl KHJlYWxfYXJyYXkoNCkpIDo6IGExICAgICAgICAhIG9rCnR5cGUocmVhbF9h cnJheSg1KSkgOjogYTIgICAgICAgICEgc2VnZmF1bHQgaW4gdHJlZV9jbGFz c19jaGVjayAodHJlZS5oKQplbmQK --f403043d9dbcd110b90558c66a16 Content-Type: text/x-fortran; charset="US-ASCII"; name="pdt2.f90" Content-Disposition: attachment; filename="pdt2.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j7doah9e1 Content-length: 354 ISBhY2NlcHRzIGludmFsaWQKCmltcGxpY2l0IG5vbmUKdHlwZSA6OiB0KGss aSxhLHgseSkKICBpbnRlZ2VyLCBraW5kIDo6IGsKICBpbnRlZ2VyIDo6IGkg ICAgICAgICAgICAgICEgS0lORCBvciBMRU4gbWlzc2luZwogIGludGVnZXIg OjogYSgzKSAgICAgICAgICAgISBtdXN0IGJlIHNjYWxhcgogIHJlYWwgOjog eCAgICAgICAgICAgICAgICAgISBtdXN0IGJlIGludGVnZXIKICAhIHkgaXMg bm90IGRlY2xhcmVkIGF0IGFsbAplbmQgdHlwZQoKZW5kCg== --f403043d9dbcd110b90558c66a16 Content-Type: text/x-fortran; charset="UTF-8"; name="pdt3.f90" Content-Disposition: attachment; filename="pdt3.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j7doah9j2 Content-length: 362 ISByZWplY3RzIHZhbGlkCgppbXBsaWNpdCBub25lCgp0eXBlIDo6IHBhcmFt X21hdHJpeChrLGMscikKICBpbnRlZ2VyLCBraW5kIDo6IGsKICBpbnRlZ2Vy LCBsZW4gOjogYyxyCiAgcmVhbChraW5kPWspIDo6IG0oYyxyKQplbmQgdHlw ZQoKdHlwZShwYXJhbV9tYXRyaXgoOCwzLDIpKSA6OiBtYXQKcmVhbChraW5k PW1hdCVrKSA6OiBtICAgICEgRXJyb3I6IFBhcmFtZXRlciDigJhtYXTigJkg YXQgKDEpIGhhcyBub3QgYmVlbiBkZWNsYXJlZCBvciAuLi4KCmVuZAo= --f403043d9dbcd110b90558c66a16 Content-Type: text/x-fortran; charset="UTF-8"; name="pdt4.f90" Content-Disposition: attachment; filename="pdt4.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j7doah9q3 Content-length: 944 ISByZWplY3RzIHZhbGlkCgptb2R1bGUgbXlfbWF0cml4CiAgdHlwZSA6OiBw YXJhbV9tYXRyaXgoayxjLHIpCiAgICBpbnRlZ2VyLCBraW5kIDo6IGsKICAg IGludGVnZXIsIGxlbiA6OiByCiAgICBpbnRlZ2VyLCBsZW4gOjogYwogICAg cmVhbChraW5kPWspIDo6IG0oYyxyKQogIGVuZCB0eXBlIHBhcmFtX21hdHJp eAoKICBpbnRlcmZhY2UgcHJvY2Vzc19tYXRyaXgKICAgIG1vZHVsZSBwcm9j ZWR1cmUgcHJvY2Vzc19tYXRyaXhfNAogICAgbW9kdWxlIHByb2NlZHVyZSBw cm9jZXNzX21hdHJpeF84CiAgZW5kIGludGVyZmFjZQoKY29udGFpbnMKCiAg c3Vicm91dGluZSBwcm9jZXNzX21hdHJpeF80KG0pCiAgICB0eXBlKHBhcmFt X21hdHJpeCg0LCosKikpIDo6IG0gICAhIERlcml2ZWQgdHlwZSDigJhwZHRw YXJhbV9tYXRyaXhfNOKAmSBhdCAoMSkgaXMgYmVpbmcgdXNlZCBiZWZvcmUg aXQgaXMgZGVmaW5lZAogIGVuZCBzdWJyb3V0aW5lIHByb2Nlc3NfbWF0cml4 XzQKCiAgc3Vicm91dGluZSBwcm9jZXNzX21hdHJpeF84KG0pCiAgICB0eXBl KHBhcmFtX21hdHJpeCg4LCosKikpIDo6IG0gICAhIERlcml2ZWQgdHlwZSDi gJhwZHRwYXJhbV9tYXRyaXhfOOKAmSBhdCAoMSkgaXMgYmVpbmcgdXNlZCBi ZWZvcmUgaXQgaXMgZGVmaW5lZAogIGVuZCBzdWJyb3V0aW5lIHByb2Nlc3Nf bWF0cml4XzgKCmVuZCBtb2R1bGUK --f403043d9dbcd110b90558c66a16--