Supposedly an unreleased version of the GHC Haskell compiler had this feature first: https://twitter.com/bos31337/status/116372971509121025
GHC Haskell compiler = Glasgow Haskell Compiler Haskell compiler
Vigil: A programming language with eternal moral vigilance
61–70 of 120 posts
Re: Vigil: A programming language with eternal moral vigilance
#62Re: Vigil: A programming language with eternal moral vigilance
#63Supposedly an unreleased version of the GHC Haskell compiler had this feature first: https://twitter.com/bos31337/status/116372971509121025
GHC Haskell compiler = Glasgow Haskell Compiler Haskell compiler
Re: Vigil: A programming language with eternal moral vigilance
#64Earlier quoted context omitted.
This compiler would probably delete all the code. See http://blog.regehr.org/archives/761
I think that website is confused about undefined behavior, they accuse LLVM and GCC of "executing undefined behavior" for the minimal empty-main C99 program because the default headers included in the compiler have UB code in them. But only user code is required to be well-formed and have defined behavior, system headers could just as well be written in Forth as long as the actual behavior under the compiler they com…
He is not accusing the compilers of executing undefined behavior. He is accusing them of exploiting undefined behavior to "optimize" code.
His points are:
1. Current compilers will perform optimizations based on undefined behavior. That is, during the optimization phase, they will say "Aha! That's not defined! I'll instead do this much, much faster thing as an optimization."
2. Lots of real code has undefined behavior.
3. The programs that result from these codes still produce the answers we expect, mostly.
4. If we take point 1 to its logical conclusion, then point 2 means that point 3 will no longer be true. That is, if compilers aggressively and thoroughly sought out to find all instances of undefined behavior in C code, and just optimized it away, many (most?) programs would cease to do much at all.
Re: Vigil: A programming language with eternal moral vigilance
#65Re: Vigil: A programming language with eternal moral vigilance
#66Earlier quoted context omitted.
Source control allows one to bypass the moral purity of Vigil by recovering arbitrary sinful code from the past. Moral purity can not be advanced while the sins of the past remain with us forever, uncleansed. One can only properly use Vigil without any sort of source control. Even copying files before the compiler tries to run it is an attempt to cheat the system; for that, Vigil would be justified in deleting your e…
I was thinking that it would remove the offending source code from history -- a revisionist source control system, if you will, to show that we have always been at war with Eastasia.
Re: Vigil: A programming language with eternal moral vigilance
#67Earlier quoted context omitted.
I think that website is confused about undefined behavior, they accuse LLVM and GCC of "executing undefined behavior" for the minimal empty-main C99 program because the default headers included in the compiler have UB code in them. But only user code is required to be well-formed and have defined behavior, system headers could just as well be written in Forth as long as the actual behavior under the compiler they com…
John Regehr is an expert in undefined behavior in C compilers, so rather than assume his understanding is mistaken, I would first assume mine is. He is not accusing the compilers of executing undefined behavior. He is accusing them of exploiting undefined behavior to "optimize" code. His points are: 1. Current compilers will perform optimizations based on undefined behavior. That is, during the optimization phase, th…
Re: Vigil: A programming language with eternal moral vigilance
#68Earlier quoted context omitted.
I think that website is confused about undefined behavior, they accuse LLVM and GCC of "executing undefined behavior" for the minimal empty-main C99 program because the default headers included in the compiler have UB code in them. But only user code is required to be well-formed and have defined behavior, system headers could just as well be written in Forth as long as the actual behavior under the compiler they com…
John Regehr is an expert in undefined behavior in C compilers, so rather than assume his understanding is mistaken, I would first assume mine is. He is not accusing the compilers of executing undefined behavior. He is accusing them of exploiting undefined behavior to "optimize" code. His points are: 1. Current compilers will perform optimizations based on undefined behavior. That is, during the optimization phase, th…
Re: Vigil: A programming language with eternal moral vigilance
#69If Vigil fails to punish a function, does it delete itself? Or is it a Hobbesian sovereign?
1. It is wrong not to punish immoral code. 2. You cannot punish all immoral code without a solution to the Halting Problem. 3. You cannot solve the Halting Problem.
∴ Vigil must delete itself. QED.