kumi 0.0.25 → 0.0.27

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 (223) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/CLAUDE.md +4 -0
  4. data/README.md +86 -78
  5. data/data/functions/agg/boolean.yaml +6 -2
  6. data/data/functions/agg/numeric.yaml +32 -16
  7. data/data/functions/agg/string.yaml +4 -3
  8. data/data/functions/core/arithmetic.yaml +62 -14
  9. data/data/functions/core/boolean.yaml +12 -6
  10. data/data/functions/core/comparison.yaml +25 -13
  11. data/data/functions/core/constructor.yaml +16 -8
  12. data/data/functions/core/conversion.yaml +32 -0
  13. data/data/functions/core/select.yaml +3 -1
  14. data/data/functions/core/stencil.yaml +14 -5
  15. data/data/functions/core/string.yaml +9 -4
  16. data/data/kernels/javascript/core/coercion.yaml +20 -0
  17. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  18. data/data/kernels/ruby/core/coercion.yaml +20 -0
  19. data/docs/ARCHITECTURE.md +277 -0
  20. data/docs/DEVELOPMENT.md +62 -0
  21. data/docs/FUNCTIONS.md +955 -0
  22. data/docs/SYNTAX.md +8 -0
  23. data/docs/UNSAT_DETECTION.md +83 -0
  24. data/docs/VSCODE_EXTENSION.md +114 -0
  25. data/docs/functions-reference.json +1821 -0
  26. data/golden/array_element/expected/nast.txt +1 -1
  27. data/golden/array_element/expected/schema_ruby.rb +1 -1
  28. data/golden/array_index/expected/nast.txt +7 -7
  29. data/golden/array_index/expected/schema_ruby.rb +1 -1
  30. data/golden/array_operations/expected/nast.txt +2 -2
  31. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  32. data/golden/array_operations/expected/snast.txt +3 -3
  33. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  34. data/golden/cascade_logic/expected/snast.txt +2 -2
  35. data/golden/chained_fusion/expected/nast.txt +2 -2
  36. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  37. data/golden/decimal_explicit/expected/ast.txt +38 -0
  38. data/golden/decimal_explicit/expected/input_plan.txt +3 -0
  39. data/golden/decimal_explicit/expected/lir_00_unoptimized.txt +30 -0
  40. data/golden/decimal_explicit/expected/lir_01_hoist_scalar_references.txt +30 -0
  41. data/golden/decimal_explicit/expected/lir_02_inlined.txt +44 -0
  42. data/golden/decimal_explicit/expected/lir_03_cse.txt +40 -0
  43. data/golden/decimal_explicit/expected/lir_04_1_loop_fusion.txt +40 -0
  44. data/golden/decimal_explicit/expected/lir_04_loop_invcm.txt +40 -0
  45. data/golden/decimal_explicit/expected/lir_06_const_prop.txt +40 -0
  46. data/golden/decimal_explicit/expected/nast.txt +30 -0
  47. data/golden/decimal_explicit/expected/schema_javascript.mjs +31 -0
  48. data/golden/decimal_explicit/expected/schema_ruby.rb +57 -0
  49. data/golden/decimal_explicit/expected/snast.txt +30 -0
  50. data/golden/decimal_explicit/expected.json +1 -0
  51. data/golden/decimal_explicit/input.json +5 -0
  52. data/golden/decimal_explicit/schema.kumi +14 -0
  53. data/golden/element_arrays/expected/nast.txt +2 -2
  54. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  55. data/golden/element_arrays/expected/snast.txt +1 -1
  56. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  57. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  58. data/golden/function_overload/expected/ast.txt +29 -0
  59. data/golden/function_overload/expected/input_plan.txt +4 -0
  60. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  61. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  62. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  63. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  64. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  65. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  66. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  67. data/golden/function_overload/expected/nast.txt +22 -0
  68. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  69. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  70. data/golden/function_overload/expected/snast.txt +22 -0
  71. data/golden/function_overload/input.json +8 -0
  72. data/golden/function_overload/schema.kumi +19 -0
  73. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  74. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  75. data/golden/game_of_life/expected/lir_02_inlined.txt +16 -16
  76. data/golden/game_of_life/expected/lir_03_cse.txt +20 -16
  77. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +20 -16
  78. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +20 -16
  79. data/golden/game_of_life/expected/lir_06_const_prop.txt +20 -16
  80. data/golden/game_of_life/expected/nast.txt +4 -4
  81. data/golden/game_of_life/expected/schema_javascript.mjs +4 -2
  82. data/golden/game_of_life/expected/schema_ruby.rb +5 -3
  83. data/golden/game_of_life/expected/snast.txt +10 -10
  84. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  85. data/golden/hash_value/expected/nast.txt +1 -1
  86. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  87. data/golden/hash_value/expected/snast.txt +1 -1
  88. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  89. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  90. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  91. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  92. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  93. data/golden/input_reference/expected/nast.txt +2 -2
  94. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  95. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  96. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  97. data/golden/let_inline/expected/nast.txt +4 -4
  98. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  99. data/golden/loop_fusion/expected/nast.txt +1 -1
  100. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  101. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  102. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  103. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  104. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  105. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  106. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  107. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  108. data/golden/nested_hash/expected/nast.txt +1 -1
  109. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  110. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  111. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  112. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  113. data/golden/roll/expected/schema_ruby.rb +1 -1
  114. data/golden/shift/expected/schema_ruby.rb +1 -1
  115. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  116. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  117. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  118. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  119. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  120. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  121. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  122. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  123. data/golden/simple_math/expected/nast.txt +5 -5
  124. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  125. data/golden/simple_math/expected/snast.txt +2 -2
  126. data/golden/streaming_basics/expected/nast.txt +8 -8
  127. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  128. data/golden/streaming_basics/expected/snast.txt +1 -1
  129. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  130. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  131. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  132. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  133. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  134. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  135. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  136. data/golden/tuples/expected/nast.txt +4 -4
  137. data/golden/tuples/expected/schema_ruby.rb +1 -1
  138. data/golden/tuples/expected/snast.txt +6 -6
  139. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
  142. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
  143. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
  144. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
  145. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
  146. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  147. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  148. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  149. data/golden/us_tax_2024/expected/ast.txt +63 -670
  150. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  151. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  152. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  153. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  154. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  155. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  156. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2460
  157. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2460
  158. data/golden/us_tax_2024/expected/nast.txt +123 -826
  159. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  160. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  161. data/golden/us_tax_2024/expected/snast.txt +155 -858
  162. data/golden/us_tax_2024/expected.json +120 -1
  163. data/golden/us_tax_2024/input.json +18 -9
  164. data/golden/us_tax_2024/schema.kumi +48 -178
  165. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  166. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  167. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  168. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  169. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  170. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  171. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  172. data/golden/with_constants/expected/nast.txt +2 -2
  173. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  174. data/golden/with_constants/expected/snast.txt +2 -2
  175. data/lib/kumi/analyzer.rb +12 -12
  176. data/lib/kumi/configuration.rb +6 -0
  177. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  178. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  179. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  180. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  181. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  182. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  183. data/lib/kumi/core/error_reporter.rb +36 -1
  184. data/lib/kumi/core/errors.rb +33 -1
  185. data/lib/kumi/core/functions/function_spec.rb +5 -4
  186. data/lib/kumi/core/functions/loader.rb +17 -1
  187. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  188. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  189. data/lib/kumi/core/functions/type_rules.rb +155 -35
  190. data/lib/kumi/core/input/type_matcher.rb +8 -1
  191. data/lib/kumi/core/ruby_parser/input_builder.rb +2 -2
  192. data/lib/kumi/core/types/inference.rb +29 -22
  193. data/lib/kumi/core/types/normalizer.rb +30 -45
  194. data/lib/kumi/core/types/validator.rb +17 -28
  195. data/lib/kumi/core/types/value_objects.rb +116 -0
  196. data/lib/kumi/core/types.rb +45 -37
  197. data/lib/kumi/dev/golden/reporter.rb +9 -0
  198. data/lib/kumi/dev/golden/result.rb +3 -1
  199. data/lib/kumi/dev/golden/runtime_test.rb +25 -0
  200. data/lib/kumi/dev/golden/suite.rb +4 -4
  201. data/lib/kumi/dev/golden/value_normalizer.rb +80 -0
  202. data/lib/kumi/dev/golden.rb +21 -12
  203. data/lib/kumi/doc_generator/formatters/json.rb +39 -0
  204. data/lib/kumi/doc_generator/formatters/markdown.rb +175 -0
  205. data/lib/kumi/doc_generator/loader.rb +37 -0
  206. data/lib/kumi/doc_generator/merger.rb +54 -0
  207. data/lib/kumi/doc_generator.rb +4 -0
  208. data/lib/kumi/registry_v2/loader.rb +90 -0
  209. data/lib/kumi/registry_v2.rb +18 -1
  210. data/lib/kumi/version.rb +1 -1
  211. data/vscode-extension/.gitignore +4 -0
  212. data/vscode-extension/README.md +59 -0
  213. data/vscode-extension/TESTING.md +151 -0
  214. data/vscode-extension/package.json +51 -0
  215. data/vscode-extension/src/extension.ts +295 -0
  216. data/vscode-extension/tsconfig.json +15 -0
  217. metadata +57 -7
  218. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  219. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  220. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  221. data/lib/kumi/core/types/builder.rb +0 -23
  222. data/lib/kumi/core/types/compatibility.rb +0 -96
  223. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -4,7 +4,7 @@
