Re: Reproducible builds of D compilers

2016-05-13 Thread Pjotr Prins via Digitalmars-d

On Saturday, 7 May 2016 at 17:56:07 UTC, Johan Engelen wrote:
On Saturday, 7 May 2016 at 16:22:34 UTC, Vladimir Panteleev 
wrote:


https://blog.thecybershadow.net/2015/05/05/is-d-slim-yet/


Thanks for repeating the link to that blog article. I was 
reminded of it at DConf. Would be great if results from GDC and 
LDC could be added to the graphs, plus more tests!


Yes, nice read!




Re: Reproducible builds of D compilers

2016-05-07 Thread Johan Engelen via Digitalmars-d

On Saturday, 7 May 2016 at 16:22:34 UTC, Vladimir Panteleev wrote:


https://blog.thecybershadow.net/2015/05/05/is-d-slim-yet/


Thanks for repeating the link to that blog article. I was 
reminded of it at DConf. Would be great if results from GDC and 
LDC could be added to the graphs, plus more tests!


Re: Reproducible builds of D compilers

2016-05-07 Thread Vladimir Panteleev via Digitalmars-d

On Friday, 6 May 2016 at 08:07:30 UTC, Pjotr Prins wrote:
At Dconf we had a discussion on creating reproducible builds of 
the D compilers. One thing that is required is bootstrapping 
the build. In GNU Guix we start from a working C compiler which 
is a reasonable starting point (it could have been LISP instead 
;)


For D this means that even if all components of the compilers 
are written in D we should have a (chain of) compilation steps 
that can be initiated from a C or C++ compiler. This is still 
the case today, but I want to highlight this point here so we 
do not lose that facility.


GNU Guix can be used as a reproducible reference build system 
where we capture the bootstrapping process nicely and test the 
builds on the build farm(s) whenever something changes.


Hi,

Digger can already bootstrap D from the last C++ compiler.

It also shares a lot of the same design ideas as Guix (storing 
build results as a hash of code and dependencies). It uses git as 
the store, which allows e.g. storing every buildable commit of D 
ever in about 5 GB.


On Windows, D needs proprietary software (Visual Studio) to 
build. I'm not sure whether that's something possible with Guix. 
What Digger does is that it downloads only the Visual Studio 
components that are necessary, verifies their integrity, and 
unpacks them into a directory (without requiring administrator 
rights) and uses it from there.


https://github.com/CyberShadow/Digger
https://blog.thecybershadow.net/2015/05/05/is-d-slim-yet/



Re: Reproducible builds of D compilers

2016-05-07 Thread Pjotr Prins via Digitalmars-d

On Saturday, 7 May 2016 at 08:53:10 UTC, Thomas Mader wrote:
GNU Guix can be used as a reproducible reference build system 
where we capture the bootstrapping process nicely and test the 
builds on the build farm(s) whenever something changes.


I like the idea.
I thought about that too but would not use GNU Guix for it.
I would suggest to use Nix -> http://nixos.org/
AFAIK GNU Guix uses some parts of Nix and I think the community 
behind it is not as big.

There are also packages for dmd on Nix already.
I also was able to get the ddmd frontent version of dmd running 
on Nix.
Nix would be the perfect system to base all the testing on 
because it's very easy to distribute entire system 
configurations over multiple computers.
So once everything is setup correctly and the knowledge is 
there, it makes administering entire server farms pretty 
comfortable.


Hi Thomas! Good news, Nix and Guix can easily be used on one 
system. I am a GNU Guix person (for several reason; also used Nix 
for years), and I am glad to say that the community is growing 
rather fast. Guix is a pretty young project.


I am committed to supporting the D language on Guix (if only to 
deploy my own working environments), be great to have the same on 
Nix.


Re: Reproducible builds of D compilers

2016-05-07 Thread Thomas Mader via Digitalmars-d

On Friday, 6 May 2016 at 08:07:30 UTC, Pjotr Prins wrote:
At Dconf we had a discussion on creating reproducible builds of 
the D compilers. One thing that is required is bootstrapping 
the build. In GNU Guix we start from a working C compiler which 
is a reasonable starting point (it could have been LISP instead 
;)


For D this means that even if all components of the compilers 
are written in D we should have a (chain of) compilation steps 
that can be initiated from a C or C++ compiler. This is still 
the case today, but I want to highlight this point here so we 
do not lose that facility.


GNU Guix can be used as a reproducible reference build system 
where we capture the bootstrapping process nicely and test the 
builds on the build farm(s) whenever something changes.


I like the idea.
I thought about that too but would not use GNU Guix for it.
I would suggest to use Nix -> http://nixos.org/
AFAIK GNU Guix uses some parts of Nix and I think the community 
behind it is not as big.

There are also packages for dmd on Nix already.
I also was able to get the ddmd frontent version of dmd running 
on Nix.
Nix would be the perfect system to base all the testing on 
because it's very easy to distribute entire system configurations 
over multiple computers.
So once everything is setup correctly and the knowledge is there, 
it makes administering entire server farms pretty comfortable.


Reproducible builds of D compilers

2016-05-06 Thread Pjotr Prins via Digitalmars-d
At Dconf we had a discussion on creating reproducible builds of 
the D compilers. One thing that is required is bootstrapping the 
build. In GNU Guix we start from a working C compiler which is a 
reasonable starting point (it could have been LISP instead ;)


For D this means that even if all components of the compilers are 
written in D we should have a (chain of) compilation steps that 
can be initiated from a C or C++ compiler. This is still the case 
today, but I want to highlight this point here so we do not lose 
that facility.


GNU Guix can be used as a reproducible reference build system 
where we capture the bootstrapping process nicely and test the 
builds on the build farm(s) whenever something changes.