summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2018-01-30Merge pull request #3936 from ken-mu/uintYukihiro "Matz" Matsumoto
mruby-time: support time_t is uint
2018-01-29mruby-time: remove ifdef for mktime error handlingken-mu
2018-01-28mruby-time: support time_t is uintken-mu
2018-01-25Do not use `MRB_METHOD_TABLE_INLINE` by default; fix #3924Yukihiro "Matz" Matsumoto
It was default on Linux. Abandoned for 2 reasons: * some cross-platform compiler defines `__linux__` even on bare metal environment (RTL8196 (MIPS big endian soc) for example). * some compilers do not align functions pointers so that we need to specify `-falign-functions=n` (where n>1). It's not suitable for default configuration. By our measurement, `mrbtest` consumes 400KB less memory. So if your target machine is memory tight, add the following command-line options to `GCC` (unfortunately `clang` does not support `-falign-functions`). `-falign-functions=2 -DMRB_METHOD_TABLE_INLINE`
2018-01-25Use LSB not MSB for `MRB_METHOD_TABLE_INLINE`; ref #3924Yukihiro "Matz" Matsumoto
2018-01-25Check `arena_idx` before accessing; fix #3934Yukihiro "Matz" Matsumoto
2018-01-24Merge pull request #3921 from ksss/cloexecYukihiro "Matz" Matsumoto
Should be true for close_on_exec flag
2018-01-24Add `big_endian` and `little_endian` methods to `CrossBuild`; ref #3922Yukihiro "Matz" Matsumoto
When your target machine is big endian, specify as following in the `build_config.rb`: ```ruby MRuby::CrossBuild.new('32bit') do |conf| toolchain :gcc conf.big_endian end ```
2018-01-24`Time.new(1969,12,31,23,59,59)` may or may not faile; ref #3932Yukihiro "Matz" Matsumoto
On some platform and timezone it is a valid time spec.
2018-01-21Merge pull request #3932 from ken-mu/timegmYukihiro "Matz" Matsumoto
mruby-time: Fix mruby specific timegm() cannot return minus
2018-01-21mruby-time: remove test case less than Dec 31 23:59:58 1969ken-mu
2018-01-20mruby-time: Fix mruby specific timegm() cannot return minusken-mu
2018-01-17Detect cyclic link of class path references; fix #3926Yukihiro "Matz" Matsumoto
2018-01-17Typo fixed.Yukihiro "Matz" Matsumoto
2018-01-16Limit size of iseq buffer; fix #3927Yukihiro "Matz" Matsumoto
2018-01-16Allow `-> do rescue; end` as well as `proc do rescue; end` [Ruby2.6]Yukihiro "Matz" Matsumoto
2018-01-16Merge pull request #3930 from mruby/stableYukihiro "Matz" Matsumoto
Set the mruby-1.4.0 release date to `2018-1-16`.
2018-01-16Set the mruby-1.4.0 release date to `2018-1-16`.1.4.0Hiroshi Mimaki
2018-01-14Remove trailing spaceksss
2018-01-14IO#close_on_exec? is not supported on MinGWksss
2018-01-14Should be true for close_on_exec flagksss
2017-12-26Merge pull request #3916 from mimaki/mruby-socket-cygwin-testYukihiro "Matz" Matsumoto
Passed mruby-test on Cygwin.
2017-12-26addrinfo.ai_protocol was not set on Cygwin.Hiroshi Mimaki
2017-12-26Disabled UNIXSocket test on CygwinHiroshi Mimaki
2017-12-26Add `Integer#{allbits?,anybits?,nobits?}. [Ruby2.5]Yukihiro "Matz" Matsumoto
In mruby, those methods are defined in `Integral` module.
2017-12-26Move `Intefer#chr` to `Integral#chr`.Yukihiro "Matz" Matsumoto
Since mruby mixes `Integer` and `Float`, integer operations have been moved to `Integral` module.
2017-12-25`KeyError` from `Hash#fetch` should inspect key.Yukihiro "Matz" Matsumoto
To distinguish string keys and symbol keys.
2017-12-25`Enumerable#{one?,none?,all?,any?} to take pattern argument [Ruby2.5]Yukihiro "Matz" Matsumoto
2017-12-25Add `Hash#slice` [Ruby 2.5]Yukihiro "Matz" Matsumoto
2017-12-25`assert_equal()` takes result as the first argumentYukihiro "Matz" Matsumoto
2017-12-24Removed the Visual Studio Version Check because it does notLothar Scholz
work with internationalized versions of Visual Studio. It will capture the returned string in the local codepage encoding and make ruby exits with an invalid UTF8 error message. Also "Version" might be translated and not appear in the output.
2017-12-23Update `Kernel#method_missing` tests for new `NoMethodError` message.Yukihiro "Matz" Matsumoto
Also removed tests that depends on implementation details of the default `method_missing` behavior.
2017-12-23Do not include object string representation in `NoMethodError` message.Yukihiro "Matz" Matsumoto
This information is not mandatory but causes a lot of problems in the past due to infinite recursion by redefining `to_str`, `inspect` etc.
2017-12-23`super` should raise `TypeError` when the receiver is switched; fix #3911Yukihiro "Matz" Matsumoto
The receiver can be switched using `#instance_eval` etc.
2017-12-23Do not initialize a local variable soon to be assigned.Yukihiro "Matz" Matsumoto
2017-12-23Avoid infinite recursion in `method_missing`; ref #3908Yukihiro "Matz" Matsumoto
2017-12-23May need more stack space in `mrb_funcall_with_block`; fix #3908Yukihiro "Matz" Matsumoto
2017-12-23Add `#module_exec` and `#class_exec` in `mruby-class-ext` gem.Yukihiro "Matz" Matsumoto
2017-12-23Should not overwrite `ci->target_class` in `mrb_exec_irep()`.Yukihiro "Matz" Matsumoto
For example, the following code behaved wrong: ```ruby Object.instance_exec(1,2,3){|*a| def foo 42 end } p foo() ```
2017-12-23Merge pull request #3913 from llothar/masterYukihiro "Matz" Matsumoto
Make source compilable with C++17
2017-12-23Make source compilable with C++17Lothar Scholz
Changes applied: - Removing "register" keyword - Fixing const pointer to pointer assignments - Adding type casts to rb_malloc calls
2017-12-20Do not need to take `target_class` from the upper proc.Yukihiro "Matz" Matsumoto
Since it is already set in `mrb_proc_new()`.
2017-12-20Should not overwrite `MRB_PROC_TARGET_CLASS(p)` if `p` has env; fix #3905Yukihiro "Matz" Matsumoto
2017-12-20Fixed method look-up for `method_missing` in OP_SUPER; ref #3905Yukihiro "Matz" Matsumoto
Method look-up for `OP_SUPER` should start from the superclass of the `target_class` but if it fails, the look-up for `method_missing` should start from the class of the receiver. The following code explains the case: ```ruby class Bar def foo super end end class Foo<Bar def method_missing(mid, *) p mid end end ``` Foo.new.foo
2017-12-20The superclass info should be taken from `TARGET_CLASS(ci->proc).Yukihiro "Matz" Matsumoto
Not from `ci->target_class` that may be switched using `class_eval` etc. fix #3899, fix #3906 We found out there is a mruby specific limitation that `super` may be screwed up when a method is defined in a module and `super` is called in the block with the target class switched (for example, `super` in `class_eval` block). Now we raise `RuntimeError` for such cases. The following code works in CRuby but not in mruby. ``` module M def foo "aaa".singleton_class.class_eval{super 2} end end class Foo def foo(*); end end class Bar<Foo include M end Bar.new.foo ```
2017-12-18Merge pull request #3904 from ksss/mruby-methodYukihiro "Matz" Matsumoto
Add mruby-method
2017-12-18Fix descriptor leakage; ref #3903Yukihiro "Matz" Matsumoto
2017-12-18Fix `fptr` leakage; ref #3903Yukihiro "Matz" Matsumoto
2017-12-18Use `_dup2` instead of `dup2` on Windows; ref #3903Yukihiro "Matz" Matsumoto
2017-12-18`open` on Windows takes `int` 3rd argument instead of `mode_t`.Yukihiro "Matz" Matsumoto