kumi 0.0.25 → 0.0.26

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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +70 -71
  4. data/data/functions/agg/boolean.yaml +6 -2
  5. data/data/functions/agg/numeric.yaml +32 -16
  6. data/data/functions/agg/string.yaml +4 -3
  7. data/data/functions/core/arithmetic.yaml +62 -14
  8. data/data/functions/core/boolean.yaml +12 -6
  9. data/data/functions/core/comparison.yaml +25 -13
  10. data/data/functions/core/constructor.yaml +16 -8
  11. data/data/functions/core/select.yaml +3 -1
  12. data/data/functions/core/stencil.yaml +14 -5
  13. data/data/functions/core/string.yaml +9 -4
  14. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  15. data/docs/UNSAT_DETECTION.md +83 -0
  16. data/golden/array_element/expected/nast.txt +1 -1
  17. data/golden/array_element/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/nast.txt +7 -7
  19. data/golden/array_index/expected/schema_ruby.rb +1 -1
  20. data/golden/array_operations/expected/nast.txt +2 -2
  21. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  22. data/golden/array_operations/expected/snast.txt +3 -3
  23. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  24. data/golden/cascade_logic/expected/snast.txt +2 -2
  25. data/golden/chained_fusion/expected/nast.txt +2 -2
  26. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  27. data/golden/element_arrays/expected/nast.txt +2 -2
  28. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  29. data/golden/element_arrays/expected/snast.txt +1 -1
  30. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  31. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  32. data/golden/function_overload/expected/ast.txt +29 -0
  33. data/golden/function_overload/expected/input_plan.txt +4 -0
  34. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  35. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  36. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  37. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  38. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  39. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  40. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  41. data/golden/function_overload/expected/nast.txt +22 -0
  42. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  43. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  44. data/golden/function_overload/expected/snast.txt +22 -0
  45. data/golden/function_overload/input.json +8 -0
  46. data/golden/function_overload/schema.kumi +19 -0
  47. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  48. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  49. data/golden/game_of_life/expected/lir_02_inlined.txt +16 -16
  50. data/golden/game_of_life/expected/lir_03_cse.txt +20 -16
  51. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +20 -16
  52. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +20 -16
  53. data/golden/game_of_life/expected/lir_06_const_prop.txt +20 -16
  54. data/golden/game_of_life/expected/nast.txt +4 -4
  55. data/golden/game_of_life/expected/schema_javascript.mjs +4 -2
  56. data/golden/game_of_life/expected/schema_ruby.rb +5 -3
  57. data/golden/game_of_life/expected/snast.txt +10 -10
  58. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  59. data/golden/hash_value/expected/nast.txt +1 -1
  60. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  61. data/golden/hash_value/expected/snast.txt +1 -1
  62. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  63. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  64. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  65. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  66. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  67. data/golden/input_reference/expected/nast.txt +2 -2
  68. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  69. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  70. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  71. data/golden/let_inline/expected/nast.txt +4 -4
  72. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  73. data/golden/loop_fusion/expected/nast.txt +1 -1
  74. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  75. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  76. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  77. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  78. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  79. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  80. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  81. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  82. data/golden/nested_hash/expected/nast.txt +1 -1
  83. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  84. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  85. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  86. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  87. data/golden/roll/expected/schema_ruby.rb +1 -1
  88. data/golden/shift/expected/schema_ruby.rb +1 -1
  89. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  90. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  91. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  92. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  93. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  94. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  95. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  96. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  97. data/golden/simple_math/expected/nast.txt +5 -5
  98. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  99. data/golden/simple_math/expected/snast.txt +2 -2
  100. data/golden/streaming_basics/expected/nast.txt +8 -8
  101. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  102. data/golden/streaming_basics/expected/snast.txt +1 -1
  103. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  104. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  105. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  106. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  107. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  108. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  109. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  110. data/golden/tuples/expected/nast.txt +4 -4
  111. data/golden/tuples/expected/schema_ruby.rb +1 -1
  112. data/golden/tuples/expected/snast.txt +6 -6
  113. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  114. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  115. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
  116. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
  117. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
  118. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
  119. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
  120. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  121. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  122. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  123. data/golden/us_tax_2024/expected/ast.txt +63 -670
  124. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  125. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  126. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  127. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  128. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  129. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  130. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2460
  131. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2460
  132. data/golden/us_tax_2024/expected/nast.txt +123 -826
  133. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  134. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  135. data/golden/us_tax_2024/expected/snast.txt +155 -858
  136. data/golden/us_tax_2024/expected.json +120 -1
  137. data/golden/us_tax_2024/input.json +18 -9
  138. data/golden/us_tax_2024/schema.kumi +48 -178
  139. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  142. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  143. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  144. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  145. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  146. data/golden/with_constants/expected/nast.txt +2 -2
  147. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  148. data/golden/with_constants/expected/snast.txt +2 -2
  149. data/lib/kumi/analyzer.rb +12 -12
  150. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  151. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  152. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  153. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  154. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  155. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  156. data/lib/kumi/core/error_reporter.rb +36 -1
  157. data/lib/kumi/core/errors.rb +33 -1
  158. data/lib/kumi/core/functions/function_spec.rb +5 -4
  159. data/lib/kumi/core/functions/loader.rb +17 -1
  160. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  161. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  162. data/lib/kumi/core/functions/type_rules.rb +155 -35
  163. data/lib/kumi/core/types/inference.rb +29 -22
  164. data/lib/kumi/core/types/normalizer.rb +29 -45
  165. data/lib/kumi/core/types/validator.rb +16 -27
  166. data/lib/kumi/core/types/value_objects.rb +116 -0
  167. data/lib/kumi/core/types.rb +45 -37
  168. data/lib/kumi/registry_v2/loader.rb +90 -0
  169. data/lib/kumi/registry_v2.rb +18 -1
  170. data/lib/kumi/version.rb +1 -1
  171. metadata +21 -7
  172. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  173. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  174. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  175. data/lib/kumi/core/types/builder.rb +0 -23
  176. data/lib/kumi/core/types/compatibility.rb +0 -96
  177. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -16,7 +16,7 @@
