Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-08 Thread Bob Deen
On 1/3/18 11:43 AM, Janne Blomqvist wrote: On Wed, Jan 3, 2018 at 8:34 PM, Bob Deen wrote: On 12/29/17 5:31 AM, Janne Blomqvist wrote: In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as proced

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Janne Blomqvist
On Thu, Jan 4, 2018 at 4:21 AM, Jerry DeLisle wrote: > On 01/03/2018 03:37 AM, Janne Blomqvist wrote: >> On Sat, Dec 30, 2017 at 10:58 PM, Jerry DeLisle >> wrote: >>> On 12/30/2017 12:35 PM, Janne Blomqvist wrote: On Sat, Dec 30, 2017 at 7:16 PM, Thomas Koenig wrote: >>> ---snip--- >

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Jerry DeLisle
On 01/03/2018 03:37 AM, Janne Blomqvist wrote: > On Sat, Dec 30, 2017 at 10:58 PM, Jerry DeLisle wrote: >> On 12/30/2017 12:35 PM, Janne Blomqvist wrote: >>> On Sat, Dec 30, 2017 at 7:16 PM, Thomas Koenig >>> wrote: >> ---snip--- >>> >>> I can provide that stuff as a separate patch, or merge it

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Janne Blomqvist
On Wed, Jan 3, 2018 at 8:34 PM, Bob Deen wrote: > On 12/29/17 5:31 AM, Janne Blomqvist wrote: >> >> In order to handle large character lengths on (L)LP64 targets, switch >> the GFortran character length from an int to a size_t. >> >> This is an ABI change, as procedures with character arguments ta

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Bob Deen
On 12/29/17 5:31 AM, Janne Blomqvist wrote: In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. Did this chang

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Janne Blomqvist
On Wed, Jan 3, 2018 at 2:10 PM, Thomas Koenig wrote: > Hi Janne, > >> attached is a patch that makes the two attached testcases work. It >> applies on top of the charlen->size_t patch. In the formatted I/O >> stuff, I have mostly used ptrdiff_t to avoid having to deal with >> signed/unsigned issue

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Thomas Koenig
Hi Janne, attached is a patch that makes the two attached testcases work. It applies on top of the charlen->size_t patch. In the formatted I/O stuff, I have mostly used ptrdiff_t to avoid having to deal with signed/unsigned issues, as the previous code was using int. Did you regression-test?

Re: [PATCH] PR 78534 Change character length from int to size_t

