On Tuesday, 17 June 2014 at 09:17:21 UTC, Nick Sabalausky wrote:
I think you're hitting on the fundamental limitations of automated code-updating tools here: They can't be treated as trusted black-boxes.
I don't think this is a fundamental limitation of tools, but a consequence of language design.
I also think that features that makes it difficult to write programs that analyze the semantics also makes it difficult for humans to understand the code and verify the correctness of the code.
Programming languages are in general still quite primitive (not specific to D), they still rely on convention rather than formalisms.
Semaphores and macro-like features are pretty good examples where convention has been more convenient than supporting machine reasoning, but it has consequences when we demand better tooling, smarter compilers and faster code!
Semaphores cannot be turned into transactional memory code paths… Macro like features prevent high level transforms and optimizations, source code restructuring/refactoring etc.
