use printf & fprintf instead of putchar & co
This commit is contained in:
parent
b657778205
commit
4a40739398
@ -260,7 +260,7 @@ B casrt_c1(B t, B x) {
|
||||
B sys_c1(B t, B x);
|
||||
B out_c1(B t, B x) {
|
||||
if (isAtm(x) || RNK(x)!=1) thrM("•Out: Argument must be a string");
|
||||
printsB(x); putchar('\n');
|
||||
printsB(x); printf("\n");
|
||||
return x;
|
||||
}
|
||||
B show_c1(B t, B x) {
|
||||
@ -271,7 +271,7 @@ B show_c1(B t, B x) {
|
||||
#else
|
||||
printI(x);
|
||||
#endif
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
#endif
|
||||
return x;
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ void heapVerify_checkFn(Value* v) {
|
||||
printf("delta %d for %s @ %p: ", (i32)v->refc, type_repr(v->type), v);
|
||||
#endif
|
||||
heap_observed = v;
|
||||
printI(tag(v,OBJ_TAG)); putchar('\n');
|
||||
printI(tag(v,OBJ_TAG)); printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -518,10 +518,10 @@ B g_t (void* x) { return tag(x,OBJ_TAG); }
|
||||
B g_ta(void* x) { return tag(x,ARR_TAG); }
|
||||
B g_tf(void* x) { return tag(x,FUN_TAG); }
|
||||
GLOBAL bool ignore_bad_tag;
|
||||
void g_p(B x) { fprintI(stderr,x); fputc(10,stderr); fflush(stderr); }
|
||||
void g_i(B x) { B r = info_c2(x, m_f64(1), inc(x)); fprintI(stderr,r); dec(r); fputc(10,stderr); fflush(stderr); }
|
||||
void g_pv(void* x) { ignore_bad_tag=true; fprintI(stderr,tag(x,OBJ_TAG)); fputc(10,stderr); fflush(stderr); ignore_bad_tag=false; }
|
||||
void g_iv(void* x) { ignore_bad_tag=true; B xo = tag(x, OBJ_TAG); B r = C2(info, m_f64(1), inc(xo)); fprintI(stderr,r); dec(r); fputc(10,stderr); fflush(stderr); ignore_bad_tag=false; }
|
||||
void g_p(B x) { fprintI(stderr,x); fprintf(stderr,"\n"); fflush(stderr); }
|
||||
void g_i(B x) { B r = info_c2(x, m_f64(1), inc(x)); fprintI(stderr,r); dec(r); fprintf(stderr,"\n"); fflush(stderr); }
|
||||
void g_pv(void* x) { ignore_bad_tag=true; fprintI(stderr,tag(x,OBJ_TAG)); fprintf(stderr,"\n"); fflush(stderr); ignore_bad_tag=false; }
|
||||
void g_iv(void* x) { ignore_bad_tag=true; B xo = tag(x, OBJ_TAG); B r = C2(info, m_f64(1), inc(xo)); fprintI(stderr,r); dec(r); fprintf(stderr,"\n"); fflush(stderr); ignore_bad_tag=false; }
|
||||
void g_pst(void) { vm_pstLive(); fflush(stdout); fflush(stderr); }
|
||||
|
||||
#if DEBUG
|
||||
@ -536,7 +536,7 @@ void g_pst(void) { vm_pstLive(); fflush(stdout); fflush(stderr); }
|
||||
if (x->refc<=0 || (x->refc>>28) == 'a' || x->type==t_empty) {
|
||||
PRINT_ID(x);
|
||||
fprintf(stderr, "bad refcount for type %d @ %p: %d\nattempting to print: ", x->type, x, x->refc); fflush(stderr);
|
||||
fprintI(stderr, tag(x,OBJ_TAG)); fputc('\n', stderr); fflush(stderr);
|
||||
fprintI(stderr, tag(x,OBJ_TAG)); fprintf(stderr, "\n"); fflush(stderr);
|
||||
fatal("");
|
||||
}
|
||||
if (TIv(x,isArr)) {
|
||||
@ -578,7 +578,7 @@ void g_pst(void) { vm_pstLive(); fflush(stdout); fflush(stderr); }
|
||||
fprintf(stderr, "atom: ");
|
||||
if (cbqn_initialized && FORMATTER) { fprintsB(stderr, x = bqn_fmt(inc(x))); dec(x); }
|
||||
else fprintI(stderr, x);
|
||||
fputc('\n', stderr);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
}
|
||||
void warn_slow1(char* s, B x) {
|
||||
|
||||
14
src/main.c
14
src/main.c
@ -749,7 +749,7 @@ void cbqn_runLine0(char* ln, i64 read) {
|
||||
if (i!=0) printf(", ");
|
||||
printsB(rp[i]);
|
||||
}
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
}
|
||||
return;
|
||||
} else if (isCmd(cmdS, &cmdE, "gc ")) {
|
||||
@ -803,7 +803,7 @@ void cbqn_runLine0(char* ln, i64 read) {
|
||||
usz ia=PIA(expla);
|
||||
for(usz i=0; i<ia; i++) {
|
||||
printsB(expla->a[i]);
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
}
|
||||
ptr_dec(expla);
|
||||
return;
|
||||
@ -865,9 +865,9 @@ void cbqn_runLine0(char* ln, i64 read) {
|
||||
if (output!=2 && FORMATTER) {
|
||||
B resFmt = bqn_fmt(res);
|
||||
printsB(resFmt); dec(resFmt);
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
} else {
|
||||
printI(res); putchar('\n'); fflush(stdout);
|
||||
printI(res); printf("\n"); fflush(stdout);
|
||||
dec(res);
|
||||
}
|
||||
} else dec(res);
|
||||
@ -877,7 +877,7 @@ void cbqn_runLine0(char* ln, i64 read) {
|
||||
void cbqn_runLine(char* ln, i64 len) {
|
||||
if(CATCH) {
|
||||
cbqn_takeInterrupts(false);
|
||||
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fputc('\n', stderr);
|
||||
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fprintf(stderr, "\n");
|
||||
vm_pst(envCurr+1, envStart+envPrevHeight);
|
||||
freeThrown();
|
||||
#if HEAP_VERIFY
|
||||
@ -901,7 +901,7 @@ void cbqn_evalSrc(char* src, i64 len) {
|
||||
B code = utf8Decode(src, len);
|
||||
B resFmt = bqn_fmt(bqn_exec(code, bi_N));
|
||||
printsB(resFmt); dec(resFmt);
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1092,7 +1092,7 @@ int main(int argc, char* argv[]) {
|
||||
char* ln = NULL;
|
||||
size_t gl = 0;
|
||||
i64 read = getline(&ln, &gl, stdin);
|
||||
if (read<=0 || ln[0]==0) { if(!silentREPL) putchar('\n'); break; }
|
||||
if (read<=0 || ln[0]==0) { if(!silentREPL) printf("\n"); break; }
|
||||
if (ln[read-1]==10) ln[--read] = 0;
|
||||
if (ln[read-1]==13) ln[--read] = 0;
|
||||
cbqn_runLine(ln, read);
|
||||
|
||||
4
src/ns.c
4
src/ns.c
@ -189,7 +189,7 @@ static void ns_visit(Value* x) {
|
||||
mm_visitP(c->sc);
|
||||
}
|
||||
static void ns_print(FILE* f, B x) {
|
||||
fputc('{', f);
|
||||
fprintf(f, "{");
|
||||
NSDesc* desc = c(NS,x)->desc;
|
||||
Scope* sc = c(NS,x)->sc;
|
||||
i32 am = desc->varAm;
|
||||
@ -204,7 +204,7 @@ static void ns_print(FILE* f, B x) {
|
||||
fprintI(f, sc->vars[i]);
|
||||
}
|
||||
}
|
||||
fputc('}', f);
|
||||
fprintf(f, "}");
|
||||
}
|
||||
B nsFmt(B x) { // consumes
|
||||
B s = emptyCVec();
|
||||
|
||||
@ -160,7 +160,7 @@ usz addObj(B* objs, B val) { // consumes val
|
||||
i32 nc_ty(B x) { return o2iG(IGetU(x, 0)); }
|
||||
|
||||
B nc_generate(B p1) { // consumes
|
||||
// printf("p1: "); printI(p1); putchar('\n');
|
||||
// printf("p1: "); printI(p1); printf("\n");
|
||||
|
||||
usz p1ia = IA(p1);
|
||||
B listFinal;
|
||||
@ -201,7 +201,7 @@ B nc_generate(B p1) { // consumes
|
||||
}
|
||||
}
|
||||
decG(p1);
|
||||
// printf("p2: "); printI(p2); putchar('\n');
|
||||
// printf("p2: "); printI(p2); printf("\n");
|
||||
|
||||
// parse as either tacit or explicit
|
||||
SGetU(p2)
|
||||
@ -215,7 +215,7 @@ B nc_generate(B p1) { // consumes
|
||||
while(i>0) {
|
||||
B en1 = GetU(p2, i-1);
|
||||
u8 en1t = nc_ty(en1);
|
||||
// printf("e @ %d: ", i); printI(e); putchar('\n');
|
||||
// printf("e @ %d: ", i); printI(e); printf("\n");
|
||||
|
||||
if (en1t==4 || en1t==5) { // assignment
|
||||
if (!explicit && i!=1) thrM("Native compiler: Assignment in the middle of tacit code");
|
||||
@ -255,7 +255,7 @@ B nc_generate(B p1) { // consumes
|
||||
e = m_hvec2(m_f64(explicit? 3 : 0), bc);
|
||||
i-= 1;
|
||||
}
|
||||
// printf("e: "); printI(e); putchar('\n');
|
||||
// printf("e: "); printI(e); printf("\n");
|
||||
decG(p2);
|
||||
return e;
|
||||
}
|
||||
@ -293,7 +293,7 @@ B nc_parseStatements(B tokens, usz i0, usz* i1, u32 close, B* objs, Vars vars) {
|
||||
B ct;
|
||||
if (i==tia) ct = m_c32(0);
|
||||
else ct = GetU(tokens, i++);
|
||||
// printf("next token: "); printI(ct); putchar('\n');
|
||||
// printf("next token: "); printI(ct); printf("\n");
|
||||
|
||||
if (isC32(ct)) {
|
||||
u32 ctc = o2cG(ct);
|
||||
|
||||
@ -60,10 +60,10 @@ B wfn_identity(B x) {
|
||||
#define CHK(EXP,GOT,W,X) { if (!eequal(EXP,GOT)) { \
|
||||
printI(f); printf(": failed RT_VERIFY\n"); fflush(stdout); \
|
||||
if (RT_VERIFY_ARGS) { \
|
||||
if(!q_N(W)){printf("𝕨:"); printI(W); printf(" / "); printsB(C2(info, m_i32(1), inc(W))); putchar('\n'); fflush(stdout); } \
|
||||
{ printf("𝕩:"); printI(X); printf(" / "); printsB(C2(info, m_i32(1), inc(X))); putchar('\n'); fflush(stdout); } \
|
||||
{ printf("got:"); printI(GOT); printf(" / "); printsB(C2(info, m_i32(1), inc(GOT))); putchar('\n'); fflush(stdout); } \
|
||||
{ printf("exp:"); printI(EXP); printf(" / "); printsB(C2(info, m_i32(1), inc(EXP))); putchar('\n'); fflush(stdout); } \
|
||||
if(!q_N(W)){printf("𝕨:"); printI(W); printf(" / "); printsB(C2(info, m_i32(1), inc(W))); printf("\n"); fflush(stdout); } \
|
||||
{ printf("𝕩:"); printI(X); printf(" / "); printsB(C2(info, m_i32(1), inc(X))); printf("\n"); fflush(stdout); } \
|
||||
{ printf("got:"); printI(GOT); printf(" / "); printsB(C2(info, m_i32(1), inc(GOT))); printf("\n"); fflush(stdout); } \
|
||||
{ printf("exp:"); printI(EXP); printf(" / "); printsB(C2(info, m_i32(1), inc(EXP))); printf("\n"); fflush(stdout); } \
|
||||
} \
|
||||
vm_pstLive(); exit(1); \
|
||||
}}
|
||||
|
||||
@ -18,7 +18,7 @@ void vg_printDump_p(char* name, void* data, u64 len) {
|
||||
printBitDef(cd>>j, cv>>j);
|
||||
}
|
||||
}
|
||||
putchar('\n');
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void vg_printDefined_u64(char* name, u64 x) {
|
||||
|
||||
30
src/vm.c
30
src/vm.c
@ -45,16 +45,16 @@ void print_BC(FILE* f, u32* p, i32 w) {
|
||||
buf[clen++] = (c&15)>9? 'A'+(c&15)-10 : '0'+(c&15);
|
||||
c>>= 4;
|
||||
} while(c);
|
||||
fputc(' ', f);
|
||||
for (i32 i = 0; i < clen; i++) fputc(buf[clen-i-1], f);
|
||||
fprintf(f, " ");
|
||||
for (i32 i = 0; i < clen; i++) fprintf(f, "%c", buf[clen-i-1]);
|
||||
len+= clen+1;
|
||||
}
|
||||
len = w-len;
|
||||
while(len-->0) fputc(' ', f);
|
||||
while(len-->0) fprintf(f, " ");
|
||||
}
|
||||
void print_BCStream(FILE* f, u32* p) {
|
||||
while(true) {
|
||||
print_BC(f, p, 10); fputc(10, f);
|
||||
print_BC(f, p, 10); fprintf(f, "\n");
|
||||
if (*p == RETD || *p == RETN) return;
|
||||
p = nextBC(p);
|
||||
}
|
||||
@ -170,7 +170,7 @@ Block* compileBlock(B block, Comp* comp, bool* bDone, u32* bc, usz bcIA, B allBl
|
||||
bool boArr = isArr(bodyObj);
|
||||
i32 boCount = boArr? IA(bodyObj) : 1;
|
||||
if (boCount<1 || boCount>5) thrM("VM compiler: Unexpected body list length");
|
||||
// if (boArr) { printI(bodyObj); putchar('\n'); }
|
||||
// if (boArr) { printI(bodyObj); printf("\n"); }
|
||||
i32 firstMPos = failBodyI;
|
||||
|
||||
for (i32 i = 0; i < 6; i+= 2) {
|
||||
@ -207,7 +207,7 @@ Block* compileBlock(B block, Comp* comp, bool* bDone, u32* bc, usz bcIA, B allBl
|
||||
bodyPs[1] = bodyPs[3] = I32_MAX;
|
||||
mCount = dCount = 1;
|
||||
}
|
||||
// for (int i = 0; i < mapLen+2; i++) printf("%d ", bodyPs[i]); putchar('\n'); printf("things: %d %d\n", mCount, dCount);
|
||||
// for (int i = 0; i < mapLen+2; i++) printf("%d ", bodyPs[i]); printf("\n"); printf("things: %d %d\n", mCount, dCount);
|
||||
|
||||
TALLOC(Body*, bodyMap, mapLen+2); // map from index in bodyPs to the corresponding body
|
||||
TSALLOC(NextRequest, bodyReqs, 10); // list of SETH/PRED-s to fill out when bodyMap is complete
|
||||
@ -753,7 +753,7 @@ B evalBC(Body* b, Scope* sc, Block* bl) { // doesn't consume
|
||||
vmStack[stackNum] = bcPos;
|
||||
for(i32 i = 0; i < bcDepth; i++) fprintf(stderr," ");
|
||||
print_BC(stderr,sbc,20); fprintf(stderr,"@%d in: ",bcPos);
|
||||
for (i32 i = 0; i < lgStack-origStack; i++) { if(i)fprintf(stderr,"; "); fprintI(stderr,origStack[i]); } fputc('\n',stderr); fflush(stderr);
|
||||
for (i32 i = 0; i < lgStack-origStack; i++) { if(i)fprintf(stderr,"; "); fprintI(stderr,origStack[i]); } fprintf(stderr,"\n"); fflush(stderr);
|
||||
bcCtr++;
|
||||
for (i32 i = 0; i < sc->varAm; i++) VALIDATE(sc->vars[i]);
|
||||
#endif
|
||||
@ -955,7 +955,7 @@ B evalBC(Body* b, Scope* sc, Block* bl) { // doesn't consume
|
||||
#if DEBUG_VM
|
||||
for(i32 i = 0; i < bcDepth; i++) fprintf(stderr," ");
|
||||
print_BC(stderr,sbc,20); fprintf(stderr,"@%d out: ",BCPOS(b, sbc));
|
||||
for (i32 i = 0; i < lgStack-origStack; i++) { if(i)fprintf(stderr,"; "); fprintI(stderr,origStack[i]); } fputc('\n',stderr); fflush(stderr);
|
||||
for (i32 i = 0; i < lgStack-origStack; i++) { if(i)fprintf(stderr,"; "); fprintI(stderr,origStack[i]); } fprintf(stderr,"\n"); fflush(stderr);
|
||||
#endif
|
||||
}
|
||||
end:;
|
||||
@ -1380,7 +1380,7 @@ NOINLINE void vm_printPos(Comp* comp, i32 bcPos, i64 pos) {
|
||||
B msg = vm_fmtPoint(src, emptyCVec(), comp->fullpath, cs, ce);
|
||||
fprintsB(stderr, msg);
|
||||
dec(msg);
|
||||
fputc('\n', stderr);
|
||||
fprintf(stderr, "\n");
|
||||
popCatch();
|
||||
return;
|
||||
|
||||
@ -1393,10 +1393,10 @@ native_print:
|
||||
usz srcE = srcS; while (srcE<srcL) { u32 chr = o2cG(GetU(src, srcE)); if(chr=='\n')break; fprintCodepoint(stderr, chr); srcE++; }
|
||||
if (ce>srcE) ce = srcE;
|
||||
cs-= srcS; ce-= srcS;
|
||||
fputc('\n', stderr);
|
||||
for (i32 i = 0; i < cs+start; i++) fputc(' ', stderr);
|
||||
for (i32 i = cs; i < ce; i++) fputc('^', stderr);
|
||||
fputc('\n', stderr);
|
||||
fprintf(stderr, "\n");
|
||||
for (i32 i = 0; i < cs+start; i++) fprintf(stderr, " ");
|
||||
for (i32 i = cs; i < ce; i++) fprintf(stderr, "^");
|
||||
fprintf(stderr, "\n");
|
||||
return;
|
||||
|
||||
//print_BCStream((u32*)i32arr_ptr(comp->bc)+bcPos);
|
||||
@ -1686,7 +1686,7 @@ NOINLINE void printErrMsg(B msg) {
|
||||
void before_exit(void);
|
||||
NOINLINE NORETURN void throwImpl(bool rethrow) {
|
||||
// printf("gStack %p-%p:\n", gStackStart, gStack); B* c = gStack;
|
||||
// while (c>gStackStart) { printI(*--c); putchar('\n'); } printf("gStack printed\n");
|
||||
// while (c>gStackStart) { printI(*--c); printf("\n"); } printf("gStack printed\n");
|
||||
NOGC_CHECK("throwing during noAlloc");
|
||||
if (!rethrow) envPrevHeight = envCurr-envStart + 1;
|
||||
#if USE_SETJMP
|
||||
@ -1705,7 +1705,7 @@ NOINLINE NORETURN void throwImpl(bool rethrow) {
|
||||
} else { // uncaught error
|
||||
#endif
|
||||
assert(cf==cfStart);
|
||||
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fputc('\n',stderr); fflush(stderr);
|
||||
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fprintf(stderr,"\n"); fflush(stderr);
|
||||
Env* envEnd = envStart+envPrevHeight;
|
||||
unwindEnv(envStart-1);
|
||||
vm_pst(envCurr+1, envEnd);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user