Redub: A faster build system promising 90% compatibility with dub

Hipreme msnmancini at hotmail.com
Sat Jan 20 15:56:36 UTC 2024


On Saturday, 20 January 2024 at 15:25:35 UTC, Renato wrote:
> On Saturday, 20 January 2024 at 14:14:10 UTC, Hipreme wrote:
>>
>> - I have tried contributing to dub's project on 
>> parallelization, I waste 1 week trying that and could not get 
>> it working, so, I decided it would be a better use of my time 
>> into rewriting a completely new dub which would focus on being 
>> easy to read -- An example of that is how easily someone was 
>> able to integrate an experimental support to building C with 
>> it.
>>
>>
>
> Could you expand on that? Perhaps someone else could continue 
> your work.
>
> While I understand you preferred to write your own system (we 
> all probably prefer greenfield development, after all that 
> means it's fully yours, and you can fully understand it, own 
> it, and change it as you see fit which is a very attractive 
> proposition), I'm afraid your project will only be alive while 
> you have interest in maintaining it (I've seen similar projects 
> in other languages before, often they have one or two releases 
> before the author moves on to the next greenfield project) - 
> unless you manage to create an active community around it, 
> which is exceedingly difficult and might be more than you're 
> signing up for once a lot of people join in and start demanding 
> features - while dub, even if it's so "buggy" as you claim, is 
> the official tool everyone is likely to continue to use, and 
> consequently improvements to it would be highly welcome.


I don't care if people actually use or not. Dub is not easy to 
understand, not easy to maintain, it is less performant than 
redub and the main reason for redub even exist was because my 
project (Hipreme Engine) needed a better solution. Reggae is also 
an official tool which no one uses. RDMD is an official solution 
that should be deprecated since the existence of RUND.

Also, contributing to an official project would only slow down my 
progress, which for me, is not negotiable. There are a bunch of 
things which I've done because D doesn't move at the same speed 
as me, such as:

- My WASM runtime
- Make the runtime generic enough to support an unrelated 
platform (PSVita)
- My solution to cross compilation which is able to automatically 
identify what is missing on an user setup for being able to 
release to non standard D platforms.
- redub (the slow release of the flags `--deep` and `--recipe` 
made me stall for quite a lot more of time than I expected), the 
fully stateful and confuse code only made a lot of behaviors in 
dub that does not scale well.
- My own standard library which does not depend on C runtime, 
which makes it a lot more portable since it becomes D-only code.
- The existence of `objc_meta` which gave an easy and performant 
solution for calling Objective-C functions.


Dub needs a rewrite, but it can't change, because they are caring 
about breaking dub as a library, even though versioning exists 
only for that. I have a lot to work right now and can't give more 
time to things that aren't an issue for me. Nonetheless, if this 
project suits you well, there's no reason not to use it.


More information about the Digitalmars-d-announce mailing list