@elaraai/east 0.0.1-beta.3 → 0.0.1-beta.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/LICENSE.md +15 -666
  2. package/README.md +30 -8
  3. package/dist/src/analyze.d.ts +3 -0
  4. package/dist/src/analyze.d.ts.map +1 -1
  5. package/dist/src/analyze.js +76 -15
  6. package/dist/src/analyze.js.map +1 -1
  7. package/dist/src/ast.d.ts +37 -33
  8. package/dist/src/ast.d.ts.map +1 -1
  9. package/dist/src/ast_to_ir.d.ts +6 -0
  10. package/dist/src/ast_to_ir.d.ts.map +1 -1
  11. package/dist/src/ast_to_ir.js +135 -101
  12. package/dist/src/ast_to_ir.js.map +1 -1
  13. package/dist/src/builtins.d.ts +1 -1
  14. package/dist/src/builtins.d.ts.map +1 -1
  15. package/dist/src/builtins.js +32 -0
  16. package/dist/src/builtins.js.map +1 -1
  17. package/dist/src/comparison.d.ts.map +1 -1
  18. package/dist/src/comparison.js +12 -4
  19. package/dist/src/comparison.js.map +1 -1
  20. package/dist/src/compile.d.ts +26 -1
  21. package/dist/src/compile.d.ts.map +1 -1
  22. package/dist/src/compile.js +388 -257
  23. package/dist/src/compile.js.map +1 -1
  24. package/dist/src/datetime_format/types.d.ts +23 -23
  25. package/dist/src/eastir.d.ts +4 -0
  26. package/dist/src/eastir.d.ts.map +1 -1
  27. package/dist/src/eastir.js +27 -7
  28. package/dist/src/eastir.js.map +1 -1
  29. package/dist/src/error.d.ts +12 -1
  30. package/dist/src/error.d.ts.map +1 -1
  31. package/dist/src/error.js +31 -1
  32. package/dist/src/error.js.map +1 -1
  33. package/dist/src/expr/array.d.ts +109 -1
  34. package/dist/src/expr/array.d.ts.map +1 -1
  35. package/dist/src/expr/array.js +204 -44
  36. package/dist/src/expr/array.js.map +1 -1
  37. package/dist/src/expr/ast.d.ts +1 -1
  38. package/dist/src/expr/ast.d.ts.map +1 -1
  39. package/dist/src/expr/ast.js +16 -28
  40. package/dist/src/expr/ast.js.map +1 -1
  41. package/dist/src/expr/asyncfunction.js +1 -1
  42. package/dist/src/expr/asyncfunction.js.map +1 -1
  43. package/dist/src/expr/blob.d.ts +73 -1
  44. package/dist/src/expr/blob.d.ts.map +1 -1
  45. package/dist/src/expr/blob.js +97 -7
  46. package/dist/src/expr/blob.js.map +1 -1
  47. package/dist/src/expr/block.d.ts +232 -12
  48. package/dist/src/expr/block.d.ts.map +1 -1
  49. package/dist/src/expr/block.js +646 -140
  50. package/dist/src/expr/block.js.map +1 -1
  51. package/dist/src/expr/boolean.d.ts +44 -0
  52. package/dist/src/expr/boolean.d.ts.map +1 -1
  53. package/dist/src/expr/boolean.js +57 -5
  54. package/dist/src/expr/boolean.js.map +1 -1
  55. package/dist/src/expr/datetime.d.ts +135 -0
  56. package/dist/src/expr/datetime.d.ts.map +1 -1
  57. package/dist/src/expr/datetime.js +183 -33
  58. package/dist/src/expr/datetime.js.map +1 -1
  59. package/dist/src/expr/dict.d.ts +42 -0
  60. package/dist/src/expr/dict.d.ts.map +1 -1
  61. package/dist/src/expr/dict.js +105 -55
  62. package/dist/src/expr/dict.js.map +1 -1
  63. package/dist/src/expr/expr.d.ts +1 -1
  64. package/dist/src/expr/expr.d.ts.map +1 -1
  65. package/dist/src/expr/expr.js.map +1 -1
  66. package/dist/src/expr/float.d.ts +153 -0
  67. package/dist/src/expr/float.d.ts.map +1 -1
  68. package/dist/src/expr/float.js +190 -16
  69. package/dist/src/expr/float.js.map +1 -1
  70. package/dist/src/expr/function.d.ts +7 -2
  71. package/dist/src/expr/function.d.ts.map +1 -1
  72. package/dist/src/expr/function.js +1 -1
  73. package/dist/src/expr/function.js.map +1 -1
  74. package/dist/src/expr/index.d.ts +202 -2
  75. package/dist/src/expr/index.d.ts.map +1 -1
  76. package/dist/src/expr/index.js +207 -2
  77. package/dist/src/expr/index.js.map +1 -1
  78. package/dist/src/expr/integer.d.ts +180 -0
  79. package/dist/src/expr/integer.d.ts.map +1 -1
  80. package/dist/src/expr/integer.js +188 -17
  81. package/dist/src/expr/integer.js.map +1 -1
  82. package/dist/src/expr/libs/blob.js +2 -2
  83. package/dist/src/expr/libs/blob.js.map +1 -1
  84. package/dist/src/expr/libs/integer.d.ts +19 -0
  85. package/dist/src/expr/libs/integer.d.ts.map +1 -1
  86. package/dist/src/expr/libs/integer.js +47 -0
  87. package/dist/src/expr/libs/integer.js.map +1 -1
  88. package/dist/src/expr/libs/string.js +1 -1
  89. package/dist/src/expr/libs/string.js.map +1 -1
  90. package/dist/src/expr/recursive.d.ts +83 -0
  91. package/dist/src/expr/recursive.d.ts.map +1 -0
  92. package/dist/src/expr/recursive.js +99 -0
  93. package/dist/src/expr/recursive.js.map +1 -0
  94. package/dist/src/expr/ref.js +3 -3
  95. package/dist/src/expr/ref.js.map +1 -1
  96. package/dist/src/expr/set.d.ts +44 -2
  97. package/dist/src/expr/set.d.ts.map +1 -1
  98. package/dist/src/expr/set.js +97 -47
  99. package/dist/src/expr/set.js.map +1 -1
  100. package/dist/src/expr/string.d.ts +134 -0
  101. package/dist/src/expr/string.d.ts.map +1 -1
  102. package/dist/src/expr/string.js +172 -22
  103. package/dist/src/expr/string.js.map +1 -1
  104. package/dist/src/expr/struct.d.ts +1 -1
  105. package/dist/src/expr/struct.d.ts.map +1 -1
  106. package/dist/src/expr/struct.js +1 -1
  107. package/dist/src/expr/struct.js.map +1 -1
  108. package/dist/src/expr/types.d.ts +7 -6
  109. package/dist/src/expr/types.d.ts.map +1 -1
  110. package/dist/src/expr/variant.d.ts +123 -1
  111. package/dist/src/expr/variant.d.ts.map +1 -1
  112. package/dist/src/expr/variant.js +66 -2
  113. package/dist/src/expr/variant.js.map +1 -1
  114. package/dist/src/fuzz.d.ts +36 -2
  115. package/dist/src/fuzz.d.ts.map +1 -1
  116. package/dist/src/fuzz.js +344 -77
  117. package/dist/src/fuzz.js.map +1 -1
  118. package/dist/src/index.d.ts +1 -0
  119. package/dist/src/index.d.ts.map +1 -1
  120. package/dist/src/index.js +1 -0
  121. package/dist/src/index.js.map +1 -1
  122. package/dist/src/internal.d.ts +12 -0
  123. package/dist/src/internal.d.ts.map +1 -1
  124. package/dist/src/internal.js +13 -0
  125. package/dist/src/internal.js.map +1 -1
  126. package/dist/src/ir.d.ts +1551 -1505
  127. package/dist/src/ir.d.ts.map +1 -1
  128. package/dist/src/ir.js +49 -34
  129. package/dist/src/ir.js.map +1 -1
  130. package/dist/src/location.d.ts +30 -10
  131. package/dist/src/location.d.ts.map +1 -1
  132. package/dist/src/location.js +70 -28
  133. package/dist/src/location.js.map +1 -1
  134. package/dist/src/patch/apply.d.ts +15 -0
  135. package/dist/src/patch/apply.d.ts.map +1 -0
  136. package/dist/src/patch/apply.js +380 -0
  137. package/dist/src/patch/apply.js.map +1 -0
  138. package/dist/src/patch/compose.d.ts +15 -0
  139. package/dist/src/patch/compose.d.ts.map +1 -0
  140. package/dist/src/patch/compose.js +480 -0
  141. package/dist/src/patch/compose.js.map +1 -0
  142. package/dist/src/patch/diff.d.ts +15 -0
  143. package/dist/src/patch/diff.d.ts.map +1 -0
  144. package/dist/src/patch/diff.js +328 -0
  145. package/dist/src/patch/diff.js.map +1 -0
  146. package/dist/src/patch/fuzz.d.ts +73 -0
  147. package/dist/src/patch/fuzz.d.ts.map +1 -0
  148. package/dist/src/patch/fuzz.js +159 -0
  149. package/dist/src/patch/fuzz.js.map +1 -0
  150. package/dist/src/patch/index.d.ts +18 -0
  151. package/dist/src/patch/index.d.ts.map +1 -0
  152. package/dist/src/patch/index.js +20 -0
  153. package/dist/src/patch/index.js.map +1 -0
  154. package/dist/src/patch/invert.d.ts +15 -0
  155. package/dist/src/patch/invert.d.ts.map +1 -0
  156. package/dist/src/patch/invert.js +302 -0
  157. package/dist/src/patch/invert.js.map +1 -0
  158. package/dist/src/patch/type_of_patch.d.ts +17 -0
  159. package/dist/src/patch/type_of_patch.d.ts.map +1 -0
  160. package/dist/src/patch/type_of_patch.js +143 -0
  161. package/dist/src/patch/type_of_patch.js.map +1 -0
  162. package/dist/src/patch/types.d.ts +166 -0
  163. package/dist/src/patch/types.d.ts.map +1 -0
  164. package/dist/src/patch/types.js +69 -0
  165. package/dist/src/patch/types.js.map +1 -0
  166. package/dist/src/platform.d.ts +6 -0
  167. package/dist/src/platform.d.ts.map +1 -1
  168. package/dist/src/serialization/beast.d.ts.map +1 -1
  169. package/dist/src/serialization/beast.js +53 -18
  170. package/dist/src/serialization/beast.js.map +1 -1
  171. package/dist/src/serialization/beast2.d.ts +39 -3
  172. package/dist/src/serialization/beast2.d.ts.map +1 -1
  173. package/dist/src/serialization/beast2.js +241 -18
  174. package/dist/src/serialization/beast2.js.map +1 -1
  175. package/dist/src/serialization/csv.d.ts +139 -0
  176. package/dist/src/serialization/csv.d.ts.map +1 -0
  177. package/dist/src/serialization/csv.js +615 -0
  178. package/dist/src/serialization/csv.js.map +1 -0
  179. package/dist/src/serialization/index.d.ts +2 -1
  180. package/dist/src/serialization/index.d.ts.map +1 -1
  181. package/dist/src/serialization/index.js +2 -1
  182. package/dist/src/serialization/index.js.map +1 -1
  183. package/dist/src/type_of_type.d.ts +45 -34
  184. package/dist/src/type_of_type.d.ts.map +1 -1
  185. package/dist/src/type_of_type.js +62 -1
  186. package/dist/src/type_of_type.js.map +1 -1
  187. package/dist/src/types.d.ts +8 -8
  188. package/dist/src/types.d.ts.map +1 -1
  189. package/dist/src/types.js +4 -4
  190. package/dist/src/types.js.map +1 -1
  191. package/package.json +4 -5
