Hacker News new | past | comments | ask | show | jobs | submit login

There was a company on here the other day talking about their product, built on top of Docker. I wish I'd bookmarked it.

Their secret sauce is, effectively, partial evaluation in Docker images. They run the code to detect if any of the changes in a layer have side effects that require that layer to be rebuilt (which invariably causes every layer after to be rebuilt)

I mention this because if I'm editing a single page, I would like to be able to test that edit in log(n) time worst case. I can justify that desire. If I'm editing a cross-cutting concern, I'm altering the very fabric of the site and now nlogn seems unavoidable. Also less problematic because hopefully I've learned what works and what doesn't before the cost of failure gets too large. It would be good if these publishing tools had a cause-and-effect map of my code that can avoid boiling the ocean every time.




Can't good old make do partial recompilation with ease?


Correct me if I'm wrong, but don't you have to formally map out all of your inputs and outputs for partial recompilation to work?

I believe the last time I touched make was to fix an exceedingly badly mapped out chain of cause and effect that would consistently compile too much and yet occasionally miss the one thing you actually needed.

Partial evaluation works out the dependencies by evaluating all of the conditional logic and seeing which inputs interact with which outputs.


> Correct me if I'm wrong, but don't you have to formally map out all of your inputs and outputs for partial recompilation to work?

Make needs that information, but that doesn't mean you need to be the one to catalog it. I found this article pretty useful [1]; in a nutshell, many compilation tools (including gcc, clang, and erlc) are happy to write a file that lists the compile time resources they used, and you can use that file to tell Make what the dependencies are. It's a bit meta, so it made my brain hurt a bit, but it can work pretty well, and you can use it with templated rules to really slim down your Makefile.

(I've tested this with GNU Make; don't know if it's workable with BSD Make)

[1] http://make.mad-scientist.net/papers/advanced-auto-dependenc...


Are you referring to LayerCI, possibly?


Must be, since algolia shows me questions from 8 days ago that sound familiar.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: