I've been considering answering a question in Super Stack!, specifically via use of this interpreter. However, the interpreter fails to compile, because there are two mistakes in it:
- it's incorrectly escaped (the
''
in the interpreter source code is interpreted as italics in the markup dialect in use rather than as an empty string); - the routine for printing usage information (in response to invalid command line arguments) contains a typo, leaving off the trailing
'
of a string, which of course prevents the program compiling.
As such, in order to be able to use the language, I need to correct the problems in the interpreter. The first problem is arguably not a big deal, because it's possible to look at the source code used to generate the markup and copy from there, instead; it's a problem with an entirely mechanical fix. However, the second problem is a bit larger, given that it requires changing the interpreter to run programs in it.
In this case, the change is completely obvious (add a '
at the end of the offending line), and clearly makes no changes to the languages semantics nor otherwise gives an advantage (other than being able to compete with the language at all). However, being able to modify interpreters without them counting as postdating the challenge is something that would clearly be exploitable if unrestricted.
As such, I think we need a policy on what sorts of edits can be made to an interpreter after a question is posted, whilst still allowing answers made using the new version of the interpreter to count as competing. (It's already been established that you can't edit the interpreter to make it match the specification, but the case in which the interpreter appears to have become corrupted while being placed online is a different issue.) So what should that policy be?