3 ms·
Clang on my macOS doesn't like the fact that main() takes and returns long long. But it appears GCC on Debian 8 (random linux I have lying around) doesn't mind.
by jacobvosmaer 7y ago
Clang on my macOS doesn't like the fact that main() takes and returns long long. But it appears GCC on Debian 8 (random linux I have lying around) doesn't mind.
I get it to compile on macOS if I remove the int define but then it segfaults when you run it. I wonder if there is some magic flag to make "main does not return int" a non-fatal error on Clang?
It's fun to read this code but running it is even more fun, you can see the VM code it generates, with source line annotations and all.
- coolreader18 7y agoI just undef'ed and re-define-d int before and after the main declaration with clang, and it seems to work fine.
- keanzu 7y agoFor mac users: gcc -Wno-all -arch i386 -o c4 c4.c https://news.ycombinator.com/item?id=8560127 https://news.ycombinator.com/item?id=8560127 You can compile it on 64 bit OS X with clang's -m32 option and it should work. https://news.ycombinator.com/item?id=8559044 https://news.ycombinator.com/item?id=8559044
- saagarjha 7y agoNeither of those work with a recent toolchain :(
- flohofwoe 7y agoThe "#define int long long" is annoying indeed. A quick hack to make it work is: #include <stdint.h> ...and then replace the two "int" in main() with int32_t.
- psychoslave 7y agoDoesn't that make it fail to maintain the self hosting property that is most likely behind the introduction of this define?