That feels like a failure in the spec. Your example illustrates it: echo has unspecified behavior that literally prevents it from being portable.
Is it possible portability is just not a feature of posix?
That feels like a failure in the spec. Your example illustrates it: echo has unspecified behavior that literally prevents it from being portable.
Is it possible portability is just not a feature of posix?
POSIX doesn't guarantee portability. POSIX only guarantees that the things it specifies will work in a POSIX-compliant environment. POSIX makes no guarantees about portability to non-POSIX-compliant environments like Windows' shells or MSVC, the Fish shell, etc. POSIX makes no guarantees about the things it doesn't specify.
I started to build something here 12 years ago: https://github.com/Mosai/workshop. Then here 2 years ago: https://github.com/alganet/coral
Now I'm attacking it from another angle, trying to document what I learned methodically and share the tools I made for me with everyone else.