still sputters, but starts again after all that renaming

This commit is contained in:
Torsten Ruger 2018-04-03 16:48:45 +03:00
parent 7be8e040bb
commit 0c2738cdef
13 changed files with 92 additions and 106 deletions

19
Gemfile
View File

@ -3,23 +3,20 @@ source 'https://rubygems.org'
gem "opal" gem "opal"
gem 'opal-sprockets' gem 'opal-sprockets'
gem 'opal-browser' gem 'opal-browser'
#gem "ast" , :path => "../ast"
gem "ast" , :github => "whitequark/ast" , branch: :master
gem "salama" , "0.5" , :path => "../salama" gem "rubyx" , "0.6" , :path => "../rubyx"
#gem "salama" , github: "salama/salama"
gem "rx-file" , :git => "https://github.com/ruby-x/rx-file"
gem "salama-object-file" , github: "salama/salama-object-file"
gem "sass" gem "sass"
gem "susy" gem "susy"
group :test do group :test do
# Testing dependencies # Testing dependencies
gem "minitest" gem "minitest"
gem 'rspec', '~> 3.2.0' gem 'rspec'
gem 'opal-rspec' gem 'capybara'
gem 'capybara', '~> 2.4.2' gem 'selenium-webdriver'
gem 'selenium-webdriver', '~> 2.43.0' gem 'chromedriver2-helper'
gem 'chromedriver2-helper', '~> 0.0.8' gem 'poltergeist'
gem 'poltergeist', '~> 1.5.0'
end end

View File

