December 04, 2019
On Tuesday, 3 December 2019 at 20:54:19 UTC, aliak wrote:

> You asked for compiler source directive use cases.
>
> And yes, point being he can't use rdmd for writing the scripts he needs to write.

I don't find it convincing to see use cases that are already done with other tools. Making big changes to a tool that's worked well for years in order to duplicate existing functionality isn't IMO a good strategy. The good news for you is that you don't need to convince me. I'm not the one that makes these decisions. Whether I agree or disagree is of no consequence.
December 04, 2019
On Tuesday, 3 December 2019 at 16:33:32 UTC, Petar Kirov [ZombineDev] wrote:
> On Tuesday, 3 December 2019 at 13:07:04 UTC, aliak wrote:
>> [...]
>
> Dub is supposed to cache every build artifact, but for some reason the `isUpToDate` function returns `false` for a single-file package I am testing with.
>
> BTW, on what OS and hardware are you testing?
> I am on Linux with an SSD, so this may explain why I get faster results than you.
>
> Dub has everything necessary to reach execution time parity up +/- 5% with rdmd.
> The dependency checking is relatively fast for me, but if necessary that can be easily disabled, using the `--skip-registry` option.
> If it's not already like that IMO dub shouldn't check for updates for single-file packages. For projects with dub.selections.json AFAIK it doesn't check for updates if dub.selection.json contains the versions of transitive dependencies and they had already been fetched.
>
> I'll look into the problem with Dub's `isUpToDate`.

I testet (dub master) the isUpToDate behavior on windows, linux (shebang and no shebang),
with source code files having *.d extension and without.

isUpToDate is always working fine and uses the last build.

Kind regards
André
December 04, 2019
On Wednesday, 4 December 2019 at 06:12:07 UTC, Andre Pany wrote:
> On Tuesday, 3 December 2019 at 16:33:32 UTC, Petar Kirov [ZombineDev] wrote:
>> [...]
>
> I testet (dub master) the isUpToDate behavior on windows, linux (shebang and no shebang),
> with source code files having *.d extension and without.
>
> isUpToDate is always working fine and uses the last build.
>
> Kind regards
> André

This causing the issue:
https://github.com/dlang/dub/issues/1809
December 04, 2019
On Monday, 2 December 2019 at 20:52:06 UTC, Jonathan Marler wrote:
> On Monday, 2 December 2019 at 20:13:24 UTC, aliak wrote:
>> On Monday, 2 December 2019 at 19:44:53 UTC, Seb wrote:
>>> [...]
>>
>> Hmm, there seems there's a bit too much resistance indeed :/ Why is that? THere's so much you can do with rdmd.
>>
>> The only reason for rdmd really is that it comes with a default installation on osx. Asking people to install the dmd package via osx is already some friction, but then telling them to do rund as well.... well basically we just go to python.
>>
>> I could maybe make a brew out of rund though ... 🤔
>
> It's not a big deal if D tools are in separate packages.  I added rund to the nix package manager already, adding it to brew should be fine.

I'm trying: https://github.com/Homebrew/homebrew-core/pull/47501 but apparently formulas recommend github repos with X stars and Y forks. So there's a chance it may be rejected. Let's see! 🤞
December 05, 2019
On Wednesday, 4 December 2019 at 23:32:04 UTC, aliak wrote:
> On Monday, 2 December 2019 at 20:52:06 UTC, Jonathan Marler wrote:
>> On Monday, 2 December 2019 at 20:13:24 UTC, aliak wrote:
>>> On Monday, 2 December 2019 at 19:44:53 UTC, Seb wrote:
>>>> [...]
>>>
>>> Hmm, there seems there's a bit too much resistance indeed :/ Why is that? THere's so much you can do with rdmd.
>>>
>>> The only reason for rdmd really is that it comes with a default installation on osx. Asking people to install the dmd package via osx is already some friction, but then telling them to do rund as well.... well basically we just go to python.
>>>
>>> I could maybe make a brew out of rund though ... 🤔
>>
>> It's not a big deal if D tools are in separate packages.  I added rund to the nix package manager already, adding it to brew should be fine.
>
> I'm trying: https://github.com/Homebrew/homebrew-core/pull/47501 but apparently formulas recommend github repos with X stars and Y forks. So there's a chance it may be rejected. Let's see! 🤞

Looks like they require > 30 forks, > 30 watchers and > 75 stars. A reasonable requirement. rund has 1 fork, 2 watchers and 21 stars, so we'll have to wait and see if it gets more popular.

To everyone, if you want to see rund in your package manager of choice, show your support by starring and/or watching it on github: https://github.com/dragon-lang/rund

