From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19378 invoked by alias); 14 Mar 2019 07:38:46 -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 19363 invoked by uid 89); 14 Mar 2019 07:38:46 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPAM_BODY,SPF_PASS autolearn=no version=3.3.1 spammy=H*i:sk:0989665, H*f:sk:0989665, explain X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 14 Mar 2019 07:38:44 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1h4Kwo-0006ez-VQ from Thomas_Schwinge@mentor.com ; Thu, 14 Mar 2019 00:38:38 -0700 Received: from hertz.schwinge.homeip.net (137.202.0.90) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 14 Mar 2019 07:38:35 +0000 From: Thomas Schwinge To: Thomas Koenig CC: Tobias Burnus , , , Jakub Jelinek Subject: Re: [PR72741] Encode OpenACC 'routine' directive's level of parallelism inside Fortran module files In-Reply-To: <09896653-ad4d-13c6-4341-3ffe1bdc0b8c@netcologne.de> References: <5762190F.4030102@codesourcery.com> <87y35zmxcv.fsf@euler.schwinge.homeip.net> <20190228211701.GG7611@tucnak> <09896653-ad4d-13c6-4341-3ffe1bdc0b8c@netcologne.de> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/25.2.2 (x86_64-pc-linux-gnu) Date: Thu, 14 Mar 2019 07:38:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-SW-Source: 2019-03/txt/msg00085.txt.bz2 Hi Thomas! On Wed, 13 Mar 2019 23:13:46 +0100, Thomas Koenig w= rote: > Am 13.03.19 um 18:50 schrieb Thomas Schwinge: > >> There are many ways to deal with it without bumping MOD_VERSION in a > >> backwards but not forwards compatible way, so that a newer compiler wi= ll be > >> able to parse old *.mod files, and newer compiler new ones as long as = this > >> problematic stuff doesn't appear in. > > Like the attached, actually pretty simple now? >=20 > Can you explain a) how this works I'll be happy to elaborate, but I'm not sure at which level you'd like me to explain? This is basically the very same thing that's being done for other 'struct symbol_attribute' flag fields, by interpreting the 'enum oacc_routine_lop' values as individual flags, and with the corollary (to maintain MOD_VERSION compatibility as best as we can) that we don't stream out its default value (so doing correspondingly to when a "real" flag's value is 'false'). > and b) how you tested it? I had mentioned that in the commit message: with the relevant old/new GCC combinations, using the included test case. Happy to explain further, if necessary. Gr=C3=BC=C3=9Fe Thomas