Hacker News new | past | comments | ask | show | jobs | submit login

I'm pretty sure it is, I remember reading something about this

Yeah I found it here

https://news.ycombinator.com/item?id=41030960

2019 bug - https://austingroupbugs.net/view.php?id=1250

https://justine.lol/cosmo3/

> This is an idea whose time has come; POSIX even changed their rules about binary in shell scripts specifically to let us do it.

FWIW I agree with this OpenBSD change, which says more pointedly

All the shells are written in C, and majority of them use C strings for everything, which means they cannot embed a NUL, so this is not surprising. It is quite unbelievable there are people trying to rewrite history on a lark, and expecting the world to follow alone.

i.e. it's not worth it to change a bunch of old code in order to allow making code more esoteric.

We want systems code to be more predictable, reliable, and less esoteric ... not more esoteric






> POSIX even changed their rules about binary in shell scripts specifically to let us do it.

I'd seen this quote around. The fact that the standards were changed to allow it never struck me as a good indication that it should be relied upon. It seems rather backwards of how these standards work.

I got flamed on HN once for saying cosmopolitan libc shouldn't be used for production because it relies on weird behaviors and implementation quirks that aren't really an ABI.


Looking at this further, the standards change doesn't even match what Cosmopolitan is doing.

From the 'changed their rules' link, the 'Desired Action' is to add this text: "The input file may be of any type, but the initial portion of the file intended to be parsed according to the shell grammar [..] shall not contain the NUL character."

This handles things like shar archives where you have a shell script at the beginning, then an exit command, then binary gunk.

But Cosmopolitan binaries are not just shell scripts with binary. They're hybrids of shell script and DOS executable. And apparently this requires putting nul bytes right near the beginning (see my other comment, https://news.ycombinator.com/item?id=41640331), in the "portion [..] intended to be parsed according to the shell grammar". Which explicitly violates the new text.

I can understand why this hack is needed for what Cosmopolitan is trying to accomplish, but it makes no sense to claim POSIX blessed it.


Yeah exactly, that was my reading too! The claim in the link doesn't match what the POSIX bug says

If it did, then would be a sign that the POSIX process is not working well

Because POSIX is supposed to be descriptive of what exists, not prescribe new behavior


> POSIX is supposed to be descriptive of what exists, not prescribe new behavior

Well, it can be argued that ape already existed when that POSIX change was written :)

Everything is working as intended. Nothing to see here. Move along. Move along.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: