Commit Graph

298 Commits

Author SHA1 Message Date
dzaima
d4da8a1127 update stack pointer before allocations 2022-06-03 20:54:23 +03:00
dzaima
2dbbb3415e fix m_nsDesc failing to allocate leaving body->nsDesc uninitialized 2022-06-03 19:50:26 +03:00
dzaima
86fc9041fa print fallback stacktrace code to stderr 2022-06-03 16:24:43 +03:00
dzaima
572bc04459 move interrupt check to its own header 2022-06-03 16:02:02 +03:00
dzaima
7a21f9ef73 experimental REPL interrupting 2022-06-03 15:38:32 +03:00
dzaima
b8701d3502 more descriptive paths for self-hosted files 2022-05-29 22:20:50 +03:00
dzaima
960ae96591 show source-less & path-less entries in the profiler 2022-05-29 22:16:42 +03:00
dzaima
0380ee2a40 fix wasm builds 2022-05-29 22:05:04 +03:00
dzaima
e2fda60745 profiler 2022-05-29 22:02:50 +03:00
dzaima
409524d958 noinline version of vec_add 2022-05-11 18:31:49 +03:00
dzaima
e979faea0e put mnvmExecBodyInline under a JIT_START check 2022-04-29 22:46:59 +03:00
dzaima
de65d8a59b fix double-increment 2022-04-27 21:33:33 +03:00
dzaima
6abce22447 micro-optimize execBodyInline 2022-04-27 20:15:47 +03:00
dzaima
11d95b67d5 better error messages for no inverse header 2022-04-15 23:20:44 +03:00
dzaima
f136ca5e97 rename confusing m_funBlock to evalFunBlock 2022-04-07 17:36:02 +03:00
dzaima
69067b8fcc decG round 2 2022-04-07 15:15:28 +03:00
dzaima
e7b551acc2 increase wasi stack size 2022-04-07 02:06:41 +03:00
dzaima
267a62d292 don't use mmap in allocStack for WASI 2022-04-07 00:04:12 +03:00
dzaima
e3baa868f7 put in a bit more effort printing messages while things are really bad 2022-04-06 22:38:51 +03:00
dzaima
b60bc7c3bf disable realpath & mprotect for wasm 2022-04-06 19:16:35 +03:00
dzaima
4a316c9398 don't include setjmp.h when CATCH_ERRORS=0 2022-04-06 18:52:54 +03:00
dzaima
0c79b44ae0 output errors to stderr 2022-03-05 02:32:28 +02:00
dzaima
022d760c95 rethrow(), fix •primitives after errored •ReBQN execution 2022-03-04 18:29:21 +02:00
dzaima
3fb793526c )erase; try to not oom on printing errors 2022-01-19 01:02:07 +02:00
dzaima
3536c351fa preallocate oom message 2022-01-12 14:05:08 +02:00
dzaima
675a0e8045 make body->bl an owned pointer 2022-01-11 00:32:58 +02:00
dzaima
3a510f99e5 pass direct u32 to bc_repr 2022-01-10 20:25:33 +02:00
dzaima
5cde913c78 •CurrentError 2022-01-08 21:55:19 +02:00
dzaima
2602a6499d rename block types 2021-12-31 17:48:19 +02:00
dzaima
08f04a8521 pass untagged pointer to under functions 2021-12-30 21:52:29 +02:00
dzaima
c7a6176be3 store untagged modifier in derived function object 2021-12-30 03:01:02 +02:00
dzaima
bebf1e4255 error location for autogenerated FAIL bodies
and also more )gc things
2021-12-25 18:01:52 +02:00
dzaima
7e89e190f2 )vars 2021-12-19 01:32:36 +02:00
dzaima
9e6b8ecaae throw error on reaching heap size limit if reasonable 2021-12-12 23:29:09 +02:00
dzaima
3da8302249 cast ptrdiff to i64 2021-12-10 21:40:13 +02:00
dzaima
f81b680aad NOTM 2021-11-29 22:40:12 +02:00
dzaima
4f66b6b88a native namespace creation 2021-11-29 16:44:20 +02:00
dzaima
ef5864afbc global name list 2021-11-29 00:21:41 +02:00
dzaima
0389eda29b inverse modifiers 2021-11-25 00:24:16 +02:00
dzaima
55c1d79d86 headers for immediate modifiers 2021-11-22 10:56:18 +02:00
dzaima
f55e349999 inverse headers 2021-11-21 21:03:14 +02:00
dzaima
896049ab12 directly call scope_freeF from scope_dec 2021-11-20 17:30:09 +02:00
dzaima
ff6e6aa9c7 clean up evalBC 2021-11-20 16:56:54 +02:00
dzaima
c79e260e34 m_v[1234] → m_hVec[1234] 2021-11-20 01:05:14 +02:00
dzaima
5484c109ea return value from ptr_inc 2021-11-20 00:58:18 +02:00
dzaima
2baa9ac196 fix & speed up variable modification fns 2021-11-18 01:10:30 +02:00
dzaima
a663c0bbee reorder md*Bl_d 2021-11-03 19:08:24 +02:00
dzaima
9bcf8d7d64 bl_m*d → md*Bl_d 2021-11-02 18:34:34 +02:00
dzaima
6aaaaeb39c more consistent print method naming scheme 2021-11-02 18:32:25 +02:00
dzaima
f9253a477e fix zero printing 2021-10-28 22:03:51 +03:00
dzaima
0deb5cfcd4 add missing bytecodes to FOR_BC 2021-10-28 21:55:18 +03:00
dzaima
06c7e40642 ⋄ → ; in DEBUG_VM 2021-10-28 21:22:15 +03:00
dzaima
470bb0968a use hex in printBC 2021-10-28 21:21:25 +03:00
dzaima
e526fede86 clean up DEBUG_VM 2021-10-28 20:46:30 +03:00
dzaima
5c59f0de6f make precompiled.bqn work 2021-10-14 18:34:28 +03:00
dzaima
363309a218 some cleanup 2021-10-11 21:50:16 +03:00
dzaima
debc4e2afe don't truncate max stack size 2021-10-09 14:47:26 +03:00
dzaima
71de4fcc59 don't use x++ on bool 2021-10-04 16:19:46 +03:00
dzaima
1bca264db8 bitarrs 2021-10-03 23:18:30 +03:00
dzaima
3725bd58c7 hide unknown stackframes in non-debug mode 2021-10-01 23:08:48 +03:00
dzaima
34fb5c275a manual tables for bytecode switches 2021-10-01 22:48:33 +03:00
dzaima
ad436a07ee fix PRED in nested blocks 2021-10-01 20:25:23 +03:00
dzaima
c4cc861054 fix namespace assignment to special name list 2021-10-01 19:59:55 +03:00
dzaima
07ae36e672 faster loop when not yet seen PRED 2021-10-01 19:01:28 +03:00
dzaima
89c19662d8 argument remapping for PRED 2021-10-01 18:52:03 +03:00
dzaima
dc1295afb7 fix SETH in immediate bodies 2021-09-28 18:17:12 +03:00
dzaima
9631702b14 PRED 2021-09-28 18:09:22 +03:00
dzaima
751652c392 alternative JIT memory allocation if MAP_32BIT isn't sufficient 2021-09-26 22:00:19 +03:00
dzaima
2ddfc43682 function to print a sequence of bytecode 2021-09-25 23:19:23 +03:00
dzaima
084eaaecbd SETC 2021-09-25 23:05:15 +03:00
dzaima
4bdc1ec3cd squeeze objects
negative effect on performance, but whatever
2021-09-25 14:39:48 +03:00
dzaima
c1ff25a253 fix multi-body function error offset 2021-09-21 19:00:16 +03:00
dzaima
b38e8c9aeb normalize tag whitespace 2021-09-21 17:24:23 +03:00
dzaima
cd5f50e3eb incG 2021-09-16 17:09:12 +03:00
dzaima
a36ae1a716 pass untagged pointer to get & getU 2021-09-09 23:52:18 +03:00
dzaima
59dcde16c9 untag this pointer of modifier impl functions 2021-09-09 21:38:56 +03:00
dzaima
337a6bbc5e more changes 2021-09-09 18:42:48 +03:00
dzaima
563e4a8780 new bytecode numbering 2021-09-03 00:46:34 +03:00
dzaima
1d13a1ef07 •ReBQN with only the repl setting 2021-08-28 23:55:48 +03:00
dzaima
6b52c2069f compile-time separated DFND 2021-08-27 12:35:23 +03:00
dzaima
8f8828c671 fix no fill case in ⥊ and namespace destructuring in header 2021-08-22 04:58:01 +03:00
dzaima
a56a20b046 fix vm_fmtPoint on non-equal s and src types 2021-08-21 04:41:51 +03:00
dzaima
3991efd3cd full SETH 2021-08-21 03:32:11 +03:00
dzaima
a99a80a7a0 VFYM 2021-08-19 00:37:54 +03:00
dzaima
7d43d74b28 make evalBC consume the scope 2021-08-16 02:24:34 +03:00
dzaima
521abe669d hopefully fix SETH refcounts 2021-08-16 00:48:15 +03:00
dzaima
0af6895f4b unfinished SETH 2021-08-15 03:54:13 +03:00
dzaima
de86ce2aaa src/README.md, and cleaning up things while at it 2021-08-14 21:27:06 +03:00
dzaima
5d82350b0b fix more things about multiple bodies 2021-08-14 18:32:27 +03:00
dzaima
5c829a7fd7 fix wrong sortedness check for body indices 2021-08-12 05:11:34 +03:00
dzaima
849eeff465 initialize ia on allocation always 2021-08-03 02:57:46 +03:00
dzaima
749b098f1e use decR less 2021-07-31 22:40:33 +03:00
dzaima
c00834cf15 move mm_free call into virtual function so dec is simpler 2021-07-30 04:40:56 +03:00
dzaima
e04cd3c135 make gcc warn less 2021-07-22 03:38:25 +03:00
dzaima
7ee8d642dc trailing newlines 2021-07-20 22:18:37 +03:00
dzaima
0bcf3b592f more comparison type fixing
and some more / opt to make it not slower
2021-07-20 21:56:35 +03:00
dzaima
9c66cbbb4b move noinline fns out of .h files 2021-07-19 03:48:52 +03:00
dzaima
1719374e0a make ubsan happier, optimize nextBC
still doesn't like f==(f64)(someIntType)f but that's, like, not replaceable
2021-07-17 21:25:11 +03:00
dzaima
9ae1ab80cf multiple body support 2021-07-16 22:42:22 +03:00
dzaima
c192125a9c fix •file in REPL 2021-07-12 12:10:06 +03:00
dzaima
08723a3c80 use TI macros everywhere 2021-07-06 19:22:45 +03:00
dzaima
774db7a956 tagged bytecode position 2021-07-04 02:13:52 +03:00
dzaima
72896feb8f merged SET_i+POPS 2021-07-03 18:04:27 +03:00
dzaima
7999683edf skip value checking for builtin loading
perf is reporting an 0.15% increase in instruction count (what?), but that's not gonna stop me
2021-07-03 02:38:09 +03:00
dzaima
08df9bfe7b arrP_sh* → arr_sh* 2021-07-03 01:38:56 +03:00
dzaima
c52a042eb4 return Arr* from slices 2021-07-03 01:25:55 +03:00
dzaima
49810ce8bc rename mm_allocN 2021-07-03 00:27:20 +03:00
dzaima
d8b2ac0268 delay tagging 2021-07-03 00:02:56 +03:00
dzaima
3451cc48c2 0 parent scope loading 2021-07-02 22:26:14 +03:00
dzaima
c029703c3a cleaner stack reading 2021-07-02 18:42:58 +03:00
dzaima
e5471e8f87 fix reference counts for comp->path 2021-06-30 23:16:08 +03:00
dzaima
b32074f4d1 support nested compilation 2021-06-30 22:54:33 +03:00
dzaima
726451ed0c include path in errors 2021-06-29 22:54:37 +03:00
dzaima
a4446716bf compiler errors 2021-06-27 20:28:19 +03:00
dzaima
eac62d4c29 inline i_FN1Ci and i_FN2Ci 2021-06-26 01:29:23 +03:00
dzaima
8b561a065a offset envCurr by 1 2021-06-25 18:03:54 +03:00
dzaima
0b7c5eb860 call counter for JIT 2021-06-22 02:27:12 +03:00
dzaima
b51cf8cfc2 fix CHKV 2021-06-19 21:28:57 +03:00
dzaima
d27dc57bed CHKV 2021-06-19 21:16:23 +03:00
dzaima
8ad686ab1b inline scope variable setting 2021-06-19 21:03:33 +03:00
dzaima
fb02f30259 merged LOCM;SET_ 2021-06-19 02:19:28 +03:00
dzaima
d454d4fa50 don't use EXTU 2021-06-17 17:09:53 +03:00
dzaima
4322fb8232 basic constant folding 2021-06-16 03:03:31 +03:00
dzaima
1afe46b393 move TAlloc/TStack around, immediate functions 2021-06-15 01:20:32 +03:00
dzaima
13e0d522e5 update readme, disable JIT by default 2021-06-11 03:56:07 +03:00
dzaima
b1d53f527f LEA, inline RETN 2021-06-10 19:40:29 +03:00
dzaima
550b91688a extremely basic x86-64 generator 2021-06-09 18:47:50 +03:00
dzaima
96f3089410 proper i64 formatting, move openbsd hack up 2021-06-06 22:23:55 +03:00
dzaima
7e994dd913 modifiable defines 2021-06-06 16:50:18 +03:00
dzaima
cdd4d136be make gcc happy 2021-06-04 15:47:26 +03:00
dzaima
4d8375fdfd make ⊏ safe 2021-05-30 02:38:29 +03:00
dzaima
16f379b6c7 fix gc/refc issues, set memory to invalid objects on free in debug 2021-05-30 01:55:59 +03:00
dzaima
837a69b3aa don't allocate child blocks if not needed 2021-05-29 14:40:04 +03:00
dzaima
345a0bfc8b unsigned bytecode 2021-05-28 01:12:36 +03:00
dzaima
1b89661308 inline objects 2021-05-28 01:03:29 +03:00
dzaima
a0ec9c02c9 blocks are guaranteed pointers 2021-05-27 20:20:14 +03:00
dzaima
d9110e8b5a optimize v_get, v_set, and a bit of fills 2021-05-27 19:00:08 +03:00
dzaima
752a68cb2d static const tagged builtins 2021-05-27 18:08:21 +03:00
dzaima
3dbb492b78 separate push 2021-05-27 15:57:26 +03:00
dzaima
3b017648d8 extended variables, REPL support 2021-05-27 04:05:17 +03:00
dzaima
48229571ba proper bytecode rewriting 2021-05-26 16:34:36 +03:00
dzaima
7bf3b4be50 store directly needed blocks in bodies 2021-05-26 14:45:29 +03:00
dzaima
50e76c8c04 move some headers & defs around 2021-05-25 00:51:09 +03:00
dzaima
8cfa3e7f55 builtin initialization in load.c 2021-05-24 14:41:10 +03:00
dzaima
6b4c5913ff RT_VERIFY 2021-05-24 01:05:34 +03:00
dzaima
f4ec365a3e extern env & ti 2021-05-24 00:37:43 +03:00
dzaima
cc163fefe7 more extern 2021-05-24 00:16:03 +03:00
dzaima
b2b826be9b incremental compilation 2021-05-23 21:55:49 +03:00
dzaima
4fa7e33520 dyadic fast scans, ∨´, sorts and grade 2021-05-22 23:09:32 +03:00
dzaima
081c16029e +i32arr, ⌈i32arr, print live stack 2021-05-21 17:06:06 +03:00