From c58077e65a03437b75a4846fe3dda06c02261776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Sat, 16 May 2026 14:37:11 -0600 Subject: [PATCH] idk --- flake.nix | 1 + play/a.c | 4 +--- play/t | Bin 15936 -> 16056 bytes play/t.anf | 6 +----- runtime/gyehoek.c | 9 +++++++-- runtime/gyehoek.h | 12 ++++++++++++ 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index d7c0738..0cfcc98 100644 --- a/flake.nix +++ b/flake.nix @@ -39,6 +39,7 @@ bdwgc pkg-config guile + clang-tools # clangd ]; }; }; diff --git a/play/a.c b/play/a.c index bd75ffa..e72a9b2 100644 --- a/play/a.c +++ b/play/a.c @@ -1,9 +1,7 @@ #include #include -#define BLAH (-1 >> 2 == -1) && (-4 >> 2 == -1) && (-5 >> 2 == -2) && (-8 >> 2 == -2) - -#if BLAH +#if (-1 >> 2 == -1) && (-4 >> 2 == -1) && (-5 >> 2 == -2) && (-8 >> 2 == -2) # define SCM_SRS(x, y) ((x) >> (y)) #else # define SCM_SRS(x, y) \ diff --git a/play/t b/play/t index bd8754251a5b9d60f676192d7137e523380cb305..9c164004f0a7ba0472563d29cb053d37ee0865d8 100755 GIT binary patch delta 2357 zcmX?5v!ix`giwJ10~k1fNd^WB^NCu^xB@sJ+yIV=xAeGpnIJq~rpZE#dYlD}5N^R_ zK}KO!HU3J^2UX%mPrgURHXO#X_v+_eDet_71hnX^;485kHqz5w}|6RICXLA}WU zQq0W2z`zO;WME+6VqjokXJBApVPF8uf%JgXg3MrWXauR^0EvOrT}(ZfyZiB^n#miP zBv>;U7#M^mZ)6gl#3I3(#K6EH2;xkZV3C;Y!6Gr)fJK5e6sBZy0*eG|H3I{K5=af> zs>u^s(j^K?OOhGl;|q#1^GedzOdP`*=Dz#~bMx>6va$ zVzpqbXJ%kz0AUs=%>bqsFfcGcIGLsYJm-SGwQYjFhnPE4Szh&YyHjqD$gZu@G zYiJyULJK4mAP6EE7&6er1wi7HMcJhpFHAOM7w5fU4^amSC8o)??BbH3FolRQFuXvL zWt*JKE^Z4mAEe?3k}N1>L1G}h11b)S4UiZJADDcQU3~Hib{85lA^(fINLm|q0qgQEWB0Wg2k(_o-Fl#e^Zx^W`38`}!%*6z z*VYmw*=uSv`Luux(^tL8F9l>Zzv?kCFqCSCdNkW!0x>;0pO)}=blYCjV_T_z z8W@`8RM;^vN;6x7vL-kSefa+$6z~oo{{NrAz`zjj;s5^t1_p+LkN^L#U|?XF@bUlu z6O$tq)ER$FZd4Fwo$&tue}~C)6_hPky#N0nIa$asFff!bFfbhW@c%!!JaFU_Xk!ZE zW%J-+2dM*zO##VozNwJU;|WWt0-%)10LlrVs9|8}f=~>g$Okc}f(RseP;LPU$$|(5 z28K(Mck0Rug2SJIfk6@~nlSmLt~_JLWKKPO!wt}+4fZYr1H%JQQ2{MwK+11Gkz^WRsY6b=mMg|5U2402<&}ae08b~T+vZ9eV zWAtQ4V{yY&kQydFkV23Y9A|^X8F(2sK=t}UWlASE8i_MDf%Gy?p8U~JoN>|QjYi^< z>p`wz;0HMbtP&b84ErWOG!mDrhMESe6V=8FEaLKl!X-B4oC$yLveC$d|qmKPG;WZ*Cqx6pu!$m zezTOR8xy0$ey>vJJB7NV@p zc;Sr%P@`coBa86l4b}>r@b<^#o7U!>uo@|2vZReUCoHiROpdfMhv&5g`jA*mn7q*D gKjV$b3vJCg!5IRSFD5^5)dVdRA;NHavLq8$ z#X(GJiUv?K&}kir84Nm;XEOOK7C`MUfZ7kECqP{}VKOIkwjd`10|N^K0|Ofa0|VIS zlRw&uYjQ9!Ft9Q(FfcPPFo2YUWI$dAsbX+w1lhv@662VBmRXrGcJfDN{mB+A5|cAn zBqj&2NKBr=BEgtHc_WKBd$9WR8|j%cxchiIIma96 z8S9yBUdC#{SkK77$iU3N$iTt?vJ1qX!oUCvVun(wOiqwn7emELBtd*;hV@YXmWk8Y zK(5^lavcK$1I)i5zkq}s1VJPNLj^QEVB!o=agND}?BcvP>>;W^K4qLdmtB1F9CjYw z7f7Nklh3k?Pd>xW!}|kClzp-;hd3`Nyde4+7%og!G8|AfRr+L z^x9VHGcb7cvKE0T%O5489^I^FAa?7463+h*_~jcw3J*hRk6v3(kYul^)8yL%GEA)c zlYa`xYO?AxFff#Ahk7*IKGI`gVDRXCTEgSeZTn1*f#HSb|NsAAr2PN?{}}7t$@YRO zxi|m)|L<{}K?tPqxB~|l0|Uc;DFz0H7ofC%@-V`6AdiK5bpC37&IU43#pB>BCXZgz zTs{Vd{h&l-c;Lm{fB*j*9*8x(WcbbS|6zW429I9TcqIAS%^w5>_$DWC7)(-N301bq z%*{Gsj%Z>U|^JHwg#ntP+I=* z{{R031_lO&5C8vnFfcF}eE9$0gMon|;N$=Q3nm9DsLMWh|Np-lD5PB2LB3#6VPIe| zVPIhBc>n*u!Q`n5%90b_|Njq9At19D7#Kh6ZS``a&hbCT}znXH1^_(NJ8nh>?LokV%4p16Bh-)znWGG!{?oV+55w zk_-}PvN2GTVbupX9WgL4Oopl#KvO>-s@@ao5>2QrOF-fvKQQi{ywF&j@g&GitdAKP z7?ePwO#c`+zcTh_oE&1Rw|TOuD-)x|C=W&-m>g-TF9=IKFxp`9 zOv`!>1E`NCAG8#oY;GmU830We0h0r*%qM$T2{7hPo@u4e1&gE$f|D;r7(HY1Oly5Eq+0WmwHYU(wiL86pM1hbU~+_w0Vk}0ub4d1#+(zD zv>GN~v@wV0i4CA45L6^gmbCrPIAOA+ojLCgV~9UkKp6%cSOslv8VFCG Lz|1mvgE #include "gyehoek.h" +SCM scm_newline () { + putc ('\n', stdout); + return SCM_PACK(NULL); +} + SCM scm_write (SCM x) { if (SCM_IMP (x)) { - printf ("#\n", SCM_UNPACK (x) >> 2); + printf ("%ld", SCM_UNPACK (x) >> 2); } else { - printf ("#\n", SCM_UNPACK (x)); + printf ("#", SCM_UNPACK (x)); } return SCM_PACK(NULL); } diff --git a/runtime/gyehoek.h b/runtime/gyehoek.h index 2dffe16..8c64784 100644 --- a/runtime/gyehoek.h +++ b/runtime/gyehoek.h @@ -19,6 +19,18 @@ typedef union SCM { struct { scm_t_bits n; } n; } SCM; #define SCM_TRUE 0b01100 #define SCM_EOL 0b10100 +#if (-1 >> 2 == -1) && (-4 >> 2 == -1) && (-5 >> 2 == -2) && (-8 >> 2 == -2) +# define SCM_SRS(x, y) ((x) >> (y)) +#else +# define SCM_SRS(x, y) \ + ((x) < 0 \ + ? -1 - (scm_t_signed_bits) (~(scm_t_bits)(x) >> (y)) \ + : ((x) >> (y))) +#endif + +#define SCM_MAKE_SMALL_INT(x) (SCM_SRS ((SCM_PACK (x)), 2) + 2) +#define SCM_GET_SMALL_INT(x) (SCM_UNPACK (x) >> 2) + SCM scm_write (SCM);