1. 8

    XTree Gold for DOS used to have this - and the last page of the DOS 5.0 manual had a table of the ANSI mappings. When I was still quite young I figured out how to hack a few games saved games files (ahh, BattleTech) and had memorised a fair number of the symbols/byte values.

    I always wondered why this convention wasn’t popular in the Linux world? Or why nice TUI tools similar to XTree Gold weren’t popular?

    1. 4

      My take on this would be that when I’m looking at the right columns I’m looking for text, that’s the whole point of the right column. Adding gibberish only makes it harder to spot the ASCII string and could maybe only help me to see repetition among bytes, which is already somewhat easy to do in the hex dump (At least, for most meaningful patterns such as values aligned on 4 bytes or null filling). The hex dump is often enough to spot binary patterns.

    1. 2

      Julia will do this. One can specialize or outright override existing function methods. Julia’s JIT compiler will even go back and recompile any code that may have depended on the old method to use the new.

      Note of course this is dangerous when used carelessly - the system is intended for extending or specializing functions for new input types, rather than replacing methods. One fun thing to do is replace something fundamental like integer addition and watch everything immediately break, via e.g. Base.:+(a::Int64, b::Int64) = 0.

      (While much of Julia’s compiler is written in Julia, it is itself is “immune” to such redefinitions because it lives in it’s own fixed “world”, but so much of the system depends on the standard libary that this instantly destroys any REPL session).

      1. 1

        Julia is actually at the top of my list! I just finished reading the manual, and I find it a bit unclear about this. It seems to indicate that sometimes an already-compiled expression or incrementally-compiled module won’t see overrides that come later?