Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Gaius Mulley
ah no - lto builds fine.  But with make profiledbootstrap
it errors out with:

gm2/gm2-libs-boot/pthdummy.o: In function `pth_init':
/home/gaius/GM2/graft-trunk/build-lto-trunk/gcc/../../gcc-versionno/gcc/gm2/gm2-libs-ch/pthdummy.c:48:
 undefined reference to `__gcov_indirect_call'

the positive is that again I'm focused back onto replacing libpth 

regards,
Gaius


From: Matthias Klose 
Sent: 01 October 2019 13:46
To: Gaius Mulley ; gcc@gcc.gnu.org 

Subject: Re: state of play/strategy for including Modula-2 into the trunk 
(licence queries)

On 30.09.19 18:46, Gaius Mulley wrote:
> again is this sensible?  Are there [obvious] issues I've missed?

does the profiled LTO build now work? I didn't check recently myself.

Matthias


Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Matthias Klose

On 30.09.19 18:46, Gaius Mulley wrote:

again is this sensible?  Are there [obvious] issues I've missed?


does the profiled LTO build now work? I didn't check recently myself.

Matthias


Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Gaius Mulley
Florian Weimer  writes:

> * Gaius Mulley:
>
>>> The question is whether this is really necessary.  Obviously, there is
>>> no requirement to ship all supporting code under the GPL version 3 or
>>> later for GCC.  See the libffi subdirectory, which has its own
>>> license.
>>
>> sure I think it is looking sensible to stop using libpth.  gm2 only
>> needs the two basic primitives create a context and switch to a context
>> in any case.  Furthermore it only needs these if the user wants
>> coroutines.  For most Modula-2 programs it isn't required.
>
> One possibility would be to have an implementation based on the
> libgcc/gthr.h abstraction.  It would not be very efficient if the user
> is looking for coroutines, but it would avoid a dependency on yet
> another thread library.

yes thanks for the pointer - I will explore this in detail.  It looks
interesting as there is better potential for multi-language projects
(m2/C++ maybe).


regards,
Gaius


Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Florian Weimer
* Gaius Mulley:

>> The question is whether this is really necessary.  Obviously, there is
>> no requirement to ship all supporting code under the GPL version 3 or
>> later for GCC.  See the libffi subdirectory, which has its own
>> license.
>
> sure I think it is looking sensible to stop using libpth.  gm2 only
> needs the two basic primitives create a context and switch to a context
> in any case.  Furthermore it only needs these if the user wants
> coroutines.  For most Modula-2 programs it isn't required.

One possibility would be to have an implementation based on the
libgcc/gthr.h abstraction.  It would not be very efficient if the user
is looking for coroutines, but it would avoid a dependency on yet
another thread library.

Thanks,
Florian


Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Gaius Mulley
Florian Weimer  writes:

> * Gaius Mulley:
>
>> gm2 does use GNU libpth (to create context and switch contexts).
>> Although it doesn't need libpth for single process programs.  I think
>> the GNU libpth project is no longer maintained, so I've included it in:
>>
>> http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/libgm2/libpth/pth
>
> libpth is dead upstream, I think, so it's not an ideal choice.
>
>> I assuming this is okay as it is an official GNU project?  It contains
>> the important clause:
>>
>>>  This library is free software; you can redistribute it and/or
>>>  modify it under the terms of the GNU Lesser General Public
>>>  License as published by the Free Software Foundation; either
>>>  version 2.1 of the License, or (at your option) any later version.
>>
>> in its source files - so I plan to bump this to GPL3 with runtime
>> exception.  Is this sensible and what is expected?
>
> Copyright has not been assigned to the FSF, so I wouldn't recommend
> making this change without consulting the major copyright holders
> first.

ah thanks - really useful info, I hadn't realised the copyright was not
assigned to the FSF.

> The question is whether this is really necessary.  Obviously, there is
> no requirement to ship all supporting code under the GPL version 3 or
> later for GCC.  See the libffi subdirectory, which has its own
> license.