@ -1,125 +1,114 @@
GIT GIT
remote: git://github.com/salama/salama-object-file.git remote: https://github.com/ruby-x/rx-file
revision: aab01b23108f10063433b1ef9f703ff2927d0b80 revision: c1de10352d8af105fe532008ceafcdd30b5fbdab
specs: specs:
salama-object-file (0.3.0) rx-file (0.3.0)
GIT
remote: git://github.com/whitequark/ast.git
revision: 93c43433ec4d4344485eb4ea6f8948925f092af1
branch: master
specs:
ast (2.3.0)
PATH PATH
remote: ../salama remote: ../rubyx
specs: specs:
salama (0.5.0) rubyx (0.6.0)
parser (~> 2.2.0) parser (~> 2.3.0)
salama-object-file (~> 0.3) rx-file (~> 0.3)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
capybara (2.4.4) addressable (2.5.2)
mime-types (>= 1.16) public_suffix (>= 2.0.2, < 4.0)
ast (2.4.0)
capybara (2.18.0)
addressable
mini_mime (>= 0.1.3)
nokogiri (>= 1.3.3) nokogiri (>= 1.3.3)
rack (>= 1.0.0) rack (>= 1.0.0)
rack-test (>= 0.5.4) rack-test (>= 0.5.4)
xpath (~> 2.0) xpath (>= 2.0, < 4.0)
childprocess (0.5.6) childprocess (0.9.0)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
chromedriver2-helper (0.0.8) chromedriver2-helper (0.0.10)
nokogiri nokogiri
cliver (0.3.2) cliver (0.3.2)
concurrent-ruby (1.0.3) concurrent-ruby (1.0.5)
diff-lcs (1.2.5) diff-lcs (1.3)
ffi (1.9.10) ffi (1.9.23)
hike (1.2.3) hike (1.2.3)
mime-types (2.6.2) mini_mime (1.0.0)
mini_portile (0.6.2) mini_portile2 (2.3.0)
minitest (5.8.1) minitest (5.11.3)
multi_json (1.11.2) nokogiri (1.8.2)
nokogiri (1.6.6.2) mini_portile2 (~> 2.3.0)
mini_portile (~> 0.6.0) opal (0.11.0)
opal (0.10.3) ast (>= 2.3.0)
hike (~> 1.2) hike (~> 1.2)
parser (= 2.3.3.1)
sourcemap (~> 0.1.0) sourcemap (~> 0.1.0)
sprockets (~> 3.1)
tilt (>= 1.4)
opal-browser (0.2.0) opal-browser (0.2.0)
opal opal
paggio paggio
opal-rspec (0.6.0) opal-sprockets (0.4.1.0.11.0.3.1)
opal (>= 0.10.0, < 0.11) opal (~> 0.11.0)
opal-sprockets (0.4.0.0.10.0.3.0.0) sprockets (~> 3.1)
opal (~> 0.10.0)
sprockets (~> 3.0)
tilt (>= 1.4) tilt (>= 1.4)
paggio (0.2.5) paggio (0.2.6)
parser (2.2.3.0) parser (2.3.3.1)
ast (>= 1.1, < 3.0) ast (~> 2.2)
poltergeist (1.5.1) poltergeist (1.17.0)
capybara (~> 2.1) capybara (~> 2.1)
cliver (~> 0.3.1) cliver (~> 0.3.1)
multi_json (~> 1.0)
websocket-driver (>= 0.2.0) websocket-driver (>= 0.2.0)
rack (2.0.1) public_suffix (3.0.2)
rack-test (0.6.3) rack (2.0.4)
rack (>= 1.0) rack-test (1.0.0)
rspec (3.2.0) rack (>= 1.0, < 3)
rspec-core (~> 3.2.0) rspec (3.7.0)
rspec-expectations (~> 3.2.0) rspec-core (~> 3.7.0)
rspec-mocks (~> 3.2.0) rspec-expectations (~> 3.7.0)
rspec-core (3.2.3) rspec-mocks (~> 3.7.0)
rspec-support (~> 3.2.0) rspec-core (3.7.1)
rspec-expectations (3.2.1) rspec-support (~> 3.7.0)
rspec-expectations (3.7.0)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0) rspec-support (~> 3.7.0)
rspec-mocks (3.2.1) rspec-mocks (3.7.0)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0) rspec-support (~> 3.7.0)
rspec-support (3.2.2) rspec-support (3.7.1)
rubyzip (1.1.7) rubyzip (1.2.1)
sass (3.4.18) sass (3.4.25)
selenium-webdriver (2.43.0) selenium-webdriver (3.11.0)
childprocess (~> 0.5) childprocess (~> 0.5)
multi_json (~> 1.0) rubyzip (~> 1.2)
rubyzip (~> 1.0)
websocket (~> 1.0)
sourcemap (0.1.1) sourcemap (0.1.1)
sprockets (3.7.1) sprockets (3.7.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (> 1, < 3) rack (> 1, < 3)
susy (2.2.6) susy (2.2.12)
sass (>= 3.3.0, < 3.5) sass (>= 3.3.0, < 3.5)
tilt (2.0.5) tilt (2.0.8)
websocket (1.2.2) websocket-driver (0.7.0)
websocket-driver (0.6.2)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2) websocket-extensions (0.1.3)
xpath (2.0.0) xpath (3.0.0)
nokogiri (~> 1.3) nokogiri (~> 1.8)
PLATFORMS PLATFORMS
ruby ruby
DEPENDENCIES DEPENDENCIES
ast! capybara
capybara (~> 2.4.2) chromedriver2-helper
chromedriver2-helper (~> 0.0.8)
minitest minitest
opal opal
opal-browser opal-browser
opal-rspec
opal-sprockets opal-sprockets
poltergeist (~> 1.5.0) poltergeist
rspec (~> 3.2.0) rspec
salama (= 0.5)! rubyx (= 0.6)!
salama-object-file! rx-file!
sass sass
selenium-webdriver (~> 2.43.0) selenium-webdriver
susy susy
BUNDLED WITH BUNDLED WITH
1.13.5 1.16.0

View File