December 05, 2019
On Thursday, 5 December 2019 at 02:34:17 UTC, Jonathan Marler wrote:
> On Wednesday, 4 December 2019 at 23:32:04 UTC, aliak wrote:
>> On Monday, 2 December 2019 at 20:52:06 UTC, Jonathan Marler wrote:
>>> [...]
>>
>> I'm trying: https://github.com/Homebrew/homebrew-core/pull/47501 but apparently formulas recommend github repos with X stars and Y forks. So there's a chance it may be rejected. Let's see! 🤞
>
> Looks like they require > 30 forks, > 30 watchers and > 75 stars. A reasonable requirement. rund has 1 fork, 2 watchers and 21 stars, so we'll have to wait and see if it gets more popular.
>
> To everyone, if you want to see rund in your package manager of choice, show your support by starring and/or watching it on github: https://github.com/dragon-lang/rund

Added my own tap if anyone wants it on osx+brew.

brew install aliak00/dtap/rund

or

Or brew tap aliak00/dtap and then brew install rund
December 06, 2019
On Wednesday, 4 December 2019 at 06:39:27 UTC, Andre Pany wrote:
> On Wednesday, 4 December 2019 at 06:12:07 UTC, Andre Pany wrote:
>> On Tuesday, 3 December 2019 at 16:33:32 UTC, Petar Kirov [ZombineDev] wrote:
>>> [...]
>>
>> I testet (dub master) the isUpToDate behavior on windows, linux (shebang and no shebang),
>> with source code files having *.d extension and without.
>>
>> isUpToDate is always working fine and uses the last build.
>>
>> Kind regards
>> André
>
> This causing the issue:
> https://github.com/dlang/dub/issues/1809

Here the fix which avoids the rebuild of Single file packages https://github.com/dlang/dub/pull/1811

Dub is a very good piece of software and issues can in most cases easily be fixed.

Kind regards
Andre
December 06, 2019
On Friday, 6 December 2019 at 05:50:38 UTC, Andre Pany wrote:
> Here the fix which avoids the rebuild of Single file packages https://github.com/dlang/dub/pull/1811

Nice work!

running a script with a single dependency, average of 3 runs.

currently:

Time           : 4224 ms (1408.000 ms/per)
Max RSS        : 313.6 MB

and with your pull request:

Time           : 398 ms (132.667 ms/per)
Max RSS        : 29.0 MB

> Dub is a very good piece of software and issues can in most cases easily be fixed.
>
> Kind regards
> Andre


December 06, 2019
On Friday, 6 December 2019 at 06:14:38 UTC, mipri wrote:
> On Friday, 6 December 2019 at 05:50:38 UTC, Andre Pany wrote:
>> Here the fix which avoids the rebuild of Single file packages https://github.com/dlang/dub/pull/1811
>
> Nice work!
>
> running a script with a single dependency, average of 3 runs.
>
> currently:
>
> Time           : 4224 ms (1408.000 ms/per)
> Max RSS        : 313.6 MB
>
> and with your pull request:
>
> Time           : 398 ms (132.667 ms/per)
> Max RSS        : 29.0 MB

Although...

Time           : 24 ms (8.000 ms/per)
Max RSS        : 5.0 MB

This is the time I get from directly calling the binary that
dub leaves under /tmp

So that's still quite a lot of overhead.

>> Dub is a very good piece of software and issues can in most cases easily be fixed.
>>
>> Kind regards
>> Andre


December 06, 2019
On Friday, 6 December 2019 at 06:45:58 UTC, mipri wrote:
> On Friday, 6 December 2019 at 06:14:38 UTC, mipri wrote:
>> On Friday, 6 December 2019 at 05:50:38 UTC, Andre Pany wrote:
>>> Here the fix which avoids the rebuild of Single file packages https://github.com/dlang/dub/pull/1811
>>
>> Nice work!
>>
>> running a script with a single dependency, average of 3 runs.
>>
>> currently:
>>
>> Time           : 4224 ms (1408.000 ms/per)
>> Max RSS        : 313.6 MB
>>
>> and with your pull request:
>>
>> Time           : 398 ms (132.667 ms/per)
>> Max RSS        : 29.0 MB
>
> Although...
>
> Time           : 24 ms (8.000 ms/per)
> Max RSS        : 5.0 MB
>
> This is the time I get from directly calling the binary that
> dub leaves under /tmp
>
> So that's still quite a lot of overhead.
>
>>> Dub is a very good piece of software and issues can in most cases easily be fixed.
>>>
>>> Kind regards
>>> Andre

What is the overhead of dub, if you do not count the first run?
(the first run compiles the script to an executable, each sub subsequent
run from now on just calls the executable)

Did you compile dub using dmd or ldc? Performance of LDC with optimizations
on is a lot better than debug builds of dmd.

Kind regards
André