sure I think it is looking sensible to stop using libpth.  gm2 only
needs the two basic primitives create a context and switch to a context
in any case.  Furthermore it only needs these if the user wants
coroutines.  For most Modula-2 programs it isn't required.

> (Note: I'm just a random bystander here, this is not official policy.)

the feedback is really helpful - thanks,


regards,
Gaius


Re: state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-10-01 Thread Florian Weimer
* Gaius Mulley:

> gm2 does use GNU libpth (to create context and switch contexts).
> Although it doesn't need libpth for single process programs.  I think
> the GNU libpth project is no longer maintained, so I've included it in:
>
> http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/libgm2/libpth/pth

libpth is dead upstream, I think, so it's not an ideal choice.

> I assuming this is okay as it is an official GNU project?  It contains
> the important clause:
>
>>  This library is free software; you can redistribute it and/or
>>  modify it under the terms of the GNU Lesser General Public
>>  License as published by the Free Software Foundation; either
>>  version 2.1 of the License, or (at your option) any later version.
>
> in its source files - so I plan to bump this to GPL3 with runtime
> exception.  Is this sensible and what is expected?

Copyright has not been assigned to the FSF, so I wouldn't recommend
making this change without consulting the major copyright holders first.

The question is whether this is really necessary.  Obviously, there is
no requirement to ship all supporting code under the GPL version 3 or
later for GCC.  See the libffi subdirectory, which has its own license.

(Note: I'm just a random bystander here, this is not official policy.)

Thanks,
Florian


state of play/strategy for including Modula-2 into the trunk (licence queries)

2019-09-30 Thread Gaius Mulley


Hello,

I thought I'd seek advice on how to get the Modula-2 front end into
trunk and also give a state of play.


State of play
=

Currently the gm2-trunk passes all but one regression test on amd64.
Other architectures/platforms vary.  In early September the whole number
overflow detection was completed, which was the final ISO feature
required.  The compiler and libraries completely implement the ISO
standard.  The good news is that the focus is now bug
hunting/fixing/maintainance and updating all boiler-plates.

I'm currently semi-manually walking the source tree updating all GPL
boiler-plates.  All compiler source files have been changed to GPL3.

http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-compiler

All library source files have been changed to GPL3 with runtime
exception in these directories:

http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs-min
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs-pim
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs-iso
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs-coroutines
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libiberty
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/gcc/gm2/gm2-libs-ch

Is this correct?  Without wishing to seem presumptuous - is it preferred to
use the project name GCC or stick with GNU Modula-2?

(I still need to visit:
http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/libgm2)

gm2 does use GNU libpth (to create context and switch contexts).
Although it doesn't need libpth for single process programs.  I think
the GNU libpth project is no longer maintained, so I've included it in:

http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno/libgm2/libpth/pth

I assuming this is okay as it is an official GNU project?  It contains
the important clause:

>  This library is free software; you can redistribute it and/or
>  modify it under the terms of the GNU Lesser General Public
>  License as published by the Free Software Foundation; either
>  version 2.1 of the License, or (at your option) any later version.

in its source files - so I plan to bump this to GPL3 with runtime
exception.  Is this sensible and what is expected?

Anyway I thought it best to ask these questions even though there is
still a little way to go - but the finishing line is in sight!  (In
terms of visiting each and every file and checking the boiler-plates).

I've yet to tackle the regression test directory and the examples
directory.  I also need to check all Makefiles, script files and double
check the texi files.

Once the tree of source file visiting is complete, how should I proceed?

My default plan would be to work on the compiler driver patches again
after applying the changes advised.  If/when they go through ask for a
review of the tree for inclusion:

http://git.savannah.gnu.org/cgit/gm2.git/tree/gcc-versionno

again is this sensible?  Are there [obvious] issues I've missed?
What would you prefer?

many thanks,

regards,
Gaius