cbqn_evalSrc
This commit is contained in:
parent
7adb06a43d
commit
e38226895e
2
makefile
2
makefile
@ -31,7 +31,7 @@ rtverifyn-singeli:
|
|||||||
wasi-o3:
|
wasi-o3:
|
||||||
@${MAKE} singeli=0 t=wasi_o3 f="-DWASM -DWASI -DNO_MMAP -O3 -DCATCH_ERRORS=0 -D_WASI_EMULATED_MMAN --target=wasm32-wasi" LDFLAGS="-lwasi-emulated-mman --target=wasm32-wasi -Wl,-z,stack-size=8388608 -Wl,--initial-memory=67108864" LD_LIBS= PIE= c
|
@${MAKE} singeli=0 t=wasi_o3 f="-DWASM -DWASI -DNO_MMAP -O3 -DCATCH_ERRORS=0 -D_WASI_EMULATED_MMAN --target=wasm32-wasi" LDFLAGS="-lwasi-emulated-mman --target=wasm32-wasi -Wl,-z,stack-size=8388608 -Wl,--initial-memory=67108864" LD_LIBS= PIE= c
|
||||||
emcc-o3:
|
emcc-o3:
|
||||||
@${MAKE} singeli=0 t=emcc_o3 f='-DWASM -DEMCC -O3' LDFLAGS='-s EXPORTED_FUNCTIONS=_main,_cbqn_runLine -s EXPORTED_RUNTIME_METHODS=ccall,cwrap -s ALLOW_MEMORY_GROWTH=1' CC=emcc OUTPUT=BQN.js c
|
@${MAKE} singeli=0 t=emcc_o3 f='-DWASM -DEMCC -O3' LDFLAGS='-s EXPORTED_FUNCTIONS=_main,_cbqn_runLine,_cbqn_evalSrc -s EXPORTED_RUNTIME_METHODS=ccall,cwrap -s ALLOW_MEMORY_GROWTH=1' CC=emcc OUTPUT=BQN.js c
|
||||||
|
|
||||||
|
|
||||||
# compiler setup
|
# compiler setup
|
||||||
|
|||||||
27
src/main.c
27
src/main.c
@ -209,7 +209,7 @@ void cbqn_runLine0(char* ln, i64 read) {
|
|||||||
gc_maybeGC();
|
gc_maybeGC();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cbqn_runLine(char* ln, i64 read) {
|
void cbqn_runLine(char* ln, i64 len) {
|
||||||
if(CATCH) {
|
if(CATCH) {
|
||||||
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fputc('\n', stderr);
|
fprintf(stderr, "Error: "); printErrMsg(thrownMsg); fputc('\n', stderr);
|
||||||
vm_pst(envCurr+1, envStart+envPrevHeight);
|
vm_pst(envCurr+1, envStart+envPrevHeight);
|
||||||
@ -220,16 +220,39 @@ void cbqn_runLine(char* ln, i64 read) {
|
|||||||
gc_maybeGC();
|
gc_maybeGC();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cbqn_runLine0(ln, read);
|
cbqn_runLine0(ln, len);
|
||||||
popCatch();
|
popCatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WASM
|
||||||
|
void cbqn_evalSrc(char* src, i64 len) {
|
||||||
|
Body* body = m_nnsDesc();
|
||||||
|
B ns = m_nns(body);
|
||||||
|
Scope* sc = ptr_inc(c(NS, ns)->sc);
|
||||||
|
ptr_dec(v(ns));
|
||||||
|
|
||||||
|
B code = fromUTF8l(src);
|
||||||
|
Block* block = bqn_compSc(code, inc(replPath), emptySVec(), sc, true);
|
||||||
|
|
||||||
|
ptr_dec(sc->body);
|
||||||
|
sc->body = ptr_inc(block->bodies[0]);
|
||||||
|
B res = execBlockInline(block, sc);
|
||||||
|
ptr_dec(block);
|
||||||
|
ptr_dec(sc);
|
||||||
|
B resFmt = bqn_fmt(res);
|
||||||
|
|
||||||
|
printRaw(resFmt); dec(resFmt);
|
||||||
|
putchar('\n');
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if EMCC
|
#if EMCC
|
||||||
int main() {
|
int main() {
|
||||||
repl_init();
|
repl_init();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
|
repl_init();
|
||||||
bool startREPL = argc==1;
|
bool startREPL = argc==1;
|
||||||
bool silentREPL = false;
|
bool silentREPL = false;
|
||||||
bool execStdin = false;
|
bool execStdin = false;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user