Module: Kumi

Defined in:
lib/kumi/core/lir.rb,
lib/kumi.rb,
lib/kumi/dev.rb,
lib/kumi/pack.rb,
lib/kumi/dev/ir.rb,
lib/kumi/errors.rb,
lib/kumi/schema.rb,
lib/kumi/core/ir.rb,
lib/kumi/version.rb,
lib/kumi/analyzer.rb,
lib/kumi/core/nast.rb,
lib/kumi/dev/parse.rb,
lib/kumi/frontends.rb,
lib/kumi/core/types.rb,
lib/kumi/dev/golden.rb,
lib/kumi/dev/runner.rb,
lib/kumi/core/errors.rb,
lib/kumi/core/export.rb,
lib/kumi/dev/codegen.rb,
lib/kumi/registry_v2.rb,
lib/kumi/syntax/node.rb,
lib/kumi/syntax/root.rb,
lib/kumi/pack/builder.rb,
lib/kumi/support/diff.rb,
lib/kumi/configuration.rb,
lib/kumi/core/lir/emit.rb,
lib/kumi/doc_generator.rb,
lib/kumi/core/lir/build.rb,
lib/kumi/frontends/ruby.rb,
lib/kumi/frontends/text.rb,
lib/kumi/syntax/literal.rb,
lib/kumi/core/irv2/value.rb,
lib/kumi/kernel_registry.rb,
lib/kumi/syntax/location.rb,
lib/kumi/core/irv2/module.rb,
lib/kumi/core/json_schema.rb,
lib/kumi/core/lir/analyze.rb,
lib/kumi/core/ruby_parser.rb,
lib/kumi/dev/golden/suite.rb,
lib/kumi/core/irv2/builder.rb,
lib/kumi/core/lir/peephole.rb,
lib/kumi/core/lir/validate.rb,
lib/kumi/dev/golden/result.rb,
lib/kumi/support/ir_render.rb,
lib/kumi/core/export/errors.rb,
lib/kumi/dev/pretty_printer.rb,
lib/kumi/dev/profile_runner.rb,
lib/kumi/registry_v2/loader.rb,
lib/kumi/syntax/import_call.rb,
lib/kumi/core/analyzer/debug.rb,
lib/kumi/core/analyzer/plans.rb,
lib/kumi/core/error_reporter.rb,
lib/kumi/dev/golden/reporter.rb,
lib/kumi/dev/golden/verifier.rb,
lib/kumi/support/lir_printer.rb,
lib/kumi/core/analyzer/binder.rb,
lib/kumi/core/analyzer/folder.rb,
lib/kumi/core/error_reporting.rb,
lib/kumi/core/input/validator.rb,
lib/kumi/core/lir/support/ids.rb,
lib/kumi/core/ruby_parser/dsl.rb,
lib/kumi/core/types/inference.rb,
lib/kumi/core/types/validator.rb,
lib/kumi/dev/golden/generator.rb,
lib/kumi/doc_generator/loader.rb,
lib/kumi/doc_generator/merger.rb,
lib/kumi/support/nast_printer.rb,
lib/kumi/core/domain/validator.rb,
lib/kumi/core/functions/loader.rb,
lib/kumi/core/irv2/declaration.rb,
lib/kumi/core/types/normalizer.rb,
lib/kumi/support/snast_printer.rb,
lib/kumi/core/export/serializer.rb,
lib/kumi/core/lir/structs/stamp.rb,
lib/kumi/core/lir/support/error.rb,
lib/kumi/core/ruby_parser/sugar.rb,
lib/kumi/dev/profile_aggregator.rb,
lib/kumi/syntax/call_expression.rb,
lib/kumi/syntax/case_expression.rb,
lib/kumi/syntax/hash_expression.rb,
lib/kumi/syntax/input_reference.rb,
lib/kumi/core/input/type_matcher.rb,
lib/kumi/core/ruby_parser/parser.rb,
lib/kumi/dev/golden/runtime_test.rb,
lib/kumi/syntax/array_expression.rb,
lib/kumi/test_shared_schemas/tax.rb,
lib/kumi/core/analyzer/checkpoint.rb,
lib/kumi/core/analyzer/fn_aliases.rb,
lib/kumi/core/export/deserializer.rb,
lib/kumi/core/ir/execution_engine.rb,
lib/kumi/core/lir/structs/literal.rb,
lib/kumi/core/types/value_objects.rb,
lib/kumi/syntax/input_declaration.rb,
lib/kumi/syntax/trait_declaration.rb,
lib/kumi/syntax/value_declaration.rb,
lib/kumi/core/analyzer/state_serde.rb,
lib/kumi/core/domain/enum_analyzer.rb,
lib/kumi/core/export/node_builders.rb,
lib/kumi/core/export/node_registry.rb,
lib/kumi/core/functions/type_rules.rb,
lib/kumi/dev/golden/representation.rb,
lib/kumi/dev/golden_schema_wrapper.rb,
lib/kumi/syntax/cascade_expression.rb,
lib/kumi/syntax/import_declaration.rb,
lib/kumi/test_shared_schemas/price.rb,
lib/kumi/core/analyzer/pass_failure.rb,
lib/kumi/core/analyzer/pass_manager.rb,
lib/kumi/core/domain/range_analyzer.rb,
lib/kumi/core/json_schema/generator.rb,
lib/kumi/core/json_schema/validator.rb,
lib/kumi/dev/printer/irv2_formatter.rb,
lib/kumi/dev/golden/value_normalizer.rb,
lib/kumi/core/analyzer/analysis_state.rb,
lib/kumi/core/analyzer/macro_expander.rb,
lib/kumi/core/compiler/access_builder.rb,
lib/kumi/core/compiler/access_codegen.rb,
lib/kumi/core/compiler/access_planner.rb,
lib/kumi/core/compiler/accessors/base.rb,
lib/kumi/core/export/node_serializers.rb,
lib/kumi/core/functions/function_spec.rb,
lib/kumi/core/input/violation_creator.rb,
lib/kumi/core/lir/structs/instruction.rb,
lib/kumi/core/ruby_parser/guard_rails.rb,
lib/kumi/core/ruby_parser/input_proxy.rb,
lib/kumi/dev/printer/width_aware_json.rb,
lib/kumi/support/s_expression_printer.rb,
lib/kumi/syntax/declaration_reference.rb,
lib/kumi/test_shared_schemas/compound.rb,
lib/kumi/test_shared_schemas/discount.rb,
lib/kumi/test_shared_schemas/subtotal.rb,
lib/kumi/core/analyzer/execution_phase.rb,
lib/kumi/core/ruby_parser/nested_input.rb,
lib/kumi/doc_generator/formatters/json.rb,
lib/kumi/core/analyzer/execution_result.rb,
lib/kumi/core/analyzer/passes/pass_base.rb,
lib/kumi/core/compiler/access_emit/base.rb,
lib/kumi/core/functions/type_categories.rb,
lib/kumi/core/ruby_parser/build_context.rb,
lib/kumi/core/ruby_parser/input_builder.rb,
lib/kumi/syntax/input_element_reference.rb,
lib/kumi/core/analyzer/passes/snast_pass.rb,
lib/kumi/core/analyzer/passes/toposorter.rb,
lib/kumi/core/compiler/access_planner_v2.rb,
lib/kumi/core/domain/violation_formatter.rb,
lib/kumi/core/ir/execution_engine/values.rb,
lib/kumi/core/ruby_parser/schema_builder.rb,
lib/kumi/core/analyzer/constant_evaluator.rb,
lib/kumi/core/analyzer/structs/input_meta.rb,
lib/kumi/core/functions/overload_resolver.rb,
lib/kumi/core/analyzer/passes/name_indexer.rb,
lib/kumi/core/analyzer/passes/visitor_pass.rb,
lib/kumi/core/analyzer/structs/access_plan.rb,
lib/kumi/core/ir/execution_engine/profiler.rb,
lib/kumi/doc_generator/formatters/markdown.rb,
lib/kumi/core/functions/type_error_reporter.rb,
lib/kumi/core/ruby_parser/input_field_proxy.rb,
lib/kumi/core/analyzer/passes/lir/lower_pass.rb,
lib/kumi/core/analyzer/passes/load_input_cse.rb,
lib/kumi/core/analyzer/passes/unsat_detector.rb,
lib/kumi/core/analyzer/passes/codegen/js_pass.rb,
lib/kumi/core/analyzer/passes/input_collector.rb,
lib/kumi/core/ir/execution_engine/combinators.rb,
lib/kumi/core/ir/execution_engine/interpreter.rb,
lib/kumi/core/ruby_parser/dsl_cascade_builder.rb,
lib/kumi/core/compiler/accessors/read_accessor.rb,
lib/kumi/core/ruby_parser/expression_converter.rb,
lib/kumi/core/analyzer/constant_folding_helpers.rb,
lib/kumi/core/analyzer/passes/codegen/ruby_pass.rb,
lib/kumi/core/compiler/accessors/ravel_accessor.rb,
lib/kumi/core/analyzer/passes/assemble_irv2_pass.rb,
lib/kumi/core/analyzer/passes/codegen/js/emitter.rb,
lib/kumi/core/analyzer/passes/ir_dependency_pass.rb,
lib/kumi/core/analyzer/passes/lir/local_cse_pass.rb,
lib/kumi/core/analyzer/passes/lower_to_irv2_pass.rb,
lib/kumi/core/analyzer/passes/output_schema_pass.rb,
lib/kumi/core/analyzer/passes/attach_anchors_pass.rb,
lib/kumi/core/analyzer/passes/dependency_resolver.rb,
lib/kumi/core/analyzer/passes/lir/stencil_emitter.rb,
lib/kumi/core/analyzer/passes/lir/validation_pass.rb,
lib/kumi/core/analyzer/passes/codegen/ruby/emitter.rb,
lib/kumi/core/analyzer/passes/import_analysis_pass.rb,
lib/kumi/core/analyzer/passes/lir/loop_fusion_pass.rb,
lib/kumi/core/analyzer/passes/constant_folding_pass.rb,
lib/kumi/core/analyzer/passes/contract_checker_pass.rb,
lib/kumi/core/analyzer/passes/declaration_validator.rb,
lib/kumi/core/analyzer/passes/input_form_schema_pass.rb,
lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb,
lib/kumi/core/analyzer/passes/lir/kernel_binding_pass.rb,
lib/kumi/core/compiler/accessors/materialize_accessor.rb,
lib/kumi/core/ruby_parser/declaration_reference_proxy.rb,
lib/kumi/core/analyzer/passes/codegen/js/output_buffer.rb,
lib/kumi/core/compiler/accessors/each_indexed_accessor.rb,
lib/kumi/core/analyzer/passes/attach_terminal_info_pass.rb,
lib/kumi/core/analyzer/passes/input_access_planner_pass.rb,
lib/kumi/core/analyzer/passes/join_reduce_planning_pass.rb,
lib/kumi/core/analyzer/passes/codegen/ruby/output_buffer.rb,
lib/kumi/core/analyzer/passes/ir_execution_schedule_pass.rb,
lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb,
lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb,
lib/kumi/core/analyzer/passes/precompute_access_paths_pass.rb,
lib/kumi/core/analyzer/passes/lir/constant_propagation_pass.rb,
lib/kumi/core/analyzer/passes/semantic_constraint_validator.rb,
lib/kumi/core/analyzer/passes/codegen/js/declaration_emitter.rb,
lib/kumi/core/analyzer/passes/lir/dead_code_elimination_pass.rb,
lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb,
lib/kumi/core/analyzer/passes/lir/instruction_scheduling_pass.rb,
lib/kumi/core/analyzer/passes/codegen/ruby/declaration_emitter.rb,
lib/kumi/core/analyzer/passes/lir/hoist_scalar_references_pass.rb,
lib/kumi/core/analyzer/passes/lir/loop_invariant_code_motion_pass.rb

