Do not reprocess already extended files
extends can be interpreted as inheritance in OOP, but the original behaviour was against what is commonly (always?) seen everywhere. It is however good practice a file extends all files it needs directly (and only them). Then if two files A & B (possibly unrelated) extends the same third C, A was unable to overrides C values. It was even error-prone because someone who don't use B yet could override C values in A and later extending B would break A. For some of our common use cases, this new algorithm is also 9x faster (time to annotate: ~2.3s with -> ~.29s). Other changes: - ~/ is now expanded for non-url extends. - An absolute (non-url) path is not longer treated like a local path if the base is a url. - Better path/url normalization. Rebase instructions: - squash with "Chomp ../ from beginging of filenames" - split and apply "Support ${:_profile_base_location_}." after Sqaushed with Chomp ../ from beginging of filenames. In order to have as canonical as possible paths, chomp ../ from filenames and recalculate base.
Showing
Please register or sign in to comment