March 09, 2015
On 3/9/2015 12:30 AM, Daniel Murphy wrote:
> "Walter Bright"  wrote in message news:mdjh6g$215p$1@digitalmars.com...
>
>> Not really. I never had to compile one one machine and copy the result onto
>> another.
>
> It doesn't have to be cross-architecture to be a cross compiler.

As far as I'm concerned, if it's running on the same machine, it is not a cross compiler, it's a different memory model.


>> How easy it is to copy the files over would decide which method is more
>> convenient. Besides, it is likely the vast majority of the work would be in
>> the back end, which remains in C++.
>
> I guess that makes sense.  It should be easier to apply a backend patch to two
> versions than it would be with a large frontend patch.
>
> Anyway, after the new platform is brought up, the original 2.067 still won't be
> able to target it and will therefore no longer be a suitable minimum host
> compiler version. This could be fixed by creating a point release for 2.067 that
> includes the new platform support, or by bumping the version requirement to the
> latest release.  If we're talking months, then a point release is reasonable.
> If 2.067 is years old by then, it's probably best to bump the requirement.

Yup.

March 09, 2015
"Walter Bright"  wrote in message news:mdjj01$22eo$1@digitalmars.com...

> As far as I'm concerned, if it's running on the same machine, it is not a cross compiler, it's a different memory model.

I... I don't agree.  But luckily it doesn't matter. 

March 09, 2015
On Mon, 09 Mar 2015 02:18:31 +1100, Daniel Murphy wrote:

> I would prefer long periods between host compiler version bumps, but is building completely from source really a concern?

sure it is. one more windoze .exe to call for cross-building dmd.exe in GNU/Linux. i managed to make it partially buildable with cross-mingw (kawabanga!), and now it all again... also, treading crash bug still not fixed, so vanilla dmd.exe keeps crashing with my wine.

oh, crap... how i hate it.

March 09, 2015
On Mon, 09 Mar 2015 00:12:47 -0700, Walter Bright wrote:

> On 3/8/2015 8:43 PM, Daniel Murphy wrote:
>> "Walter Bright"  wrote in message news:mdj3l3$1hup$1@digitalmars.com...
>>
>>> Never needed to build a cross compiler.
>>
>> You did when adding 64-bit targets.  ie dmd is a 32->64 and 64->32 cross compiler.
> 
> Not really. I never had to compile one one machine and copy the result onto another.

so do you mean that if i need to compile under GNU/Linux, but have compiler to produce windows PE, that means that i'm not doing cross- compile? no, i will not copy the resulting PE anywhere, i'll test it right on the same box.

a very interesting definition of cross-compilation and cross-compilers...

March 09, 2015
On 9 March 2015 at 08:44, ketmar via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Mon, 09 Mar 2015 00:12:47 -0700, Walter Bright wrote:
>
>> On 3/8/2015 8:43 PM, Daniel Murphy wrote:
>>> "Walter Bright"  wrote in message news:mdj3l3$1hup$1@digitalmars.com...
>>>
>>>> Never needed to build a cross compiler.
>>>
>>> You did when adding 64-bit targets.  ie dmd is a 32->64 and 64->32 cross compiler.
>>
>> Not really. I never had to compile one one machine and copy the result onto another.
>
> so do you mean that if i need to compile under GNU/Linux, but have compiler to produce windows PE, that means that i'm not doing cross- compile? no, i will not copy the resulting PE anywhere, i'll test it right on the same box.
>
> a very interesting definition of cross-compilation and cross-compilers...

There's a difference between cross-compiling for a wholly different platform/architecture vs. compiling on a multiarch-aware platform/cpu (such as 64->32).
March 09, 2015
On Monday, 9 March 2015 at 04:01:26 UTC, Daniel Murphy wrote:
> "Vladimir Panteleev"  wrote in message news:sjlsydcjflglxpwuscpk@forum.dlang.org...
>
>> OK, then can a file please be added to the DMD source repo which indicates which host DMD version is needed to build it?
>
> This seems reasonable.  We could also add a static assert to provide a helpful error message when attempting to build with older versions

A machine-readable version is preferable because then Digger can consult it to know which pre-built DMD version to fetch.

If we had somewhere a machine-readable list of all DMD releases with binaries for major platforms plus release dates, it could use that as well, and just use the latest stable release for the point in time which the source code to be built is from.
March 09, 2015
"Vladimir Panteleev"  wrote in message news:njvvnodefqmrhzbuxcja@forum.dlang.org...

> A machine-readable version is preferable because then Digger can consult it to know which pre-built DMD version to fetch.

Yes.  Any preference on the name?

> If we had somewhere a machine-readable list of all DMD releases with binaries for major platforms plus release dates, it could use that as well, and just use the latest stable release for the point in time which the source code to be built is from.

Can that be generated from the git tags? 

March 09, 2015
On Monday, 9 March 2015 at 10:47:06 UTC, Daniel Murphy wrote:
> "Vladimir Panteleev"  wrote in message news:njvvnodefqmrhzbuxcja@forum.dlang.org...
>
>> A machine-readable version is preferable because then Digger can consult it to know which pre-built DMD version to fetch.
>
> Yes.  Any preference on the name?

Not really. There is the VERSION file, maybe something like that.

>> If we had somewhere a machine-readable list of all DMD releases with binaries for major platforms plus release dates, it could use that as well, and just use the latest stable release for the point in time which the source code to be built is from.
>
> Can that be generated from the git tags?

It depends, do we have a stable URL structure for DMD downloads so that you can build a working download URL with only the platform and version?
March 09, 2015
On Monday, 9 March 2015 at 01:26:10 UTC, Daniel Murphy wrote:
> "Walter Bright"  wrote in message news:mdiqav$17i8$1@digitalmars.com...
>
>> On 3/8/2015 5:00 PM, Daniel Murphy wrote:
>> > If it's a new platform, why would 2.067 be able to target it?
>>
>> Because it'll have a C++ compiler.
>
> You'd be able to compile the C++ version of 2.067 on this platform, but 2.067 still wouldn't be able to target that platform without patches. Wouldn't it be easier to add support for the new platform into the latest compiler and cross-compile?  IIRC you did something like this in the past when targeting new platforms.

What about source Linux distributions, like Gentoo?

What do other self-hosted languages do in this situation?
March 09, 2015
"Vladimir Panteleev"  wrote in message news:bujssfggzyassdtzdegn@forum.dlang.org...

> It depends, do we have a stable URL structure for DMD downloads so that you can build a working download URL with only the platform and version?

Sorta http://downloads.dlang.org/releases/2014/