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
819e451512
added an implementation of Conway's game of life as en example
2026-03-03 09:48:52 +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
1fed85bc0a
small fix in the stack effect comments
2026-02-20 21:09:40 +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
6c34602ead
extended the test for dynamic arrays
2026-02-18 12:22:16 +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
IgorCielniak
adfc941538
added formating functions
2026-02-17 12:59:34 +01:00
IgorCielniak
2fb994a3ee
small update to the test script
2026-02-17 08:50:20 +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
igor
1b21a0b18b
made test.py cross platform
2026-02-16 14:42:53 +01:00
igor
81ee4a8ff9
refactored the testing system, fixed fput and removed arr_asm.sl
2026-02-16 14:32:13 +01:00
IgorCielniak
02f54b8f86
draft of the c version of the compiler
2026-02-16 09:20:34 +01:00
IgorCielniak
a3c68860a7
added get_addr and jmp
2026-02-12 17:39:05 +01:00
IgorCielniak
709377a45b
small fix in arr.sl
2026-02-10 17:47:59 +01:00
IgorCielniak
2b48e2d7e6
added loop unroling
2026-02-10 15:18:30 +01:00
IgorCielniak
2f5b1f40b1
added a function to convert the buildt in array to a dynamic array
2026-02-10 11:31:39 +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
bf4d11d313
added fdump and frdump for dumping the stack in the new format
2026-02-06 10:46:48 +01:00
IgorCielniak
5fb36ac9bc
standardized the system of stack effect comments and updated/corrected the existing comments in stdlib and added some that were lacking
2026-02-05 21:36:03 +01:00
IgorCielniak
2d06358e24
made tests run on arm with qemu-x86_64
2026-02-04 09:55:07 +01:00
IgorCielniak
1652692176
slight fixes to cte
2026-02-04 08:52:14 +01:00
IgorCielniak
ac4c55cb8e
some additions to core and test for them
2026-02-03 18:43:04 +01:00
IgorCielniak
c2fcaf8f8d
ported dynamic arrays and strlen to l2
2026-02-03 09:41:11 +01:00
IgorCielniak
2b78ca671c
rule110
2026-02-03 09:03:44 +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