sisshiki1969 / monoruby Goto Github PK
View Code? Open in Web Editor NEWRuby implementation with yet another JIT compiler.
License: Apache License 2.0
Ruby implementation with yet another JIT compiler.
License: Apache License 2.0
But as documented here for best peak performance TruffleRuby JVM should be used.
SEGV occurs in the code below.
def m
i = 0
while i<30
i += 1
yield
end
end
m{}
The README doesn't mention anything about compatibility, but it seems worth having at least a sentence about it.
Does it run RubyGems
/Bundler
/Rails
? Does it have the Ruby standard library? C extensions?
TODO: Support class variables.
Currently we can accept super with arguments delegation only when super exists in a method scope.
We must support super in a block scope.
a = [1,2,3]
b = []
10.times do
b.prepend(*a)
end
puts "#{b}"
CRuby: [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
monoruby: [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
LoadConst
insn returns wrong value when base
exists because base
is not guarded.
module M
def initialize
puts self.class::C
end
end
class A
include M
C = 100
end
class B
include M
C = 200
end
A.new # => 100
B.new # => 200 but monoruby gets 100 currently.
10.times { f a:100 } # => OK
super a:100 #=>OK
10.times { super a:100 } #=> "Expect end Got Punct(Colon)"
In Ruby method call, when all conditions of
Currently, monoruby is not compatible with this behavior.
def f(a, b, *c)
puts "a:#{a} b:#{b} c:#{c}"
end
f("a", 42, 1000, x:100, y:200)
# => [Ruby] a:a b:42 c:[1000, {:x=>100, :y=>200}]
#=>[monoruby] a:a b:42 c:[1000]
TODO: Support class definition with class names which have prefixes.
class Gem::Platform
end
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.