You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
should all targets be configured/enumerated up front? should modules be split across ninja files to minimize changes?
files are only tracked by timestamp
doesn't play nice with git branching, or reverting changes
solved by using ccache or sccache (sccache does much more than ergo's simple local build caching)
how to deal with "custom" modules? (e.g. external dependencies, code generation)
modules could contain a configure step (ergo code executed the first time the target is requested) and a command step (written in, or generates, ninja build rules)
The text was updated successfully, but these errors were encountered:
I understand the motivation here for sure, but I think if you go this route then ergo is not the right choice of tool. The language was purpose-built to fill the ninja/make niche, with features tailored to that behavior. Of course there are still kinks to work out and optimizations to be made, so it can have unintended latencies. Scripts which are simple to reason about tend to be very fast, correct, and do minimal work (like ninja/make). The higher-level abstractions are where behaviors need to be improved.
This is why I think targeting another tool isn't really appropriate for ergo, because you'd be replacing the thing it strives to do best with something else, and would retain the things that aren't quite optimal (using it as a general purpose scripting language).
This doesn't solve one particular problem, but has a variety of benefits (and a few drawbacks)
Benefits
cache-policy = configuration
is often insufficient and maybe buggy #4: caching could be much simpler and likely depend only on configurationDrawbacks/Unanswered Questions
The text was updated successfully, but these errors were encountered: