On Wednesday, 17 January 2018 at 22:15:08 UTC, H. S. Teoh wrote:
2) Self-checking programs:

        import std.algorithm;
        static assert(import(__FILE__).canFind("\n/**"),
                "Dude, why did you remove the ddoc comment?!");

        /** Remove this comment to get a compile error */
        void main() {
        }
[snip]
Imagine an advanced version of (2), for example, code that will force a compilation error if it wasn't formatted correctly.

I found an interesting Rust project a few years back, called Launch-Code:
https://github.com/kmcallister/launch-code

The idea is that unsafe functions be cryptographically signed by some authority, and the code refuses to compile if a junior dev tries and fuck with it. On a per-function basis, so he could still mess up the code that doesn't launch missiles.

We could do the same in D - parse the code with CTFE, hash the function body, then assert that the comment matches the hash. Should be fairly easy at that point to generate the signatures as well.

--
  Simen

Reply via email to