diff --git a/lib/arm/passes/call_implementation.rb b/lib/arm/passes/call_implementation.rb index 138e3b8d..80842aad 100644 --- a/lib/arm/passes/call_implementation.rb +++ b/lib/arm/passes/call_implementation.rb @@ -9,7 +9,7 @@ module Register class CallImplementation def run block block.codes.dup.each do |code| - next unless code.is_a? Virtual::FunctionCall + next unless code.is_a? Register::FunctionCall call = RegisterMachine.instance.call( code.method ) block.replace(code , call ) end diff --git a/lib/builtin/kernel.rb b/lib/builtin/kernel.rb index 3f6e5893..7ff78568 100644 --- a/lib/builtin/kernel.rb +++ b/lib/builtin/kernel.rb @@ -17,7 +17,7 @@ module Builtin me = Virtual::Self.new(Virtual::Reference) code = Virtual::Set.new(Virtual::Self.new(me.type), me) function.add_code(code) - function.add_code Virtual::FunctionCall.new(method) + function.add_code Register::FunctionCall.new(method) return function end def putstring context diff --git a/lib/salama.rb b/lib/salama.rb index c8bb0326..f808e8bd 100644 --- a/lib/salama.rb +++ b/lib/salama.rb @@ -5,8 +5,8 @@ require_relative "parfait/hash" require "elf/object_writer" require 'salama-reader' require 'parser/transform' -require "virtual/machine" -require "ast/all" require "sof/all" require "register/register_machine" +require "virtual/machine" +require "ast/all" require_relative "stream_reader" diff --git a/lib/sof/volotile.rb b/lib/sof/volotile.rb index 45a0cef3..704a9f88 100644 --- a/lib/sof/volotile.rb +++ b/lib/sof/volotile.rb @@ -1,9 +1,6 @@ module Sof class Volotile - @@mapping = { - Virtual::Block => [:method], - Virtual::CompiledMethod => [:current] - } + @@mapping = { } def self.attributes clazz @@mapping[clazz] || [] end diff --git a/lib/virtual/instruction.rb b/lib/virtual/instruction.rb index c62431b4..2d03cb57 100644 --- a/lib/virtual/instruction.rb +++ b/lib/virtual/instruction.rb @@ -39,6 +39,6 @@ module Virtual end -require_relative "instructions/access.rb" -require_relative "instructions/control.rb" -require_relative "instructions/messaging.rb" +require_relative "instructions/access" +require_relative "instructions/control" +require_relative "instructions/messaging" diff --git a/lib/virtual/machine.rb b/lib/virtual/machine.rb index 8b6a8083..cf51c794 100644 --- a/lib/virtual/machine.rb +++ b/lib/virtual/machine.rb @@ -74,7 +74,6 @@ module Virtual end end -#require_relative "list" require_relative "instruction" require_relative "compiled_method" require_relative "frame" @@ -87,3 +86,6 @@ require_relative "boot_space" require_relative "passes/send_implementation" require_relative "passes/get_implementation" require_relative "passes/frame_implementation" + +Sof.Volotile.add(Virtual::Block , [:method]) +Sof.Volotile.add(Virtual::CompiledMethod , [:current])