still sputters, but starts again after all that renaming
This commit is contained in:
parent
7be8e040bb
commit
0c2738cdef
19
Gemfile
19
Gemfile
@ -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
|
||||||
|
145
Gemfile.lock
145
Gemfile.lock
@ -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
|
||||||
|
@ -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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Views
|
## Views
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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")
|
||||||
|
1
config/initializers/server/rubyx.rb
Normal file
1
config/initializers/server/rubyx.rb
Normal file
@ -0,0 +1 @@
|
|||||||
|
Opal.use_gem "rubyx"
|
@ -1 +0,0 @@
|
|||||||
Opal.use_gem "salama"
|
|
@ -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) ,
|
||||||
|
@ -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 }
|
||||||
|
@ -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?()
|
||||||
|
@ -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 )
|
||||||
|
@ -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 )
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user