Commit Graph
100 Commits
Author SHA1 Message Date
alex fdac4fb96a ffi: move type conversion to FfiType 2023-10-06 19:57:05 -07:00
alex 437ab758be ffi: migrate to jffi which will provide a path for struct support 2023-10-06 17:07:15 -07:00
alex 0d8c6723de Merge remote-tracking branch 'origin/jlf' 2023-10-06 16:14:30 -07:00
alex 945ba85c98 ast: move gay.pizza.pork.ast to gay.pizza.pork.ast.gen 2023-10-06 15:52:34 -07:00
alex d36310e698 parser: switch to char matcher interface 2023-10-06 15:30:43 -07:00
alex 97283636bc idea: enhance symbol support 2023-09-23 18:51:02 -07:00
alex 87623505c0 common: unused marker for marking values as unused intentionally 2023-09-23 16:30:00 -07:00
alex 4ae1d19012 readme: fix missing export for main 2023-09-23 15:55:42 -07:00
alex a292449b6a ast: fix codegen of equals to not produce warnings 2023-09-23 15:53:54 -07:00
alex e31566f0d6 ffi: migrate to java.lang.foreign and require Java 21 2023-09-23 15:45:01 -07:00
alex c340cfb86d idea: significant enhancements to ide experience 2023-09-22 22:38:06 -07:00
alex 83c24843a3 ffi: new native function format 2023-09-22 00:26:24 -07:00
alex f60715dfb3 idea: proper scoping support, completion now works 2023-09-21 23:07:22 -07:00
alex c92a111af7 idea: implement function call completion (limited) 2023-09-21 21:33:34 -07:00
alex d12aadf18c idea: brace matching and function resolution 2023-09-21 21:08:20 -07:00
alex c4f65a66ca parser: ensure that the parse functions are always directly called by reworking whitespace 2023-09-21 18:04:19 -07:00
alex 4758e92676 evaluator: significant performance enhancements 2023-09-21 17:21:53 -07:00
alex 1a759b9746 gradle: improve performance of ast codegen 2023-09-20 18:58:05 -07:00
alex 21ff33f776 gradle: make ast generation faster using kaml and coroutines 2023-09-20 15:13:33 -07:00
alex ad5fc9bf0f gradle: make build faster 2023-09-20 14:43:27 -07:00
alex dacec08587 ffi: rework for future struct support 2023-09-18 04:53:24 -07:00
alex 7cb3e02b21 parser: major refinement of error handling 2023-09-18 01:07:28 -07:00
alex a08526c92c language: implement list indexing 2023-09-17 08:38:11 -07:00
alex 3b101bd48a global: idea generation support 2023-09-17 00:38:47 -07:00
alex 821aa3563a frontend: implement basic scope analysis 2023-09-17 00:38:47 -07:00
aadc8282a5 introduce impork, workload as cute import aliases (#10)
Co-authored-by: Violet White <[email protected]>
Co-authored-by: Violet White <[email protected]>
2023-09-14 21:34:24 -07:00
alex 63e7203db9 parser: fix bug in ide support 2023-09-13 19:50:23 -07:00
alex 2307fdc0ed parser: rewrite to be able to parse any node type on demand 2023-09-13 19:40:29 -07:00
alex a6f9a82e5e language: none support 2023-09-12 02:03:41 -04:00
alex ca111f8e4b ffi: ensure failure to find functions don't produce null pointer exceptions 2023-09-12 01:40:15 -04:00
alex a9e3e8a69a ffi: don't try to use unsigned types from kotlin 2023-09-12 01:22:31 -04:00
alex 260c9f437d ffi: explicit parameter type conversion 2023-09-12 01:16:11 -04:00
alex 4053c5825a idea: fix pork symbol declaration 2023-09-12 00:50:06 -04:00
alex f64a54fa06 parser: fix integer literals 2023-09-12 00:46:09 -04:00
alex 1b363dcf56 parser: implement long literal and handle overflow 2023-09-12 00:25:13 -04:00
alex 7aa9d95221 idea: implement psi parser and the start of symbol declarations 2023-09-11 22:43:34 -04:00
alex b64c7fb259 parser: use ast user data to store attribution 2023-09-11 20:13:15 -04:00
alex 0aab45094a language: implement for in 2023-09-11 05:34:09 -04:00
alex d8c0ef43c1 parser: cleanup code for fixing comma bug 2023-09-11 05:20:08 -04:00
alex dbe4e7d5a5 parser: fix bug where comma was not required in function call 2023-09-11 05:17:55 -04:00
alex 24d2ff5743 parser: fix parsing of modifiers for let definitions 2023-09-11 05:03:12 -04:00
alex 8f60039d6e language: implement let definitions 2023-09-11 04:57:13 -04:00
alex 5d53381b82 ffi: include jni and resource configs for graal 2023-09-11 03:18:35 -04:00
alex 14b3f4c6e9 minimal: pork-rt minimal runtime 2023-09-11 02:39:38 -04:00
alex 2ee1565fb5 native: pass argument specs in order to support varadic ffi 2023-09-11 01:12:32 -04:00
alex f6d2fc5165 idea: comment highlighting support 2023-09-10 22:07:38 -04:00
alex 1be098d1c9 idea: rename gay.pizza.pork.intellij to gay.pizza.pork.idea 2023-09-10 20:56:04 -04:00
alex 7b4257d719 ast: default value support in generation 2023-09-10 20:54:48 -04:00
alex 033da5b2ea stdlib: generate stdlib.manifest 2023-09-10 20:47:50 -04:00
alex e8c984f2dc language: prelude and internal functions, and varargs support 2023-09-10 19:27:59 -04:00
alex 1cfb197a7f ensure new lines exist on all files 2023-09-10 04:37:30 -04:00
alex 3ed9350cd2 github: graal windows and darwin builds 2023-09-10 04:36:24 -04:00
alex 71999032ac language: var, reassign, comparison operators 2023-09-10 04:35:36 -04:00
alex f433ba2776 ast: generate graph 2023-09-10 02:34:02 -04:00
alex 0bc3128b9d support: basic idea plugin 2023-09-10 01:27:53 -04:00
alex 3a43b56fcd evaluator: cache native function resolution 2023-09-09 01:51:04 -04:00
alex e8766323ee language: floating point support 2023-09-09 00:08:30 -04:00
alex bf474f6b69 evaluator: introduce and expose scope tracking 2023-09-08 00:04:36 -07:00
alex 38efbe1844 ffi: java interop improvements 2023-09-07 18:16:47 -07:00
alex a2f2252965 ffi: autogen java bindings (very wip) 2023-09-07 01:51:50 -07:00
alex 540826fb6e ffi: shorthand for some java types 2023-09-07 01:07:43 -07:00
alex 953679b859 ffi: support for java native functions 2023-09-07 01:03:01 -07:00
alex 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
alex 0e4362eefb add a standard library, and introduce formed imports (import std "myfile.pork") 2023-09-06 21:39:57 -07:00
alex f31e12df89 ffi example: use c as library specifier 2023-09-06 19:08:32 -07:00
alex 236f812caf while loop support, and native functions (including ffi!) 2023-09-06 19:07:28 -07:00
alex ddff6cb365 language: today, we killed lambdas 2023-09-05 19:37:23 -07:00
alex 073ea09b13 ast codegen: optional support for inlining visit 2023-09-05 18:59:42 -07:00
alex 9f90e05d8a ast: utilize extension functions to prevent larger stack frames from default interface methods 2023-09-05 17:06:52 -07:00
alex 290d8d0f0a evaluator: optimize the cost of defining a variable in a scope 2023-09-05 03:13:43 -07:00
alex 63a90a599c evaluator: functions now use their own evaluation visitor 2023-09-05 02:42:15 -07:00
alex 9634a735ee evaluator: ensure function definitions use root scope 2023-09-05 02:20:46 -07:00
alex 725137c82f tool: add support for measuring runtime of a program 2023-09-05 01:49:19 -07:00
alex 2631b6752b evaluator: inherit fast cache for calls to functions in a function definition 2023-09-05 01:43:59 -07:00
alex 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
alex cc23789203 evaluator: prevent double lookup when looking up value in a scope 2023-09-05 01:09:26 -07:00
alex 7de8f8cd63 Prepare for benchmarking and profiling. 2023-09-05 01:02:13 -07:00
alex 2f0ee43556 tool: use absolute path for root 2023-09-04 22:46:36 -07:00
alex e7f36e0524 Fix -march=compatibility for GraalVM 2023-09-04 22:33:38 -07:00
alex 174d51ca1c Auto-generate the AST. 2023-09-04 22:13:58 -07:00
alex f06ea93dc4 Significant progress on AST codegen. 2023-09-04 18:38:09 -07:00
alex edec706ed4 Fix NodeType hierarchy. 2023-09-04 03:09:09 -07:00
alex e49ad7c4ba fn -> func in README 2023-09-04 03:04:36 -07:00
alex bfd24154a8 Fix README 2023-09-04 02:39:40 -07:00
alex 4aa516f0fb Fix some overqualifications due to IDE renaming. 2023-09-04 02:38:09 -07:00
alex 3545aa076f Introduce the requirement of let for assignment. 2023-09-04 02:33:13 -07:00
alex 128f40bcf4 Split out all code into modules. 2023-09-04 01:56:24 -07:00
alex d46ea1e307 Multi-module arrangement and the start of AST generation. 2023-09-03 23:15:21 -07:00
alex bf3967544a Complex import sample and support for import dependency cycles. 2023-09-03 02:41:02 -07:00
alex 4f567eb287 Exportable functions, common frontend, and scoped imports. 2023-09-03 02:26:21 -07:00
alex 7a771980e0 Prepare for CFE. 2023-09-03 01:11:27 -07:00
alex d572a5c732 Well that's a bad mistake. 2023-09-02 23:35:28 -07:00
alex ed5bbec004 Implement a very dumb import system. 2023-09-02 23:28:40 -07:00
alex e7be1f622d fn -> func 2023-09-02 21:07:59 -07:00
alex b1f9e02253 Declaration based compilation units. 2023-09-02 20:22:08 -07:00
alex 04c78c35e0 Enhanced indention support. 2023-09-02 19:38:27 -07:00
alex 62ba662a91 Fix attribution of tokens. 2023-09-02 17:01:56 -07:00
alex 941b201549 Define node visitor order based on parsing order. 2023-09-02 15:11:25 -07:00
alex 900e3f1a1c Implement token node attribution and a Dart compiler. 2023-08-30 03:54:44 -07:00
alex 743bc00bab Cleanup parser and extract common logic. 2023-08-30 03:15:13 -07:00