4
4
  %t2 = const 2 :: integer
5
5
  %t3 = const 3 :: integer
6
6
  %t4 = load_input "x" :: integer
7
- %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer>
7
+ %t5 = make_tuple(%t1, %t2, %t3, %t4) :: tuple<integer, integer, integer, integer>
8
8
  yield %t5
9
9
  )
10
10
  (Declaration max_1
@@ -12,7 +12,7 @@
12
12
  %t25 = const 2 :: integer
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
- %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
15
+ %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer, integer, integer, integer>
16
16
  %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
@@ -22,7 +22,7 @@
22
22
  %t10 = const 3 :: integer
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
25
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
26
26
  %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
@@ -31,7 +31,7 @@
31
31
  %t30 = const 2 :: integer
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
- %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
34
+ %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer, integer, integer, integer>
35
35
  %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
@@ -41,7 +41,7 @@
41
41
  %t19 = const 3 :: integer
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
44
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
45
45
  %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
@@ -8,12 +8,12 @@
8
8
  )
9
9
  )
10
10
  (VALUE max_1
11
- (Call :"agg.max"
11
+ (Call :max
12
12
  (Ref tuple)
13
13
  )
14
14
  )
15
15
  (VALUE max_2
16
- (Call :"agg.max"
16
+ (Call :max
17
17
  (Tuple
18
18
  (Const 1)
19
19
  (Const 2)
@@ -24,12 +24,12 @@
24
24
  )
25
25
  )
26
26
  (VALUE min_1
27
- (Call :"agg.min"
27
+ (Call :min
28
28
  (Ref tuple)
29
29
  )
30
30
  )
31
31
  (VALUE min_2
32
- (Call :"agg.min"
32
+ (Call :min
33
33
  (Tuple
34
34
  (Const 1)
35
35
  (Const 2)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_ea94769e386dc74203e07fe5a857c0465ed724f1d4e8aa6db6aa39e801a8fcd9
2
+ module Kumi::Compiled::KUMI_b939a357fe30dacac4c3f90205c870e934bd818e640e50a63e39d2c387541a60
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -5,11 +5,11 @@
5
5
  (Const 2) :: [] -> integer
6
6
  (Const 3) :: [] -> integer
7
7
  (InputRef x key_chain=[]) :: [] -> integer
8
- ) :: [] -> tuple<integer>
9
- ) :: [] -> tuple<integer>
8
+ ) :: [] -> tuple<integer, integer, integer, integer>
9
+ ) :: [] -> tuple<integer, integer, integer, integer>
10
10
  (VALUE max_1
11
11
  (Fold :agg.max
12
- (Ref tuple) :: [] -> tuple<integer>
12
+ (Ref tuple) :: [] -> tuple<integer, integer, integer, integer>
13
13
  ) :: [] -> integer
14
14
  ) :: [] -> integer
15
15
  (VALUE max_2
@@ -20,12 +20,12 @@
20
20
  (Const 3) :: [] -> integer
21
21
  (InputRef x key_chain=[]) :: [] -> integer
22
22
  (Const 1000) :: [] -> integer
23
- ) :: [] -> tuple<integer>
23
+ ) :: [] -> tuple<integer, integer, integer, integer, integer>
24
24
  ) :: [] -> integer
25
25
  ) :: [] -> integer
26
26
  (VALUE min_1
27
27
  (Fold :agg.min
28
- (Ref tuple) :: [] -> tuple<integer>
28
+ (Ref tuple) :: [] -> tuple<integer, integer, integer, integer>
29
29
  ) :: [] -> integer
30
30
  ) :: [] -> integer
31
31
  (VALUE min_2
@@ -36,7 +36,7 @@
36
36
  (Const 3) :: [] -> integer
37
37
  (InputRef x key_chain=[]) :: [] -> integer
38
38
  (Const -100) :: [] -> integer
39
- ) :: [] -> tuple<integer>
39
+ ) :: [] -> tuple<integer, integer, integer, integer, integer>
40
40
  ) :: [] -> integer
