Commit Graph

86 Commits

Author SHA1 Message Date
igor
f4d688cac1 small fixes 2026-03-20 15:37:12 +01:00
IgorCielniak
4508433206 added 'ret' and implemented a proper 'strcmp' 2026-03-19 13:29:49 +01:00
igor
78bf6c132f added an option to redefine control structures 2026-03-16 10:30:53 +01:00
IgorCielniak
fd030be086 added a snake game example and fixed a small bug in the compiler 2026-03-14 12:44:34 +01:00
IgorCielniak
fd115f31dc small update to linux.sl and the syscall instruction, including some small optimizations 2026-03-13 19:42:15 +01:00
igor
ecf90feab9 general update, updated cimport so it parses struct definitions from imported headers, improved the error reporting, added ifdef and ifndef, added proper support for extern variadic functions, added some new sections and pages to the doc tool and added --check to only check the program corectness and run compile time defs without producing a binary 2026-03-11 21:27:48 +01:00
igor
0ac7f26a18 added async and hashmap lib to the stdlib as well as tests for them, improved the performance of the compiler, improved the buildt in doc tool and fixed some other small issues 2026-03-11 14:41:40 +01:00
igor
4e51e8803f improved the repl 2026-03-09 16:10:02 +01:00
igor
4f6fd946f6 added cimport for including C headers 2026-03-09 14:45:43 +01:00
igor
19cae8c56d adjusted the type checker to properly process strings 2026-03-09 14:24:31 +01:00
igor
d65b05f1d2 small fix to the function responsible for hashing the compiler flags 2026-03-09 14:18:11 +01:00
igor
2a1ae2f774 compiler: add -O0/-O2 flags, -v 1..4, whole-word JIT, lazy init, auto-inline control
- Add -O0 (no opts) and -O2 (no opts + no checks) CLI flags
- Add -v 1..4 verbosity: timing, per-function stats, debug dump, optimization diffs
- Whole-word JIT: compile Definition bodies to native x86-64 for CT VM
- Lazy CTMemory/JIT/ctype init (defer ctypes until first CT execution)
- Stack-effect comment parsing for stack-checks
- Peephole rules refactored to module-level dicts with O(1) lookup
- _emitted_start short-circuit (O(1) vs O(n) scan)
- Add --no-auto-inline to disable auto-inlining of small asm bodies
- Fix --ct-run-main to execute after linking (prevent SIGSEGV)
- Stdlib: small optimizations like swap + drop -> nip
2026-03-09 14:04:45 +01:00
igor
269055be5f added more extensive peephole optimizations 2026-03-02 14:44:49 +01:00
igor
4a5dd89932 update the the cfg generation 2026-03-02 14:05:00 +01:00
igor
7faafe9df0 added an option to generate a basic control flow graph for graphviz 2026-03-02 13:40:51 +01:00
igor
13f33d7820 added better support for structs for extern functions, added a flag to disable list folding and made extern functions automaticly have priority 1 2026-03-02 10:21:42 +01:00
igor
86d4ffbb9a fixed dce with user defined _start 2026-02-27 08:47:41 +01:00
igor
95cf89cdf5 extended the extern support 2026-02-26 11:01:38 +01:00
igor
c5cdd5a7fd added the option to customize _start 2026-02-25 16:58:31 +01:00
igor
2740fbe219 small fix 2026-02-20 15:21:57 +01:00
igor
c4b15e0666 implemented quick sort, ported the repl to run on the ct vm and added some more optimizations 2026-02-20 15:03:49 +01:00
igor
461ab1802a added caching 2026-02-20 08:55:07 +01:00
igor
97f3df3836 update to the doc tool and to arr.sl 2026-02-19 16:14:41 +01:00
igor
2b311c7be7 update to the sorting functions and small fix to the compiler it self 2026-02-19 10:42:53 +01:00
igor
f3de51f5d8 update 2026-02-18 16:05:48 +01:00
igor
cd1df4b18d added a priority system 2026-02-18 14:34:35 +01:00
igor
5030138f30 optimizations 2026-02-18 14:18:41 +01:00
igor
b0de836beb general update 2026-02-18 13:58:08 +01:00
igor
8bb292f49b added function pointers 2026-02-18 10:59:37 +01:00
igor
28bc0e3842 changed the macro args to start from 0 2026-02-18 09:45:13 +01:00
igor
9732f0e74a added --no-artifact and --script and a small fix to the syscall word 2026-02-18 08:48:30 +01:00
IgorCielniak
e95244c7f3 update to the ct vm 2026-02-17 20:39:13 +01:00
igor
f4c3dca436 added option to test the compatibility of the compile time vm with the actual runtime behaviour 2026-02-16 16:06:43 +01:00
IgorCielniak
2b48e2d7e6 added loop unroling 2026-02-10 15:18:30 +01:00
IgorCielniak
08892c97bb added basic constant folding 2026-02-07 21:06:01 +01:00
IgorCielniak
a8908819c4 added the option to compile in to .so and .a 2026-02-07 20:49:24 +01:00
IgorCielniak
1652692176 slight fixes to cte 2026-02-04 08:52:14 +01:00
IgorCielniak
5ea020100e implemented realloc as well as a bunch of fixes and some small changes like changing the order of arguments for !, making alloc drop etc. 2026-02-02 15:51:58 +01:00
IgorCielniak
ec826c31b2 changed the label generation logick to avoid the word_ prefix 2026-02-02 12:22:22 +01:00
IgorCielniak
dfc88c20eb small update 2026-01-31 22:18:41 +01:00
IgorCielniak
ff6af0b783 update to structs 2026-01-21 14:26:30 +01:00
IgorCielniak
805f8e26a5 added more debug info when compiling in debug mode, now the debug info contains mapping to the original .sl file 2026-01-18 19:55:59 +01:00
IgorCielniak
725fec9d73 added a simple effect system to avoid the hack with mentioning 'print_buf' in in comments inside of for ex. print 2026-01-16 11:59:41 +01:00
IgorCielniak
6ea160b388 update to the C FFI 2026-01-13 18:41:05 +01:00
IgorCielniak
a195e2b7cf added elif 2026-01-12 19:51:52 +01:00
IgorCielniak
8139aa66d9 make 'inline' come before 'word' instead of after the function definition 2026-01-10 22:19:55 +01:00
IgorCielniak
c31d8b93ce added a repl 2026-01-09 15:14:49 +01:00
IgorCielniak
315ad9ef77 another small update to error reporting 2026-01-09 12:33:55 +01:00
IgorCielniak
95f6c1dac5 small improvement for error reporting 2026-01-09 12:29:08 +01:00
IgorCielniak
c3490a37ae added compile time intrinsics that allow for modification of the prelude and bss section 2026-01-09 12:22:00 +01:00