class IRB::Irb

def run(conf = IRB.conf)

def run(conf = IRB.conf)
  conf[:IRB_RC].call(context) if conf[:IRB_RC]
  conf[:MAIN_CONTEXT] = context
  prev_trap = trap("SIGINT") do
    signal_handle
  end
  begin
    catch(:IRB_EXIT) do
      eval_input
    end
  ensure
    trap("SIGINT", prev_trap)
    conf[:AT_EXIT].each{|hook| hook.call}
  end
end