41
41
  ) :: [] -> integer
42
42
  )
@@ -23,7 +23,7 @@
23
23
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
- %t19 = make_tuple(%t17, %t18) :: tuple<integer>
26
+ %t19 = make_tuple(%t17, %t18) :: tuple<integer, integer>
27
27
  %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
@@ -23,7 +23,7 @@
23
23
  loop points id=L3 in %t14 as el=%points_el_15, idx=%points_i_16
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
- %t19 = make_tuple(%t17, %t18) :: tuple<integer>
26
+ %t19 = make_tuple(%t17, %t18) :: tuple<integer, integer>
27
27
  %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
@@ -33,7 +33,7 @@
33
33
  %t34 = load_field points_el_15["y"] :: integer
34
34
  %t35 = select %t39, %t33, %t34 :: integer
35
35
  %t18 = load_field points_el_15["x"] :: integer
36
- %t19 = make_tuple(%t35, %t18) :: tuple<integer>
36
+ %t19 = make_tuple(%t35, %t18) :: tuple<integer, integer>
37
37
  %t20 = fold %t19 fn="agg.max" :: integer
38
38
  yield %t20
39
39
  end_loop
@@ -52,7 +52,7 @@
52
52
  %t48 = load_field points_el_23["y"] :: integer
53
53
  %t49 = select %t53, %t47, %t48 :: integer
54
54
  %t42 = load_field points_el_23["x"] :: integer
55
- %t43 = make_tuple(%t49, %t42) :: tuple<integer>
55
+ %t43 = make_tuple(%t49, %t42) :: tuple<integer, integer>
56
56
  %t44 = fold %t43 fn="agg.max" :: integer
57
57
  %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
58
58
  end_loop
@@ -27,7 +27,7 @@
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
28
  %t39 = call core.gt(%t37, %t38) :: boolean
29
29
  %t35 = select %t39, %t37, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t37) :: tuple<integer>
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -41,7 +41,7 @@
41
41
  %t48 = load_field points_el_23["y"] :: integer
42
42
  %t53 = call core.gt(%t51, %t52) :: boolean
43
43
  %t49 = select %t53, %t51, %t48 :: integer
44
- %t43 = make_tuple(%t49, %t51) :: tuple<integer>
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
45
  %t44 = fold %t43 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
@@ -27,7 +27,7 @@
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
28
  %t39 = call core.gt(%t37, %t38) :: boolean
29
29
  %t35 = select %t39, %t37, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t37) :: tuple<integer>
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -41,7 +41,7 @@
41
41
  %t48 = load_field points_el_23["y"] :: integer
42
42
  %t53 = call core.gt(%t51, %t52) :: boolean
