4 ms·
Doing it locally is better, for mine. eg https://gitlab.com/hal88/junkcode/-/blob/master/c_template.c single file, chmod +x, compiles itself and executes t
by harry8 3y ago
Doing it locally is better, for mine.
eg
https://gitlab.com/hal88/junkcode/-/blob/master/c_template.c
single file, chmod +x, compiles itself and executes the binary, can easily give the -S flag to gcc or clang (uncomment one line) or better yet run objdump on the binary.
The great thing is it still works if you include a bunch of local headers that are a hassle to supply to godbolt. Latency locally is a win.
The #if 0 trick for the compiler lines and #else for the code is a good one. Got it from Rusty Russell of iptables fame iirc. Write your script in C, why not?
- ykonstant 3y agoDamn, I have to sign up to see the code?
- deleted 3y ago[deleted]
- no_news_is 3y agoDo you have that set as private? Even logged in, I get: Page Not Found Make sure the address is correct and the page hasn't moved. Please contact your GitLab administrator if you think this is a mistake.
- claytonaalves 3y agoThis repo is private. Can u make it public ?
- harry8 3y agoI'm sorry, I thought it was public. Can't work out how to change it. Nuts. #if 0 //instructions to build and run THIS_FILE=$0 BIN_FILE=/tmp/$(basename $0) gcc -std=c11 -O0 -g -march=native $THIS_FILE -Wall -Wextra -o $BIN_FILE if [ $? -ne 0 ]; then echo "Bug in your C code or there is something wrong with your operating system's c compiler..." exit 1 fi # run it $BIN_FILE "$@" retval=$? # uncomment below to examine the generated machine code # # objdump -DC $BIN_FILE | less -p '<main>' # uncomment below to examine the assembly language the compier # thinks it is generating # # gcc -S -std=c11 -O0 -g -march=native $THIS_FILE -Wall -Wextra -o ${BIN_FILE}.s # vim ${BIN_FILE}.s # clean up rm $BIN_FILE exit $retval #else // c program #include <stdio.h> #include <stdint.h> int main(int argc, char **argv) { for(int i = 0; i != argc; ++i) { printf("argv[%d] = %s\n", i, argv[i]); } } #endif //end c program