Re: PR82943 - Suggested patch to fix
Hello, I wanted to follow up on this, and ask what the next steps would be to incorporate this patch? Thanks, Alexander Westbrooks On Thu, Jun 29, 2023 at 10:38 PM Alexander Westbrooks wrote: > Hello, > > I have finished my testing, and updated my patch and relevant Changelogs. > I added 4 new tests and all the existing tests in the current testsuite > for gfortran passed or failed as expected. Do I need to attach the test > results here? > > The platform I tested on was a Docker container running in Docker Desktop, > running the "mcr.microsoft.com/devcontainers/universal:2-linux" image. > > I also made sure that my code changes followed the coding standards. > Please let me know if there is anything else that I need to do. I don't > have write-access to the repository. > > Thanks, > > Alexander > > On Wed, Jun 28, 2023 at 4:14 PM Harald Anlauf wrote: > >> 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 >> >> where 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 >> >>
PR82943 - Suggested patch to fix
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 0001-bug-patch-PR82943.patch Description: Binary data
Re: PR82943 - Suggested patch to fix
Hello, I have finished my testing, and updated my patch and relevant Changelogs. I added 4 new tests and all the existing tests in the current testsuite for gfortran passed or failed as expected. Do I need to attach the test results here? The platform I tested on was a Docker container running in Docker Desktop, running the "mcr.microsoft.com/devcontainers/universal:2-linux" image. I also made sure that my code changes followed the coding standards. Please let me know if there is anything else that I need to do. I don't have write-access to the repository. Thanks, Alexander On Wed, Jun 28, 2023 at 4:14 PM Harald Anlauf wrote: > 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 > > where 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 > > 0001-Fix-fortran-PR82943-PR86148-and-PR86268.patch Description: Binary data