Commit Graph

53 Commits

Author SHA1 Message Date
1d664e807b graalvm is bad and should go away 2025-07-26 16:09:55 -07:00
a262c09219 improve debug mode 2025-07-26 15:29:00 -07:00
ff2aaabd93 add debug mode 2025-07-26 00:47:32 -07:00
69230deefc introduce ir nop to fix loop bugs 2025-07-24 22:30:18 -07:00
837e0c1b38 implement native type compilation 2025-07-20 19:57:09 -07:00
a48fac4581 rework some bits of the compiler to work more appropriately 2025-07-16 23:14:25 -07:00
17b1aa44c0 upgrade dependencies 2025-07-03 03:18:11 -07:00
d2eaffafcc implement a new native call bytecode mechanism that can be optimized by the vm 2025-03-18 19:57:27 -07:00
4100752f1c upgrade to java 22 and fix miscompile of variable loads 2025-03-15 21:16:48 -07:00
6e225aab88 fix game of life support in evaluator 2024-12-01 04:13:59 -05:00
35ce58bb44 bir: mutable values and inspection 2023-12-27 16:44:32 -08:00
3dbf8f9c4a vm: implement local slot storage for fast lookup 2023-11-29 02:16:43 -08:00
f2ff23e9be language: implement proper virtual machine support 2023-11-28 05:23:48 -08:00
8951c3cd60 compiler: full support for IR based compilation 2023-11-23 21:48:10 -08:00
2d88666f05 WIP on IR 2023-11-22 07:23:33 -08:00
76290a401a bytecode: enhance symbol table with both slab and symbol name 2023-11-21 23:27:21 -08:00
6211ad4ff1 global: a working virtual machine for some of the use cases. APIs and validation still WIP. 2023-11-21 22:18:05 -08:00
0a2d029c5c language: introduce the requirement to use return to return a value from a function 2023-11-21 04:28:46 -08:00
5540918e7c vm: a functional virtual machine, mostly 2023-11-21 04:04:44 -08:00
4c50d48e1e compiler: first attempt at restructuring 2023-11-15 01:20:49 -08:00
041848c14e vm: very basic virtual machine 2023-11-14 23:44:10 -08:00
e3bfa3fbfc tokenizer: remove TokenStream, use sequences instead 2023-10-16 22:16:53 -07:00
15f5f313cc build: move parser and tokenizer into separate modules 2023-10-16 21:52:21 -07:00
9338b01b48 parser: lazy support 2023-10-14 03:28:07 -07:00
e96bcd8754 gradle: 8.4 and parser: lazy tokenization 2023-10-13 08:56:04 -07:00
73a458b673 parser: various code and quality enhancements 2023-10-08 04:46:23 -07:00
0d8c6723de Merge remote-tracking branch 'origin/jlf' 2023-10-06 16:14:30 -07:00
945ba85c98 ast: move gay.pizza.pork.ast to gay.pizza.pork.ast.gen 2023-10-06 15:52:34 -07:00
a292449b6a ast: fix codegen of equals to not produce warnings 2023-09-23 15:53:54 -07:00
e31566f0d6 ffi: migrate to java.lang.foreign and require Java 21 2023-09-23 15:45:01 -07:00
c92a111af7 idea: implement function call completion (limited) 2023-09-21 21:33:34 -07:00
4758e92676 evaluator: significant performance enhancements 2023-09-21 17:21:53 -07:00
7cb3e02b21 parser: major refinement of error handling 2023-09-18 01:07:28 -07:00
821aa3563a frontend: implement basic scope analysis 2023-09-17 00:38:47 -07:00
b64c7fb259 parser: use ast user data to store attribution 2023-09-11 20:13:15 -04:00
14b3f4c6e9 minimal: pork-rt minimal runtime 2023-09-11 02:39:38 -04:00
e8c984f2dc language: prelude and internal functions, and varargs support 2023-09-10 19:27:59 -04:00
4a9508ddc4 tool: cleaner println built-in (#1) 2023-09-09 22:20:56 -04:00
bf474f6b69 evaluator: introduce and expose scope tracking 2023-09-08 00:04:36 -07:00
38efbe1844 ffi: java interop improvements 2023-09-07 18:16:47 -07:00
a2f2252965 ffi: autogen java bindings (very wip) 2023-09-07 01:51:50 -07:00
953679b859 ffi: support for java native functions 2023-09-07 01:03:01 -07:00
81296ee1d1 imports are now python style with a twist: forms! import std ffi and import local myfile 2023-09-06 22:43:03 -07:00
0e4362eefb add a standard library, and introduce formed imports (import std "myfile.pork") 2023-09-06 21:39:57 -07:00
236f812caf while loop support, and native functions (including ffi!) 2023-09-06 19:07:28 -07:00
9f90e05d8a ast: utilize extension functions to prevent larger stack frames from default interface methods 2023-09-05 17:06:52 -07:00
725137c82f tool: add support for measuring runtime of a program 2023-09-05 01:49:19 -07:00
7de8f8cd63 Prepare for benchmarking and profiling. 2023-09-05 01:02:13 -07:00
2f0ee43556 tool: use absolute path for root 2023-09-04 22:46:36 -07:00
e7f36e0524 Fix -march=compatibility for GraalVM 2023-09-04 22:33:38 -07:00