summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorn <@>2021-11-27 16:14:00 +0200
committern <@>2021-11-27 16:14:00 +0200
commitcf3bdde3a8223b75334ea3d3fda12e993ee49849 (patch)
tree146edfb1b2d8562a52f246ca0355107fb23548e3
parentff50fcfd43e5a9accfcacf1f3e0e517897655a03 (diff)
kinit(c,v) -> kinit();kargs(c,v)
-rw-r--r--0.c2
-rw-r--r--a.h4
-rw-r--r--k.h2
-rw-r--r--m.c7
-rw-r--r--makefile2
-rw-r--r--x/embed/a.c6
6 files changed, 11 insertions, 12 deletions
diff --git a/0.c b/0.c
index f41d88d4..5ca7ccc1 100644
--- a/0.c
+++ b/0.c
@@ -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)
diff --git a/a.h b/a.h
index 75a634f9..ae10db89 100644
--- a/a.h
+++ b/a.h
@@ -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);
diff --git a/k.h b/k.h
index 43e96bd5..6dfb4bc4 100644
--- a/k.h
+++ b/k.h
@@ -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();
diff --git a/m.c b/m.c
index 707d42ff..8bd8bd91 100644
--- a/m.c
+++ b/m.c
@@ -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)
diff --git a/makefile b/makefile
index 64dd8a6f..309ff65b 100644
--- a/makefile
+++ b/makefile
@@ -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);