summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2018-01-31Define compatibility only for `_MSC_VER`; ref #3923Yukihiro "Matz" Matsumoto
Suggested by @mattn.
2018-01-31Merge pull request #3923 from ksss/tempnamYukihiro "Matz" Matsumoto
Shouldn't use tempnam
2018-01-31Use mkstemp instead of tempnamksss
2018-01-30Need not to pop `callinfo` on `OP_STOP`.Yukihiro "Matz" Matsumoto
2018-01-30Merge pull request #3937 from mattn/file-mtimeYukihiro "Matz" Matsumoto
add File#mtime
2018-01-30add File#mtimeYasuhiro Matsumoto
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-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 ```