Commit Graph

76 Commits

Author SHA1 Message Date
b60326d5be add euclidean modulo and remainder infix operators 2023-09-10 12:38:04 +10:00
03c278f5b1 ffi: add c-style char* strings as a supported return type (#2) 2023-09-09 22:31:48 -04:00
4a9508ddc4 tool: cleaner println built-in (#1) 2023-09-09 22:20:56 -04:00
3a43b56fcd evaluator: cache native function resolution 2023-09-09 01:51:04 -04:00
e8766323ee language: floating point support 2023-09-09 00:08:30 -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
540826fb6e ffi: shorthand for some java types 2023-09-07 01:07:43 -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
f31e12df89 ffi example: use c as library specifier 2023-09-06 19:08:32 -07:00
236f812caf while loop support, and native functions (including ffi!) 2023-09-06 19:07:28 -07:00
ddff6cb365 language: today, we killed lambdas 2023-09-05 19:37:23 -07:00
073ea09b13 ast codegen: optional support for inlining visit 2023-09-05 18:59:42 -07:00
9f90e05d8a ast: utilize extension functions to prevent larger stack frames from default interface methods 2023-09-05 17:06:52 -07:00
290d8d0f0a evaluator: optimize the cost of defining a variable in a scope 2023-09-05 03:13:43 -07:00
63a90a599c evaluator: functions now use their own evaluation visitor 2023-09-05 02:42:15 -07:00
9634a735ee evaluator: ensure function definitions use root scope 2023-09-05 02:20:46 -07:00
725137c82f tool: add support for measuring runtime of a program 2023-09-05 01:49:19 -07:00
2631b6752b evaluator: inherit fast cache for calls to functions in a function definition 2023-09-05 01:43:59 -07:00
65f61fcd90 evaluator: implement an elaborate system that should mean that recursive functions don't require reaching far up the stack 2023-09-05 01:35:50 -07:00
cc23789203 evaluator: prevent double lookup when looking up value in a scope 2023-09-05 01:09:26 -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
174d51ca1c Auto-generate the AST. 2023-09-04 22:13:58 -07:00
f06ea93dc4 Significant progress on AST codegen. 2023-09-04 18:38:09 -07:00
edec706ed4 Fix NodeType hierarchy. 2023-09-04 03:09:09 -07:00
e49ad7c4ba fn -> func in README 2023-09-04 03:04:36 -07:00
bfd24154a8 Fix README 2023-09-04 02:39:40 -07:00
4aa516f0fb Fix some overqualifications due to IDE renaming. 2023-09-04 02:38:09 -07:00
3545aa076f Introduce the requirement of let for assignment. 2023-09-04 02:33:13 -07:00
128f40bcf4 Split out all code into modules. 2023-09-04 01:56:24 -07:00
d46ea1e307 Multi-module arrangement and the start of AST generation. 2023-09-03 23:15:21 -07:00
bf3967544a Complex import sample and support for import dependency cycles. 2023-09-03 02:41:02 -07:00
4f567eb287 Exportable functions, common frontend, and scoped imports. 2023-09-03 02:26:21 -07:00
7a771980e0 Prepare for CFE. 2023-09-03 01:11:27 -07:00
d572a5c732 Well that's a bad mistake. 2023-09-02 23:35:28 -07:00
ed5bbec004 Implement a very dumb import system. 2023-09-02 23:28:40 -07:00
e7be1f622d fn -> func 2023-09-02 21:07:59 -07:00
b1f9e02253 Declaration based compilation units. 2023-09-02 20:22:08 -07:00
04c78c35e0 Enhanced indention support. 2023-09-02 19:38:27 -07:00
62ba662a91 Fix attribution of tokens. 2023-09-02 17:01:56 -07:00
941b201549 Define node visitor order based on parsing order. 2023-09-02 15:11:25 -07:00
900e3f1a1c Implement token node attribution and a Dart compiler. 2023-08-30 03:54:44 -07:00
743bc00bab Cleanup parser and extract common logic. 2023-08-30 03:15:13 -07:00
7f0b9ca8e3 Meta tokenizer. 2023-08-25 23:55:09 -07:00
1c300b6109 Remove unused supression. 2023-08-23 23:10:20 -07:00