2018-01-03 Thread Janne Blomqvist
On Sat, Dec 30, 2017 at 10:58 PM, Jerry DeLisle wrote: > On 12/30/2017 12:35 PM, Janne Blomqvist wrote: >> On Sat, Dec 30, 2017 at 7:16 PM, Thomas Koenig wrote: > ---snip--- >> >> I can provide that stuff as a separate patch, or merge it into the >> original megapatch and resubmit that, whichever

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-31 Thread Thomas Koenig
Hi Janne, FWIW, by changing your example to use unformatted I/O, it works correctly. Not for me (again, on gcc110): program main character(len=2_8**33), parameter :: a = "" write (10) a end program main with strace results in open("fort.10", O_RDWR|O_CREAT|O_CLOEXEC, 0666) = 3 fstat(3,

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-30 Thread Jerry DeLisle
On 12/30/2017 12:35 PM, Janne Blomqvist wrote: > On Sat, Dec 30, 2017 at 7:16 PM, Thomas Koenig wrote: ---snip--- > > I can provide that stuff as a separate patch, or merge it into the > original megapatch and resubmit that, whichever way you prefer. I would prefer we split into two patches. Thi

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-30 Thread Janne Blomqvist
On Sat, Dec 30, 2017 at 7:16 PM, Thomas Koenig wrote: > Hi Janne, > >> To be honest, I haven't really done much testing with big strings, so >> far my focus has been on getting the existing testsuite to pass and >> getting the ABI right. > > > I agree that some of the test cases can be fixed later

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-30 Thread Thomas Koenig
Hi Janne, To be honest, I haven't really done much testing with big strings, so far my focus has been on getting the existing testsuite to pass and getting the ABI right. I agree that some of the test cases can be fixed later. However, I would really prefer if the I/O worked, because that is v

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-30 Thread Janne Blomqvist
On Sat, Dec 30, 2017 at 4:59 PM, Thomas Koenig wrote: > That's all I could find for the moment. I will continue looking. > Thanks for tackling this! Thanks for testing! To be honest, I haven't really done much testing with big strings, so far my focus has been on getting the existing testsuite t

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-12-30 Thread Thomas Koenig
Hi Janne, In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. Just running some tests on gcc110 (the big-endian PPC machine from the compile farm). Something does not seem to work with I/O with long strings. With progr

[PATCH] PR 78534 Change character length from int to size_t

2017-12-29 Thread Janne Blomqvist
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-14 Thread Jerry DeLisle
On 01/14/2017 12:46 AM, Janne Blomqvist wrote: > On Sat, Jan 14, 2017 at 1:13 AM, Jerry DeLisle wrote: >> On 01/13/2017 11:46 AM, David Edelsohn wrote: >>> On Fri, Jan 13, 2017 at 12:09 PM, Janne Blomqvist >>> wrote: On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: >> I was finally able to g

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-14 Thread Janne Blomqvist
On Sat, Jan 14, 2017 at 10:46 AM, Janne Blomqvist wrote: > On Sat, Jan 14, 2017 at 1:13 AM, Jerry DeLisle wrote: >> On 01/13/2017 11:46 AM, David Edelsohn wrote: >>> On Fri, Jan 13, 2017 at 12:09 PM, Janne Blomqvist >>> wrote: On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: >> I was finall

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-14 Thread Dominique d'Humières
> The following patch fixes these issues for me, does it work for you? Yes, it does! Dominique > Janne Blomqvist

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-14 Thread Janne Blomqvist
On Sat, Jan 14, 2017 at 1:13 AM, Jerry DeLisle wrote: > On 01/13/2017 11:46 AM, David Edelsohn wrote: >> On Fri, Jan 13, 2017 at 12:09 PM, Janne Blomqvist >> wrote: >>> On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: > I was finally able to get a 32-bit i686 compiler going (my attempts to >

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-14 Thread Janne Blomqvist
On Sun, Jan 8, 2017 at 4:29 PM, Dominique d'Humières wrote: >> r244027 reverts r244011. Sorry for the breakage. It seems to affect >> all i686 as well in addition to power, maybe all 32-bit hosts. > > For the record, I see the following failures with an instrumented r244026 (as > in pr78672) > >

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-13 Thread Jerry DeLisle
On 01/13/2017 11:46 AM, David Edelsohn wrote: > On Fri, Jan 13, 2017 at 12:09 PM, Janne Blomqvist > wrote: >> On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: I was finally able to get a 32-bit i686 compiler going (my attempts to do this on a x86_64-pc-linux-gnu host failed, in the end I res

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-13 Thread David Edelsohn
On Fri, Jan 13, 2017 at 12:09 PM, Janne Blomqvist wrote: > On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: >>> I was finally able to get a 32-bit i686 compiler going (my attempts to >>> do this on a x86_64-pc-linux-gnu host failed, in the end I resorted to >>> running 32-bit builds/tests on a i686 co

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-13 Thread Janne Blomqvist
On Thu, Jan 12, 2017 at 10:46 AM, FX wrote: >> I was finally able to get a 32-bit i686 compiler going (my attempts to >> do this on a x86_64-pc-linux-gnu host failed, in the end I resorted to >> running 32-bit builds/tests on a i686 container). At least on i686, >> the patch below on top of the bi

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-12 Thread FX
> I was finally able to get a 32-bit i686 compiler going (my attempts to > do this on a x86_64-pc-linux-gnu host failed, in the end I resorted to > running 32-bit builds/tests on a i686 container). At least on i686, > the patch below on top of the big charlen->size_t patch fixes the > failures Pat

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-11 Thread Janne Blomqvist
On Sun, Jan 8, 2017 at 4:29 PM, Dominique d'Humières wrote: >> r244027 reverts r244011. Sorry for the breakage. It seems to affect >> all i686 as well in addition to power, maybe all 32-bit hosts. > > For the record, I see the following failures with an instrumented r244026 (as > in pr78672) [sn

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-08 Thread Dominique d'Humières
> r244027 reverts r244011. Sorry for the breakage. It seems to affect > all i686 as well in addition to power, maybe all 32-bit hosts. For the record, I see the following failures with an instrumented r244026 (as in pr78672) FAIL: gfortran.dg/char_length_20.f90 -O* execution test FAIL: gfortr

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-03 Thread Janne Blomqvist
On Tue, Jan 3, 2017 at 9:21 PM, FX wrote: >> r244027 reverts r244011. Sorry for the breakage. It seems to affect >> all i686 as well in addition to power, maybe all 32-bit hosts. > > The breakage is surprising, as the rejects-valid does not involve character > length at all. > Jane, any chance yo

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-03 Thread FX
> r244027 reverts r244011. Sorry for the breakage. It seems to affect > all i686 as well in addition to power, maybe all 32-bit hosts. The breakage is surprising, as the rejects-valid does not involve character length at all. Jane, any chance you might have accidentally committed some unrelated c

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-03 Thread Janne Blomqvist
On Tue, Jan 3, 2017 at 4:07 PM, David Edelsohn wrote: > This patch broke bootstrap. I now am seeing numerous errors when > building libgomp. > > Please fix or revert immediately. r244027 reverts r244011. Sorry for the breakage. It seems to affect all i686 as well in addition to power, maybe all

Re: [PATCH] PR 78534 Change character length from int to size_t

2017-01-03 Thread David Edelsohn
This patch broke bootstrap. I now am seeing numerous errors when building libgomp. Please fix or revert immediately. Thanks, David omp_lib.f90:184:40: logical (4) :: omp_test_lock 1 Error: Symbol 'omp_test_lock' at (1) has already been host

[PATCH] PR 78534 Change character length from int to size_t

2017-01-01 Thread Janne Blomqvist
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-29 Thread Gerald Pfeifer
On Tue, 20 Dec 2016, FX wrote: > Finally, if we’re making this change, we welcome any feedback on how > to make it as easy as possible to handle in user code. Documentation, > preprocessor macros, etc. I believe including this in the (yet to be created) gcc-7/porting_to.html, would be great. Hi

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-29 Thread Andre Vehreschild
Hi Janne, hi FX, On Tue, 27 Dec 2016 12:56:19 +0200 Janne Blomqvist wrote: > >> I also changed the _size member in vtables from int to size_t, as > >> there were some cases where character lengths and sizes were > >> apparently mixed up and caused regressions otherwise. Although I I can confirm

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-27 Thread FX
> The _size member is the size of the object; for polymorphic objects > the size isn't known at compile time, so it is to be stored in the > vtable (in principle, since the vtable tells the exact class of a > polymorphic object, it should be possible to figure out the size > without an explicit _si

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-27 Thread Janne Blomqvist
On Tue, Dec 27, 2016 at 12:47 PM, Andre Vehreschild wrote: > Hi Janne, > > sorry for being late in voicing my opinion, but I personally would prefer to > have this patch in a separately. That way bisecting for performance > regressions points only to the offending code and not to the change of the

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-27 Thread Janne Blomqvist
On Mon, Dec 26, 2016 at 12:32 PM, FX wrote: > Hi Janne, > > Thanks for the patch, it is hard and tedious work. Here is the formal review. > I don’t want to be a pain, but I have several questions about the patch, and > given its size and the importance I think we should be double-sure :) Thanks

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-27 Thread Andre Vehreschild
Hi Janne, sorry for being late in voicing my opinion, but I personally would prefer to have this patch in a separately. That way bisecting for performance regressions points only to the offending code and not to the change of the character length (the latter might add a tiny bit of cost, too). Re

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-26 Thread FX
Hi Janne, Thanks for the patch, it is hard and tedious work. Here is the formal review. I don’t want to be a pain, but I have several questions about the patch, and given its size and the importance I think we should be double-sure :) > I also changed the _size member in vtables from int to si

[PATCH] PR 78534 Change character length from int to size_t

2016-12-23 Thread Janne Blomqvist
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-23 Thread Janne Blomqvist
On Wed, Dec 21, 2016 at 3:14 PM, Andre Vehreschild wrote: >> Now when I think about this some more, I have a vague recollection >> that a long time ago it used to be something like that. The problem >> is that MIN_EXPR will of course be >> NON-CONSTANT, so the memcpy call can't be inlined. Hence

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Andre Vehreschild
> Now when I think about this some more, I have a vague recollection > that a long time ago it used to be something like that. The problem > is that MIN_EXPR will of course be > NON-CONSTANT, so the memcpy call can't be inlined. Hence it was > changed to two separate __builtin_memmove() calls to h

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Janne Blomqvist
On Wed, Dec 21, 2016 at 1:50 PM, Andre Vehreschild wrote: >> Here p is the character variable, and _p is the charlen. My guess is >> that the problem is that with -O1 it sees that the second memmove >> would overflow p, but it doesn't realize that branch is never taken. >> Cranking up the optimiza

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Andre Vehreschild
> Here p is the character variable, and _p is the charlen. My guess is > that the problem is that with -O1 it sees that the second memmove > would overflow p, but it doesn't realize that branch is never taken. > Cranking up the optimization level to -O2 and beyond makes it realize > it, and thus th

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Janne Blomqvist
On Wed, Dec 21, 2016 at 12:33 PM, Andre Vehreschild wrote: > Hi Janne, > >> But yes, I'm still seeing the warning messages with -O1 for >> allocate_deferred_char_scalar_1.f03. AFAICT it's a bogus warning, but >> I don't know how to get rid of it.. > > No, that warning isn't at all bogus. The warni

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Andre Vehreschild
Hi Janne, > But yes, I'm still seeing the warning messages with -O1 for > allocate_deferred_char_scalar_1.f03. AFAICT it's a bogus warning, but > I don't know how to get rid of it.. No, that warning isn't at all bogus. The warning in fact is astonishingly precise. When I remember correctly, then

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Janne Blomqvist
On Wed, Dec 21, 2016 at 12:05 PM, Andre Vehreschild wrote: > Hi all, > > so I have learned that proposing to write "speaking code" is not very well > taken. If you want to make a patch introducing gfc_size_t_zero_node, go ahead, at least I won't object. I don't think build_zero_cst(size_type_nod

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-21 Thread Andre Vehreschild
Hi all, so I have learned that proposing to write "speaking code" is not very well taken. Anyway, there is a patch (in two parts) hanging about changing the character length from int to size_t. It looks ok to me, but I do not have the privilege to ok it. Furthermore am I still not convinced that

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Jakub Jelinek
On Tue, Dec 20, 2016 at 05:04:54PM +0100, Andre Vehreschild wrote: > Well, then how about: > > #define gfc_size_t_zero_node build_int_cst (size_type_node, 0) > > We can't get any faster and for new and old gfortran-hackers one identifier's > meaning is faster to grasp than two's. Such macros can

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Andre Vehreschild
On Tue, 20 Dec 2016 16:40:13 +0100 Jakub Jelinek wrote: > On Tue, Dec 20, 2016 at 04:29:07PM +0100, Andre Vehreschild wrote: > > > The first one is GCC internal type for representing sizes, the latter is > > > the C size_t (usually they have the same precision, they always have the > > > same s

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Jakub Jelinek
On Tue, Dec 20, 2016 at 04:29:07PM +0100, Andre Vehreschild wrote: > > The first one is GCC internal type for representing sizes, the latter is > > the C size_t (usually they have the same precision, they always have the > > same signedness (unsigned)). > > In the past sizetype actually has been a

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Andre Vehreschild
On Tue, 20 Dec 2016 16:00:19 +0100 Jakub Jelinek wrote: > On Tue, Dec 20, 2016 at 04:55:29PM +0200, Janne Blomqvist wrote: > > On Tue, Dec 20, 2016 at 3:42 PM, Andre Vehreschild wrote: > > > Hi all, > > > > > >> I think you should use build_zero_cst(size_type_node) instead of > > >> size_z

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Jakub Jelinek
On Tue, Dec 20, 2016 at 04:55:29PM +0200, Janne Blomqvist wrote: > On Tue, Dec 20, 2016 at 3:42 PM, Andre Vehreschild wrote: > > Hi all, > > > >> I think you should use build_zero_cst(size_type_node) instead of > >> size_zero_node as size_zero_node is of type sizetype which is not the > >> same as

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Janne Blomqvist
On Tue, Dec 20, 2016 at 3:42 PM, Andre Vehreschild wrote: > Hi all, > >> I think you should use build_zero_cst(size_type_node) instead of >> size_zero_node as size_zero_node is of type sizetype which is not the >> same as size_type_node. Otherwise looks good. > > In the software design classes I t

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread Andre Vehreschild
Hi all, > I think you should use build_zero_cst(size_type_node) instead of > size_zero_node as size_zero_node is of type sizetype which is not the > same as size_type_node. Otherwise looks good. In the software design classes I took this was called a design error: Not choosing sufficiently differ

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-20 Thread FX
Dear Bob, First, regarding the ABI vs. API question: there is no consistent API for how to pass between Fortran and C strings, unless one uses Fortran 2003’s ISO_C_BINDING. It’s an ABI detail, in the sense that every compiler will choose to do things their own way: most compilers who pass a hid

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-19 Thread Bob Deen
On 12/19/16 11:33 AM, Janne Blomqvist wrote: On Mon, Dec 19, 2016 at 6:43 PM, Bob Deen wrote: Hi all... I never saw any followup on this...? It's one thing to break the ABI between the compiler and the gfortran library; those can generally be expected to be in sync. It's another to break the

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-19 Thread Janne Blomqvist
On Mon, Dec 19, 2016 at 6:43 PM, Bob Deen wrote: > Hi all... > > I never saw any followup on this...? > > It's one thing to break the ABI between the compiler and the gfortran > library; those can generally be expected to be in sync. It's another to > break the ABI between two *languages*, when t

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-19 Thread Steve Kargl
On Mon, Dec 19, 2016 at 08:43:01AM -0800, Bob Deen wrote: > > It's one thing to break the ABI between the compiler and the gfortran > library; those can generally be expected to be in sync. It's another to > break the ABI between two *languages*, when there might be no such > expectation (espe

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-19 Thread Bob Deen
Hi all... I never saw any followup on this...? It's one thing to break the ABI between the compiler and the gfortran library; those can generally be expected to be in sync. It's another to break the ABI between two *languages*, when there might be no such expectation (especially if gcc does

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-16 Thread Dominique d'Humières
> Le 16 déc. 2016 à 19:06, Janne Blomqvist a écrit : > > On Fri, Dec 16, 2016 at 5:50 PM, Dominique d'Humières > wrote: >> Hi Janne, >> >> I have applied your two patches and found that I had to skip the patches for >> resolve.c and match.c due to the errors >> >> ../../p_work/gcc/fortran/re

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-16 Thread Janne Blomqvist
On Fri, Dec 16, 2016 at 5:50 PM, Dominique d'Humières wrote: > Hi Janne, > > I have applied your two patches and found that I had to skip the patches for > resolve.c and match.c due to the errors > > ../../p_work/gcc/fortran/resolve.c: In function 'void > resolve_select_type(gfc_code*, gfc_names

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-16 Thread Janne Blomqvist
On Fri, Dec 16, 2016 at 5:34 PM, Andre Vehreschild wrote: > Hi Janne, hi all, > > as promised please find attached the change from int32 to size_t for the > caf-libraries. Because the caf-libraries do not require special notions > indicated by negative values I went for using size_t there. I assum

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-16 Thread Dominique d'Humières
Hi Janne, I have applied your two patches and found that I had to skip the patches for resolve.c and match.c due to the errors ../../p_work/gcc/fortran/resolve.c: In function 'void resolve_select_type(gfc_code*, gfc_namespace*)': ../../p_work/gcc/fortran/resolve.c:8731:58: error: format '%lld'

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-16 Thread Andre Vehreschild
Hi Janne, hi all, as promised please find attached the change from int32 to size_t for the caf-libraries. Because the caf-libraries do not require special notions indicated by negative values I went for using size_t there. I assume this will be easier to keep in sync for all caf-libraries, because

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-13 Thread Janne Blomqvist
On Mon, Dec 12, 2016 at 9:39 PM, Janne Blomqvist wrote: > On Mon, Dec 12, 2016 at 7:39 PM, Andre Vehreschild wrote: >> Hi Janne, >> >> I found that you are favoring build_int_cst (size_type_node, 0) over >> size_zero_node. Is there a reason to this? > > Yes. AFAIU size_zero_node is a zero constan

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Andre Vehreschild
Hi Janne, How about adding charlen_zero_node and one_node like the others have it to prevent repeating ourselves? - Andre Am 12. Dezember 2016 20:39:38 MEZ, schrieb Janne Blomqvist : >On Mon, Dec 12, 2016 at 7:39 PM, Andre Vehreschild >wrote: >> Hi Janne, >> >> I found that you are favoring b

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janne Blomqvist
On Mon, Dec 12, 2016 at 7:39 PM, Andre Vehreschild wrote: > Hi Janne, > > I found that you are favoring build_int_cst (size_type_node, 0) over > size_zero_node. Is there a reason to this? Yes. AFAIU size_zero_node is a zero constant for sizetype which is not the same as size_type_node. AFAIK the

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Bob Deen
> However, this will also affect people doing C->Fortran calls the > old-fashioned way without ISO_C_BINDING, as they will have to change > the string length argument from int to size_t in their prototypes. > Then again, Intel Fortran did this some years ago so I guess at least > people who care a

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Andre Vehreschild
Hi Janne, I found that you are favoring build_int_cst (size_type_node, 0) over size_zero_node. Is there a reason to this? Furthermore did I have to patch this: diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c index 585f25d..f374558 100644 --- a/gcc/fortran/dump-parse-tr

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janne Blomqvist
On Mon, Dec 12, 2016 at 3:35 PM, Janus Weil wrote: > Hi guys, > >> there is already an ABI change. DTIO needed it. > > maybe it would be a good idea to document this in places like: > * https://gcc.gnu.org/wiki/GFortran/News > * https://gcc.gnu.org/gcc-7/changes.html > > On the first page there ar

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janus Weil
Hi guys, > there is already an ABI change. DTIO needed it. maybe it would be a good idea to document this in places like: * https://gcc.gnu.org/wiki/GFortran/News * https://gcc.gnu.org/gcc-7/changes.html On the first page there are "Compatibility notices" for several earlier versions which menti

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janne Blomqvist
On Mon, Dec 12, 2016 at 12:29 PM, Andre Vehreschild wrote: > I will take on the coarray ABI changes in the next days and also emit a > pull-request to the opencoarrays to get them to sync. Janne, please wait until > I have added those changes to prevent people from having to re-compile > multiple

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janne Blomqvist
On Mon, Dec 12, 2016 at 12:20 PM, FX wrote: > Hi Janne, > > This is an ABI change, so it is serious… it will require people to recompile > older code and libraries with the new compiler. Do we already plan to break > the ABI in this cycle, or is this the first ABI-breaking patch of the cycle? A

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Andre Vehreschild
Hi FX, there is already an ABI change. DTIO needed it. I will take on the coarray ABI changes in the next days and also emit a pull-request to the opencoarrays to get them to sync. Janne, please wait until I have added those changes to prevent people from having to re-compile multiple times. - A

Re: [PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread FX
Hi Janne, This is an ABI change, so it is serious… it will require people to recompile older code and libraries with the new compiler. Do we already plan to break the ABI in this cycle, or is this the first ABI-breaking patch of the cycle? And do we have real-life examples of character strings

[PATCH] PR 78534 Change character length from int to size_t

2016-12-12 Thread Janne Blomqvist
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t