package/README.md CHANGED
@@ -64,13 +64,13 @@ const calculateRevenue = East.function(
64
64
  // Group sales by product and sum revenue (quantity × price)
65
65
  const revenueByProduct = sales.groupSum(
66
66
  // Group by product name
67
- ($, sale) => sale.product,
67
+ ($, sale) => sale.product,
68
68
  // Sum quantity × price
69
- ($, sale) => sale.quantity.multiply(sale.price)
69
+ ($, sale) => sale.quantity.multiply(sale.price)
70
70
  );
71
71
 
72
72
  // Log revenue for each product
73
- $(log(East.str`Total Revenue: ${revenueByProduct.sum()}`));
73
+ $(log(East.str`Total Revenue: ${East.Integer.printCurrency(revenueByProduct.sum())}`));
74
74
 
75
75
  $.return(revenueByProduct);
76
76
  }
@@ -85,9 +85,8 @@ const sales = [
85
85
  { product: "Widget", quantity: 3n, price: 50n }
86
86
  ];
87
87
 
88
- const result = compiled(sales);
89
- // Result: Map { "Widget" => 650n, "Gadget" => 500n }
90
- // Logs: "Gadget: $500" and "Widget: $650"
88
+ compiled(sales);
89
+ // Total Revenue: $1,150
91
90
  ```
92
91
 
93
92
  ## Type System
@@ -119,7 +118,7 @@ East supports a rich type system optimized for business logic and data processin
119
118
 
120
119
  ## Documentation
121
120
 
122
- - **[USAGE.md](USAGE.md)** - Comprehensive developer guide with API reference
121
+ - **[SKILL.md](SKILL.md)** - Comprehensive guide with API and example reference
123
122
  - **[LICENSE.md](LICENSE.md)** - Dual licensing information (AGPL-3.0 / Commercial)
124
123
  - **[CONTRIBUTING.md](CONTRIBUTING.md)** - How to contribute to East
125
124
  - **[CLA.md](CLA.md)** - Contributor License Agreement
@@ -290,6 +289,28 @@ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for deta
290
289
 
291
290
  **Note**: Contributors must sign our [CLA](CLA.md) before we can accept pull requests. This allows us to offer commercial licenses while keeping the project open source.
292
291
 
292
+ ### Ecosystem
293
+
294
+ - **[East Node](https://github.com/elaraai/east-node)**: Node.js platform functions for I/O, databases, and system operations. Connect East programs to filesystems, SQL/NoSQL databases, cloud storage, and network services.
295
+ - [@elaraai/east-node-std](https://www.npmjs.com/package/@elaraai/east-node-std): Filesystem, console, HTTP fetch, crypto, random distributions, timestamps
296
+ - [@elaraai/east-node-io](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, S3, FTP, SFTP
297
+ - [@elaraai/east-node-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): CLI for running East IR programs in Node.js
298
+
299
+ - **[East Python](https://github.com/elaraai/east-py)**: Python runtime and platform functions for data science and machine learning. Execute East programs with access to optimization solvers, gradient boosting, neural networks, and model explainability.
300
+ - [@elaraai/east-py-datascience](https://www.npmjs.com/package/@elaraai/east-py-datascience): TypeScript types for optimization, gradient boosting, neural networks, explainability
301
+
302
+ - **[East UI](https://github.com/elaraai/east-ui)**: East types and expressions for building dashboards and interactive layouts. Define UIs as data structures that render consistently across React, web, and other environments.
303
+ - [@elaraai/east-ui](https://www.npmjs.com/package/@elaraai/east-ui): 50+ typed UI components for layouts, forms, charts, tables, dialogs
304
+ - [@elaraai/east-ui-components](https://www.npmjs.com/package/@elaraai/east-ui-components): React renderer with Chakra UI styling
305
+
306
+ - **[e3 - East Execution Engine](https://github.com/elaraai/e3)**: Durable execution engine for running East pipelines at scale. Features Git-like content-addressable storage, automatic memoization, task queuing, and real-time monitoring.
307
+ - [@elaraai/e3](https://www.npmjs.com/package/@elaraai/e3): SDK for authoring e3 packages with typed tasks and pipelines
308
+ - [@elaraai/e3-core](https://www.npmjs.com/package/@elaraai/e3-core): Git-like object store, task queue, result caching
309
+ - [@elaraai/e3-types](https://www.npmjs.com/package/@elaraai/e3-types): Shared type definitions for e3 packages
310
+ - [@elaraai/e3-cli](https://www.npmjs.com/package/@elaraai/e3-cli): `e3 init`, `e3 run`, `e3 logs` commands for managing and monitoring tasks
311
+ - [@elaraai/e3-api-client](https://www.npmjs.com/package/@elaraai/e3-api-client): HTTP client for remote e3 servers
312
+ - [@elaraai/e3-api-server](https://www.npmjs.com/package/@elaraai/e3-api-server): REST API server for e3 repositories
313
+
293
314
  ## Links
294
315
 
295
316
  - **Website**: [https://elaraai.com/](https://elaraai.com/)
@@ -299,7 +320,8 @@ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for deta
299
320
 
300
321
  ## About Elara
301
322
 
302
- East is developed by [Elara AI Pty Ltd](https://elaraai.com/), an AI-powered platform that creates economic digital twins of businesses that optimize performance. Elara combines business objectives, decisions and data to help organizations make data-driven decisions across work management, purchasing, customer engagement, and investment planning. East powers the computational layer of Elara solutions, enabling the expression of complex business logic and data in a simple, type-safe and portable language.
323
+ East is developed by [Elara AI Pty Ltd](https://elaraai.com/), an AI-powered platform that creates economic digital twins of businesses that optimize performance. Elara combines business objectives, decisions and data to help organizations make data-driven decisions across operations, purchasing, sales and customer engagement, and project and investment planning. East powers the computational layer of Elara solutions, enabling the expression of complex business logic and data in a simple, type-safe and portable language.
303
324
 
304
325
  ---
305
326
 
327
+ *Developed by [Elara AI Pty Ltd](https://elaraai.com/)*
@@ -37,6 +37,9 @@ export type PlatformDefinition = {
37
37
  inputs: EastTypeValue[];
38
38
  output: EastTypeValue;
39
39
  type: 'sync' | 'async';
40
+ type_parameters?: string[];
41
+ inputsFn?: (...typeParams: EastTypeValue[]) => EastTypeValue[];
42
+ outputsFn?: (...typeParams: EastTypeValue[]) => EastTypeValue;
40
43
  };
41
44
  export type AnalyzedIR<T extends IR = IR> = T & {
42
45
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAA+B,EAAE,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAOxE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC;AAGhF;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,EAAE,aAAa,CAAC;IAEpB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IAEjB,yFAAyF;IACzF,SAAS,EAAE,EAAE,CAAC;IAEd,uFAAuF;IACvF,QAAQ,EAAE,OAAO,CAAC;CAYnB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EACpC,EAAE,EAAE,CAAC,EACL,WAAW,EAAE,kBAAkB,EAAE,EACjC,GAAG,GAAE,eAAoB,GACxB,UAAU,CAAC,CAAC,CAAC,CAmiDf"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,OAAO,KAAK,EAA+B,EAAE,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAOxE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,CAAC;IAC/D,SAAS,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,KAAK,aAAa,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,CAAC;AAGhF;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,IAAI,EAAE,aAAa,CAAC;IAEpB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IAEjB,yFAAyF;IACzF,SAAS,EAAE,EAAE,CAAC;IAEd,uFAAuF;IACvF,QAAQ,EAAE,OAAO,CAAC;CAYnB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EACpC,EAAE,EAAE,CAAC,EACL,WAAW,EAAE,kBAAkB,EAAE,EACjC,GAAG,GAAE,eAAoB,GACxB,UAAU,CAAC,CAAC,CAAC,CAsmDf"}
@@ -37,13 +37,23 @@ import { Builtins } from "./builtins.js";
37
37
  export function analyzeIR(ir, platformDef, ctx = {}) {
38
38
  // Working data for tracking during analysis
39
39
  const analysis = new Map();
40
+ // Pre-populate analysis Map with definedBy nodes from external context.
41
+ // This is needed when analyzing deserialized functions with captures - the external
42
+ // context contains variable metadata with definedBy references that need to be in
43
+ // the analysis Map so nested functions can properly mark them as captured.
44
+ for (const varName of Object.keys(ctx)) {
45
+ const varMeta = ctx[varName];
46
+ if (varMeta?.definedBy && !analysis.has(varMeta.definedBy)) {
47
+ analysis.set(varMeta.definedBy, { captured: varMeta.captured });
48
+ }
49
+ }
40
50
  // Build a lookup map for platform functions
41
51
  const platformMap = new Map();
42
52
  for (const p of platformDef) {
43
53
  if (platformMap.has(p.name)) {
44
54
  throw new Error(`Duplicate platform function definition for '${p.name}'`);
45
55
  }
46
- platformMap.set(p.name, { inputs: p.inputs, output: p.output, type: p.type });
56
+ platformMap.set(p.name, p);
47
57
  }
48
58
  // Track circular references
49
59
  const visiting = new Set();
@@ -251,12 +261,55 @@ export function analyzeIR(ir, platformDef, ctx = {}) {
251
261
  // Look up platform function
252
262
  const platformFn = platformMap.get(node.value.name);
253
263
  if (!platformFn) {
254
- throw new Error(`Platform function '${node.value.name}' not found ` +
255
- `at ${printLocationValue(node.value.location)}`);
264
+ // Allow missing platforms only if this specific platform function is marked as optional in the IR
265
+ if (!node.value.optional) {
266
+ throw new Error(`Platform function '${node.value.name}' not found ` +
267
+ `at ${printLocationValue(node.value.location)}`);
268
+ }
269
+ // allowMissingPlatform is true - analyze arguments without type validation
270
+ // and let compile inject a runtime error stub
271
+ const analyzedArgs = [];
272
+ for (const arg of node.value.arguments) {
273
+ const argAnalyzed = visit(arg, ctx, expectedReturnType);
274
+ analyzedArgs.push(argAnalyzed);
275
+ if (argAnalyzed.value.isAsync) {
276
+ isAsync = true;
277
+ }
278
+ }
279
+ // Return analyzed Platform node with analyzed arguments (no type validation)
280
+ return {
281
+ ...node,
282
+ value: {
283
+ ...node.value,
284
+ arguments: analyzedArgs,
285
+ isAsync,
286
+ }
287
+ };
256
288
  }
257
- // Validate argument count
258
- if (node.value.arguments.length !== platformFn.inputs.length) {
259
- throw new Error(`Platform function '${node.value.name}' expects ${platformFn.inputs.length} arguments ` +
289
+ // Handle generic platform functions
290
+ const typeParams = node.value.type_parameters ?? [];
291
+ const expectedTypeParamCount = platformFn.type_parameters?.length ?? 0;
292
+ if (typeParams.length !== expectedTypeParamCount) {
293
+ throw new Error(`Platform function '${node.value.name}' expects ${expectedTypeParamCount} ` +
294
+ `type parameters, got ${typeParams.length} ` +
295
+ `at ${printLocationValue(node.value.location)}`);
296
+ }
297
+ // Compute concrete input/output types by substituting type parameters
298
+ let inputTypes;
299
+ let outputType;
300
+ if (expectedTypeParamCount > 0 && platformFn.inputsFn && platformFn.outputsFn) {
301
+ // Generic platform function - use callbacks to compute types
302
+ inputTypes = platformFn.inputsFn(...typeParams);
303
+ outputType = platformFn.outputsFn(...typeParams);
304
+ }
305
+ else {
306
+ // Non-generic - use stored concrete types
307
+ inputTypes = platformFn.inputs;
308
+ outputType = platformFn.output;
309
+ }
310
+ // Validate argument count (now using computed inputTypes)
311
+ if (node.value.arguments.length !== inputTypes.length) {
312
+ throw new Error(`Platform function '${node.value.name}' expects ${inputTypes.length} arguments ` +
260
313
  `but got ${node.value.arguments.length} ` +
261
314
  `at ${printLocationValue(node.value.location)}`);
262
315
  }
@@ -269,9 +322,9 @@ export function analyzeIR(ir, platformDef, ctx = {}) {
269
322
  if (argAnalyzed.value.isAsync) {
270
323
  isAsync = true;
271
324
  }
272
- // Validate argument type exactly matches expected
325
+ // Validate argument type exactly matches expected (using computed inputTypes)
273
326
  // (Subtyping should be handled by explicit As nodes)
274
- const expectedType = platformFn.inputs[i];
327
+ const expectedType = inputTypes[i];
275
328
  if (argAnalyzed.value.type.type !== "Never" && !isTypeValueEqual(argAnalyzed.value.type, expectedType)) {
276
329
  throw new Error(`Platform function '${node.value.name}' argument ${i + 1} ` +
277
330
  `requires exact type match. ` +
@@ -285,10 +338,10 @@ export function analyzeIR(ir, platformDef, ctx = {}) {
285
338
  if (platformFn.type === 'async') {
286
339
  isAsync = true;
287
340
  }
288
- // Validate return type matches
289
- if (!isTypeValueEqual(node.value.type, platformFn.output)) {
341
+ // Validate return type matches (using computed outputType)
342
+ if (!isTypeValueEqual(node.value.type, outputType)) {
290
343
  throw new Error(`Platform function '${node.value.name}' return type ` +
291
- `expected to be ${printTypeValue(platformFn.output)} ` +
344
+ `expected to be ${printTypeValue(outputType)} ` +
292
345
  `but IR has ${printTypeValue(node.value.type)} ` +
293
346
  `at ${printLocationValue(node.value.location)}`);
294
347
  }
@@ -329,13 +382,17 @@ export function analyzeIR(ir, platformDef, ctx = {}) {
329
382
  `at ${printLocationValue(node.value.location)}`);
330
383
  }
331
384
  // Mark the outer variable as captured (it's being closed over by this function)
385
+ const wasAlreadyCaptured = outerVar.captured;
332
386
  outerVar.captured = true;
333
387
  const defVarAnalysis = analysis.get(outerVar.definedBy);
334
- if (!defVarAnalysis) {
388
+ if (defVarAnalysis) {
389
+ defVarAnalysis.captured = true;
390
+ }
391
+ else if (!wasAlreadyCaptured) {
392
+ // Only error if this wasn't already marked as captured (from a synthetic/external context)
335
393
  throw new Error(`Internal error: VariableIR node for captured variable ${captureVar.value.name} not analyzed. ` +
336
394
  `This should never happen - all VariableIR nodes should be analyzed when encountered.`);
337
395
  }
338
- defVarAnalysis.captured = true;
339
396
  fnCtx[captureVar.value.name] = {
340
397
  type: captureVar.value.type,
341
398
  mutable: captureVar.value.mutable,
@@ -404,13 +461,17 @@ export function analyzeIR(ir, platformDef, ctx = {}) {
404
461
  `at ${printLocationValue(node.value.location)}`);
405
462
  }
406
463
  // Mark the outer variable as captured (it's being closed over by this function)
464
+ const wasAlreadyCaptured = outerVar.captured;
407
465
  outerVar.captured = true;
408
466
  const defVarAnalysis = analysis.get(outerVar.definedBy);
409
- if (!defVarAnalysis) {
467
+ if (defVarAnalysis) {
468
+ defVarAnalysis.captured = true;
469
+ }
470
+ else if (!wasAlreadyCaptured) {
471
+ // Only error if this wasn't already marked as captured (from a synthetic/external context)
410
472
  throw new Error(`Internal error: VariableIR node for captured variable ${captureVar.value.name} not analyzed. ` +
411
473
  `This should never happen - all VariableIR nodes should be analyzed when encountered.`);
412
474
  }
413
- defVarAnalysis.captured = true;
414
475
  fnCtx[captureVar.value.name] = {
415
476
  type: captureVar.value.type,
416
477
  mutable: captureVar.value.mutable,
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"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"}