diff options
author | n <@> | 2021-11-27 16:14:00 +0200 |
---|---|---|
committer | n <@> | 2021-11-27 16:14:00 +0200 |
commit | cf3bdde3a8223b75334ea3d3fda12e993ee49849 (patch) | |
tree | 146edfb1b2d8562a52f246ca0355107fb23548e3 | |
parent | ff50fcfd43e5a9accfcacf1f3e0e517897655a03 (diff) |
kinit(c,v) -> kinit();kargs(c,v)
-rw-r--r-- | 0.c | 2 | ||||
-rw-r--r-- | a.h | 4 | ||||
-rw-r--r-- | k.h | 2 | ||||
-rw-r--r-- | m.c | 7 | ||||
-rw-r--r-- | makefile | 2 | ||||
-rw-r--r-- | x/embed/a.c | 6 |
6 files changed, 11 insertions, 12 deletions
@@ -14,7 +14,7 @@ #include<sys/stat.h> //__builtin_ia32_ldmxcsr(__builtin_ia32_stmxcsr()|1<<6|1<<15); //daz,ftz -I main(In,Q*a)_(kinit(n,a);I r=0;I(n<2,repl())J(!cmdl(a[1]),r=1;epr(0))Q(cmdm(""));r) +I main(In,Q*a)_(kinit();kargs(n,a);I r=0;I(n<2,repl())J(!cmdl(a[1]),r=1;epr(0))Q(cmdm(""));r) //_start() #if defined(libc)||defined(wasm) @@ -81,8 +81,8 @@ AL aA,aB,aC,aI,aL,aD,aS,al,az,cls,tilL,rndD;AQ aCz,cmdl,cmdm,die,evs,pk,syP; A ac(C),ai(I),as(I),ad(D),adm(A,A,I),aCm(Q,Q),aCn(Q,N),apc(A,C),apv(A,OV*),an(C,N),aV(C,N,OV*),cts(A,Q,N),eac1f(A,A1), eac2f(A,A,A2),e1(A,Q),K0(A*,Q,OA*,I),jc(C,A),jC(Q,N,A),kv(A*),mf(I,N),mnd(OA*,I,AA*),pen(A,A1*),sur(C,A,C),wdn(A,N,N,N), AT(UL,A),AV(UL,A),AW(C,A),AK(C,A),AO(UC,A),AN(N,A); -V dir(I,void(*)(V*,Q),V*),exit(I),kinit(),*memchr(OV*,I,N),*memcpy(V*,OV*,N),*memmem(OV*,N,OV*,N),*memmove(V*,OV*,N), - *memset(V*,I,N),mrn(N,OA*),mRn(N,OA*),tilV(V*,L,I); +V dir(I,void(*)(V*,Q),V*),exit(I),kargs(I,Q*),kinit(),*memchr(OV*,I,N),*memcpy(V*,OV*,N),*memmem(OV*,N,OV*,N), + *memmove(V*,OV*,N),*memset(V*,I,N),mrn(N,OA*),mRn(N,OA*),tilV(V*,L,I); D gd(A);N strlen(Q),_N(A);C*sl(C*,L),sup(A*,A*),*syp(L*),tZ(L);C*strchr(Q,I),*strchrnul(Q,I),*strstr(Q,Q); I _K(A),qD(D,D),eS(A,I),js_eval(C*,I,C*,I),memcmp(OV*,OV*,N),mtc_(A,A),repl(),si(Q,I),strcmp(Q,Q),rnk(A); L cfm(OA*,I),gl_(A),gl(A),now(),pl(Q*),pu(Q*),tru(A),fI(OV*,N,L),fL(OV*,N,L),fAI(A,I),fpI(A*,I); @@ -1,4 +1,4 @@ // https://github.com/ktye/i/blob/master/kc typedef void V;typedef char C;typedef int I;typedef double D;typedef long long K;typedef size_t N;typedef const C*Q; K Kc(C),Ks(C*),Ki(I),Kf(D),KC(C*,N),KS(C**,N),KI(I*,N),KF(D*,N),ref(K),K1(C,K),K2(C,K,K),KR(V*,I,C*),Kp(V*); -C TK(K),cK(K);N NK(K);I iK(K);D fK(K);V unref(K),CK(C*,K),IK(I*,K),FK(D*,K),LK(K*,K),*dK(K),KA(Q,K); +C TK(K),cK(K);N NK(K);I iK(K);D fK(K);V unref(K),CK(C*,K),IK(I*,K),FK(D*,K),LK(K*,K),*dK(K),KA(Q,K),kinit(); @@ -52,14 +52,13 @@ I gn,gk[256];A gv[256],cns,ce[tn],cn[tn],ci[2][5];Q*argv,*env; I rep()_(Cb[256];Ln=read(0,b,SZ(b)-1);P(n<0,0)b[n]=0;C*p=b;W(*p,C*q=SC0(p,10);*q=0;ln(p);p=q+1)1)I repl()_(W(rep());0) L k(Qs)_(Ax=N(evs(s));Xz(gl(x))x(0)) V kf(Qs,L(*f)(L)){dmd(A(syP(s),au,av,AT(te,(A)f)),4);} -V kinit(In,Q*a){argv=(Q*)a;env=(Q*)a+n+1;z[ZZ(z)-1]=1; - Ax=AN(0,aA(32)),*c=xA;i(tS-tA+1,*c++=ce[tA+i]=an(tA+i,0))*c++=ce[tm]=am(oS,oA); +V kinit(){z[ZZ(z)-1]=1;Ax=AN(0,aA(32)),*c=xA;i(tS-tA+1,*c++=ce[tA+i]=an(tA+i,0))*c++=ce[tm]=am(oS,oA); cn[tA]=ce[tC];*c++=cn[tB]=cn[tH]=cn[tI]=cn[tL]=al(NL);*c++=cn[tD]=ad(ND);cn[tC]=ac(32);cn[tS]=as(0); Mc(cn+ti,cn+tI,(tS-tI+1)*SZ(A));i(tn-to,cn[to+i]=au) ci[0][0]=ai(0); ci[0][1]=ai(1);*c++=ci[0][2]=al(WL);*c++=ci[0][3]=al(-WL);ci[0][4]=cn[tL]; *c++=ci[1][0]=ad(0);*c++=ci[1][1]=ad(1);*c++=ci[1][2]=ad(WD);*c++=ci[1][3]=ad(-WD);ci[1][4]=cn[tD]; - xn=c-xA;Q(xn<=32);cns=x; - n=max(0,n-2);x=aA(n);i(n,xa=aCz(a[2+i]))gn=1;*gk='x';*gv=x;} + xn=c-xA;Q(xn<=32);cns=x;} +V kargs(In,Q*a){argv=(Q*)a;env=(Q*)a+n+1;n=max(0,n-2);Ax=aA(n);i(n,xa=aCz(a[2+i]))gn=1;*gk='x';*gv=x;} A AT(UL t,Ax)_(Q(c3(0,t,tn));P(TP(t),x=x<<8>>8|t<<56)xC[-15]=t;x) A AV(UL v,Ax)_(Q(v<32);x&~31ll|v) @@ -24,7 +24,7 @@ o/asm/%.s:%.c *.h;$M;$(CC) $(O_DFLT) -c $< -o $@ -S -masm=intel O_WASM=@opts -Oz -nostdlib -ffreestanding --target=wasm32 -U __SIZEOF_INT128__ -Dwasm -I/usr/include o/w/%.o:%.c *.h o/w/fs.h;$M;clang $(O_WASM) -o $@ -c $< o/w/k.wasm0:$(patsubst %.c,o/w/%.o,$(wildcard *.c));clang $(O_WASM) -o $@ $^\ - -Wl,--export=main,--export=kinit,--export=rep,--export=open,--export=close,--export=write,--export=evs\ + -Wl,--export=main,--export=kinit,--export=kargs,--export=rep,--export=open,--export=close,--export=write,--export=evs\ -Wl,--export=__heap_base,--no-entry,--initial-memory=33554432,--allow-undefined o/w/k.wasm:o/w/k.wasm0;wasm-opt -Oz $< -o $@ && ls -l $@ o/w/fs.h:repl.k LICENSE|k w/fs.k;$M;./k w/fs.k $^ >$@ diff --git a/x/embed/a.c b/x/embed/a.c index f85f962a..7d160f11 100644 --- a/x/embed/a.c +++ b/x/embed/a.c @@ -1,14 +1,14 @@ #include<stdio.h> #include"../../k.h" //new api -void kinit(int,const char**);void kf(const char*s,long long(*)(long long));long long k(const char*); //old api +void kinit();void kf(const char*s,long long(*)(long long));long long k(const char*); //old api K inc(K x){ printf("inc()\n"); return K2('+',Ki(1),x);} -int main(int c,const char**a){ +int main(){ setbuf(stdout,0); - kinit(c,a); + kinit(); //1 2+3 K x=KI((I[]){1,2},2),y=Ki(3),z=K2('+',x,y);int r[2];IK(r,z);size_t n=NK(z); |