Rubinius has always tried to provide a lot of information to you as a developer about runtime information. Things like the variable scope and constant scope are already available. In this post I'd like to describe a small new API that is available for even more information.
Servers and web servers : the web is here to stay but the argument that all applications are going to be in Javascript on the client is not valid. A variety of hybrid client-server architectures will continue to be the norm. We need software that enables application authors to build a...
The Rubinius team is now focused on pushing Rubinius into the hands of all developers. To that end, the current highlevel roadmap goals for the next major release are: Microsoft Windows support Ruby 1.9 support Full CPU concurrency (hydra) This roadmap is short on details about these ...
Rubinius supports the same basic concurrency constructs as Ruby, Threads and Fibers, along with a new API: Actors. Actors provide concurrency without any mutexes or locking inherent when sharing state between Threads. Actors execute concurrently but don’t share state; instead they pas...
In Ruby land, the Rubinius::Profiler::Instrumenter instance exposes nothing about the multi-threaded reality in the VM. The individual C++ Profiler instances are not exposed to Ruby. In Ruby, a profiler instance is created. That instance can simply start and stop the VM profiler. When...
samples % linenr info app name symbol name 3468 27.0388 instructions.cpp:82 rbx rubinius::MachineCode::interpreter(rubinius::State*, rubinius::MachineCode*, rubinius::InterpreterCallFrame*) 3048 23.7642 loop.rb:7 5060.jo _X_Object#forever$block@1 # => Wow, the name of JIT-ted Ruby cod...
Last week, Dirkjan spent the week with me at the Engine Yard office in Portland, OR. We wanted to discuss a variety of topics related to Rubinius technology. We started the week by making the following list: Inline cache JIT IR Performance of JIT’d code Extension API Concurrency and g...
This week, Dirkjan is working from the Engine Yard office in Portland, OR. We’ve got a list of topics that we’re delving into to get ready for several technology improvements in Rubinius. We started with a list of five things, one for each day. Unfortunately, time always goes faster t...
Heroku (Cedar) + Rubinius 2 + Puma 2 in Three Easy Steps Shane Becker 26 February 2013 tl;dr It’s now very easy to get a Rails app on Heroku’s Cedar Stack running on Rubinius 2.0 and Puma 2.0 . The Backstory The fine folks at Heroku have been adding support for using Bundler to specif...
Once the parser has finished calling process_* methods an abstract syntax tree is created. The syntax tree represents the abstract syntactic structure of the parsed source code. Each node in the tree denotes a construct in the source code. This tree is composed of instances of classes...
Debugging scary crashes of Rubinius Dirkjan Bussink 04 January 2012 Bugs, we all are in the infinite fight of getting rid of them. Sometimes they are trivial, other times a bit harder. In this video I’m going to show how I have been debugging an issue that caused memory corruption of ...
The following is an alphabetical list of projects that leverage the excellent technology found in Rubinius, from the bytecode interpreter to the JIT compiler to the various tools written in Ruby, like the bytecode compiler. If your project uses Rubinius, please submit a patch to add i...
What is Rubinius? Getting Started Requirements Building Running Rubinius Troubleshooting Contributing Communication Style Guide Ruby Scripts Methods Constants Classes & Modules Blocks & Procs Local Variables Instance Variables Class Variables Global Variables Specs RubySpec Compiler S...
Rubinius is an implementation of the Ruby programming language. The Rubinius bytecode virtual machine is written in C++, incorporating LLVM to compile bytecode to machine code at runtime. The bytecode compiler and vast majority of the core classes are written in pure Ruby. To interact...
Implementing Ruby is a lot of hard work. The Rubinius project has been lucky to have more than 240 contributors , many with hundreds of commits, including code, benchmarks, documentation, translations, and more. Lately, we have seen a surge of new folks working hard on 1.9 language fe...