Commit f40fc9ab authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #3099 from deuwert/more-limits

Addition to mruby limitation documentation
parents 18870428 e7eb40f9
......@@ -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
```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment