evanphx / rubinius
- Source
- Commits
- Network (50)
- Issues (59)
- Downloads (7)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
-
1 comment Created 2 months ago by stephenebrexml parsing 100k file 4x slower than MRIperformancexComparing rexml performance on MRI 1.8.6 and Rubinius 1.0.0-rc1 (1).
Parse a 98k XML document and count one type of leaf element (466 entries) 100 times (2)
$ ruby xml_benchmark_rexml.rb user system total real rexml 8.990000 0.540000 9.530000 ( 9.609303) rexml 8.900000 0.540000 9.440000 ( 9.555908) $ bin/rbx xml_benchmark_rexml.rb user system total real rexml 44.513807 0.000000 44.513807 ( 44.513791) rexml 41.221796 0.000000 41.221796 ( 41.221803)1: Tested versions of Ruby
MRI 1.8.6 (2008-08-11 rev 287), platform: universal-darwin9.0
rubinius 1.0.0-rc1 (1.8.7 0f83f82c 2009-11-25 JI) [i686-apple-darwin9.8.0]2: xml_benchmark_rexml.rb and associated xml data file here
http://svn.concord.org/svn/projects/trunk/common/ruby/xml_benchmarks/FYI, this is extracted from larger set described here: http://gist.github.com/244822
Comments
-
5 comments Created 2 months ago by ruebuildxgccxmacxMelbourne MRI Build Flags May Cause Build Conflict on OS XextensionxIt seems that building the Melbourne extension for MRI (as part of regular build) will use flags from the MRI installation, which can cause an issue if trying to build Rubinius on a different version of GCC. For example, a MRI built on GCC 4.0.1 may (will?) have -arch in its flagset, and this will cause an error on GCC 4.3+.
The workaround is to either use the same or non-conflicting GCC to build Rubinius (set $CC and $CXX), or then to first build Melbourne and then rbx:
$ CC=whatever rake extensions:melbourne_mri $ rake buildOriginal:
GCC 4.0 (at least) works fine. Workaround is to set the compiler with CC and CXX.
Investigate whether it is really necessary to add the arch flag at all and either remove it or improve detection to only use it when appropriate.
Comments
Looks like the flag is being inserted in the Melbourne Makefile...trying to figure out where to disable feeding it.
Are you using a custom gcc build on mac? If so, thats probably the cause. Is this error occurring trying to compile melbourne for MRI? Seems like that might be the case. MRI inserts those arch flags when mkmf is used (because it pulls flags from how it was itself compiled).
This seems to be it, yes...revised title to reflect issue (while reflecting on how/if to fix it.)
Please log in to comment.I believe you've got this confused slightly. Melbourne is built twice, once for MRI, and once for Rubinius. When it's built for MRI, it automatically picks up whatever flags MRI was built with (the arch flags). When it is built for Rubinius, it does not use the MRI flags, since they make no sense in that context.
I think you're issue is compiling melbourne for MRI, really unrelated to Rubinius.
-
1 comment Created 2 months ago by FreakyMissing -pthread during linking on FreeBSDbuildxLinking
vm/vmfails because it's unable to find various pthread functions. One-line fix:diff --git a/rakelib/vm.rake b/rakelib/vm.rake index 93d7c51..9b6d62d 100644 --- a/rakelib/vm.rake +++ b/rakelib/vm.rake @@ -230,7 +230,7 @@ def ld(t) link_opts = llvm_link_flags() link_opts += ' -Wl,--export-dynamic' if RUBY_PLATFORM =~ /linux/i - link_opts += ' -rdynamic' if RUBY_PLATFORM =~ /bsd/ + link_opts += ' -pthread -rdynamic' if RUBY_PLATFORM =~ /bsd/ ld = ENV['LD'] || 'g++'I'm not sure how applicable this is to the other BSD's, though.
Comments
-
Howdy, I just installed RC1 to check compatibility with FakeWeb. I got a bunch of errors in our test suite because
OpenSSL::SSLseems to be missing. Is the OpenSSL implementation incomplete? Or is there something wrong with my installation?$ ruby -v -r net/https -e "Net::HTTP.new('example.com').use_ssl = true" rubinius 1.0.0-rc1 (1.8.7 release 2009-11-25 JI) [x86_64-apple-darwin10.2.0] An exception occurred evaluating command line code Missing or uninitialized constant: SSL (NameError) Backtrace: Module#const_missing at kernel/common/module.rb:490 Net::HTTP#use_ssl= at lib/net/https.rb:124 Object#__eval__ at __unknown__.rb:1 Kernel(Rubinius::Loader)#eval at kernel/common/eval.rb:102 Rubinius::Loader#evals {} at kernel/loader.rb:323 Array#each at kernel/bootstrap/array.rb:156 Rubinius::Loader#evals at kernel/loader.rb:322 Rubinius::Loader#main at kernel/loader.rb:466 Object#__script__ at kernel/loader.rb:470Comments
-
0 comments Created 2 months ago by evanphxJIT should deoptimize a function on uncommonsJITxThe JIT should detect that a function is taking too many uncommon exits and deoptimize it.
Comments
Please log in to comment. -
2 comments Created 2 months ago by epitron./configure doesn't check for readline.hbuildxMy build failed because I didn't have readline.h installed. Simple to fix, but there's no indication what's wrong because the GCC output is piped to /dev/null, and ./configure should be checking for its presence.
Comments
Exact same problem with ruby.h zlib.h openssl/ossl_typ.h
Sometimes the error messages are helpful, sometimes is deeply cryptic. Either way, ./configure should catch these and fail before compile time.
Please log in to comment.AND! Error messages from the compiler should always be displayed to the user.
-
Whenever I run rake in the project directory, it fails on rakelib/vm.rake:195 with an undefined method 'each' for nil:NilClass error.
Comments
-
0 comments Created 2 months ago by speedmaxrspec 1.2.9 raise ObjectBoundsExceededErrorarrayxit runs fine in both 1.8 and 1.9, This could be a rspec issue since it doesn't check if it's trying to delete out of bound index from a array.
Problem file ~/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb
def parse_drb argv = @options.argv is_drb = false is_drb ||= argv.delete(OPTIONS[:drb][0]) # <= Basically these is_drb ||= argv.delete(OPTIONS[:drb][1]) # <= bad boys return false unless is_drb if DrbCommandLine.run(self.class.parse(argv, @error_stream, @out_stream)) @options.examples_should_not_be_run true else @error_stream.puts "Running specs locally:" false end endRubinius runs the spec fine when i force the parse_drb to return false.
Backtrace
[ /workspace/rubinius/spec ] >: ruby play_spec.rb An exception occurred running play_spec.rb Bounds of object exceeded: type: Tuple, bytes: 16, accessed: 1 (ObjectBoundsExceededError) Backtrace: Array#delete at kernel/common/array.rb:1783 Spec::Runner::OptionParser#parse_drb at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb:196 Spec::Runner::OptionParser#order! at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb:130 Spec::Runner.options at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/runner.rb:53 Spec::Runner::ExampleGroupCreationListener#register_example_group at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/runner.rb:18 Spec::Example::ExampleGroupFactory::ClassMethods(Class)#register_example_group {} at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example /example_group_factory.rb:19 Array#each at kernel/bootstrap/array.rb:156 Spec::Example::ExampleGroupFactory::ClassMethods(Class)#register_example_group at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb:18 Spec::Example::ExampleGroupMethods(Class)#inherited at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb:30 Class#initialize at kernel/common/class.rb:76 Spec::Example::ExampleGroupMethods(Class)#subclass at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb:180 Spec::Example::ExampleGroupMethods(Class)#describe at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb:55 Spec::Example::ExampleGroupFactory::ClassMethods(Class)#create_example_group at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb:31 Spec::DSL::Main(Object)#describe at /Users/taylorluk/.rvm/gems/rbx/head/gems/rspec-1.2.9/lib/spec/dsl/main.rb:28 main.__script__ at play_spec.rb:3 Rubinius::CompiledMethod#as_script at kernel/common/compiled_method.rb:230 Requirer::Utils.single_load at kernel/delta/requirer.rb:236 Requirer::Utils.load_from_extension at kernel/delta/requirer.rb:321 Rubinius::Loader#script at kernel/loader.rb:334 Rubinius::Loader#main at kernel/loader.rb:448 Object#__script__ at kernel/loader.rb:452Comments
Please log in to comment. -
0 comments Created 4 months ago by brixenRubinius allows method to be bound where MRI does notkernelxReported by wycats as Lighthouse issue 781.
module Annotations def self.extend(klass) klass.class_eval { include Annotation } end def annotate(module_name, &block) new_module = Module.new do @@execute_method = Annotations.const_get(module_name).method(:execute) def self.method_added(name) original_method = instance_method(name) remove_method(name) method_module = Module.new do define_method(name, original_method) end execute_module = Module.new do define_method(name, @@execute_method) end include method_module include execute_module end end new_module.module_eval(&block) include new_module end end module Annotations module Logging def self.execute(*args, &block) puts "ARGS: #{args}" super end end end class Foo extend Annotations annotate :Logging do def hello puts "HELLO" end end end puts Foo.new.helloResult in MRI:
annotations.rb:52:in `hello': singleton method bound for a different object (TypeError) from annotations.rb:52Result in Rubinius
ARGS: An exception occurred running annotations.rb No method 'execute' on Annotations::Logging (Module) (NoMethodError) Backtrace: Kernel(Module)#execute (method_missing) at kernel/delta/kernel.rb:45 Annotations::Logging.execute at annotations.rb:37 Method#call at kernel/common/method.rb:70 Rubinius::DelegatedMethod#call at kernel/common/delegated_method.rb:17 main.__script__ at annotations.rb:52 Rubinius::CompiledMethod#as_script at kernel/common/compiled_method.rb:216 Compiler::Utils.single_load at kernel/compiler/compile.rb:244 Compiler::Utils.load_from_extension at kernel/compiler/compile.rb:329 Rubinius::Loader#script at kernel/loader.rb:326 Rubinius::Loader#main at kernel/loader.rb:406 Object#__script__ at kernel/loader.rb:454Comments
Please log in to comment. -
2 comments Created 4 months ago by brixenvmxTypeError in string interpolation (when #to_s does not return a String)kernelxLH 765 by shugo.
Rubinius handles the following script differently from MRI. Is it intensional?
$ cat t.rb x = Object.new def x.to_s return 1 end p "#{x}" $ ruby-1_8_6 -v t.rb ruby 1.8.6 (2008-08-08 patchlevel 286) [i686-linux] "#<Object:0xb7dedbd8>" $ rbx -v t.rb rubinius 0.11.0-dev (ruby 1.8.6) (eabf5ec7d 12/31/2009) [i686-pc-linux-gnu] An exception has occurred: Tried to use non-reference value 0x3 as type String (48) (TypeError) Backtrace: Compiler::Utils.single_load at kernel/compiler/compile.rb:245 Compiler::Utils.load_from_extension at kernel/compiler/compile.rb:323 Object#__script__ at kernel/loader.rb:240Comments
# We also do not handle any case where #to_s does not actually return a # String instance.So yes, it seems that it's intentional.
Please log in to comment.Umm, just realized you wrote the comment I quoted. So uhh.. yeah.
-
0 comments Created 4 months ago by brixenNot correctly distinguishing vcall in IRBcompilerxLH 717 reported by Charles L
gauss:rubinius brian$ bin/rbx irb(main):001:0> a = 1; a() => 1 irb(main):002:0> b = 1 => 1 irb(main):003:0> b() => 1 irb(main):004:0>
gauss:rubinius brian$ irb >> a = 1; a() NoMethodError: undefined method `a' for main:Object from (irb):1 >> b = 1 => 1 >> b() NoMethodError: undefined method `b' for main:Object from (irb):3 >>Evan's comment:
I investigated this a bit more today. The fix is to, when vcall is normalized, remember that it was a vcall in some way.
That way, we can only check for a local variable override where a vcall was used. This is tricky right now, because adding things to the sexp form blows up the compiler, since it's using .last for a number of things related to inspecting a call sexp (and expecting an s(:arglist...))
I tried to add a @style instance variable to the sexp, but it never makes it all the way through the pipeline, I'm assuming due to the sexp being pulled apart and rebuilt, which looses the ivars.
Comments
Please log in to comment. -
Local variables in blocks leak their existence (in IRB)
1 comment Created 4 months ago by brixenLH 522 reported by manveru.
I found that there is a different behaviour in rubinius for local variables assigned in a block.
# Ruby 1.8: 10.times{ bar = 1 }; bar #=> NameError: undefined local variable or method `bar' for main:Object # Rubinius 10.times{ bar = 1 }; bar # nilAccording to evan, the following sexp has to change.
pp "10.times { bar = 1 }; bar".to_sexp [:block, [:newline, 1, "(eval)", [:iter, [:call, [:lit, 10], :times], nil, [:block, [:dasgn_curr, :bar], [:newline, 1, "(eval)", [:lasgn, :bar, [:lit, 1]]]]]], [:newline, 1, "(eval)", [:lvar, :bar, 0]]]that should read
pp "10.times { bar = 1 }; bar".to_sexp [:block, [:newline, 1, "(eval)", [:iter, [:call, [:lit, 10], :times], nil, [:block, [:dasgn_curr, :bar], [:newline, 1, "(eval)", [:lasgn, :bar, [:lit, 1]]]]]], [:newline, 1, "(eval)", [:vcall, :bar, 0]]]so the :lvar on the last line becomes :vcall
Comments
-
0 comments Created 4 months ago by brixenSend patch to get libxml-ruby gem to buildcapixThe libxml-ruby gem builds under the rbx C-API except for this error. Send a patch to not use st_foreach:
case T_HASH: st_foreach(RHASH_TBL(nslist), iterate_ns_hash, self); break;ruby_xml_xpath_context.c: In function ‘rxml_xpath_context_register_namespaces’: ruby_xml_xpath_context.c:223: warning: implicit declaration of function ‘assert’ ruby_xml_xpath_context.c:223: error: syntax error before ‘?’ token ruby_xml_xpath_context.c:223: error: syntax error before ‘)’ token
Comments
Please log in to comment. -
Reported by pluskid LH 310
The second optional argument of Regexp.new can be used to indicate the language/encoding.
The default behavior:
re = Regexp.new(".") str = "中文" # or "\344\270\255\346\226\207" in utf-8 encoding re.match(str)[0] # => "\344"When specifying the language/encoding:
re = Regexp.new(".", nil, 'u') str = "中文" # or "\344\270\255\346\226\207" in utf-8 encoding re.match(str)[0] # => "\344\270\255"However, there's a global variable $KCODE that indicate the current language/encoding. When set, the regexp should behavior according to this, thus:
$KCODE = 'u' re = Regexp.new(".") str = "中文" # or "\344\270\255\346\226\207" in utf-8 encoding re.match(str)[0] # => "中" or "\344\270\255" in utf-8 encodingThose are Ruby 1.8 behavior. Since Ruby 1.9 gains full Unicode support, the global variable $KCODE is no longer used. I think Rubinius is currently making capability mainly to Ruby 1.8, so this should be considered.
One way to fix this, I think, is to change the default value for the second optional argument (lang) of Regexp.new from "nil" to "$KCODE".
I don't know whether Rubinius and Ruby1.8 use the same regexp engine. But it seems that even though I set $KCODE to 'u' in Ruby1.8. The code
Regexp.new(".").inspectwill return "/./" but
Regexp.new(".", nil, "u").inspectreturns "/./u" . However, the "/./" can successfully match a multi-byte character when setting $KCODE to 'u', but fails in Rubinius. So I think maybe some better way is to patch the regexp engine to take care of the global variable instead of patch the Regexp.new method.
Comments
Please log in to comment. -
LH 542
Add hooks like rubyprof uses so that we can get rcov running.
Comments
Please log in to comment. -
Use monotonic clock if possible (instead of gettimeofday)
0 comments Created 4 months ago by brixenReported by zimbatm LH 279
Paraphrasing: "gettimeofday" is used in various places. This could possibly cause timing problems if the system date is changed between the uses.
(I don't know if this is an issue.)
Suggested fix:
I find that "get_clock" in libev's "ev.c" is a good implementation but it is not exported in "ev.h". It would be nice if libev would also export it's cross-platform timers independently.
Comments
Please log in to comment. -
Reported by Tony Arcieri LH 536
Multiplexing different types of events on Channels is presently pretty difficult, to the point that IO#select cannot be implemented.
Evan threw out the idea of event objects. These could hopefully store any data resulting from I/O completions, the source of the I/O event, or completely non-I/O related things as not all events are I/O related, such as timeout events.
Event objects could abstract interaction with scheduler directly, e.g.:
te = TimeoutEvent.perform chan, 5.0, value
re = ReadEvent.perform chan, io, 4096, value(where value is an optional user-specified parameter)
when the event occurs, a corresponding Event object is written to the channel, which would include the event type through the nature of its class, and also provide accessors for the event source, any data that may have resulted from the event (e.g. data read from an IO object), and the user value, if it was specified.
This would make for easy case-based processing of IO events, e.g.:
ev = chan.receive
case ev
when ReadEvent then read_handler(ev)
when WriteEvent then write_handler(ev)
when TimeoutEvent then timeout_handler(ev)
... endComments
Please log in to comment. -
Reported by kwatch LH 319
$SAFE is Proc local in Ruby but not in Rubinius.
hoge.rb:
puts "*** before: $SAFE=#{$SAFE.inspect}" proc { $SAFE = 2 puts "*** in proc: $SAFE=#{$SAFE}" }.call puts "*** after: $SAFE=#{$SAFE.inspect}"result:
$ ruby hoge.rb *** before: $SAFE=0 *** in proc: $SAFE=2 *** after: $SAFE=0 # not changed $ shotgun/rubinius hoge.rb *** before: $SAFE=0 *** in proc: $SAFE=2 *** after: $SAFE=2 # CHANGED!
environment:
$ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-darwin8.11.1] $ shotgun/rubinius -v rubinius 0.8.0 (ruby 1.8.6 compatible) (2ffa558ee) (02/08/2008) [i686-apple-darwin8.11.1]
Comments
-
Incorrect Process.setrlimit spec on (some?) Linux
0 comments Created 4 months ago by brixenReported by Wilson LH 378
The Process.setrlimit spec for RLIMIT_MEMLOCK needs revision on Linux.
It appears to fail because the lim/max return values are not necessarily valid arguments to setrlimit.
While this is retarded, it is real, and needs some work.I am currently installing Ubuntu so that I can debug this mess.
Process.setrlimit and Process.getrlimit limit and get total size for mlock(2) (bytes) ERROR Invalid argument: Errno.handle at kernel/core/errno.rb:19 Process.setrlimit at kernel/core/process.rb:35 Object#__script__ {} at ./spec/ruby/1.8/core/process/setrlimit_spec.rb:73Comments
Please log in to comment. -
Reported by agardiner LH 497
A seek error results on a socket when an attempt is made to write to a socket on which there is also data still to be read. On MatzRuby, no error occurs.
The exception on RBX is as follows:
Unable to seek (ESPIPE) Backtrace: IO(TCPSocket)#seek at kernel/core/io.rb:507 IO(TCPSocket)#write at kernel/core/io.rb:490 IO(TCPSocket)#puts {} at kernel/core/io.rb:371 Array#each at kernel/core/array.rb:573 IO(TCPSocket)#puts at kernel/core/io.rb:355 Object#__script__ at /home/ads/test_client.rb:10 CompiledMethod#as_script at kernel/core/compiled_method.rb:326 Compile.single_load at kernel/core/compile.rb:238 Compile.load_from_extension at kernel/core/compile.rb:310 Object#__script__ at kernel/loader.rb:201The following server and client code can be used to reproduce the problem:
Server code
require 'socket' REMOTE_DEBUG_PORT = 1098 TEST_DATA = " Here is some multi-line data " port = ARGV.shift || REMOTE_DEBUG_PORT server = TCPServer.open(port) puts "*** waiting for client..." socket = server.accept puts "Sending data" TEST_DATA.each_line {|l| socket.puts l} socket.flush resp = socket.gets socket.closeClient code
require 'socket' host = ARGV[0] || 'localhost' port = ARGV[1] || 1098 socket = TCPSocket.new(host, port) puts "Connected to server on #{host}:#{port}" while line = socket.gets puts line socket.puts line end socket.closeComments
Some progress toward a patch by Benjamin Stiglitz: http://gist.github.com/204795
Please log in to comment.Wilson's comment:
"This has some CI failures, because it looks like syswrite needs to not rewind. Could you take another look?
See 1.8/core/io/syswrite_spec.rb for some of the failures. "
-
Reported by Lin Jen-Shin LH 729
Greetings, I sent below to rubinius-dev mailing list but it didn't show up in google group, so I re-post them here.
Sorry if it's wrong place to post here.
I am not (yet) digging into source code,
and I guess IncludedModule was created
for separating each included module.
For example:
http://gist.github.com/30606 (first one or below)module M def m end end module K end class C include K end module K include M end C.new.m # => undefined method class D include K end D.new.m # => nil C.new.m # => undefined method
Things are different in Kernel, because there's no
IncludedModule for Kernel in superclass_chain:
http://gist.github.com/30606 (last one or below)module M def m end end module Kernel include M end class C end C.new.m # => undefined method class D include Kernel end D.new.m # => nil C.new.m # => nil in Rubinius # undefined method in MRI 1.8/1.9 and JRuby
Should there be (an) IncludedModule(s) for Kernel?
Thanks and cheers,
Comments
Please log in to comment. -
1 comment Created 3 months ago by GICodeWarriorSegfault when pasting code into irbcrashxHere is a transcript of it in action with a gdb trace.
http://gist.github.com/212795Rubinius version: 590b40c
I can't reproduce the failure when running a file with the same code.
Comments
-
1 comment Created 7 months ago by morrisConst Assignment gives unexpected behaviouronholdxAssigning to already defined constants gives unexpected behaviour or even segmentation faults. I have built from latest git. Examples:
String = nil
puts "foo"
=> Segmentation FaultString = nil
class String; end
=> Segmentation FaultArray = nil
puts "foo"
=> (Nothing gets printed)Array = nil
class Array; end
=> (Nothing happens)Fixnum = nil
puts 42
=> 42Fixnum = nil
class Fixnum; end
=> Fixnum is not a class (TypeError) with backtrace: Exception occurred during top-level exception output! (THIS IS BAD)In all of this, Fixnum seems to behave most correctly. I haven't tried any other constants.
Comments
-
2 comments Created 2 months ago by zacheryphstripping vm/vm (rbx) breaks rubinius.buildxif vm/vm (rbx) is stripped, it no longer works.
liquid:rubinius context$ ./bin/rbx -v
rubinius 0.13.0-dev (1.8.7 cde67054 2009-11-06) [x86_64-apple-darwin10.2.0]
liquid:rubinius context$ strip vm/vm
liquid:rubinius context$ ./bin/rbx -v
Fatal error loading runtime kernel:
Unable to find FFI 'ffi_environ' in: this process
0x7fff5fbfd480: #raise in kernel/alpha.rb:160 (+50)
0x7fff5fbfd830: #attach_function in kernel/platform/library.rb:108 (+114)
0x7fff5fbfdc60: Rubinius::EnvironmentAccess.module_init in kernel/platform/env.rb:9 (+87)
0x7fff5fbfdfe0: Rubinius.module_init in kernel/platform/env.rb:2 (+30)
0x7fff5fbfe370: Object#script in kernel/platform/env.rb:1 (+28)
Fatal error loading runtime kernel:
Unable to find FFI 'ffi_errno' in: this process
0x7fff5fbfd800: #raise in kernel/alpha.rb:160 (+50)
0x7fff5fbfdbb0: #attach_function in kernel/platform/library.rb:108 (+114)
0x7fff5fbfdfe0: FFI::Platform::POSIX.module_init in kernel/platform/posix.rb:8 (+27)
0x7fff5fbfe370: Object#script in kernel/platform/posix.rb:4 (+32)
Fatal error loading runtime kernel:
Unable to send 'malloc' on 'FFI::Platform::POSIX' (Module)
0x7fff5fbfcd00: #raise in kernel/alpha.rb:160 (+50)
0x7fff5fbfd0b0: #malloc in kernel/alpha.rb:186 (+41)
0x7fff5fbfd490: MemoryPointer.new in kernel/platform/memorypointer.rb:64 (+104)
0x7fff5fbfd890: FFI::Struct#initialize in kernel/platform/struct.rb:70 (+62)
0x7fff5fbfdc40: Class#new in kernel/alpha.rb:100 (+16)
0x7fff5fbfdfe0: File::Stat.class_init in kernel/common/file.rb:838 (+60)
0x7fff5fbfe370: Object#script in kernel/common/file.rb:831 (+126)
Fatal error loading runtime kernel:
Unable to send 'isatty' on 'FFI::Platform::POSIX' (Module)
0x7fff5fbfd4f0: #raise in kernel/alpha.rb:160 (+50)
0x7fff5fbfd8a0: #isatty in kernel/alpha.rb:186 (+41)
0x7fff5fbfdc80: IO#tty? in kernel/common/io.rb:1446 (+17)
0x7fff5fbfdff0: Rubinius.module_init in kernel/delta/rubinius.rb:2 (+10)
0x7fff5fbfe370: Object#script in kernel/delta/rubinius.rb:1 (+28)
exception detected at toplevel: No method 'add_reader' on Rubinius (Module) (NoMethodError)
kernel/delta/kernel.rb:47
kernel/delta/module.rb:110
kernel/bootstrap/array.rb:156
kernel/delta/module.rb:110
kernel/delta/options.rb:8
kernel/delta/options.rb:7
kernel/delta/options.rb:4
kernel/delta/options.rb:1
Unknown VM exception detected.
2 rbx 0x00000001000523a5 rubinius::event::Write::~Write() + 4149
3 rbx 0x0000000100052480 rubinius::event::Write::~Write() + 4368
4 rbx 0x000000010004dd7b std::Rb_tree<std::string, std::pair<std::string const, rubinius::ConfigParser::Entry*>, std::Select1st<std::pair<std::string const, rubinius::ConfigParser::Entry> >, std::less<std::string>, std::allocator<std::pair<std::string const, rubinius::ConfigParser::Entry> > >::M_erase(std::Rb_tree_node<std::pair<std::string const, rubinius::ConfigParser::Entry> >) + 6507
5 rbx 0x000000010004e440 std::Rb_tree<std::string, std::pair<std::string const, rubinius::ConfigParser::Entry*>, std::Select1st<std::pair<std::string const, rubinius::ConfigParser::Entry> >, std::less<std::string>, std::allocator<std::pair<std::string const, rubinius::ConfigParser::Entry> > >::M_erase(std::Rb_tree_node<std::pair<std::string const, rubinius::ConfigParser::Entry> >) + 8240
6 rbx 0x0000000100179f10 std::right(std::ios_base&) + 832
7 rbx 0x000000010017a610 std::right(std::ios_base&) + 2624
8 rbx 0x0000000100011498 llvm::cl::ValuesClass llvm::cl::values(char const, int, char const, ...) + 6296
9 ??? 0x0000000000000002 0x0 + 2Comments
-
i tried installing the rjb gem without installing rubinius (that is, running rbx directly after 'rake'. i didn't install since that did not succeed, see another issue)
bin/rbx gem install rjb-1.1.6.gem --no-rdoc --no-ri Building native extensions. This could take a while...
ERROR: Error installing rjb-1.1.6.gem:
ERROR: Failed to build gem native extension./work/research/rubinius/bin/rbx extconf.rb checking for jni.h... yes
checking for dl.h... no
checking for ruby/dl.h... no
extconf.rb failedComments
Ok, looks like the rjb gem requires some C headers we don't yet have implemented.
Please log in to comment.I would guess thats a header file for the DL extension
-
Since @subclasses stores the list of classes that are inherited, the class definition will not be garbage collected due to being referenced in this list.
Comments
Please log in to comment. -
0 comments Created 2 months ago by dbussinkEBADF sometimes occuring during rdoc / ri phase of gem installsporadicxThis is what happens sometimes during a gem install:
Successfully installed json_pure-1.2.0
Successfully installed rubyforge-2.0.3
Successfully installed hoe-2.3.3
3 gems installed
Installing ri documentation for json_pure-1.2.0...
Installing ri documentation for rubyforge-2.0.3...
Installing ri documentation for hoe-2.3.3...
ERROR: While executing gem ... (EBADF)
Bad file descriptor - read(2) failedAssertion failed: (0), function lock, file vm/util/thread.hpp, line 309.
I haven't been able to reproduce this reliably, if i can get more information out of it, I'll add it to this issue.
Comments
Please log in to comment. -
0 comments Created 2 months ago by brianmariohangxrake gems:install pegs CPU, endlessly eats RAM until it finishes or I kill itrubygemsxInitially the CPU is pegged at ~180% and slowly drops to ~100% which leads me to think there's more than one thread eating CPU at first.
It also continuously eats RAM slowly (I think it's around 500k-1MB/sec or so) until it finishes or I kill it. I've left it running for over 15min before killing it, and hadn't installed a single gem in that time.The gem list from environment.rb in question:
config.gem 'logging', :version => '1.2.2'
config.gem 'fastercsv', :version => '1.4.0'
config.gem 'ruport', :version => '1.6.1'
config.gem 'vpim', :version => '0.695'
config.gem 'right_aws', :version => '1.10.0' # required by paperclip
config.gem 'bcrypt-ruby', :lib => 'bcrypt', :version => '2.1.2'
config.gem 'yajl-ruby', :lib => 'yajl', :version => '0.6.5'
config.gem 'nokogiri', :version => '1.4.0'
config.gem "taf2-curb", :lib => 'curb', :version => '0.5.4.0', :source => 'http://gems.github.com'
config.gem 'pauldix-feedzirra', :lib => 'feedzirra', :version => '0.0.18', :source => 'http://gems.github.com'
config.gem 'activemerchant', :lib => 'active_merchant', :version => '1.4.2wp'
config.gem 'libxml-ruby',:version => '>= 0.7', :lib => "libxml"
config.gem 'rspec', :lib => false, :version => '1.2.9'
config.gem 'rspec-rails', :lib => false, :version => '1.2.9'
config.gem 'mocha', :lib => false, :version => '0.9.8'
config.gem 'rcov', :lib => false, :version => '0.9.6'Comments
Please log in to comment. -
This is a bug for the website http://rubini.us/community.html (couldn't find a bug report area for the website).
On the above page the last sentence "always be able to answer questions–all we ask" contains an invalid character in the word "questions". Perhaps someone copy and pasted from a text editor like Word?
David
Comments
Please log in to comment. -
Error installing documentation for actionpack
0 comments Created 2 months ago by jarnold$ sudo rbx gem install rails Successfully installed activesupport-2.3.5
Successfully installed activerecord-2.3.5
Successfully installed rack-1.0.1
Successfully installed actionpack-2.3.5
Successfully installed actionmailer-2.3.5
Successfully installed activeresource-2.3.5
Successfully installed rails-2.3.5
7 gems installed
Installing ri documentation for activesupport-2.3.5...
Installing ri documentation for activerecord-2.3.5...
Installing ri documentation for rack-1.0.1...
Installing ri documentation for actionpack-2.3.5...
ERROR: While executing gem ... (TypeError)
wrong argument type nil (expected Data)Comments
Please log in to comment. -
0 comments Created 2 months ago by dbussinkObjectBoundsExceededError occurs during ri / rdoc phase for gem installsporadicxAn exception occurred running /usr/bin/gem
Bounds of object exceeded: type: Tuple, bytes: 32, accessed: 3(ObjectBoundsExceededError)
Backtrace:
Array#delete at kernel/common/array.rb:495 ConditionVariable#wait at lib/thread.rb:166 SizedQueue#push {} at lib/thread.rb:382 Mutex#synchronize at lib/thread.rb:106 SizedQueue#<< (push) at lib/thread.rb:378 RDoc::RDoc#parse_files {} at gems/rubinius/preinstalled/gems/rdoc-2.4.3/lib/rdoc/rdoc.rb:258 Array#each at kernel/bootstrap/array.rb:156 RDoc::RDoc#parse_files at gems/rubinius/preinstalled/gems/rdoc-2.4.3/lib/rdoc/rdoc.rb:257 RDoc::RDoc#document at gems/rubinius/preinstalled/gems/rdoc-2.4.3/lib/rdoc/rdoc.rb:301 Gem::DocManager#run_rdoc at lib/rubygems/doc_manager.rb:190 Gem::DocManager#install_ri at lib/rubygems/doc_manager.rb:149 Gem::DocManager#generate_ri at lib/rubygems/doc_manager.rb:109Gem::Commands::InstallCommand#execute {} at lib/rubygems/commands/install_command.rb:144
Array#each at kernel/bootstrap/array.rb:156Gem::Commands::InstallCommand#execute at lib/rubygems/commands/install_command.rb:143 Gem::Command(Gem::Commands::InstallCommand)#invoke at lib/rubygems/command.rb:257
Gem::CommandManager#process_args at lib/rubygems/command_manager.rb:132 Gem::CommandManager#run at lib/rubygems/command_manager.rb:102 Gem::GemRunner#run at lib/rubygems/gem_runner.rb:58 main.__script__ at /usr/bin/gem:24 Rubinius::CompiledMethod#as_script at kernel/common/compiled_method.rb:230 Requirer::Utils.single_load at kernel/delta/requirer.rb:236Requirer::Utils.load_from_extension at kernel/delta/requirer.rb:321
Rubinius::Loader#script at kernel/loader.rb:376 Rubinius::Loader#main at kernel/loader.rb:485 Object#__script__ at kernel/loader.rb:489Comments
Please log in to comment. -
0 comments Created 2 months ago by dbussinkSegfault when using profiler during gem installcrashxThe following command reliably causes a segfault:
./bin/rbx -rprofile -S gem install rspec
For a complete gdb backtrace, please look at:
Comments
Please log in to comment. -
WEBrick returning 'Not Found' with Rails 2.3.5
1 comment Created 2 months ago by jarnoldBuilt and installed rubinius without llvm
Created a rails 2.3.5 application with this command: $ rbx -S rails sampleapp
Ran: $ rbx script/server=> Booting WEBrick => Rails 2.3.5 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2009-12-07 15:57:04] INFO WEBrick 1.3.1 [2009-12-07 15:57:04] INFO ruby 1.8.7 (2009-11-25) [i686-apple-darwin9.8.0] [2009-12-07 15:57:04] INFO WEBrick::HTTPServer#start: pid=29051 port=3000 [2009-12-07 15:57:09] ERROR `/' not found.
WEBrick dished me up this in the browser:
Not Found
`/' not found. WEBrick/1.3.1 (Ruby/1.8.7/2009-11-25) at 0.0.0.0:3000Comments
-
Consistent failure of a BasicSocket#getsockopt spec
0 comments Created 2 months ago by dgtizedThe following BasicSocket#getsockopt spec fails consistently since the specs tags were updated last night. Given that it doesn't fail when boyscout runs it, I'm guessing it's a platform issue.
bin/mspec ci -B full --background rubinius 1.0.0-rc1 (1.8.7 2ee96107 2009-11-25 JI) [x86_64-unknown-linux-gnu] ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................E...................................................................................................................................................................................................................................................................................................................................................... 1) BasicSocket#getsockopt gets a socket option Socket::SO_SNDBUF ERROR NoMethodError: No method '>' on an instance of NilClass. Kernel(NilClass)#> (method_missing) at kernel/delta/kernel.rb:49 #.__script__ {} at spec/frozen/library/socket/basicsocket/getsockopt_spec.rb:35 Kernel(Object)#instance_eval at kernel/common/eval.rb:136 Enumerable(Array)#all? {} at kernel/common/enumerable.rb:266 Array#each at kernel/bootstrap/array.rb:156 Enumerable(Array)#all? at kernel/common/enumerable.rb:266 Array#each at kernel/bootstrap/array.rb:156 main.__script__ at spec/frozen/library/socket/basicsocket/getsockopt_spec.rb:4 Rubinius::CompiledMethod#as_script at kernel/common/compiled_method.rb:230 Requirer::Utils.single_load at kernel/delta/requirer.rb:236 Requirer::Utils.unified_load at kernel/delta/requirer.rb:80 Kernel.load at kernel/common/kernel.rb:687 Kernel(Object)#instance_eval at kernel/common/eval.rb:136 Array#each at kernel/bootstrap/array.rb:156 Rubinius::CompiledMethod#as_script at kernel/common/compiled_method.rb:230 Requirer::Utils.single_load at kernel/delta/requirer.rb:236 Requirer::Utils.load_from_extension at kernel/delta/requirer.rb:321 Rubinius::Loader#script at kernel/loader.rb:376 Rubinius::Loader#main at kernel/loader.rb:485 Object#__script__ at kernel/loader.rb:489 Finished in 63.856486 seconds 3018 files, 11552 examples, 35630 expectations, 0 failures, 1 error rake aborted! Command failed with status (1): [bin/mspec ci -B full --background...] /home/clgc/languages/rbx/Rakefile:36 (See full trace by running task with --trace)System Info
$ uname -a Linux consistency 2.6.31-16-generic #52-Ubuntu SMP Thu Dec 3 22:07:16 UTC 2009 x86_64 GNU/Linux $ gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) $ ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux]
Comments
Please log in to comment.




I ran rbx with -P and got the following (top 5 anyway)