https://stackoverflow.com/questions/33051108/how-to-get-around-the-linux-too-many-arguments-limit/33278482

> I have to pass 256Kb of text as an argument to the "aws sqs"

what, uhhh, what

> MAX_ARG_STRLEN is defined as 32 times the page size in linux/include/uapi/linux/binfmts.h:
> The default page size is 4 KB so you cannot pass arguments longer than 128 KB.
> I modified linux/include/uapi/linux/binfmts.h to #define MAX_ARG_STRLEN (PAGE_SIZE * 64), recompiled my kernel and now your code produces

casually patching the kernel to send a quarter megabyte as a *single* argument oh my god i'm laughing hard
@navi well in the early rust for Linux days we hit this limit with the passing kconfig options to rustc. Fun times

@kloenk @navi Back when 128 kB was the limit for argv+envp, Google was hitting it too because they passed all the configuration for their whole software stack on the command line as --long-option=value switches.

Their solution? Compress the command line. So every binary started by ungzipping argv[1] and parsing it to get the configuration.

The person explaining this to me saw my horrified face, and said with the perfect Hide The Pain Harold smile: "a series of individually completely rational and reasonable decisions led to this." and I have been thinking a lot about it since.

@ska @kloenk @navi What the hell did I just read oh my god, that is TERRIFYING. Yet that is also so ingenious that I don't know how to feel about it

-James
@thecatcollective @navi @kloenk "Brilliant and cursed" applies to way too much software, and I want the exact opposite of that - I want things that work dumbly, simply, elegantly, and that can be understood by mere mortals.
@ska @thecatcollective @navi isn’t technically a OS not being able to be written with C as the C spec defines some required things as UB? So yes that would be nice but sometimes fear we might need new abstraction for some of those types of software we have

@kloenk @thecatcollective @navi I don't think the permissiveness of C has anything to do with the beatitude (in the NetHack sense) of a piece of code. C is underspecified, yes, because it's old and used for a lot of various things including kernels and drivers and stuff where it's essentially used as a glamorized assembly language.
IO coding with C is generally very pedestrian, not anything brilliant at all, and not especially cursed either, it just... is.

No, I am referring to high-brained solutions to problems you would never have had if your design wasn't made by and FOR high-brained programmers.