InfoQ

Interview

Wilson Bilkovich Discusses Rubinius

Interview with Wilson Bilkovich by Werner Schuster on Feb 17, 2008 03:21 PM

Community
Ruby
Topics
Language ,
Performance & Scalability
Tags
Virtual Machines ,
Rubinius ,
RubyGems
Summary
Wilson Bilkovich is one of the core developers of the Rubinius project - a Ruby implementation written in Ruby. Wilson is also one of the members of the Ruby Hit Squad, developers of the deployment automation tool Vlad the Deployer. In this interview with InfoQ, Wilson discusses the implementation of Rubinius, and its current status with Werner Schuster.

Bio
Wilson Bilkovich is one of the core developers of the Rubinius project - a Ruby implementation written in Ruby. Wilson is also one of the members of the Ruby Hit Squad, developers of the deployment automation tool Vlad the Deployer. Wilson blogs at http://metaclass.org/
We are here at Ruby Conf 2007. I am sitting here with Wilson Bilkovich. How about we start with you introducing yourself and tell us a bit about what you do?
Let's start with Rubinius. How did you get involved with the Rubinius project?
Can I just interject: what's a CPU? And what does a CPU.new object mean in Rubinius is that like one core, a thread, a process?
So, what's the current state of Rubinius and threading? What's your approach? Which of these approaches do you have, an Erlang approach? I saw something about the actor library by MenTaLguY I think that is his name.
Are you planning to do multiple implementations, could there be exchanged at runtime or at compiler time or what's the plan, what's the situation now or for 1.0?
Going back to your involvement with Rubinius what was the first thing you contributed? What was the first you committed, the first thing you looked at in Rubinius at home after Ruby Conf?
How was the first compiler implemented? What were you using? Were you using Ruby or C code?
Do you have an example for that?
Could you maybe explain some of the passes that the compiler goes through?
Maybe you could explain the format that you get the parse tree in is the Ruby parse tree library by Ryan Davis.
Do you know which VM architecture the VM is based on? Is that Smalltalk, the byte code or the instructions are Smalltalk like?
It's available online partly.
Can you give us the title? Do you remember it?
So primitives are a kind of API of the VM? Is that correct?
The Ruby base implementation of the standard libs like the access file system call , they call these primitives. Is that it or both?
You mentioned that there was the old compiler that you were just talking about. This is the new compiler. Can you give us a quick overview for this?
Can you say, did you keep most of the old logic that compiled the byte code and mostly this was a structural change? Is that a way to put it or not?
That was a lot of Rubinius stuff. I mean when you were not focused on Rubinius you also do a lot of other work. For instance you are part of the Ruby Hit Squad. Can you give a quick explanation what you do and what government you work for?
Is the development going on? Will you change it, fix it? Will you have another little meeting?
Distributed version systems?
Before we wrap up I would also like to mention that you also work for the RubyGem project the package management. I think you were recently involved in a rewrite that should make many people happy, speed up the index performance. Could you quickly say what you did there?
show all  show all

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.