summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/error.rb6
-rw-r--r--mrblib/kernel.rb35
-rw-r--r--mrblib/mrblib.rake4
-rw-r--r--mrblib/print.rb18
4 files changed, 18 insertions, 45 deletions
diff --git a/mrblib/error.rb b/mrblib/error.rb
index 6e8181e9d..a5b6b3223 100644
--- a/mrblib/error.rb
+++ b/mrblib/error.rb
@@ -48,6 +48,12 @@ end
# ISO 15.2.32
class NoMethodError < NameError
+ attr_reader :args
+
+ def initialize(message=nil, name=nil, args=nil)
+ @args = args
+ super message, name
+ end
end
# ISO 15.2.33
diff --git a/mrblib/kernel.rb b/mrblib/kernel.rb
index 81d7acf5d..d0fe47300 100644
--- a/mrblib/kernel.rb
+++ b/mrblib/kernel.rb
@@ -4,39 +4,24 @@
# ISO 15.3.1
module Kernel
- # 15.3.1.2.1
- def self.`(s)
- raise NotImplementedError.new("` not implemented")
- end
-
+ # 15.3.1.2.1 Kernel.`
+ # provided by Kernel#`
# 15.3.1.3.5
def `(s)
- Kernel.`(s)
+ raise NotImplementedError.new("backquotes not implemented")
end
##
- # Calls the given block repetitively.
- #
- # ISO 15.3.1.2.8
- # provided by Kernel#loop
- # def self.loop #(&block)
- # while(true)
- # yield
- # end
- # end
+ # 15.3.1.2.3 Kernel.eval
+ # 15.3.1.3.12 Kernel#eval
+ # NotImplemented by mruby core; use mruby-eval gem
- # 15.3.1.2.3
- def self.eval(s)
- raise NotImplementedError.new("eval not implemented")
- end
-
- # 15.3.1.3.12
- def eval(s)
- Kernel.eval(s)
- end
+ ##
+ # ISO 15.3.1.2.8 Kernel.loop
+ # provided by Kernel#loop
##
- # Alias for +Kernel.loop+.
+ # Calls the given block repetitively.
#
# ISO 15.3.1.3.29
def loop
diff --git a/mrblib/mrblib.rake b/mrblib/mrblib.rake
index 0c549f5b8..d156a2683 100644
--- a/mrblib/mrblib.rake
+++ b/mrblib/mrblib.rake
@@ -6,8 +6,8 @@ MRuby.each_target do
self.libmruby << objfile("#{current_build_dir}/mrblib")
file objfile("#{current_build_dir}/mrblib") => "#{current_build_dir}/mrblib.c"
- file "#{current_build_dir}/mrblib.c" => [mrbcfile] + Dir.glob("#{current_dir}/*.rb").sort do |t|
- mrbc_, *rbfiles = t.prerequisites
+ file "#{current_build_dir}/mrblib.c" => [mrbcfile, __FILE__] + Dir.glob("#{current_dir}/*.rb").sort do |t|
+ _, _, *rbfiles = t.prerequisites
FileUtils.mkdir_p File.dirname(t.name)
open(t.name, 'w') do |f|
_pp "GEN", "*.rb", "#{t.name.relative_path}"
diff --git a/mrblib/print.rb b/mrblib/print.rb
deleted file mode 100644
index 1ae3ae84b..000000000
--- a/mrblib/print.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-##
-# Kernel
-#
-# ISO 15.3.1
-module Kernel
- def print(*a)
- raise NotImplementedError.new('print not available')
- end
- def puts(*a)
- raise NotImplementedError.new('puts not available')
- end
- def p(*a)
- raise NotImplementedError.new('p not available')
- end
- def printf(*args)
- raise NotImplementedError.new('printf not available')
- end
-end