Hiroshi Mimaki
58fb6f421a
Set the mruby-1.4.0 release date to 2018-1-16.
1.4.0
2018-01-16 10:15:19 +09:00
Yukihiro "Matz" Matsumoto
623436276e
Merge pull request #3916 from mimaki/mruby-socket-cygwin-test
...
Passed mruby-test on Cygwin.
2017-12-26 15:51:18 +09:00
Hiroshi Mimaki
f55df0da7b
addrinfo.ai_protocol was not set on Cygwin.
2017-12-26 11:12:49 +09:00
Hiroshi Mimaki
bce811a53a
Disabled UNIXSocket test on Cygwin
2017-12-26 11:05:28 +09:00
Yukihiro "Matz" Matsumoto
6b09692684
Add `Integer#{allbits?,anybits?,nobits?}. [Ruby2.5]
...
In mruby, those methods are defined in `Integral` module.
2017-12-26 09:44:39 +09:00
Yukihiro "Matz" Matsumoto
3d7141b7fe
Move Intefer#chr to Integral#chr.
...
Since mruby mixes `Integer` and `Float`, integer operations have
been moved to `Integral` module.
2017-12-26 09:42:34 +09:00
Yukihiro "Matz" Matsumoto
ad17ba0e11
KeyError from Hash#fetch should inspect key.
...
To distinguish string keys and symbol keys.
2017-12-25 23:52:40 +09:00
Yukihiro "Matz" Matsumoto
e4a9b4a3ad
`Enumerable#{one?,none?,all?,any?} to take pattern argument [Ruby2.5]
2017-12-25 23:43:43 +09:00
Yukihiro "Matz" Matsumoto
421819dc2c
Add Hash#slice [Ruby 2.5]
2017-12-25 23:43:37 +09:00
Yukihiro "Matz" Matsumoto
df68a3345d
assert_equal() takes result as the first argument
2017-12-25 15:39:45 +09:00
Yukihiro "Matz" Matsumoto
2a5545cc25
Update Kernel#method_missing tests for new NoMethodError message.
...
Also removed tests that depends on implementation details of the default
`method_missing` behavior.
2017-12-23 15:18:13 +09:00
Yukihiro "Matz" Matsumoto
6999e45742
Do not include object string representation in NoMethodError message.
...
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 15:15:03 +09:00
Yukihiro "Matz" Matsumoto
ca0f32a208
super should raise TypeError when the receiver is switched; fix #3911
...
The receiver can be switched using `#instance_eval` etc.
2017-12-23 11:14:12 +09:00
Yukihiro "Matz" Matsumoto
aa8786f79c
Do not initialize a local variable soon to be assigned.
2017-12-23 11:14:12 +09:00
Yukihiro "Matz" Matsumoto
7e520838b3
Avoid infinite recursion in method_missing; ref #3908
2017-12-23 11:13:27 +09:00
Yukihiro "Matz" Matsumoto
44b4f69fce
May need more stack space in mrb_funcall_with_block; fix #3908
2017-12-23 10:01:30 +09:00
Yukihiro "Matz" Matsumoto
8d7e95282c
Add #module_exec and #class_exec in mruby-class-ext gem.
2017-12-23 10:01:30 +09:00
Yukihiro "Matz" Matsumoto
7fbbd7ab9f
Should not overwrite ci->target_class in mrb_exec_irep().
...
For example, the following code behaved wrong:
```ruby
Object.instance_exec(1,2,3){|*a|
def foo
42
end
}
p foo()
```
2017-12-23 10:01:30 +09:00
Yukihiro "Matz" Matsumoto
7990bb7fa7
Merge pull request #3913 from llothar/master
...
Make source compilable with C++17
2017-12-23 09:44:00 +09:00
Lothar Scholz
06f90a3b45
Make source compilable with C++17
...
Changes applied:
- Removing "register" keyword
- Fixing const pointer to pointer assignments
- Adding type casts to rb_malloc calls
2017-12-23 01:10:43 +01:00
Yukihiro "Matz" Matsumoto
100f0e6759
Do not need to take target_class from the upper proc.
...
Since it is already set in `mrb_proc_new()`.
2017-12-20 19:37:26 +09:00
Yukihiro "Matz" Matsumoto
73b05f0130
Should not overwrite MRB_PROC_TARGET_CLASS(p) if p has env; fix #3905
2017-12-20 19:37:26 +09:00
Yukihiro "Matz" Matsumoto
165e7b181b
Fixed method look-up for method_missing in OP_SUPER; ref #3905
...
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-20 19:37:26 +09:00
Yukihiro "Matz" Matsumoto
d0f60182af
The superclass info should be taken from `TARGET_CLASS(ci->proc).
...
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-20 10:34:54 +09:00
Yukihiro "Matz" Matsumoto
d9049c10fa
Merge pull request #3904 from ksss/mruby-method
...
Add mruby-method
2017-12-18 11:59:36 +09:00
Yukihiro "Matz" Matsumoto
bba6c9a1ce
Fix descriptor leakage; ref #3903
2017-12-18 11:55:12 +09:00
Yukihiro "Matz" Matsumoto
e5056d058a
Fix fptr leakage; ref #3903
2017-12-18 11:55:12 +09:00
Yukihiro "Matz" Matsumoto
83d02bcd5a
Use _dup2 instead of dup2 on Windows; ref #3903
2017-12-18 11:55:12 +09:00
Yukihiro "Matz" Matsumoto
5e22e8e350
open on Windows takes int 3rd argument instead of mode_t.
2017-12-18 11:15:27 +09:00
ksss
c0914dbb65
mruby/data.h doesn't need
2017-12-18 11:11:44 +09:00
Yukihiro "Matz" Matsumoto
b4dcb8f286
Use _dup instead of dup on Windows; ref #3903
2017-12-18 11:10:49 +09:00
ksss
615f296fcf
Clean up some files and docs
2017-12-18 11:10:10 +09:00
ksss
ae786b18d5
Shouldn't use alloca
2017-12-18 11:05:55 +09:00
Yukihiro "Matz" Matsumoto
a510564d6d
Merge pull request #3903 from ksss/io-dup
...
Implement IO#initialize_copy
2017-12-18 10:58:12 +09:00
ksss
b83ff8ccd8
Add mrbgems/mruby-method
...
from https://github.com/ksss/mruby-method/commit/0837a0b507a5b4cdf8a1f1039ee371cee4e3b7fb
2017-12-18 10:54:37 +09:00
ksss
35185e69bf
Implement IO#initialize_copy
2017-12-17 18:02:37 +09:00
Yukihiro "Matz" Matsumoto
ddb1aae41d
Need to set ci->proc before calling methods; fix #3902
2017-12-16 09:33:37 +09:00
Yukihiro "Matz" Matsumoto
03614ed918
Need to clear exception handler on return; fix #3898
2017-12-16 09:17:07 +09:00
Yukihiro "Matz" Matsumoto
05129ab9b3
Check if destinations are too distant; fix #3900 fix #3901
2017-12-15 17:57:45 +09:00
Yukihiro "Matz" Matsumoto
7ecb96a00a
Merge pull request #3897 from mimaki/initialize-is_socket
...
Initialized mrb_io.is_socket
2017-12-14 13:58:27 +09:00
Hiroshi Mimaki
41039524a9
Initialized mrb_io.is_socket
2017-12-14 12:36:25 +09:00
Yukihiro "Matz" Matsumoto
5b304c156c
On Windows, _S_IREAD and _S_IWRITE is defined in sys/stat.h.
2017-12-14 01:19:44 +09:00
Yukihiro "Matz" Matsumoto
7ac39333b5
Use _open and _close on Windows.
2017-12-14 01:19:21 +09:00
Yukihiro "Matz" Matsumoto
ebf49932c7
Merge pull request #3895 from mattn/fix-mkstemp
...
fix mkstemp implementation for MSVC
2017-12-14 00:46:19 +09:00
Yasuhiro Matsumoto
e7e5db51de
fix mkstemp implementation for MSVC
2017-12-14 00:43:38 +09:00
Yukihiro "Matz" Matsumoto
f0379c8c45
Merge pull request #3892 from mimaki/ipproto-winsock
...
Use IPPROTO enum values on WinSock.
2017-12-14 00:09:45 +09:00
Yukihiro "Matz" Matsumoto
16e473caad
Rename BasicSocket#is_socket= to #_is_socket; ref #3878
2017-12-14 00:07:42 +09:00
Yukihiro "Matz" Matsumoto
69ad12de06
Exclude UNIXSocket tests again; ref #3878
2017-12-14 00:05:23 +09:00
Takeshi Watanabe
d2163d13a8
Declare super class in socket.rb.
2017-12-14 00:05:23 +09:00
Takeshi Watanabe
949bf6ca43
Fix socket closing by using closesocket API in windows instead.
2017-12-14 00:05:23 +09:00