Cucumber / RSpec Story Runner

-X:Interpret forces execution to always go through the DLR interpreter
rather than through the DLR compilation engine.

This trades-off faster startup for decreased throughput.

We have a number of different strategies that we’re exploring to improve
things:

  1. Ahead of time cached pre-compilation to native x86 via ngen
  2. Mixed mode DLR interpreter and DLR compiler. We’ll start off
    interpreting and compile the ‘hot’ code paths dynamically at runtime.
  3. Mixed mode Ruby interpreter and DLR compiler. We can improve perf
    even more by writing a Ruby specific interpreter and avoiding the tree
    transform from the Ruby AST to DLR trees for the interpreted code paths.

We really haven’t done any performance tuning of note on IronRuby so
far. We’re focusing on getting the language correct; performance will
come after we stabilize the language.

Thanks,
-John

I’m not on the same machine as earlier - the previous machine was my
work desktop PC running vista

This one is running windows XP under vmware on a macbook

Running with -X:Interpret I see 0.78 seconds on repeated runs (0.79 on
the first)
Without it I see 1.95 seconds (2.05 on the first run)

I didn’t know about -X:Interpret…
So what exactly does it do differently, and if it’s so much faster,
why isn’t it the default?

Nice work guys!! Pleased that I won’t be having to use a hacked
version of r156 :slight_smile:

One of the problems you mentioned (pretty errors due to backtrace)
will cause the story runner in 1.1.4 to blow up and throw an
exception, but as that is now Cucumber I don’t know if we will have
the same issues. Have you tried Cucumber yet?

Ben

On Wed, Oct 22, 2008 at 8:01 AM, John L. (IRONRUBY)

I’ll try cucumber tonight when i get home.
I’m trying to build a little rails app with rspec etc.

What’s the status on a .NET based active record adapter?
I’ve been thinking that it might be necessary to write an adapter that
creates the correct .NET provider and dispatches the calls through that
layer.
Either as a part of ruby-dbd or as adapters to ActiveRecord…
dbd gives the advantage that you can use it everywhere then.

any thoughts?

Met vriendelijke groeten - Best regards - Salutations
Ivan Porto C.
GSM: +32.486.787.582
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim

I’ve attached an adapter against MSSQL that I use for testing. This
adapter is buggy and incomplete and was cobbled together from many
sources. Absolutely nothing about it is guaranteed, but someone may
find some use in it.

From: [email protected]
[mailto:[email protected]] On Behalf Of Ivan Porto
Carrero
Sent: Wednesday, October 22, 2008 1:08 AM
To: [email protected]
Subject: Re: [Ironruby-core] Cucumber / RSpec Story Runner

I’ll try cucumber tonight when i get home.
I’m trying to build a little rails app with rspec etc.

What’s the status on a .NET based active record adapter?
I’ve been thinking that it might be necessary to write an adapter that
creates the correct .NET provider and dispatches the calls through that
layer.
Either as a part of ruby-dbd or as adapters to ActiveRecord…
dbd gives the advantage that you can use it everywhere then.

any thoughts?

Met vriendelijke groeten - Best regards - Salutations
Ivan Porto C.
GSM: +32.486.787.582
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim

On Wed, Oct 22, 2008 at 9:56 AM, Ben H.
<[email protected]mailto:[email protected]> wrote:
Nice work guys!! Pleased that I won’t be having to use a hacked
version of r156 :slight_smile:

One of the problems you mentioned (pretty errors due to backtrace)
will cause the story runner in 1.1.4 to blow up and throw an
exception, but as that is now Cucumber I don’t know if we will have
the same issues. Have you tried Cucumber yet?

Ben

On Wed, Oct 22, 2008 at 8:01 AM, John L. (IRONRUBY)
<[email protected]mailto:[email protected]> wrote:

We really haven’t done any performance tuning of note on IronRuby so far. We’re focusing on getting the language correct; performance will come after we stabilize the language.

To: [email protected]mailto:[email protected]
I didn’t know about -X:Interpret…

  To: [email protected]<mailto:[email protected]>
  class Vehicle
    end

  On 22/10/2008, at 6:40 PM, John L. (IRONRUBY) wrote:
  From: [email protected]<mailto:[email protected]>

3

  This will only cause rspec to lose the line number - you also have to
  I'll add a rake task to compile release. Can you try to isolate those

and it appears to work (I only have a simple test, but hey).
and it seemed to work.
module ActiveSupport; end
C:\development\irtest>ruby rspectest.rb
Just playing with VS now to see if I can build a release version and

  On Fri, Oct 17, 2008 at 2:53 PM, Curt H.
          From: [email protected]<mailto:[email protected]>
          Cucumber to write executable feature documentation for my .NET code.
          'rake-0.8.3/lib/rake'"), but some work just fine (eg.
          --

  Web Application Developer

  [email protected]<mailto:[email protected]>

<mailto:[email protected]mailto:[email protected]>
_______________________________________________


Ironruby-core mailing list
[email protected]mailto:[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Oh, I remember I had problems with cucumber due to require needing to
have .rb on the end
(http://rubyforge.org/tracker/?group_id=4359&atid=16798&func=detail&aid=20167).

For example, this line - load ‘cucumber’
E:\IronRuby\r156\src\IronRuby.Libraries\Builtins\KernelOps.cs:380:in
`load’: no such file to load – cucumber (LoadError
)
from :0

Command I was using was: E:\IronRuby\r156\build\debug>ir
“c:\ruby\bin\cucumber” -r
“E:\IronRuby\r156\cucumber\examples\calculator\features\steps
calculator_steps.rb”
“E:\IronRuby\r156\cucumber\examples\calculator\features\addition.feature”

I made a change (load ‘cucumber.rb’), but now i’m getting You must gem
install win32console to get coloured output on this ruby platform
(i386-mswin32) but no output :frowning: I guess I need to do something
else…

Well, this is how Cucumber has implement the code, as such there must
be something different. Something is happening, i’m just not sure
what, but there is a problem still with IronRuby.

The file i’m looking at is “c:\ruby\bin\cucumber” - maybe its
different due to rubygems…

Without it, i’m not sure how else to run Cucumber. For example, this
also fails to output anything:
E:\IronRuby\r156\build\debug>ir “c:\ruby\bin\cucumber” --help

This also fails:
E:\IronRuby\r156\build\debug>ir
“C:\ruby\lib\ruby\gems\1.8\gems\cucumber-0.1.8\lib\cucumber.rb” --help
ir “c:/ruby/bin/cucumber” --help

However, this works:
C:/Ruby/bin/ruby.exe “c:/ruby/bin/cucumber” --help

On Wed, Oct 22, 2008 at 8:56 PM, Orion E.

After a lot of experimentation and hacking, I was able to get Cucumber
to work with IronRuby (mostly). I was not able to get the Cucumber
output in ANSI color, but it works out fine in black and white. I also
had to disable the functionality in Cucumber that prints the source file
and line of code associated with each step. Finally, I had to re-wire
the way expectations are propagated from specification failures. I have
posted the instructions to get Cucumber working with IronRuby here:

http://www.patrickgannon.net/archive/2008/10/23/bdd-style-feature-tests-using-ironruby-and-rspeccucumber.aspx

Thanks,
Pat Gannon


Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core