From f11926cf136234974b9befa5b30b968a3593feed Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Sun, 4 May 2025 14:03:01 +0000 Subject: [PATCH] initial commit --- developer/experiment/teste.sh | 7 ++++ developer/experiment/try_assign.c | 34 ------------------- developer/experiment/try_assign_0 | Bin 0 -> 9080 bytes developer/experiment/try_assign_0.c | 29 ---------------- developer/experiment/try_assign_0.o | Bin 0 -> 1232 bytes developer/experiment/try_assign_0.s | 21 ++++++++++++ developer/experiment/try_parameter.c | 24 ------------- developer/experiment/try_pragma_macro.c | 43 ------------------------ 8 files changed, 28 insertions(+), 130 deletions(-) create mode 100755 developer/experiment/teste.sh delete mode 100644 developer/experiment/try_assign.c create mode 100755 developer/experiment/try_assign_0 create mode 100644 developer/experiment/try_assign_0.o create mode 100644 developer/experiment/try_assign_0.s delete mode 100644 developer/experiment/try_parameter.c delete mode 100644 developer/experiment/try_pragma_macro.c diff --git a/developer/experiment/teste.sh b/developer/experiment/teste.sh new file mode 100755 index 0000000..69640d0 --- /dev/null +++ b/developer/experiment/teste.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +! ! rmdir test_dir && echo "deleted test_dir" + +echo "done" diff --git a/developer/experiment/try_assign.c b/developer/experiment/try_assign.c deleted file mode 100644 index 959144a..0000000 --- a/developer/experiment/try_assign.c +++ /dev/null @@ -1,34 +0,0 @@ -#include - -// Helper to stringify a macro argument -#define STR(x) #x -#define SHOW(x) STR(x) - -#define BAD(x ,y) x + y -#assign (Z ,12) -//#xassign (Z ,12) // invalid directive - -// Macros to test argument parsing and expansion -#define ZERO() SHOW(ZERO()) -#define ONE(x) SHOW(ONE(x)) -#define TWO(x ,y) SHOW(TWO(x ,y)) -#define VAR(...) SHOW(VAR(__VA_ARGS__)) -#define MIXED(x ,...) SHOW(MIXED(x ,__VA_ARGS__)) - -int main() { - int x = BAD(1 ,2); // should work - printf("x:%x\n" ,x); - - // int y = BAD(1 ,2 ,3); // Too many args - printf("%s\n" ,ZERO()); // "ZERO()" - printf("%s\n" ,ONE(42)); // "ONE(42)" - printf("%s\n" ,TWO(a ,b)); // "TWO(a ,b)" - printf("%s\n" ,VAR()); // "VAR()" - printf("%s\n" ,VAR(1)); // "VAR(1)" - printf("%s\n" ,VAR(1 ,2 ,3)); // "VAR(1 ,2 ,3)" - printf("%s\n" ,MIXED(0)); // "MIXED(0)" - printf("%s\n" ,MIXED(x ,y ,z)); // "MIXED(x ,y ,z)" - printf("%s\n" ,ONE((1 ,2))); // "ONE((1 ,2))" - printf("%s\n" ,VAR((a ,b) ,c)); // "VAR((a ,b) ,c)" - return 0; -} diff --git a/developer/experiment/try_assign_0 b/developer/experiment/try_assign_0 new file mode 100755 index 0000000000000000000000000000000000000000..59dea2a7d1221d39ebab0481f897ea33cd92bd4f GIT binary patch literal 9080 zcmeHN&ubG=5T1=SiTHz66od+HZuO8yT6zc`%1X5HAc9K4i!7UFZFAU7*?mId#hc)* ze};d8$AbTem!8GHAkOTYS<`I`p*LY3y#3yM@0*>sUvhi%<;APrhUbBd2JAo?`C&=9 zC%~*D3V;y$(8OmOTBUaF-xjVU!{G_PS`d6ECi*%pIR>sLc+<&1P;``6)(cn=gl@su zXIfD5D2L`TpXb;MOQm41i~t1N9KSoYVP_+4yXg_fI6TKr~~SNI-m}y1M0xa4(z@BcKU@m;BNTfbOx^;LoDI^#BRE17F@F&WCGwF&{3| z<=O7xZFs$3pmT|S;}RZhK9Ay}m>gtL&+J1Kjfx^FY@Az2<4FclGLCJGkc|OMF;8tg zLbSQVLs?~0o0x;_lR3(#M@eqyU~Dq8V3Nb=V;-jonEh#*CYe3+9ajz3F|mac9VmzN zF-U)d^fB-@_G+9R21EKSsvd=^|HA32z6(wx?ef^hfH -// Helper to stringify a macro argument -#define STR(x) #x -#define SHOW(x) STR(x) - -#define BAD(x ,y) x + y -#assign (Z ,12) -//#xassign (Z ,12) // invalid directive - -// Macros to test argument parsing and expansion -#define ZERO() SHOW(ZERO()) -#define ONE(x) SHOW(ONE(x)) -#define TWO(x ,y) SHOW(TWO(x ,y)) -#define VAR(...) SHOW(VAR(__VA_ARGS__)) -#define MIXED(x ,...) SHOW(MIXED(x ,__VA_ARGS__)) - int main() { - int x = BAD(1 ,2); // should work - printf("x:%x\n" ,x); - - // int y = BAD(1 ,2 ,3); // Too many args - printf("%s\n" ,ZERO()); // "ZERO()" - printf("%s\n" ,ONE(42)); // "ONE(42)" - printf("%s\n" ,TWO(a ,b)); // "TWO(a ,b)" - printf("%s\n" ,VAR()); // "VAR()" - printf("%s\n" ,VAR(1)); // "VAR(1)" - printf("%s\n" ,VAR(1 ,2 ,3)); // "VAR(1 ,2 ,3)" - printf("%s\n" ,MIXED(0)); // "MIXED(0)" - printf("%s\n" ,MIXED(x ,y ,z)); // "MIXED(x ,y ,z)" - printf("%s\n" ,ONE((1 ,2))); // "ONE((1 ,2))" - printf("%s\n" ,VAR((a ,b) ,c)); // "VAR((a ,b) ,c)" return 0; } diff --git a/developer/experiment/try_assign_0.o b/developer/experiment/try_assign_0.o new file mode 100644 index 0000000000000000000000000000000000000000..db3aacd900d3bad016ba1e39a100820f740b54b4 GIT binary patch literal 1232 zcmbVL%}T>S5T1?ow<=W>1Ujp!9!~Zi zKVJx+y+OHD+HmK${c2N$?(zy>;l-up)diI%BFJHI(Ro*gcQK5aSXiH3IabwE^JAk z<7--qrKnvgTn}$}J8HH4NOpin{dy1)PG7g0-l7ST=9^Iem~T+i2W&EU+|D-#&G)@f=7lYVr%f799u z*ypmp)idm)J#GE7(yyzigRMWs0{u^(Zcy<^9dt_JL5y@xt=D|kY?6G?f_9#)07Dq* ij%+>cYu_D7*46w;0){C%WyUbe(l=CNJ?-o!w*Cj|lu3jD literal 0 HcmV?d00001 diff --git a/developer/experiment/try_assign_0.s b/developer/experiment/try_assign_0.s new file mode 100644 index 0000000..8377f2b --- /dev/null +++ b/developer/experiment/try_assign_0.s @@ -0,0 +1,21 @@ + .file "try_assign_0.c" + .text + .globl main + .type main, @function +main: +.LFB0: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + .cfi_offset 6, -16 + movq %rsp, %rbp + .cfi_def_cfa_register 6 + movl $0, %eax + popq %rbp + .cfi_def_cfa 7, 8 + ret + .cfi_endproc +.LFE0: + .size main, .-main + .ident "GCC: (Debian 12.2.0-14) 12.2.0" + .section .note.GNU-stack,"",@progbits diff --git a/developer/experiment/try_parameter.c b/developer/experiment/try_parameter.c deleted file mode 100644 index fe23c4a..0000000 --- a/developer/experiment/try_parameter.c +++ /dev/null @@ -1,24 +0,0 @@ -#include - -#define N32· N96· - -int N96·i = 10; -int N32·j = 20; - -int main(){ - printf("N96·i :%x\n",N96·i); - printf("N32·j :%x\n",N96·j); - return 0; -} - -/* - - try_parameter.c:10:24: error: ‘N96·j’ undeclared (first use in this function); did you mean ‘N96·i’? - 10 | printf("N32·j :%x\n",N96·j); - | ^~~~~ - | N96·i - -As of C99 a macro must have a space after it, so the `N32·` of `N32·j` is not being recognized. - - -*/ diff --git a/developer/experiment/try_pragma_macro.c b/developer/experiment/try_pragma_macro.c deleted file mode 100644 index 2cc0723..0000000 --- a/developer/experiment/try_pragma_macro.c +++ /dev/null @@ -1,43 +0,0 @@ -// experiment/test_pragma_macro.c - -#include - -// -- STEP 1: Should compile even if pragma is ignored -#pragma message("Compiling test_pragma_macro.c") - -#define A AMACRO - -#pragma macro(A) - -// Uncomment to test extension behavior: -// Expected behavior: defines MY_MACRO to have body "42" -// Expected fallback: compiler error or ignored pragma -// #pragma name(MY_MACRO, 42) - -#ifndef MY_MACRO -#define MY_MACRO -1 -#endif - -int main(void) { - printf("MY_MACRO expands to: %d\n", MY_MACRO); - - #ifdef AMACRO - printf("AMACRO DEFINED!"); - #endif - return 0; -} - -/* -nvoking a non-existing pragma is ignored without the -Wall - -2025-05-01T13:29:48Z[developer] -Thomas-developer@StanleyPark§/home/Thomas/subu_data/developer/N/developer/experiment§ -> gcc -Wall try_pragma_macro.c -try_pragma_macro.c:6:9: note: ‘#pragma message: Compiling test_pragma_macro.c’ - 6 | #pragma message("Compiling test_pragma_macro.c") - | ^~~~~~~ -try_pragma_macro.c:11: warning: ignoring ‘#pragma macro ’ [-Wunknown-pragmas] - 11 | #pragma macro(A) - | - -*/ -- 2.20.1