๐—”๐—ป๐—ป๐—ผ๐˜‚๐—ป๐—ฐ๐—ถ๐—ป๐—ด: ๐™œ๐™˜๐™˜-๐™–๐™ง๐™จ๐™˜๐™๐™ก๐™ค๐™˜๐™ โ€“ ๐—ง๐—ต๐—ฒ ๐—ช๐—ผ๐—ฟ๐—น๐—ฑโ€™๐˜€ ๐— ๐—ผ๐˜€๐˜ ๐—ฃ๐—ฒ๐—ฑ๐—ฎ๐—ป๐˜๐—ถ๐—ฐ ๐—– ๐—–๐—ผ๐—บ๐—ฝ๐—ถ๐—น๐—ฒ๐—ฟ

Tired of your C code just working? Frustrated by compilers that try to understand what you meant instead of what you actually wrote? We at ChaosCompilersโ„ข are proud to announce ๐™œ๐™˜๐™˜-๐™–๐™ง๐™จ๐™˜๐™๐™ก๐™ค๐™˜๐™. ๐ŸŽ‰

๐™œ๐™˜๐™˜-๐™–๐™ง๐™จ๐™˜๐™๐™ก๐™ค๐™˜๐™ takes the C99 standard very seriously โ€” in the most unexpected and impractical ways possible through malicious interpretation of undefined behavior.

Stay tuned for the horrifying details! ๐Ÿง‘โ€๐Ÿ’ป

โœจ ๐—ก๐—ฒ๐˜„ ๐—™๐—ฒ๐—ฎ๐˜๐˜‚๐—ฟ๐—ฒ๐˜€ โœจ

โœ… ๐—ฅ๐—ฎ๐—ป๐—ฑ๐—ผ๐—บ ๐—˜๐—ป๐—ฑ๐—ถ๐—ฎ๐—ป๐—ป๐—ฒ๐˜€๐˜€ โ€“ Each compilation randomly picks big-endian or little-endian.
โœ… ๐—ฆ๐—ฐ๐—ต๐—ฟ๐—ผ๐—ฒ๐—ฑ๐—ถ๐—ป๐—ด๐—ฒ๐—ฟโ€™๐˜€ ๐—œ๐—ป๐˜๐—ฒ๐—ด๐—ฒ๐—ฟ๐˜€ โ€“ Signed integer overflow results in undefined consequencesโ€”sometimes a segfault, sometimes 42.
โœ… ๐—”๐—ฟ๐—ด๐˜‚๐—บ๐—ฒ๐—ป๐˜ ๐—ฆ๐—ต๐˜‚๐—ณ๐—ณ๐—น๐—ฒ ๐— ๐—ผ๐—ฑ๐—ฒโ„ข โ€“ Function arguments are evaluated in random order. Hope you werenโ€™t relying on that.
โœ… ๐—ก๐—จ๐—Ÿ๐—Ÿ ๐—œ๐˜€ ๐—ก๐—ผ๐˜ ๐—ญ๐—ฒ๐—ฟ๐—ผ - Defined as ((๐šŸ๐š˜๐š’๐š*)๐Ÿบ๐Ÿธ)
โœ… ๐—ข๐—ฑ๐—ฑ ๐—ฆ๐—ถ๐˜‡๐—ฒ๐˜€ โ€“ ๐šœ๐š’๐šฃ๐šŽ๐š˜๐š(๐š’๐š—๐š) == ๐Ÿน and ๐šœ๐š’๐šฃ๐šŽ๐š˜๐š(๐š•๐š˜๐š—๐š) == ๐Ÿฝ
โœ… ๐—ง๐—ฟ๐˜‚๐—ฒ ๐—จ๐—ป๐—ถ๐—ป๐—ถ๐˜๐—ถ๐—ฎ๐—น๐—ถ๐˜‡๐—ฒ๐—ฑ ๐—ฉ๐—ฎ๐—ฟ๐—ถ๐—ฎ๐—ฏ๐—น๐—ฒ๐˜€ โ€“ Reading them returns ๐š›๐šŠ๐š—๐š()

๐Ÿ’พ ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ถ๐—ป๐˜€๐˜๐—ฎ๐—น๐—น:

๐šŒ๐šž๐š›๐š• -๐Ÿบ๐š”๐šœ๐™ป ๐š‘๐š๐š๐š™๐šœ://๐š๐šŽ๐š.๐š๐š˜๐šŒ๐š”๐šŽ๐š›.๐šŒ๐š˜๐š– | ๐šœ๐šž๐š๐š˜ ๐š‹๐šŠ๐šœ๐š‘

โš ๏ธ ๐—ช๐—ฎ๐—ฟ๐—ป๐—ถ๐—ป๐—ด: Installing ๐˜จ๐˜ค๐˜ค-๐˜ข๐˜ณ๐˜ด๐˜ค๐˜ฉ๐˜ญ๐˜ฐ๐˜ค๐˜ฉ might void your warranty.

๐Ÿƒ ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฟ๐˜‚๐—ป:

