kumi 0.0.31 → 0.0.33
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -1
- data/README.md +31 -99
- data/data/kernels/ruby/core/arithmetic.yaml +2 -2
- data/docs/COMPOSED_SCHEMAS.md +137 -0
- data/docs/SCHEMA_IMPORTS.md +275 -0
- data/docs/SYNTAX.md +48 -0
- data/golden/array_element/expected/schema_ruby.rb +2 -27
- data/golden/array_index/expected/nast.txt +6 -6
- data/golden/array_index/expected/schema_ruby.rb +4 -31
- data/golden/array_operations/expected/lir_06_const_prop.txt +4 -8
- data/golden/array_operations/expected/schema_javascript.mjs +4 -8
- data/golden/array_operations/expected/schema_ruby.rb +10 -43
- data/golden/cascade_logic/expected/lir_06_const_prop.txt +7 -14
- data/golden/cascade_logic/expected/schema_javascript.mjs +7 -14
- data/golden/cascade_logic/expected/schema_ruby.rb +11 -45
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +8 -18
- data/golden/chained_fusion/expected/schema_javascript.mjs +8 -18
- data/golden/chained_fusion/expected/schema_ruby.rb +14 -53
- data/golden/decimal_explicit/expected/schema_ruby.rb +4 -31
- data/golden/element_arrays/expected/lir_06_const_prop.txt +5 -11
- data/golden/element_arrays/expected/schema_javascript.mjs +5 -11
- data/golden/element_arrays/expected/schema_ruby.rb +13 -50
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +4 -31
- data/golden/example_xpto/expected/ast.txt +23 -0
- data/golden/example_xpto/expected/input_plan.txt +1 -0
- data/golden/example_xpto/expected/lir_00_unoptimized.txt +16 -0
- data/golden/example_xpto/expected/lir_01_hoist_scalar_references.txt +16 -0
- data/golden/example_xpto/expected/lir_02_inlined.txt +16 -0
- data/golden/example_xpto/expected/lir_03_cse.txt +16 -0
- data/golden/example_xpto/expected/lir_04_1_loop_fusion.txt +16 -0
- data/golden/example_xpto/expected/lir_04_loop_invcm.txt +16 -0
- data/golden/example_xpto/expected/lir_06_const_prop.txt +13 -0
- data/golden/example_xpto/expected/nast.txt +17 -0
- data/golden/example_xpto/expected/schema_javascript.mjs +13 -0
- data/golden/example_xpto/expected/schema_ruby.rb +13 -0
- data/golden/example_xpto/expected/snast.txt +17 -0
- data/golden/example_xpto/expected.json +4 -0
- data/golden/example_xpto/input.json +3 -0
- data/golden/example_xpto/schema.kumi +8 -0
- data/golden/function_overload/expected/schema_ruby.rb +2 -27
- data/golden/game_of_life/expected/lir_06_const_prop.txt +236 -287
- data/golden/game_of_life/expected/schema_javascript.mjs +32 -39
- data/golden/game_of_life/expected/schema_ruby.rb +34 -66
- data/golden/hash_keys/expected/lir_06_const_prop.txt +4 -10
- data/golden/hash_keys/expected/schema_javascript.mjs +6 -12
- data/golden/hash_keys/expected/schema_ruby.rb +8 -39
- data/golden/hash_value/expected/lir_06_const_prop.txt +3 -6
- data/golden/hash_value/expected/schema_javascript.mjs +3 -6
- data/golden/hash_value/expected/schema_ruby.rb +7 -37
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +9 -18
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +9 -18
- data/golden/hierarchical_complex/expected/schema_ruby.rb +14 -51
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +2 -6
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +7 -39
- data/golden/input_reference/expected/schema_ruby.rb +6 -35
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +6 -14
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +6 -14
- data/golden/interleaved_fusion/expected/schema_ruby.rb +11 -47
- data/golden/let_inline/expected/lir_06_const_prop.txt +1 -2
- data/golden/let_inline/expected/schema_javascript.mjs +1 -2
- data/golden/let_inline/expected/schema_ruby.rb +3 -29
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +4 -10
- data/golden/loop_fusion/expected/schema_javascript.mjs +4 -10
- data/golden/loop_fusion/expected/schema_ruby.rb +8 -41
- data/golden/min_reduce_scope/expected/lir_06_const_prop.txt +3 -6
- data/golden/min_reduce_scope/expected/schema_javascript.mjs +3 -6
- data/golden/min_reduce_scope/expected/schema_ruby.rb +8 -39
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +1 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +1 -2
- data/golden/mixed_dimensions/expected/schema_ruby.rb +5 -33
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +9 -18
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +9 -18
- data/golden/multirank_hoisting/expected/schema_ruby.rb +16 -55
- data/golden/nested_hash/expected/lir_06_const_prop.txt +1 -2
- data/golden/nested_hash/expected/schema_javascript.mjs +1 -2
- data/golden/nested_hash/expected/schema_ruby.rb +3 -29
- data/golden/reduction_broadcast/expected/schema_ruby.rb +5 -33
- data/golden/roll/expected/lir_06_const_prop.txt +8 -15
- data/golden/roll/expected/schema_javascript.mjs +8 -15
- data/golden/roll/expected/schema_ruby.rb +13 -48
- data/golden/schema_imports_broadcasting_with_imports/expected/ast.txt +26 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt +5 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt +20 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt +21 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/nast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs +22 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb +24 -0
- data/golden/schema_imports_broadcasting_with_imports/expected/snast.txt +12 -0
- data/golden/schema_imports_broadcasting_with_imports/expected.json +4 -0
- data/golden/schema_imports_broadcasting_with_imports/input.json +7 -0
- data/golden/schema_imports_broadcasting_with_imports/schema.kumi +14 -0
- data/golden/schema_imports_complex_order_calc/expected/ast.txt +82 -0
- data/golden/schema_imports_complex_order_calc/expected/input_plan.txt +16 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt +94 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt +187 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt +131 -0
- data/golden/schema_imports_complex_order_calc/expected/nast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs +147 -0
- data/golden/schema_imports_complex_order_calc/expected/schema_ruby.rb +149 -0
- data/golden/schema_imports_complex_order_calc/expected/snast.txt +56 -0
- data/golden/schema_imports_complex_order_calc/expected.json +12 -0
- data/golden/schema_imports_complex_order_calc/input.json +20 -0
- data/golden/schema_imports_complex_order_calc/schema.kumi +33 -0
- data/golden/schema_imports_composed_order/expected/ast.txt +33 -0
- data/golden/schema_imports_composed_order/expected/input_plan.txt +3 -0
- data/golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt +25 -0
- data/golden/schema_imports_composed_order/expected/lir_02_inlined.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_03_cse.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt +33 -0
- data/golden/schema_imports_composed_order/expected/lir_06_const_prop.txt +33 -0
- data/golden/schema_imports_composed_order/expected/nast.txt +25 -0
- data/golden/schema_imports_composed_order/expected/schema_javascript.mjs +35 -0
- data/golden/schema_imports_composed_order/expected/schema_ruby.rb +33 -0
- data/golden/schema_imports_composed_order/expected/snast.txt +25 -0
- data/golden/schema_imports_composed_order/expected.json +6 -0
- data/golden/schema_imports_composed_order/input.json +5 -0
- data/golden/schema_imports_composed_order/schema.kumi +15 -0
- data/golden/schema_imports_discount_with_tax/expected/ast.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/input_plan.txt +2 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt +37 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt +34 -0
- data/golden/schema_imports_discount_with_tax/expected/nast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs +37 -0
- data/golden/schema_imports_discount_with_tax/expected/schema_ruby.rb +34 -0
- data/golden/schema_imports_discount_with_tax/expected/snast.txt +30 -0
- data/golden/schema_imports_discount_with_tax/expected.json +7 -0
- data/golden/schema_imports_discount_with_tax/input.json +4 -0
- data/golden/schema_imports_discount_with_tax/schema.kumi +15 -0
- data/golden/schema_imports_line_items/expected/ast.txt +35 -0
- data/golden/schema_imports_line_items/expected/input_plan.txt +8 -0
- data/golden/schema_imports_line_items/expected/lir_00_unoptimized.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt +19 -0
- data/golden/schema_imports_line_items/expected/lir_02_inlined.txt +24 -0
- data/golden/schema_imports_line_items/expected/lir_03_cse.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt +22 -0
- data/golden/schema_imports_line_items/expected/lir_06_const_prop.txt +22 -0
- data/golden/schema_imports_line_items/expected/nast.txt +19 -0
- data/golden/schema_imports_line_items/expected/schema_javascript.mjs +23 -0
- data/golden/schema_imports_line_items/expected/schema_ruby.rb +22 -0
- data/golden/schema_imports_line_items/expected/snast.txt +19 -0
- data/golden/schema_imports_line_items/expected.json +5 -0
- data/golden/schema_imports_line_items/input.json +13 -0
- data/golden/schema_imports_line_items/schema.kumi +17 -0
- data/golden/schema_imports_multiple/expected/ast.txt +35 -0
- data/golden/schema_imports_multiple/expected/input_plan.txt +2 -0
- data/golden/schema_imports_multiple/expected/lir_00_unoptimized.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt +29 -0
- data/golden/schema_imports_multiple/expected/lir_02_inlined.txt +41 -0
- data/golden/schema_imports_multiple/expected/lir_03_cse.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt +37 -0
- data/golden/schema_imports_multiple/expected/lir_06_const_prop.txt +37 -0
- data/golden/schema_imports_multiple/expected/nast.txt +28 -0
- data/golden/schema_imports_multiple/expected/schema_javascript.mjs +40 -0
- data/golden/schema_imports_multiple/expected/schema_ruby.rb +37 -0
- data/golden/schema_imports_multiple/expected/snast.txt +28 -0
- data/golden/schema_imports_multiple/expected.json +7 -0
- data/golden/schema_imports_multiple/input.json +4 -0
- data/golden/schema_imports_multiple/schema.kumi +15 -0
- data/golden/schema_imports_nested_expressions/expected/ast.txt +31 -0
- data/golden/schema_imports_nested_expressions/expected/input_plan.txt +3 -0
- data/golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt +22 -0
- data/golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_03_cse.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt +32 -0
- data/golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt +28 -0
- data/golden/schema_imports_nested_expressions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected/schema_javascript.mjs +29 -0
- data/golden/schema_imports_nested_expressions/expected/schema_ruby.rb +28 -0
- data/golden/schema_imports_nested_expressions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_expressions/expected.json +5 -0
- data/golden/schema_imports_nested_expressions/input.json +5 -0
- data/golden/schema_imports_nested_expressions/schema.kumi +13 -0
- data/golden/schema_imports_nested_with_reductions/expected/ast.txt +47 -0
- data/golden/schema_imports_nested_with_reductions/expected/input_plan.txt +12 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt +31 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt +58 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt +51 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/nast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs +49 -0
- data/golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb +52 -0
- data/golden/schema_imports_nested_with_reductions/expected/snast.txt +23 -0
- data/golden/schema_imports_nested_with_reductions/expected.json +6 -0
- data/golden/schema_imports_nested_with_reductions/input.json +16 -0
- data/golden/schema_imports_nested_with_reductions/schema.kumi +23 -0
- data/golden/schema_imports_with_imports/expected/ast.txt +19 -0
- data/golden/schema_imports_with_imports/expected/input_plan.txt +1 -0
- data/golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_02_inlined.txt +14 -0
- data/golden/schema_imports_with_imports/expected/lir_03_cse.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt +13 -0
- data/golden/schema_imports_with_imports/expected/lir_06_const_prop.txt +13 -0
- data/golden/schema_imports_with_imports/expected/nast.txt +13 -0
- data/golden/schema_imports_with_imports/expected/schema_javascript.mjs +13 -0
- data/golden/schema_imports_with_imports/expected/schema_ruby.rb +13 -0
- data/golden/schema_imports_with_imports/expected/snast.txt +13 -0
- data/golden/schema_imports_with_imports/expected.json +4 -0
- data/golden/schema_imports_with_imports/input.json +3 -0
- data/golden/schema_imports_with_imports/schema.kumi +10 -0
- data/golden/shift/expected/lir_06_const_prop.txt +18 -30
- data/golden/shift/expected/schema_javascript.mjs +18 -30
- data/golden/shift/expected/schema_ruby.rb +25 -67
- data/golden/shift_2d/expected/lir_06_const_prop.txt +36 -60
- data/golden/shift_2d/expected/schema_javascript.mjs +36 -60
- data/golden/shift_2d/expected/schema_ruby.rb +49 -109
- data/golden/simple_math/expected/lir_06_const_prop.txt +3 -6
- data/golden/simple_math/expected/schema_javascript.mjs +3 -6
- data/golden/simple_math/expected/schema_ruby.rb +8 -39
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +6 -12
- data/golden/streaming_basics/expected/schema_javascript.mjs +6 -12
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -51
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -22
- data/golden/tuples/expected/schema_javascript.mjs +5 -22
- data/golden/tuples/expected/schema_ruby.rb +11 -57
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +4 -8
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +4 -8
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +9 -41
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +94 -171
- data/golden/us_tax_2024/expected/schema_javascript.mjs +13 -21
- data/golden/us_tax_2024/expected/schema_ruby.rb +15 -48
- data/golden/with_constants/expected/lir_06_const_prop.txt +3 -8
- data/golden/with_constants/expected/schema_javascript.mjs +3 -8
- data/golden/with_constants/expected/schema_ruby.rb +5 -35
- data/lib/kumi/analyzer.rb +8 -7
- data/lib/kumi/configuration.rb +7 -6
- data/lib/kumi/core/analyzer/passes/attach_anchors_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb +1 -1
- data/lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb +20 -0
- data/lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb +16 -7
- data/lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb +3 -35
- data/lib/kumi/core/analyzer/passes/dependency_resolver.rb +6 -0
- data/lib/kumi/core/analyzer/passes/import_analysis_pass.rb +90 -0
- data/lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb +77 -36
- data/lib/kumi/core/analyzer/passes/lir/lower_pass.rb +26 -11
- data/lib/kumi/core/analyzer/passes/name_indexer.rb +20 -2
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +44 -0
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +30 -0
- data/lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb +5 -1
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +15 -0
- data/lib/kumi/core/lir/build.rb +27 -0
- data/lib/kumi/core/lir/peephole.rb +164 -0
- data/lib/kumi/core/nast.rb +16 -0
- data/lib/kumi/core/ruby_parser/build_context.rb +3 -1
- data/lib/kumi/core/ruby_parser/parser.rb +1 -1
- data/lib/kumi/core/ruby_parser/schema_builder.rb +33 -3
- data/lib/kumi/dev/golden/result.rb +9 -3
- data/lib/kumi/dev/golden/runtime_test.rb +16 -1
- data/lib/kumi/dev/golden.rb +18 -20
- data/lib/kumi/dev/golden_schema_modules.rb +8 -0
- data/lib/kumi/dev/golden_schema_wrapper.rb +116 -0
- data/lib/kumi/dev/support/kumi_runner.mjs +18 -0
- data/lib/kumi/schema.rb +44 -2
- data/lib/kumi/support/lir_printer.rb +21 -5
- data/lib/kumi/support/nast_printer.rb +11 -0
- data/lib/kumi/support/s_expression_printer.rb +9 -0
- data/lib/kumi/support/snast_printer.rb +6 -0
- data/lib/kumi/syntax/import_call.rb +11 -0
- data/lib/kumi/syntax/import_declaration.rb +11 -0
- data/lib/kumi/syntax/root.rb +2 -2
- data/lib/kumi/test_shared_schemas/compound.rb +21 -0
- data/lib/kumi/test_shared_schemas/discount.rb +19 -0
- data/lib/kumi/test_shared_schemas/price.rb +19 -0
- data/lib/kumi/test_shared_schemas/subtotal.rb +22 -0
- data/lib/kumi/test_shared_schemas/tax.rb +18 -0
- data/lib/kumi/version.rb +1 -1
- data/lib/kumi.rb +19 -4
- metadata +176 -3
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kumi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.33
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- André Muta
|
|
@@ -83,12 +83,14 @@ files:
|
|
|
83
83
|
- data/kernels/ruby/core/select.yaml
|
|
84
84
|
- data/kernels/ruby/core/string.yaml
|
|
85
85
|
- docs/ARCHITECTURE.md
|
|
86
|
+
- docs/COMPOSED_SCHEMAS.md
|
|
86
87
|
- docs/DEVELOPMENT.md
|
|
87
88
|
- docs/FORM_SCHEMA.md
|
|
88
89
|
- docs/FUNCTIONS.md
|
|
89
90
|
- docs/GOLDEN_QUICK_START.md
|
|
90
91
|
- docs/GOLDEN_TESTS.md
|
|
91
92
|
- docs/OUTPUT_SCHEMA.md
|
|
93
|
+
- docs/SCHEMA_IMPORTS.md
|
|
92
94
|
- docs/SYNTAX.md
|
|
93
95
|
- docs/UNSAT_DETECTION.md
|
|
94
96
|
- docs/VSCODE_EXTENSION.md
|
|
@@ -221,6 +223,22 @@ files:
|
|
|
221
223
|
- golden/empty_and_null_inputs/expected/snast.txt
|
|
222
224
|
- golden/empty_and_null_inputs/input.json
|
|
223
225
|
- golden/empty_and_null_inputs/schema.kumi
|
|
226
|
+
- golden/example_xpto/expected.json
|
|
227
|
+
- golden/example_xpto/expected/ast.txt
|
|
228
|
+
- golden/example_xpto/expected/input_plan.txt
|
|
229
|
+
- golden/example_xpto/expected/lir_00_unoptimized.txt
|
|
230
|
+
- golden/example_xpto/expected/lir_01_hoist_scalar_references.txt
|
|
231
|
+
- golden/example_xpto/expected/lir_02_inlined.txt
|
|
232
|
+
- golden/example_xpto/expected/lir_03_cse.txt
|
|
233
|
+
- golden/example_xpto/expected/lir_04_1_loop_fusion.txt
|
|
234
|
+
- golden/example_xpto/expected/lir_04_loop_invcm.txt
|
|
235
|
+
- golden/example_xpto/expected/lir_06_const_prop.txt
|
|
236
|
+
- golden/example_xpto/expected/nast.txt
|
|
237
|
+
- golden/example_xpto/expected/schema_javascript.mjs
|
|
238
|
+
- golden/example_xpto/expected/schema_ruby.rb
|
|
239
|
+
- golden/example_xpto/expected/snast.txt
|
|
240
|
+
- golden/example_xpto/input.json
|
|
241
|
+
- golden/example_xpto/schema.kumi
|
|
224
242
|
- golden/function_overload/expected/ast.txt
|
|
225
243
|
- golden/function_overload/expected/input_plan.txt
|
|
226
244
|
- golden/function_overload/expected/lir_00_unoptimized.txt
|
|
@@ -476,6 +494,150 @@ files:
|
|
|
476
494
|
- golden/roll/expected/snast.txt
|
|
477
495
|
- golden/roll/input.json
|
|
478
496
|
- golden/roll/schema.kumi
|
|
497
|
+
- golden/schema_imports_broadcasting_with_imports/expected.json
|
|
498
|
+
- golden/schema_imports_broadcasting_with_imports/expected/ast.txt
|
|
499
|
+
- golden/schema_imports_broadcasting_with_imports/expected/input_plan.txt
|
|
500
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_00_unoptimized.txt
|
|
501
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_01_hoist_scalar_references.txt
|
|
502
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_02_inlined.txt
|
|
503
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_03_cse.txt
|
|
504
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_04_1_loop_fusion.txt
|
|
505
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_04_loop_invcm.txt
|
|
506
|
+
- golden/schema_imports_broadcasting_with_imports/expected/lir_06_const_prop.txt
|
|
507
|
+
- golden/schema_imports_broadcasting_with_imports/expected/nast.txt
|
|
508
|
+
- golden/schema_imports_broadcasting_with_imports/expected/schema_javascript.mjs
|
|
509
|
+
- golden/schema_imports_broadcasting_with_imports/expected/schema_ruby.rb
|
|
510
|
+
- golden/schema_imports_broadcasting_with_imports/expected/snast.txt
|
|
511
|
+
- golden/schema_imports_broadcasting_with_imports/input.json
|
|
512
|
+
- golden/schema_imports_broadcasting_with_imports/schema.kumi
|
|
513
|
+
- golden/schema_imports_complex_order_calc/expected.json
|
|
514
|
+
- golden/schema_imports_complex_order_calc/expected/ast.txt
|
|
515
|
+
- golden/schema_imports_complex_order_calc/expected/input_plan.txt
|
|
516
|
+
- golden/schema_imports_complex_order_calc/expected/lir_00_unoptimized.txt
|
|
517
|
+
- golden/schema_imports_complex_order_calc/expected/lir_01_hoist_scalar_references.txt
|
|
518
|
+
- golden/schema_imports_complex_order_calc/expected/lir_02_inlined.txt
|
|
519
|
+
- golden/schema_imports_complex_order_calc/expected/lir_03_cse.txt
|
|
520
|
+
- golden/schema_imports_complex_order_calc/expected/lir_04_1_loop_fusion.txt
|
|
521
|
+
- golden/schema_imports_complex_order_calc/expected/lir_04_loop_invcm.txt
|
|
522
|
+
- golden/schema_imports_complex_order_calc/expected/lir_06_const_prop.txt
|
|
523
|
+
- golden/schema_imports_complex_order_calc/expected/nast.txt
|
|
524
|
+
- golden/schema_imports_complex_order_calc/expected/schema_javascript.mjs
|
|
525
|
+
- golden/schema_imports_complex_order_calc/expected/schema_ruby.rb
|
|
526
|
+
- golden/schema_imports_complex_order_calc/expected/snast.txt
|
|
527
|
+
- golden/schema_imports_complex_order_calc/input.json
|
|
528
|
+
- golden/schema_imports_complex_order_calc/schema.kumi
|
|
529
|
+
- golden/schema_imports_composed_order/expected.json
|
|
530
|
+
- golden/schema_imports_composed_order/expected/ast.txt
|
|
531
|
+
- golden/schema_imports_composed_order/expected/input_plan.txt
|
|
532
|
+
- golden/schema_imports_composed_order/expected/lir_00_unoptimized.txt
|
|
533
|
+
- golden/schema_imports_composed_order/expected/lir_01_hoist_scalar_references.txt
|
|
534
|
+
- golden/schema_imports_composed_order/expected/lir_02_inlined.txt
|
|
535
|
+
- golden/schema_imports_composed_order/expected/lir_03_cse.txt
|
|
536
|
+
- golden/schema_imports_composed_order/expected/lir_04_1_loop_fusion.txt
|
|
537
|
+
- golden/schema_imports_composed_order/expected/lir_04_loop_invcm.txt
|
|
538
|
+
- golden/schema_imports_composed_order/expected/lir_06_const_prop.txt
|
|
539
|
+
- golden/schema_imports_composed_order/expected/nast.txt
|
|
540
|
+
- golden/schema_imports_composed_order/expected/schema_javascript.mjs
|
|
541
|
+
- golden/schema_imports_composed_order/expected/schema_ruby.rb
|
|
542
|
+
- golden/schema_imports_composed_order/expected/snast.txt
|
|
543
|
+
- golden/schema_imports_composed_order/input.json
|
|
544
|
+
- golden/schema_imports_composed_order/schema.kumi
|
|
545
|
+
- golden/schema_imports_discount_with_tax/expected.json
|
|
546
|
+
- golden/schema_imports_discount_with_tax/expected/ast.txt
|
|
547
|
+
- golden/schema_imports_discount_with_tax/expected/input_plan.txt
|
|
548
|
+
- golden/schema_imports_discount_with_tax/expected/lir_00_unoptimized.txt
|
|
549
|
+
- golden/schema_imports_discount_with_tax/expected/lir_01_hoist_scalar_references.txt
|
|
550
|
+
- golden/schema_imports_discount_with_tax/expected/lir_02_inlined.txt
|
|
551
|
+
- golden/schema_imports_discount_with_tax/expected/lir_03_cse.txt
|
|
552
|
+
- golden/schema_imports_discount_with_tax/expected/lir_04_1_loop_fusion.txt
|
|
553
|
+
- golden/schema_imports_discount_with_tax/expected/lir_04_loop_invcm.txt
|
|
554
|
+
- golden/schema_imports_discount_with_tax/expected/lir_06_const_prop.txt
|
|
555
|
+
- golden/schema_imports_discount_with_tax/expected/nast.txt
|
|
556
|
+
- golden/schema_imports_discount_with_tax/expected/schema_javascript.mjs
|
|
557
|
+
- golden/schema_imports_discount_with_tax/expected/schema_ruby.rb
|
|
558
|
+
- golden/schema_imports_discount_with_tax/expected/snast.txt
|
|
559
|
+
- golden/schema_imports_discount_with_tax/input.json
|
|
560
|
+
- golden/schema_imports_discount_with_tax/schema.kumi
|
|
561
|
+
- golden/schema_imports_line_items/expected.json
|
|
562
|
+
- golden/schema_imports_line_items/expected/ast.txt
|
|
563
|
+
- golden/schema_imports_line_items/expected/input_plan.txt
|
|
564
|
+
- golden/schema_imports_line_items/expected/lir_00_unoptimized.txt
|
|
565
|
+
- golden/schema_imports_line_items/expected/lir_01_hoist_scalar_references.txt
|
|
566
|
+
- golden/schema_imports_line_items/expected/lir_02_inlined.txt
|
|
567
|
+
- golden/schema_imports_line_items/expected/lir_03_cse.txt
|
|
568
|
+
- golden/schema_imports_line_items/expected/lir_04_1_loop_fusion.txt
|
|
569
|
+
- golden/schema_imports_line_items/expected/lir_04_loop_invcm.txt
|
|
570
|
+
- golden/schema_imports_line_items/expected/lir_06_const_prop.txt
|
|
571
|
+
- golden/schema_imports_line_items/expected/nast.txt
|
|
572
|
+
- golden/schema_imports_line_items/expected/schema_javascript.mjs
|
|
573
|
+
- golden/schema_imports_line_items/expected/schema_ruby.rb
|
|
574
|
+
- golden/schema_imports_line_items/expected/snast.txt
|
|
575
|
+
- golden/schema_imports_line_items/input.json
|
|
576
|
+
- golden/schema_imports_line_items/schema.kumi
|
|
577
|
+
- golden/schema_imports_multiple/expected.json
|
|
578
|
+
- golden/schema_imports_multiple/expected/ast.txt
|
|
579
|
+
- golden/schema_imports_multiple/expected/input_plan.txt
|
|
580
|
+
- golden/schema_imports_multiple/expected/lir_00_unoptimized.txt
|
|
581
|
+
- golden/schema_imports_multiple/expected/lir_01_hoist_scalar_references.txt
|
|
582
|
+
- golden/schema_imports_multiple/expected/lir_02_inlined.txt
|
|
583
|
+
- golden/schema_imports_multiple/expected/lir_03_cse.txt
|
|
584
|
+
- golden/schema_imports_multiple/expected/lir_04_1_loop_fusion.txt
|
|
585
|
+
- golden/schema_imports_multiple/expected/lir_04_loop_invcm.txt
|
|
586
|
+
- golden/schema_imports_multiple/expected/lir_06_const_prop.txt
|
|
587
|
+
- golden/schema_imports_multiple/expected/nast.txt
|
|
588
|
+
- golden/schema_imports_multiple/expected/schema_javascript.mjs
|
|
589
|
+
- golden/schema_imports_multiple/expected/schema_ruby.rb
|
|
590
|
+
- golden/schema_imports_multiple/expected/snast.txt
|
|
591
|
+
- golden/schema_imports_multiple/input.json
|
|
592
|
+
- golden/schema_imports_multiple/schema.kumi
|
|
593
|
+
- golden/schema_imports_nested_expressions/expected.json
|
|
594
|
+
- golden/schema_imports_nested_expressions/expected/ast.txt
|
|
595
|
+
- golden/schema_imports_nested_expressions/expected/input_plan.txt
|
|
596
|
+
- golden/schema_imports_nested_expressions/expected/lir_00_unoptimized.txt
|
|
597
|
+
- golden/schema_imports_nested_expressions/expected/lir_01_hoist_scalar_references.txt
|
|
598
|
+
- golden/schema_imports_nested_expressions/expected/lir_02_inlined.txt
|
|
599
|
+
- golden/schema_imports_nested_expressions/expected/lir_03_cse.txt
|
|
600
|
+
- golden/schema_imports_nested_expressions/expected/lir_04_1_loop_fusion.txt
|
|
601
|
+
- golden/schema_imports_nested_expressions/expected/lir_04_loop_invcm.txt
|
|
602
|
+
- golden/schema_imports_nested_expressions/expected/lir_06_const_prop.txt
|
|
603
|
+
- golden/schema_imports_nested_expressions/expected/nast.txt
|
|
604
|
+
- golden/schema_imports_nested_expressions/expected/schema_javascript.mjs
|
|
605
|
+
- golden/schema_imports_nested_expressions/expected/schema_ruby.rb
|
|
606
|
+
- golden/schema_imports_nested_expressions/expected/snast.txt
|
|
607
|
+
- golden/schema_imports_nested_expressions/input.json
|
|
608
|
+
- golden/schema_imports_nested_expressions/schema.kumi
|
|
609
|
+
- golden/schema_imports_nested_with_reductions/expected.json
|
|
610
|
+
- golden/schema_imports_nested_with_reductions/expected/ast.txt
|
|
611
|
+
- golden/schema_imports_nested_with_reductions/expected/input_plan.txt
|
|
612
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_00_unoptimized.txt
|
|
613
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_01_hoist_scalar_references.txt
|
|
614
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_02_inlined.txt
|
|
615
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_03_cse.txt
|
|
616
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_04_1_loop_fusion.txt
|
|
617
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_04_loop_invcm.txt
|
|
618
|
+
- golden/schema_imports_nested_with_reductions/expected/lir_06_const_prop.txt
|
|
619
|
+
- golden/schema_imports_nested_with_reductions/expected/nast.txt
|
|
620
|
+
- golden/schema_imports_nested_with_reductions/expected/schema_javascript.mjs
|
|
621
|
+
- golden/schema_imports_nested_with_reductions/expected/schema_ruby.rb
|
|
622
|
+
- golden/schema_imports_nested_with_reductions/expected/snast.txt
|
|
623
|
+
- golden/schema_imports_nested_with_reductions/input.json
|
|
624
|
+
- golden/schema_imports_nested_with_reductions/schema.kumi
|
|
625
|
+
- golden/schema_imports_with_imports/expected.json
|
|
626
|
+
- golden/schema_imports_with_imports/expected/ast.txt
|
|
627
|
+
- golden/schema_imports_with_imports/expected/input_plan.txt
|
|
628
|
+
- golden/schema_imports_with_imports/expected/lir_00_unoptimized.txt
|
|
629
|
+
- golden/schema_imports_with_imports/expected/lir_01_hoist_scalar_references.txt
|
|
630
|
+
- golden/schema_imports_with_imports/expected/lir_02_inlined.txt
|
|
631
|
+
- golden/schema_imports_with_imports/expected/lir_03_cse.txt
|
|
632
|
+
- golden/schema_imports_with_imports/expected/lir_04_1_loop_fusion.txt
|
|
633
|
+
- golden/schema_imports_with_imports/expected/lir_04_loop_invcm.txt
|
|
634
|
+
- golden/schema_imports_with_imports/expected/lir_06_const_prop.txt
|
|
635
|
+
- golden/schema_imports_with_imports/expected/nast.txt
|
|
636
|
+
- golden/schema_imports_with_imports/expected/schema_javascript.mjs
|
|
637
|
+
- golden/schema_imports_with_imports/expected/schema_ruby.rb
|
|
638
|
+
- golden/schema_imports_with_imports/expected/snast.txt
|
|
639
|
+
- golden/schema_imports_with_imports/input.json
|
|
640
|
+
- golden/schema_imports_with_imports/schema.kumi
|
|
479
641
|
- golden/shift/expected.json
|
|
480
642
|
- golden/shift/expected/ast.txt
|
|
481
643
|
- golden/shift/expected/input_plan.txt
|
|
@@ -634,6 +796,7 @@ files:
|
|
|
634
796
|
- lib/kumi/core/analyzer/passes/declaration_validator.rb
|
|
635
797
|
- lib/kumi/core/analyzer/passes/dependency_resolver.rb
|
|
636
798
|
- lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb
|
|
799
|
+
- lib/kumi/core/analyzer/passes/import_analysis_pass.rb
|
|
637
800
|
- lib/kumi/core/analyzer/passes/input_access_planner_pass.rb
|
|
638
801
|
- lib/kumi/core/analyzer/passes/input_collector.rb
|
|
639
802
|
- lib/kumi/core/analyzer/passes/input_form_schema_pass.rb
|
|
@@ -723,6 +886,7 @@ files:
|
|
|
723
886
|
- lib/kumi/core/lir/analyze.rb
|
|
724
887
|
- lib/kumi/core/lir/build.rb
|
|
725
888
|
- lib/kumi/core/lir/emit.rb
|
|
889
|
+
- lib/kumi/core/lir/peephole.rb
|
|
726
890
|
- lib/kumi/core/lir/structs/instruction.rb
|
|
727
891
|
- lib/kumi/core/lir/structs/literal.rb
|
|
728
892
|
- lib/kumi/core/lir/structs/stamp.rb
|
|
@@ -760,6 +924,8 @@ files:
|
|
|
760
924
|
- lib/kumi/dev/golden/suite.rb
|
|
761
925
|
- lib/kumi/dev/golden/value_normalizer.rb
|
|
762
926
|
- lib/kumi/dev/golden/verifier.rb
|
|
927
|
+
- lib/kumi/dev/golden_schema_modules.rb
|
|
928
|
+
- lib/kumi/dev/golden_schema_wrapper.rb
|
|
763
929
|
- lib/kumi/dev/ir.rb
|
|
764
930
|
- lib/kumi/dev/parse.rb
|
|
765
931
|
- lib/kumi/dev/pretty_printer.rb
|
|
@@ -796,6 +962,8 @@ files:
|
|
|
796
962
|
- lib/kumi/syntax/case_expression.rb
|
|
797
963
|
- lib/kumi/syntax/declaration_reference.rb
|
|
798
964
|
- lib/kumi/syntax/hash_expression.rb
|
|
965
|
+
- lib/kumi/syntax/import_call.rb
|
|
966
|
+
- lib/kumi/syntax/import_declaration.rb
|
|
799
967
|
- lib/kumi/syntax/input_declaration.rb
|
|
800
968
|
- lib/kumi/syntax/input_element_reference.rb
|
|
801
969
|
- lib/kumi/syntax/input_reference.rb
|
|
@@ -805,6 +973,11 @@ files:
|
|
|
805
973
|
- lib/kumi/syntax/root.rb
|
|
806
974
|
- lib/kumi/syntax/trait_declaration.rb
|
|
807
975
|
- lib/kumi/syntax/value_declaration.rb
|
|
976
|
+
- lib/kumi/test_shared_schemas/compound.rb
|
|
977
|
+
- lib/kumi/test_shared_schemas/discount.rb
|
|
978
|
+
- lib/kumi/test_shared_schemas/price.rb
|
|
979
|
+
- lib/kumi/test_shared_schemas/subtotal.rb
|
|
980
|
+
- lib/kumi/test_shared_schemas/tax.rb
|
|
808
981
|
- lib/kumi/version.rb
|
|
809
982
|
- vscode-extension/.gitignore
|
|
810
983
|
- vscode-extension/README.md
|
|
@@ -839,6 +1012,6 @@ rubygems_version: 3.6.9
|
|
|
839
1012
|
specification_version: 4
|
|
840
1013
|
summary: Kumi is a declarative rules-and-calculation DSL for Ruby that compiles your
|
|
841
1014
|
business logic into a typed, analyzable dependency graph with
|
|
842
|
-
vector semantics over
|
|
843
|
-
to a small IR, and
|
|
1015
|
+
vector semantics over ragged data. It does static checks at definition time, lowers
|
|
1016
|
+
to a small IR, and compiles to zero-runtime modules
|
|
844
1017
|
test_files: []
|