summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2013-03-23 10:59:23 +0900
committerYukihiro Matz Matsumoto <[email protected]>2013-03-23 10:59:23 +0900
commita7dc817add5542ec6806484a35cbc57e3ed10629 (patch)
treeb4424623589cba7564fe4bcc948a53bcf6645cdc
parent5717994452117f09b6931178fa45a471965b30a8 (diff)
downloadmruby-a7dc817add5542ec6806484a35cbc57e3ed10629.tar.gz
mruby-a7dc817add5542ec6806484a35cbc57e3ed10629.zip
add mruby-eval mrbgem (no activation though)
-rw-r--r--build_config.rb5
-rw-r--r--mrbgems/mruby-eval/mrbgem.rake4
-rw-r--r--mrbgems/mruby-eval/src/eval.c23
3 files changed, 31 insertions, 1 deletions
diff --git a/build_config.rb b/build_config.rb
index baf0a6233..475ff27a8 100644
--- a/build_config.rb
+++ b/build_config.rb
@@ -38,9 +38,12 @@ MRuby::Build.new do |conf|
# Use extensional Hash class
conf.gem "#{root}/mrbgems/mruby-hash-ext"
+ # No use eval method
+ # conf.gem "#{root}/mrbgems/mruby-eval
+
# Generate binaries
# conf.bins = %w(mrbc mruby mirb)
-
+
# C compiler settings
# conf.cc do |cc|
# cc.command = ENV['CC'] || 'gcc'
diff --git a/mrbgems/mruby-eval/mrbgem.rake b/mrbgems/mruby-eval/mrbgem.rake
new file mode 100644
index 000000000..f80cf1b9e
--- /dev/null
+++ b/mrbgems/mruby-eval/mrbgem.rake
@@ -0,0 +1,4 @@
+MRuby::Gem::Specification.new('mruby-eval') do |spec|
+ spec.license = 'MIT'
+ spec.authors = 'mruby developers'
+end
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
new file mode 100644
index 000000000..039558596
--- /dev/null
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -0,0 +1,23 @@
+#include "mruby.h"
+#include "mruby/compile.h"
+
+static mrb_value
+f_eval(mrb_state *mrb, mrb_value self)
+{
+ char *s;
+ int len;
+
+ mrb_get_args(mrb, "s", &s, &len);
+ return mrb_load_nstring(mrb, s, len);
+}
+
+void
+mrb_mruby_eval_gem_init(mrb_state* mrb)
+{
+ mrb_define_class_method(mrb, mrb->kernel_module, "eval", f_eval, ARGS_REQ(1));
+}
+
+void
+mrb_mruby_eval_gem_final(mrb_state* mrb)
+{
+}