dlang / project-ideas

Collection of impactful projects in the D ecosystem
36 stars 12 forks source link

Migrate makefiles for DMD, Phobos, and druntime to D #44

Open JinShil opened 5 years ago

JinShil commented 5 years ago

Description

Currently most D repositories require build tools that are specific to flavors of Unix, and those tools are not portable to all platforms that D supports. For Windows specifically, users have quite a bit of difficulty setting up their environment so they can build DMD, Phobos, and druntime. But there is a solution. We have a tool that allows us to automate just about anything on all platforms that D supports: The D Programming Language. Therefore, this project proposes converting all makefiles and other build tooling for DMD, Phobos, and druntime to D.

This project has already been started. A working (though incomplete) build.d can be found in the DMD repository. It just needs someone to take it to completion.

What are rough milestones of this project?

How does this project help the D community?

The D programming language is an extremely powerful and expressive language to program in. The DMD, Phobos, and druntime repositories already require a D host compiler, so utilizing D to implement the build system will require no additional dependencies and will ultimately remove several unnecessary dependencies. Contributors working on Linux, Windows, or any other platform D supports will have the same experience when building DMD, Phobos, and druntime. There will no longer be any need for separate "How to build on Linux" instructions, "How to build on Windows" instructions, etc; there will only be "How to build" instructions. Furthermore, D is a tool all D contributors have in common despite their background or platform of choice. Contributors will already know how to modify, compile, debug and test D programs, so it will lower the barrier to entry and learning curve for anyone modifying, enhancing, or otherwise improving D's build infrastructure and will make the D programming language development effort less dependent on specialists.

Recommended skills

Point of Contact

This project was proposed by @JinShil and can be contacted for further information about the project.

References

wilzbach commented 5 years ago

@wilzbach can be contacted for help and support too.

atilaneves commented 5 years ago

I opened a Phobos PR years ago that did exactly this.