Funge-98 icon indicating copy to clipboard operation
Funge-98 copied to clipboard

[Observation] HRTI 'E' has undefined behaviour when mark is not present

Open FalsePattern opened this issue 3 years ago • 0 comments

The E 'Erase mark' operation removes an already existing timer mark with the current IP's ID.

However, it is not defined whether it should reflect, or behave as no-op when such a mark was not created already using M beforehand.

In my subjective opinion, no-op fallthrough makes the most sense given that the end result would be the same in both cases (T reflecting), however, E reflecting with an empty mark would have a higher consistency with the behaviour of other instructions that reflect on failure.

The safest way to go about using HRTI in this case would be to make sure that E is never called before M (or twice after M), or by having a reflection-ignoring construct around E (for instance: 3j>z#E when entering at the 3 with a delta to the right).

(this issue is just a minor observation for anyone who is looking to use this specific fingerprint in their code and not a request for clarification)

FalsePattern avatar Oct 16 '22 17:10 FalsePattern