Overview

lib/kumi/core/lir/structs/instruction.rb Fields:

  • opcode, result_register, stamp, inputs, immediates, attributes, location

Defined Under Namespace

Modules: Analyzer, Compiled, Core, Dev, DocGenerator, Errors, Frontends, Pack, RegistryV2, Schema, Support, Syntax, TestSharedSchemas Classes: CompiledSchemaWrapper, Configuration, KernelRegistry

Constant Summary collapse

VERSION =
"0.0.33"

Class Method Summary collapse

Class Method Details

.configurationKumi::Configuration

Provides access to the singleton configuration object.

Returns:



45
46
47
# File 'lib/kumi.rb', line 45

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields the configuration object to a block for user setup. This is the main entry point for configuring Kumi in an application.

Example (in config/initializers/kumi.rb):

Kumi.configure do |config|
  config.cache_path = "/shared/cache/kumi"
end

Yields:



56
57
58
# File 'lib/kumi.rb', line 56

def self.configure
  yield(configuration)
end

.load_shared_schemas!Object

Load shared schemas only when explicitly requested (for golden tests)



65
66
67
68
69
70
71
72
73
74
# File 'lib/kumi.rb', line 65

def self.load_shared_schemas!
  # Ensure JIT compilation mode for schemas being loaded
  Kumi.configure { |c| c.compilation_mode = :jit }

  AUTOLOADER.eager_load_dir("#{__dir__}/kumi/test_shared_schemas")
  # Populate GoldenSchemas module (already defined in golden_schema_modules.rb)
  Kumi::TestSharedSchemas.constants.each do |const|
    GoldenSchemas.const_set(const, Kumi::TestSharedSchemas.const_get(const)) unless GoldenSchemas.const_defined?(const)
  end
end