From 44d26dd994d65107c0c9b1aa3009e839ae779970 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Thu, 11 Feb 2016 21:19:48 +0800 Subject: Add more limitations --- doc/limitations.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/doc/limitations.md b/doc/limitations.md index dd153f9ce..16f9a640b 100644 --- a/doc/limitations.md +++ b/doc/limitations.md @@ -64,3 +64,80 @@ end #### mruby [1.2.0 (2015-11-17)] No exception is raised. + +## Check of infinite recursion + +mruby does not check infinite recursion across C extensions. + +```ruby +def test; eval 'test'; end; test +``` + +#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)] + +```SystemStackError``` is raised. + +#### mruby [1.2.0 (2015-11-17)] + +Segmentation fault. + +## Fiber execution can't cross C function boundary + +mruby's ```Fiber``` is implemented in a similar way to Lua's co-routine. This +results in the consequence that you can't switch context within C functions. +Only exception is ```mrb_fiber_yield``` at return. + +## ```Array``` does not support instance variables + +To reduce memory consumption ```Array``` does not support instance variables. + +```ruby +class Liste < Array + def initialize(str = nil) + @feld = str + end +end + +p Liste.new "foobar" +``` + +#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)] + +```[]``` + +#### mruby [1.2.0 (2015-11-17)] + +```ArgumentError``` is raised. + +## Method visibility + +For simplicity reasons no method visibility (public/private/protected) is +supported. + +```ruby +class VisibleTest + + def public_method; end + + private + def private_method; end + +end + +p VisibleTest.new.respond_to?(:private_method, false) +p VisibleTest.new.respond_to?(:private_method, true) +``` + +#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)] + +``` +false +true +``` + +#### mruby [1.2.0 (2015-11-17)] + +``` +true +true +``` -- cgit v1.2.3 From e7eb40f9d663b3b618f5fb3618c217daafb2a337 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Thu, 11 Feb 2016 21:23:29 +0800 Subject: Fix formatting --- doc/limitations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/limitations.md b/doc/limitations.md index 16f9a640b..f60ab5930 100644 --- a/doc/limitations.md +++ b/doc/limitations.md @@ -103,7 +103,7 @@ p Liste.new "foobar" #### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)] -```[]``` +``` [] ``` #### mruby [1.2.0 (2015-11-17)] -- cgit v1.2.3