September 18, 2016
On Saturday, 17 September 2016 at 18:46:26 UTC, Johan Engelen wrote:
> I just finished another post about LDC:
> https://johanengelen.github.io/ldc/2016/09/17/LDC-object-file-caching.html

Great innovative work!

One thing: I'm missing an option for only doing time-stamp checking of the dependencies similar to how SCons checks if cached files are obselete.

See the Decider function documented here:

http://www.scons.org/doc/HTML/scons-user/ch06.html#idp1416061700

It can be either

- Decider('MD5')
- Decider('timestamp-newer')
- Decider('timestamp-match')
- Decider('MD5-timestamp')

As I see it the LDC-enhancement always does content hashing, that is, it is similar to SCons' `Decider('MD5')`. If so, it would be very worthwhile checking how much faster an approach similar to `Decider('MD5-timestamp')` would be. This approach only hashes content of dependencies if they have been modified since last hashing during last build of that object with the same compiler flags was done.
September 18, 2016
On 09/17/2016 08:16 PM, Mike Parker wrote:
> On Saturday, 17 September 2016 at 18:46:26 UTC, Johan Engelen wrote:
>> I just finished another post about LDC:
>> https://johanengelen.github.io/ldc/2016/09/17/LDC-object-file-caching.html
>>
>>
>> Thanks in advance for letting me know about any bugs you find, in the
>> text or in the code :)
>>
>> -Johan
>
> Reddit:
> https://www.reddit.com/r/programming/comments/539wpv/ldc_speed_up_incremental_builds_of_d_programs/

Forgot to mention: please hold off any announcements during the weekend. All social news outlets experience lows during the weekend, and reddit is no exception. See e.g. https://www.redditlater.com/analysis#/r/programming

Best timed announcement: Monday at 9 AM EST (noon Pacific Time).


Thanks,

Andrei

September 18, 2016
On Sun, 18 Sep 2016 11:25:51 -0400, Andrei Alexandrescu wrote:
> Best timed announcement: Monday at 9 AM EST (noon Pacific Time).

You mean 6am Pacific? Or has the sun reversed directions without me realizing it?
September 18, 2016
On 09/18/2016 11:31 AM, Chris Wright wrote:
> On Sun, 18 Sep 2016 11:25:51 -0400, Andrei Alexandrescu wrote:
>> Best timed announcement: Monday at 9 AM EST (noon Pacific Time).
>
> You mean 6am Pacific? Or has the sun reversed directions without me
> realizing it?

Sorry, 6 am Pacific. -- Andrei

September 19, 2016
On Sunday, 18 September 2016 at 09:10:41 UTC, Johan Engelen wrote:
> I think LDC has the same problems (template instances are emitted in the first module not the one that needed the instantiation?). Knowing this, you may be able to set up a case where things break, but I think it would have to involve recompilation with a different set of sources than the first compile. E.g. `ldc2 -c a.d b.d c.d` first, then `ldc2 -c b.d c.d`, and then trying to link. Which probably doesn't work well without caching either... We should deprecate non-singleobj compiles.

Yes, it's difficult to make that work correctly when the object cache is outside of the compiler. Maybe archives would provide a good way to build a better incremental rebuild support into the compiler.
At least with dmd's multiobj archives, template instances become their own object file.
It's definitely worth to put some more thought into how we can leverage parallel builds and incremental rebuilds.

https://trello.com/c/dBfiJHEM/72-spec-better-parallel-incremental-build-strategies-for-bigger-projects
1 2
Next ›   Last »