This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, fortran] PR51976 - [F2003] Support deferred-length character components of derived types (allocatable string length)


Hi Paul,

Paul Richard Thomas wrote:
I had completely forgotten about this patch... I even thought that it
had been applied :-) I'll have time, either tomorrow evening or Saturday to take a look.
After nearly 11 months, a couple more days will not hurt!

I think it went as follows: We found out that some code doesn't - in particular code which uses array-valued deferred-length characters. After trying to fix it, you (Paul) decided that the simplest way to fix it would be the new array descriptor - and then it got stuck.

Regarding this patch, I have mixed feelings. I think it is a much wished feature - but I am not sure about the stability of the patch and it is rather large, given that we are in stage 4.


Regarding the new array descriptor: I think it would be useful if we could get the new descriptor working early in the GCC 4.10/5.0/2015 development stage. I think the main large task is to convert all all remaining stride-based code to stride-multiplier code without breaking vectorization and causing other regressions. Additionally, it would be nice to get rid of "offset" - and have in the descriptor always an lower_bound of 0, except for pointers/allocatables (cf. TS29113). I think the version on the branch is in a relatively good shape; however, the stride and offset changes seem to be of such a kind that one needs to modify several code locations simultaneously - otherwise, it will break badly. Additionally, all remaining regressions have to be fixed. When that's done, adding some extra field is all what's needed. (As follow up, enough remains to be done: I'd like to use it for all class(*), possibly even for nonarray class(type), assumed-rank needs an update, assumed-shape/-rank/deferred-shape character arrays also have to be adapted (also mandated by TS29113 for interop). And we should do an ABI cleanup in libgfortran as we have now the chance to break the ABI.) - Is anyone volunteering?

Also planned for GCC post-4.9: Getting an initial really working coarray version.

(Besides more mundane tasks like finishing finalization, completing OOP or ...)

Tobias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]