Module: Optimize
- Defined in:
- lib/optimize.rb,
lib/optimize/log.rb,
lib/optimize/demo.rb,
lib/optimize/pass.rb,
lib/optimize/codec.rb,
lib/optimize/ir/cfg.rb,
lib/optimize/harness.rb,
lib/optimize/contract.rb,
lib/optimize/pipeline.rb,
lib/optimize/type_env.rb,
lib/optimize/rbs_parser.rb,
lib/optimize/demo/claude.rb,
lib/optimize/demo/runner.rb,
lib/optimize/ir/function.rb,
lib/optimize/codec/header.rb,
lib/optimize/ir/call_data.rb,
lib/optimize/ir/line_entry.rb,
lib/optimize/demo/benchmark.rb,
lib/optimize/ir/basic_block.rb,
lib/optimize/ir/catch_entry.rb,
lib/optimize/ir/instruction.rb,
lib/optimize/codec/iseq_list.rb,
lib/optimize/codec/line_info.rb,
lib/optimize/codec/stack_max.rb,
lib/optimize/codec/ci_entries.rb,
lib/optimize/demo/walkthrough.rb,
lib/optimize/codec/catch_table.rb,
lib/optimize/codec/local_table.rb,
lib/optimize/codec/object_table.rb,
lib/optimize/demo/claude/prompt.rb,
lib/optimize/ir/slot_type_table.rb,
lib/optimize/codec/arg_positions.rb,
lib/optimize/codec/binary_reader.rb,
lib/optimize/codec/binary_writer.rb,
lib/optimize/codec/iseq_envelope.rb,
lib/optimize/demo/claude/invoker.rb,
lib/optimize/demo/iseq_snapshots.rb,
lib/optimize/passes/inlining_pass.rb,
lib/optimize/passes/literal_value.rb,
lib/optimize/demo/claude/validator.rb,
lib/optimize/demo/claude/serializer.rb,
lib/optimize/demo/claude/transcript.rb,
lib/optimize/demo/disasm_normalizer.rb,
lib/optimize/demo/markdown_renderer.rb,
lib/optimize/passes/const_fold_pass.rb,
lib/optimize/codec/instruction_stream.rb,
lib/optimize/passes/arith_reassoc_pass.rb,
lib/optimize/passes/identity_elim_pass.rb,
lib/optimize/passes/const_fold_env_pass.rb,
lib/optimize/passes/dead_stash_elim_pass.rb,
lib/optimize/passes/const_fold_tier2_pass.rb,
lib/optimize/passes/dead_branch_fold_pass.rb
Defined Under Namespace
Modules: Codec, Contract, Demo, Harness, IR, Passes, RbsParser Classes: Log, NoopPass, Pass, Pipeline, TypeEnv
Constant Summary collapse
- VERSION =
"0.0.0"
Class Method Summary collapse
-
.optimize(source, path: "(optimize)", type_env: nil) ⇒ Object
One-shot sugar: compile ‘source`, run `Pipeline.default`, return a new `RubyVM::InstructionSequence`.
Class Method Details
.optimize(source, path: "(optimize)", type_env: nil) ⇒ Object
One-shot sugar: compile ‘source`, run `Pipeline.default`, return a new `RubyVM::InstructionSequence`. Raises on pipeline or codec failure —callers who want silent fallback should use `Optimize::Harness` instead.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/optimize.rb', line 9 def self.optimize(source, path: "(optimize)", type_env: nil) require "optimize/codec" require "optimize/pipeline" require "optimize/type_env" iseq = RubyVM::InstructionSequence.compile(source, path, path) ir = Codec.decode(iseq.to_binary) env = type_env || TypeEnv.from_source(source, path) Pipeline.default.run(ir, type_env: env) RubyVM::InstructionSequence.load_from_binary(Codec.encode(ir)) end |