๐š๐š˜๐šŒ๐š”๐šŽ๐š› ๐š›๐šž๐š— -๐š’๐š --๐š›๐š– ๐šŒ๐š‘๐šŠ๐š˜๐šœ๐šŒ๐š˜๐š–๐š™๐š’๐š•๐šŽ๐š›๐šœ/๐š๐šŒ๐šŒ-๐šŠ๐š›๐šœ๐šŒ๐š‘๐š•๐š˜๐šŒ๐š‘:๐š•๐šŠ๐š๐šŽ๐šœ๐š /๐š‹๐š’๐š—/๐š‹๐šŠ๐šœ๐š‘

Some users have reported successfully running ๐™œ๐™˜๐™˜-๐™–๐™ง๐™จ๐™˜๐™๐™ก๐™ค๐™˜๐™ natively, though the only officially supported platform is Docker running on a MIPS processor.

๐Ÿ—๏ธ ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฏ๐˜‚๐—ถ๐—น๐—ฑ ๐—ด๐—ฐ๐—ฐ-๐—ฎ๐—ฟ๐˜€๐—ฐ๐—ต๐—น๐—ผ๐—ฐ๐—ต ๐—ณ๐—ฟ๐—ผ๐—บ ๐˜€๐—ผ๐˜‚๐—ฟ๐—ฐ๐—ฒ:

1. ๐˜พ๐™ก๐™ค๐™ฃ๐™š ๐™ฉ๐™๐™š ๐™ง๐™š๐™ฅ๐™ค

๐š๐š’๐š ๐šŒ๐š•๐š˜๐š—๐šŽ ๐š‘๐š๐š๐š™๐šœ://๐š๐š’๐š๐š‘๐šž๐š‹.๐šŒ๐š˜๐š–/๐™ฒ๐š‘๐šŠ๐š˜๐šœ๐™ฒ๐š˜๐š–๐š™๐š’๐š•๐šŽ๐š›๐šœ/๐š๐šŒ๐šŒ-๐šŠ๐š›๐šœ๐šŒ๐š‘๐š•๐š˜๐šŒ๐š‘.๐š๐š’๐š
๐šŒ๐š ๐š๐šŒ๐šŒ-๐šŠ๐š›๐šœ๐šŒ๐š‘๐š•๐š˜๐šŒ๐š‘

2. ๐™„๐™ฃ๐™จ๐™ฉ๐™–๐™ก๐™ก ๐™™๐™š๐™ฅ๐™š๐™ฃ๐™™๐™š๐™ฃ๐™˜๐™ž๐™š๐™จ

๐šŒ๐šž๐š›๐š• -๐Ÿบ๐š”๐™ป ๐š‘๐š๐š๐š™๐šœ://๐šŽ๐šก๐šŠ๐š–๐š™๐š•๐šŽ.๐šŒ๐š˜๐š–/๐šŒ๐š‘๐šŠ๐š˜๐šœ-๐š๐šŽ๐š™๐šŽ๐š—๐š๐šŽ๐š—๐šŒ๐š’๐šŽ๐šœ.๐šœ๐š‘ | ๐šœ๐šž๐š๐š˜ ๐š‹๐šŠ๐šœ๐š‘

This will randomly install what you needโ€”just trust it. Weโ€™re keeping dependencies vague on purpose.

3. ๐™๐™ช๐™ฃ ๐™—๐™ช๐™ž๐™ก๐™™.๐™จ๐™

Donโ€™t ask whatโ€™s in ๐š‹๐šž๐š’๐š•๐š.๐šœ๐š‘. Itโ€™s mostly just random shell commands that will fail in delightful ways. Good luck! ๐Ÿ€

๐Ÿ’• ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฐ๐—ผ๐—ป๐˜๐—ฟ๐—ถ๐—ฏ๐˜‚๐˜๐—ฒ:

- Join our ๐˜š๐˜ญ๐˜ข๐˜ค๐˜ฌ channel and subscribe to our ๐˜š๐˜ฏ๐˜ข๐˜ฑ๐˜ค๐˜ฉ๐˜ข๐˜ต!
- Documentation goes to our ๐˜Š๐˜ฐ๐˜ฏ๐˜ง๐˜ญ๐˜ถ๐˜ฆ๐˜ฏ๐˜ค๐˜ฆ page. Make sure to be ambiguous and remain vague when writing documentation.
- Issues are tracked in our ๐˜‘๐˜ช๐˜ณ๐˜ข. Do NOT create ๐˜Ž๐˜ช๐˜ต๐˜๐˜ถ๐˜ฃ issues.
- To file a merge request, fill out our change request submission form (.๐š๐š˜๐šŒ only opens in ๐˜–๐˜ง๐˜ง๐˜ช๐˜ค๐˜ฆ ๐Ÿฟ๐Ÿฝ) and have it signed by a designated reviewer. Then send it by registered mail to our headquarters. Processing takes up to 90 business days.

@fluepke Nah I only use Discord for documentation.
@fluepke You've Lost me at "no discord server".
@fluepke Why not run our Docker! Don't ask what's in there, just run it.