Right now, Mulligan will not compile on Rubinius or JRuby because they don't implement callcc. Create a version that will run in those rubies but disables recoveries. No code changes should be required for code that raises.
Code that rescues should check for the presence of a recovery before calling it OR, wrap all recovery-invoking code in a block specifically designed to ignore mulligan on non-compliant platforms.
with_mulligans(e) do |e|
e.recover ...
e.recover ...
e.recover ...
end
Right now, Mulligan will not compile on Rubinius or JRuby because they don't implement callcc. Create a version that will run in those rubies but disables recoveries. No code changes should be required for code that raises. Code that rescues should check for the presence of a recovery before calling it OR, wrap all recovery-invoking code in a block specifically designed to ignore mulligan on non-compliant platforms.