16
16
  )
17
17
  )
18
18
  (VALUE john_user
19
- (Call :__select__
19
+ (Call :select
20
20
  (Ref is_john)
21
21
  (Ref users)
22
22
  (Const "NOT_JOHN")
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_fd932eb31ef5d8b70116040cd0486f4121722e78554059fd6a300f28ee18b30d
2
+ module Kumi::Compiled::KUMI_0f694be63aa892525e8879fe071b4a4a2ad55567b0480c5fca002f748a54818d
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -9,7 +9,7 @@
9
9
  ) :: [users] -> pair
10
10
  ) :: [users] -> hash
11
11
  ) :: [users] -> hash
12
- (TRAIT is_john
12
+ (VALUE is_john
13
13
  (Call :core.eq
14
14
  (InputRef users.user.name key_chain=[]) :: [users] -> string
15
15
  (Const "John") :: [] -> string
@@ -26,7 +26,7 @@
26
26
  (Ref top_team)
27
27
  )
28
28
  )
29
- (Call :"core.mul"
29
+ (Call :multiply
30
30
  (InputRef [:regions, :region, :offices, :office, :teams, :team, :employees, :employee, :salary])
31
31
  (Const 0.3)
32
32
  )
@@ -35,11 +35,11 @@
35
35
  (Ref high_performer)
36
36
  (Ref top_team)
37
37
  )
38
- (Call :"core.mul"
38
+ (Call :multiply
39
39
  (InputRef [:regions, :region, :offices, :office, :teams, :team, :employees, :employee, :salary])
40
40
  (Const 0.2)
41
41
  )
42
- (Call :"core.mul"
42
+ (Call :multiply
43
43
  (InputRef [:regions, :region, :offices, :office, :teams, :team, :employees, :employee, :salary])
44
44
  (Const 0.05)
45
45
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_296703f629e169ee9916ee2652186a615448b14fbf3dd810f07f800ec23e2706
2
+ module Kumi::Compiled::KUMI_1a4593b5476e9c7cc85dedf77f0d089845a959e9f9031f5838efaf26e3bc5486
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,17 +1,17 @@
1
1
  (SNAST
2
- (TRAIT high_performer
2
+ (VALUE high_performer
3
3
  (Call :core.gte
4
4
  (InputRef regions.region.offices.office.teams.team.employees.employee.rating key_chain=[]) :: [regions, offices, teams, employees] -> float
5
5
  (Const 4.5) :: [] -> float
6
6
  ) :: [regions, offices, teams, employees] -> boolean
7
7
  ) :: [regions, offices, teams, employees] -> boolean
8
- (TRAIT senior_level
8
+ (VALUE senior_level
9
9
  (Call :core.eq
10
10
  (InputRef regions.region.offices.office.teams.team.employees.employee.level key_chain=[]) :: [regions, offices, teams, employees] -> string
11
11
  (Const "senior") :: [] -> string
12
12
  ) :: [regions, offices, teams, employees] -> boolean
13
13
  ) :: [regions, offices, teams, employees] -> boolean
14
- (TRAIT top_team
14
+ (VALUE top_team
15
15
  (Call :core.gte
16
16
  (InputRef regions.region.offices.office.teams.team.performance_score key_chain=[]) :: [regions, offices, teams] -> float
17
17
  (Const 0.9) :: [] -> float
@@ -1,16 +1,16 @@
1
1
  (NAST
2
2
  (VALUE sum_x
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:xs, :el, :v])
5
5
  )
6
6
  )
7
7
  (VALUE sum_y
8
- (Call :"agg.sum"
8
+ (Call :sum
9
9
  (InputRef [:ys, :el, :v])
10
10
  )
11
11
  )
12
12
  (VALUE tail
13
- (Call :"core.add"
13
+ (Call :add
14
14
  (Const 7.0)
15
15
  (Const 5.0)
16
16
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_db7971b324407d0f809565d983315fed4dc8a3f06f0530f13c577a5491ec479e
2
+ module Kumi::Compiled::KUMI_148f63c5601013e142e410da768bff3a0570a673ed771762348612e71bedced6
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -9,12 +9,12 @@
9
9
  (InputRef [:config, :servers, :server, :hostname])
10
10
  )
11
11
  (VALUE server_count
12
- (Call :"core.array_size"
12
+ (Call :array_size
13
13
  (InputRef [:config, :servers])
14
14
  )
15
15
  )
16
16
  (VALUE total_ports
17
- (Call :"agg.sum"
17
+ (Call :sum
18
18
  (InputRef [:config, :servers, :server, :port])
19
19
  )
20
20
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_bf8dc5780a3c569c78320ccfb3817762c3aca5afe7bdec14afc2720b6ca6940e
2
+ module Kumi::Compiled::KUMI_fed43480c1728be2102a0f4594e980fcf8558d62874f4f96c32d502b00ea16ae
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,11 +1,11 @@
1
1
  (NAST
2
2
  (VALUE total_payroll
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:departments, :dept, :employees, :emp, :salary])
5
5
  )
6
6
  )
7
7
  (VALUE payroll_tax
8
- (Call :"core.mul"
8
+ (Call :multiply
9
9
  (Ref total_payroll)
10
10
  (Const 0.15)
11
11
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_002f34f6230fcd86b09e6081a7690404057fdb4e88a69309791cc98faf743c5b
2
+ module Kumi::Compiled::KUMI_87ffe0a010684a3e05fc7ee0390ec80c776ceea5e0f6e32d7438702ccd542084
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,24 +1,24 @@
1
1
  (NAST
2
2
  (VALUE x_sq
3
- (Call :"core.mul"
3
+ (Call :multiply
4
4
  (InputRef [:x])
5
5
  (InputRef [:x])
6
6
  )
7
7
  )
8
8
  (VALUE y_sq
9
- (Call :"core.mul"
9
+ (Call :multiply
10
10
  (InputRef [:y])
11
11
  (InputRef [:y])
12
12
  )
13
13
  )
14
14
  (VALUE distance_sq
15
- (Call :"core.add"
15
+ (Call :add
16
16
  (Ref x_sq)
17
17
  (Ref y_sq)
18
18
  )
19
19
  )
20
20
  (VALUE distance
21
- (Call :"core.pow"
21
+ (Call :power
22
22
  (Ref distance_sq)
23
23
  (Const 0.5)
24
24
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_4c8723995ed228ad59aa4387c47f793b36b9ab146166d75c9288837c7d368c1b
2
+ module Kumi::Compiled::KUMI_85aba5f3d4113870359ea38cf7c574c50d05d66e700b059e3ca9c29e9d07d912
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,6 +1,6 @@
1
1
  (NAST
2
2
  (VALUE total_payroll
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:departments, :dept, :employees, :emp, :salary])
5
5
  )
6
6
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_f73439f44efea38d0e3ff71d0a88169a9b4e6158dd1d4fc358b80ff61c3dbbac
2
+ module Kumi::Compiled::KUMI_98bd6dd93ae6e80222b0a6d353bac6cc887e2b20924bf5e5cfc392e9aa0b705a
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,12 +1,12 @@
1
1
  (NAST
2
2
  (VALUE dept_total
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:depts, :dept, :teams, :team, :headcount])
5
5
  )
6
6
  )
7
7
  (VALUE company_total
8
- (Call :"agg.sum"
9
- (Call :"agg.sum"
8
+ (Call :sum
9
+ (Call :sum
10
10
  (InputRef [:depts, :dept, :teams, :team, :headcount])
11
11
  )
12
12
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_e5612f974eced7c5db52fb03f8ecfd82174c52d530c1f073b180f04d7d4b5886
2
+ module Kumi::Compiled::KUMI_4d50da3cac1cc57f195f70b5a33c49b41a4b90846c1536c3d767df15b5c72b7a
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -11,7 +11,7 @@
11
11
  ) :: [depts] -> integer
12
12
  ) :: [] -> integer
13
13
  ) :: [] -> integer
14
- (TRAIT big_team
14
+ (VALUE big_team
15
15
  (Call :core.gt
16
16
  (InputRef depts.dept.teams.team.headcount key_chain=[]) :: [depts, teams] -> integer
17
17
  (Const 10) :: [] -> integer
@@ -1,11 +1,11 @@
1
1
  (NAST
2
2
  (VALUE sum_numbers
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:numbers, :num, :value])
5
5
  )
6
6
  )
7
7
  (VALUE matrix_sums
8
- (Call :"agg.sum"
8
+ (Call :sum
9
9
  (InputRef [:matrix, :m, :row, :r, :cell])
10
10
  )
11
11
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_bbe68fd87d3413dc8dc47548ccbe52c6bf4a9912417fdfc1a4c2fd87cd576fd9
2
+ module Kumi::Compiled::KUMI_1563f579d65b5974c509af83b7aa99b8e340adf9ec2406de43d1f6278a76a50e
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,25 +1,25 @@
1
1
  (NAST
2
2
  (VALUE global_offset_plus
3
- (Call :"core.add"
3
+ (Call :add
4
4
  (InputRef [:global_offset])
5
5
  (Const 1.0)
6
6
  )
7
7
  )
8
8
  (VALUE batch_bias
9
- (Call :"core.add"
9
+ (Call :add
10
10
  (InputRef [:batch, :b, :mean])
11
11
  (Ref global_offset_plus)
12
12
  )
13
13
  )
14
14
  (VALUE row_scale2
15
- (Call :"core.mul"
15
+ (Call :multiply
16
16
  (InputRef [:batch, :b, :row, :r, :scale])
17
17
  (Const 2.0)
18
18
  )
19
19
  )
20
20
  (VALUE elem_affine
21
- (Call :"core.add"
22
- (Call :"core.mul"
21
+ (Call :add
22
+ (Call :multiply
23
23
  (InputRef [:batch, :b, :row, :r, :col, :c, :val])
24
24
  (Ref row_scale2)
25
25
  )
@@ -27,12 +27,12 @@
27
27
  )
28
28
  )
29
29
  (VALUE row_sum_affine
30
- (Call :"agg.sum"
30
+ (Call :sum
31
31
  (Ref elem_affine)
32
32
  )
33
33
  )
34
34
  (VALUE batch_total_affine
35
- (Call :"agg.sum"
35
+ (Call :sum
36
36
  (Ref row_sum_affine)
37
37
  )
38
38
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_7493f45c6a56b6958f928d8337e155ecf85850b56acef5a72dee8f1f697d1aac
2
+ module Kumi::Compiled::KUMI_c68c448fb7a73dbfec6780905fc3ddcdea1f22e8eacda707f2f8432d4ad79ae0
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,6 +1,6 @@
1
1
  (NAST
2
2
  (VALUE double
3
- (Call :"core.mul"
3
+ (Call :multiply
4
4
  (InputRef [:x, :y, :z])
5
5
  (Const 2)
6
6
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_06206c81b13d30ba2dfe33471a73d550acd8ceaaed39c3bc060cd965ef719e19
2
+ module Kumi::Compiled::KUMI_95f5c5f162bc538a1971324256c0923c4c25ac329f47b44140ea989ce767e3f2
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,16 +1,16 @@
1
1
  (NAST
2
2
  (VALUE dept_headcount
3
- (Call :"agg.sum"
3
+ (Call :sum
4
4
  (InputRef [:departments, :dept, :teams, :team, :headcount])
5
5
  )
6
6
  )
7
7
  (VALUE teams_per_dept
8
- (Call :"agg.count"
8
+ (Call :count
9
9
  (InputRef [:departments, :dept, :teams, :team, :team_name])
10
10
  )
11
11
  )
12
12
  (VALUE avg_headcount_per_dept
13
- (Call :"core.div"
13
+ (Call :divide
14
14
  (Ref dept_headcount)
15
15
  (Ref teams_per_dept)
16
16
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_798dac22208bafc0f2b7f93d43bef5ae4c1d550f52f4c3773c486db02058561a
2
+ module Kumi::Compiled::KUMI_d4065d9b2c1fa95582e236ac4c79f6623745ec731b5961da26df7c2f9e2a9cb6
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -15,7 +15,7 @@
15
15
  (Ref teams_per_dept) :: [departments] -> integer
16
16
  ) :: [departments] -> float
17
17
  ) :: [departments] -> float
18
- (TRAIT is_above_average_team
18
+ (VALUE is_above_average_team
19
19
  (Call :core.gt
20
20
  (InputRef departments.dept.teams.team.headcount key_chain=[]) :: [departments, teams] -> integer
21
21
  (Ref avg_headcount_per_dept) :: [departments] -> float
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_db1001d7afa366cbc106f0cd804e44bfabd8a08bfd109b89c3fd14e89d14266b
2
+ module Kumi::Compiled::KUMI_ee08a4690485a37a0f18de249ead6563ffb9cf9625312459a6000d00cad9f29c
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_79b1226afef716b18baad35a6809f5d0b953aec078c87883fca2ae4c23029fe4
2
+ module Kumi::Compiled::KUMI_c72cd3609d08e6946eb6c74183f400d8c0678040a863711e4b82a63da1b63319
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_e33b43acb8aa4e0f0d667f040c07607dbc78bfc52c9993108d5fcfff1f5fb47a
2
+ module Kumi::Compiled::KUMI_1049f6474f9d41f05da4c2b6445c374c1eab40b0ff3089ecb80195a4550bceb8
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -25,7 +25,7 @@
25
25
  %t14 = load_input "y" :: integer
26
26
  %t15 = const 2 :: integer
27
27
  %t16 = call core.mul(%t14, %t15) :: integer
28
- %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer>
28
+ %t17 = make_tuple(%t10, %t13, %t16) :: tuple<integer, integer, integer>
29
29
  yield %t17
30
30
  )
31
31
  )
@@ -1,18 +1,18 @@
1
1
  (NAST
2
2
  (VALUE sum
3
- (Call :"core.add"
3
+ (Call :add
4
4
  (InputRef [:x])
5
5
  (InputRef [:y])
6
6
  )
7
7
  )
8
8
  (VALUE product
9
- (Call :"core.mul"
9
+ (Call :multiply
10
10
  (InputRef [:x])
11
11
  (InputRef [:y])
12
12
  )
13
13
  )
14
14
  (VALUE difference
15
- (Call :"core.sub"
15
+ (Call :subtract
16
16
  (InputRef [:x])
17
17
  (InputRef [:y])
18
18
  )
@@ -20,11 +20,11 @@
20
20
  (VALUE results_array
21
21
  (Tuple
22
22
  (Const 1)
23
- (Call :"core.add"
23
+ (Call :add
24
24
  (InputRef [:x])
25
25
  (Const 10)
26
26
  )
27
- (Call :"core.mul"
27
+ (Call :multiply
28
28
  (InputRef [:y])
29
29
  (Const 2)
30
30
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_02882cbdd43383967e13d4c1a8f79cc5045859736335a160b1210f35f11b9f0f
2
+ module Kumi::Compiled::KUMI_52c858dd08717cf97edaff33a54004b4af6c064f32453eb33012e14cd18d48c2
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -28,6 +28,6 @@
28
28
  (InputRef y key_chain=[]) :: [] -> integer
29
29
  (Const 2) :: [] -> integer
30
30
  ) :: [] -> integer
31
- ) :: [] -> tuple<integer>
32
- ) :: [] -> tuple<integer>
31
+ ) :: [] -> tuple<integer, integer, integer>
32
+ ) :: [] -> tuple<integer, integer, integer>
33
33
  )
@@ -1,14 +1,14 @@
1
1
  (NAST
2
2
  (VALUE items_subtotal
3
- (Call :"core.mul"
3
+ (Call :multiply
4
4
  (InputRef [:items, :item, :price])
5
5
  (InputRef [:items, :item, :qty])
6
6
  )
7
7
  )
8
8
  (VALUE items_discounted
9
- (Call :"core.mul"
9
+ (Call :multiply
10
10
  (InputRef [:items, :item, :price])
11
- (Call :"core.sub"
11
+ (Call :subtract
12
12
  (Const 1.0)
13
13
  (InputRef [:discount])
14
14
  )
@@ -21,9 +21,9 @@
21
21
  )
22
22
  )
23
23
  (VALUE items_effective
24
- (Call :__select__
24
+ (Call :select
25
25
  (Ref items_is_big)
26
- (Call :"core.mul"
26
+ (Call :multiply
27
27
  (Ref items_subtotal)
28
28
  (Const 0.9)
29
29
  )
@@ -31,17 +31,17 @@
31
31
  )
32
32
  )
33
33
  (VALUE total_qty
34
- (Call :"agg.sum"
34
+ (Call :sum
35
35
  (InputRef [:items, :item, :qty])
36
36
  )
37
37
  )
38
38
  (VALUE cart_total
39
- (Call :"agg.sum"
39
+ (Call :sum
40
40
  (Ref items_subtotal)
41
41
  )
42
42
  )
43
43
  (VALUE cart_total_effective
44
- (Call :"agg.sum"
44
+ (Call :sum
45
45
  (Ref items_effective)
46
46
  )
47
47
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_e64045903bee1b6a265ef34019b7aa91333ec110e041bb47e8350de13c0fa435
2
+ module Kumi::Compiled::KUMI_1d3b2fb0b1b00e7730f48d49c8c33acdea2ee603018ffacfc1349df73a8dd4ee
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -14,7 +14,7 @@
14
14
  ) :: [] -> float
15
15
  ) :: [items] -> float
16
16
  ) :: [items] -> float
17
- (TRAIT items_is_big
17
+ (VALUE items_is_big
18
18
  (Call :core.gt
19
19
  (InputRef items.item.price key_chain=[]) :: [items] -> float
20
20
  (Const 100.0) :: [] -> float
@@ -4,11 +4,11 @@
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
11
- %t6 = load_decl tuple :: tuple<integer>
11
+ %t6 = load_decl tuple :: tuple<integer, integer, integer, integer>
12
12
  %t7 = fold %t6 fn="agg.max" :: integer
13
13
  yield %t7
14
14
  )
@@ -18,12 +18,12 @@
18
18
  %t10 = const 3 :: integer
19
19
  %t11 = load_input "x" :: integer
20
20
  %t12 = const 1000 :: integer
21
- %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
21
+ %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer, integer, integer, integer, integer>
22
22
  %t14 = fold %t13 fn="agg.max" :: integer
23
23
  yield %t14
24
24
  )
25
25
  (Declaration min_1
26
- %t15 = load_decl tuple :: tuple<integer>
26
+ %t15 = load_decl tuple :: tuple<integer, integer, integer, integer>
27
27
  %t16 = fold %t15 fn="agg.min" :: integer
28
28
  yield %t16
29
29
  )
@@ -33,7 +33,7 @@
33
33
  %t19 = const 3 :: integer
34
34
  %t20 = load_input "x" :: integer
35
35
  %t21 = const -100 :: integer
36
- %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
36
+ %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer, integer, integer, integer, integer>
37
37
  %t23 = fold %t22 fn="agg.min" :: integer
38
38
  yield %t23
39
39
  )