lib/nydp.rb in nydp-0.4.3 vs lib/nydp.rb in nydp-0.4.5

- old
+ new

@@ -9,10 +9,13 @@ def self.apply_function ns, function_name, *args vm = VM.new(ns) function = Symbol.mk(function_name.to_sym, ns).value function.invoke vm, r2n(args) vm.thread + rescue StandardError => e + friendly_args = args.map { |a| a.respond_to?(:_nydp_compact_inspect) ? a._nydp_compact_inspect : a } + raise Nydp::Error.new("Invoking #{function_name}\nwith args #{friendly_args.inspect}") end def self.reader txt ; Nydp::StringReader.new txt ; end def self.eval_src ns, src_txt, name=nil ; eval_with Nydp::Runner, ns, src_txt, name ; end def self.eval_with runner, ns, src_txt, name ; runner.new(VM.new(ns), ns, reader(src_txt), nil, name).run ; end @@ -46,12 +49,12 @@ end end def self.repl options={ } toplevel do - silent = options.delete :silent - ns = options.delete :ns - launch_time = Time.now + launch_time = Time.now + silent = options.delete :silent + ns = options.delete :ns last_script_time = Time.now puts "welcome to nydp #{options.inspect}" unless silent reader = Nydp::ReadlineReader.new $stdin, "nydp > " ns ||= build_nydp do |script| this_script_time = Time.now