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
Yukihiro "Matz" Matsumoto
2300c9f737
Merge pull request #3893 from mimaki/add-mrbgem-summary
...
Added mrbgem's summary.
2017-12-14 00:00:10 +09:00
Yukihiro "Matz" Matsumoto
dc5de38414
Merge pull request #3894 from mattn/mirb-locale
...
fix locale message in mirb
2017-12-13 23:11:49 +09:00
Yukihiro "Matz" Matsumoto
1a150a6e48
Merge pull request #3891 from mimaki/set-addrinfo-protocol
...
Set protocol of AddrInfo
2017-12-13 23:00:25 +09:00
Yasuhiro Matsumoto
0ab9ac6b22
fix locale in mirb
2017-12-13 22:28:18 +09:00
Hiroshi Mimaki
584e4e413a
Added mrbgem's summary.
2017-12-13 16:05:06 +09:00
Hiroshi Mimaki
9fac1a3f8b
Use IPPROTO enum values on WinSock.
2017-12-13 15:58:23 +09:00
Hiroshi Mimaki
398da99d05
Set protocol of AddrInfo
2017-12-13 14:44:13 +09:00
Yukihiro "Matz" Matsumoto
55fced30cd
Use _tempnam instead of tempnam on Windows.
2017-12-13 14:17:49 +09:00
Yukihiro "Matz" Matsumoto
a3925f3dec
Merge pull request #3889 from mattn/fix-crash
...
fix crash bug on Windows
2017-12-13 14:10:44 +09:00
Yukihiro "Matz" Matsumoto
aec65f2605
Merge pull request #3890 from mimaki/mruby-socket-windows-test
...
Skip tests on Windows platform
2017-12-13 13:59:28 +09:00
Hiroshi Mimaki
4353623b72
Skip tests on Windows platform
2017-12-13 13:02:59 +09:00
Yasuhiro Matsumoto
6123d653b7
fix crash bug on Windows
2017-12-13 12:48:26 +09:00
Yukihiro "Matz" Matsumoto
fa33bd86a8
Remove VC++ compiler warnings.
2017-12-13 11:39:32 +09:00
Yukihiro "Matz" Matsumoto
7d940e3682
Merge pull request #3888 from mattn/fix-locale
...
fix path locales
2017-12-13 10:24:52 +09:00
Yasuhiro Matsumoto
16c2ac2588
fix path locales
2017-12-13 10:12:59 +09:00
Yukihiro "Matz" Matsumoto
e14387440e
Skip test/t/float.rb tests; ref #3827
2017-12-13 08:45:46 +09:00
Yukihiro "Matz" Matsumoto
11b6696ce2
Retrieve operands at the beginning of OP_SCLASS.
2017-12-13 08:43:15 +09:00