From: Harald Anlauf <anlauf@gmx.de>
To: Alexander Westbrooks <ctechnodev@gmail.com>,
fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: PR82943 - Suggested patch to fix
Date: Wed, 28 Jun 2023 23:14:27 +0200 [thread overview]
Message-ID: <55ac674d-468c-d4f5-e45e-190b25202412@gmx.de> (raw)
In-Reply-To: <CAGGSiqm6yVk=-XJ-YEmY3kucUqiq3izOSwFpS5BDKqv293An4w@mail.gmail.com>
Hi Alex,
welcome to the gfortran community. It is great that you are trying
to get actively involved.
You already did quite a few things right: patches shall be sent to
the gcc-patches ML, but Fortran reviewers usually notice them only
where they are copied to the fortran ML.
There are some general recommendations on the formatting of C code,
like indentation, of the patches, and of the commit log entries.
Regarding coding standards, see https://www.gnu.org/prep/standards/ .
Regarding testcases, a recommendation is to have a look at
existing testcases, e.g. in gcc/testsuite/gfortran.dg/, and then
decide if the testcase shall test the compile-time or run-time
behaviour, and add the necessary dejagnu directives.
You should also verify if your patch passes regression testing.
For changes to gfortran, it is usually sufficient to run
make check-fortran -j <n>
where <n> is the number of parallel tests.
You would need to report also the platform where you tested on.
There is also a legal issue to consider before non-trivial patches can
be accepted for incorporation: https://gcc.gnu.org/contribute.html#legal
If your patch is accepted and if you do not have write-access to the
repository, one of the maintainers will likely take care of it.
If you become a regular contributor, you will probably want to consider
getting write access.
Cheers,
Harald
On 6/24/23 19:17, Alexander Westbrooks via Gcc-patches wrote:
> Hello,
>
> I am new to the GFortran community. Over the past two weeks I created a
> patch that should fix PR82943 for GFortran. I have attached it to this
> email. The patch allows the code below to compile successfully. I am
> working on creating test cases next, but I am new to the process so it may
> take me some time. After I make test cases, do I email them to you as well?
> Do I need to make a pull-request on github in order to get the patch
> reviewed?
>
> Thank you,
>
> Alexander Westbrooks
>
> module testmod
>
> public :: foo
>
> type, public :: tough_lvl_0(a, b)
> integer, kind :: a = 1
> integer, len :: b
> contains
> procedure :: foo
> end type
>
> type, public, EXTENDS(tough_lvl_0) :: tough_lvl_1 (c)
> integer, len :: c
> contains
> procedure :: bar
> end type
>
> type, public, EXTENDS(tough_lvl_1) :: tough_lvl_2 (d)
> integer, len :: d
> contains
> procedure :: foobar
> end type
>
> contains
> subroutine foo(this)
> class(tough_lvl_0(1,*)), intent(inout) :: this
> end subroutine
>
> subroutine bar(this)
> class(tough_lvl_1(1,*,*)), intent(inout) :: this
> end subroutine
>
> subroutine foobar(this)
> class(tough_lvl_2(1,*,*,*)), intent(inout) :: this
> end subroutine
>
> end module
>
> PROGRAM testprogram
> USE testmod
>
> TYPE(tough_lvl_0(1,5)) :: test_pdt_0
> TYPE(tough_lvl_1(1,5,6)) :: test_pdt_1
> TYPE(tough_lvl_2(1,5,6,7)) :: test_pdt_2
>
> CALL test_pdt_0%foo()
>
> CALL test_pdt_1%foo()
> CALL test_pdt_1%bar()
>
> CALL test_pdt_2%foo()
> CALL test_pdt_2%bar()
> CALL test_pdt_2%foobar()
>
>
> END PROGRAM testprogram
WARNING: multiple messages have this Message-ID
From: Harald Anlauf <anlauf@gmx.de>
To: gcc-patches@gcc.gnu.org
Cc: fortran@gcc.gnu.org
Subject: Re: PR82943 - Suggested patch to fix
Date: Wed, 28 Jun 2023 23:14:27 +0200 [thread overview]
Message-ID: <55ac674d-468c-d4f5-e45e-190b25202412@gmx.de> (raw)
Message-ID: <20230628211427.h2NRlprlWseKcsUSk0trDc8xvrBHLsiQDQ_4DgIrA7g@z> (raw)
In-Reply-To: <CAGGSiqm6yVk=-XJ-YEmY3kucUqiq3izOSwFpS5BDKqv293An4w@mail.gmail.com>
Hi Alex,
welcome to the gfortran community. It is great that you are trying
to get actively involved.
You already did quite a few things right: patches shall be sent to
the gcc-patches ML, but Fortran reviewers usually notice them only
where they are copied to the fortran ML.
There are some general recommendations on the formatting of C code,
like indentation, of the patches, and of the commit log entries.
Regarding coding standards, see https://www.gnu.org/prep/standards/ .
Regarding testcases, a recommendation is to have a look at
existing testcases, e.g. in gcc/testsuite/gfortran.dg/, and then
decide if the testcase shall test the compile-time or run-time
behaviour, and add the necessary dejagnu directives.
You should also verify if your patch passes regression testing.
For changes to gfortran, it is usually sufficient to run
make check-fortran -j <n>
where <n> is the number of parallel tests.
You would need to report also the platform where you tested on.
There is also a legal issue to consider before non-trivial patches can
be accepted for incorporation: https://gcc.gnu.org/contribute.html#legal
If your patch is accepted and if you do not have write-access to the
repository, one of the maintainers will likely take care of it.
If you become a regular contributor, you will probably want to consider
getting write access.
Cheers,
Harald
On 6/24/23 19:17, Alexander Westbrooks via Gcc-patches wrote:
> Hello,
>
> I am new to the GFortran community. Over the past two weeks I created a
> patch that should fix PR82943 for GFortran. I have attached it to this
> email. The patch allows the code below to compile successfully. I am
> working on creating test cases next, but I am new to the process so it may
> take me some time. After I make test cases, do I email them to you as well?
> Do I need to make a pull-request on github in order to get the patch
> reviewed?
>
> Thank you,
>
> Alexander Westbrooks
>
> module testmod
>
> public :: foo
>
> type, public :: tough_lvl_0(a, b)
> integer, kind :: a = 1
> integer, len :: b
> contains
> procedure :: foo
> end type
>
> type, public, EXTENDS(tough_lvl_0) :: tough_lvl_1 (c)
> integer, len :: c
> contains
> procedure :: bar
> end type
>
> type, public, EXTENDS(tough_lvl_1) :: tough_lvl_2 (d)
> integer, len :: d
> contains
> procedure :: foobar
> end type
>
> contains
> subroutine foo(this)
> class(tough_lvl_0(1,*)), intent(inout) :: this
> end subroutine
>
> subroutine bar(this)
> class(tough_lvl_1(1,*,*)), intent(inout) :: this
> end subroutine
>
> subroutine foobar(this)
> class(tough_lvl_2(1,*,*,*)), intent(inout) :: this
> end subroutine
>
> end module
>
> PROGRAM testprogram
> USE testmod
>
> TYPE(tough_lvl_0(1,5)) :: test_pdt_0
> TYPE(tough_lvl_1(1,5,6)) :: test_pdt_1
> TYPE(tough_lvl_2(1,5,6,7)) :: test_pdt_2
>
> CALL test_pdt_0%foo()
>
> CALL test_pdt_1%foo()
> CALL test_pdt_1%bar()
>
> CALL test_pdt_2%foo()
> CALL test_pdt_2%bar()
> CALL test_pdt_2%foobar()
>
>
> END PROGRAM testprogram
next prev parent reply other threads:[~2023-06-28 21:14 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-24 17:17 Alexander Westbrooks
2023-06-28 21:14 ` Harald Anlauf [this message]
2023-06-28 21:14 ` Harald Anlauf
2023-06-30 3:38 ` Alexander Westbrooks
2023-06-30 4:42 ` Steve Kargl
2023-06-30 6:40 ` Paul Richard Thomas
2023-06-30 9:08 ` Paul Richard Thomas
2023-07-17 15:56 ` Alexander Westbrooks
2024-01-20 18:46 ` Alexander Westbrooks
2024-01-20 19:08 ` Jerry D
2024-01-20 19:52 ` Jerry D
2024-01-20 20:08 ` Harald Anlauf
2024-01-20 20:08 ` Harald Anlauf
2024-01-20 20:37 ` Jerry D
2024-01-20 21:40 ` Harald Anlauf
2024-01-20 21:40 ` Harald Anlauf
2024-01-20 22:42 ` Alexander Westbrooks
2024-01-21 20:55 ` Harald Anlauf
2024-01-21 20:55 ` Harald Anlauf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55ac674d-468c-d4f5-e45e-190b25202412@gmx.de \
--to=anlauf@gmx.de \
--cc=ctechnodev@gmail.com \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).