@ -3,7 +3,7 @@
After some tryouts it ended up being an Opal application. That is ruby as javascript in the browser. After some tryouts it ended up being an Opal application. That is ruby as javascript in the browser.
Below is a screenshot. Below is a screenshot.
![Debugger](https://raw.githubusercontent.com/salama/salama-debugger/master/static/debugger.png) ![Debugger](https://raw.githubusercontent.com/rubyx/rubyx-debugger/master/static/debugger.png)
## Views ## Views

View File

@ -5,9 +5,9 @@ require 'tilt/erb'
require "opal" require "opal"
require 'opal-browser' require 'opal-browser'
Opal.use_gem("salama") Opal.use_gem("rubyx")
Opal.use_gem("ast") Opal.use_gem("ast")
Register.machine.boot Risc.machine.boot
class DebugServer < Opal::Server class DebugServer < Opal::Server
def ball(env) def ball(env)

View File

@ -1,4 +1,4 @@
# Specify which components you wish to include when # Specify which components you wish to include when
# the "home" component loads. # the "home" component loads.
Opal.use_gem("salama-object-file") Opal.use_gem("rx-file")

View File

@ -0,0 +1 @@
Opal.use_gem "rubyx"

View File

@ -1 +0,0 @@
Opal.use_gem "salama"

View File

@ -6,9 +6,9 @@ require "logger"
require 'browser' require 'browser'
require 'browser/http' require 'browser/http'
require 'native' require 'native'
require "salama" require "rubyx"
require "ast" require "ast"
require "register/interpreter" require "risc/interpreter"
# the base, our own litle framework, allows for child and parent views and handles updates # the base, our own litle framework, allows for child and parent views and handles updates
require "base/list_view" require "base/list_view"
# each seperate view is in it's own class. # each seperate view is in it's own class.
@ -38,8 +38,8 @@ class MainView < ListView
include AST::Sexp include AST::Sexp
def initialize def initialize
Register.machine.boot Risc.machine.boot
@interpreter = Register::Interpreter.new @interpreter = Risc::Interpreter.new
super( [SwitchView.new(@interpreter) , super( [SwitchView.new(@interpreter) ,
SourceView.new(@interpreter) , SourceView.new(@interpreter) ,
InstructionView.new(@interpreter) , InstructionView.new(@interpreter) ,

View File

@ -10,7 +10,7 @@ class ClassesView < ListView
def class_views def class_views
classes = [] classes = []
Register.machine.space.classes.each do |name , claz| Risc.machine.space.classes.each do |name , claz|
classes << claz classes << claz
end end
classes.sort! {|a,b| a.name <=> b.name } classes.sort! {|a,b| a.name <=> b.name }

View File

@ -41,7 +41,7 @@ class RefView < ListView
end end
def is_label? def is_label?
@value.is_a?(Register::Label) @value.is_a?(Risc::Label)
end end
def is_nil?() def is_nil?()

View File

@ -24,9 +24,9 @@ class RegistersView < ListView
def register_changed reg , old , value def register_changed reg , old , value
reg = reg.symbol unless reg.is_a? Symbol reg = reg.symbol unless reg.is_a? Symbol
index = reg.to_s[1 .. -1 ].to_i index = reg.to_s[1 .. -1 ].to_i
has = Register.machine.objects[value.object_id] has = Risc.machine.objects[value.object_id]
if( has ) if( has )
if has.is_a?(Register::Label) if has.is_a?(Risc::Label)
swap = ValueView.new "Label: #{has.name}" swap = ValueView.new "Label: #{has.name}"
else else
swap = ObjectView.new( value , @interpreter , 16 - index ) swap = ObjectView.new( value , @interpreter , 16 - index )

View File

@ -38,7 +38,7 @@ class SourceView < ElementView
def update_method def update_method
i = @interpreter.instruction i = @interpreter.instruction
if i.is_a?(Register::FunctionReturn) if i.is_a?(Risc::FunctionReturn)
object = @interpreter.get_register( i.register ) object = @interpreter.get_register( i.register )
#puts "Object #{object}" #puts "Object #{object}"
link = object.get_internal_word( i.index ) link = object.get_internal_word( i.index )
@ -46,12 +46,12 @@ class SourceView < ElementView
raise "No link method" unless link raise "No link method" unless link
i = link i = link
end end
return unless (i.is_a? Register::Label) return unless (i.is_a? Risc::Label)
return unless i.is_method return unless i.is_method
puts i.name puts i.name
cl_t_name , method_name = *i.name.split(".") cl_t_name , method_name = *i.name.split(".")
class_name = cl_t_name.split(" ").last.split("_").first class_name = cl_t_name.split(" ").last.split("_").first
clazz = Register.machine.space.get_class_by_name class_name clazz = Risc.machine.space.get_class_by_name class_name
raise "No class for #{cl_name} , #{i.name}" unless clazz raise "No class for #{cl_name} , #{i.name}" unless clazz
type = clazz.instance_type type = clazz.instance_type
method = type.get_instance_method( method_name ) method = type.get_instance_method( method_name )

View File

@ -45,7 +45,7 @@ class SelectView < ElementView
@element.at_css(".selected").text = code @element.at_css(".selected").text = code
main , clean = get_codes[code] main , clean = get_codes[code]
machine = Register.machine.boot machine = Risc.machine.boot
clean_compile(*clean) if clean clean_compile(*clean) if clean
Typed.compile( main ) Typed.compile( main )
machine.collect machine.collect