43
43
  %t49 = select %t53, %t51, %t48 :: integer
44
- %t43 = make_tuple(%t49, %t51) :: tuple<integer>
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
45
  %t44 = fold %t43 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
@@ -27,7 +27,7 @@
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
28
  %t39 = call core.gt(%t37, %t38) :: boolean
29
29
  %t35 = select %t39, %t37, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t37) :: tuple<integer>
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -41,7 +41,7 @@
41
41
  %t48 = load_field points_el_23["y"] :: integer
42
42
  %t53 = call core.gt(%t51, %t52) :: boolean
43
43
  %t49 = select %t53, %t51, %t48 :: integer
44
- %t43 = make_tuple(%t49, %t51) :: tuple<integer>
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
45
  %t44 = fold %t43 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
@@ -27,7 +27,7 @@
27
27
  %t34 = load_field points_el_15["y"] :: integer
28
28
  %t39 = call core.gt(%t37, %t38) :: boolean
29
29
  %t35 = select %t39, %t37, %t34 :: integer
30
- %t19 = make_tuple(%t35, %t37) :: tuple<integer>
30
+ %t19 = make_tuple(%t35, %t37) :: tuple<integer, integer>
31
31
  %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
@@ -41,7 +41,7 @@
41
41
  %t48 = load_field points_el_23["y"] :: integer
42
42
  %t53 = call core.gt(%t51, %t52) :: boolean
43
43
  %t49 = select %t53, %t51, %t48 :: integer
44
- %t43 = make_tuple(%t49, %t51) :: tuple<integer>
44
+ %t43 = make_tuple(%t49, %t51) :: tuple<integer, integer>
45
45
  %t44 = fold %t43 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t44) :: integer
47
47
  end_loop
@@ -6,14 +6,14 @@
6
6
  )
7
7
  )
8
8
  (VALUE selected_value
9
- (Call :__select__
9
+ (Call :select
10
10
  (Ref x_is_large)
11
11
  (InputRef [:points, :point, :x])
12
12
  (InputRef [:points, :point, :y])
13
13
  )
14
14
  )
15
15
  (VALUE final_value_per_point
16
- (Call :"agg.max"
16
+ (Call :max
17
17
  (Tuple
18
18
  (Ref selected_value)
19
19
  (InputRef [:points, :point, :x])
@@ -21,7 +21,7 @@
21
21
  )
22
22
  )
23
23
  (VALUE grand_total
24
- (Call :"agg.sum"
24
+ (Call :sum
25
25
  (Ref final_value_per_point)
26
26
  )
27
27
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_1c841aefa943ccbd3b89bd507f1dd9fcea9c3504ba5f4692de88de403a644386
2
+ module Kumi::Compiled::KUMI_b61e29419a3a15e4309079460b8a9fe1cb0cf4849c3f1d4264073c890a575c24
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  (SNAST
2
- (TRAIT x_is_large
2
+ (VALUE x_is_large
3
3
  (Call :core.gt
4
4
  (InputRef points.point.x key_chain=[]) :: [points] -> integer
5
5
  (Const 100) :: [] -> integer
@@ -17,7 +17,7 @@
17
17
  (Tuple
18
18
  (Ref selected_value) :: [points] -> integer
19
19
  (InputRef points.point.x key_chain=[]) :: [points] -> integer
20
- ) :: [points] -> tuple<integer>
20
+ ) :: [points] -> tuple<integer, integer>
21
21
  ) :: [points] -> integer
22
22
  ) :: [points] -> integer
23
23
  (VALUE grand_total