Yukihiro "Matz" Matsumoto
b563bcb7ff
Check if OP_RETURN cross C function boundary; fix #3462
2017-02-27 20:13:01 +09:00
Yukihiro "Matz" Matsumoto
50bbdbb11b
Fixed ecall() invoked too early; fix #3464
2017-02-27 18:40:35 +09:00
Yukihiro "Matz" Matsumoto
3fc9bf3d5f
Update local variable only after the value is checked.
2017-02-27 18:39:42 +09:00
Yukihiro "Matz" Matsumoto
d219e63a74
Clear block arg when method_missing takes *args.
2017-02-27 18:38:56 +09:00
Yukihiro "Matz" Matsumoto
9e93d5dbf0
Stack may be reallocated in mrb_run(); fix #3465
2017-02-27 16:17:57 +09:00
Yukihiro "Matz" Matsumoto
736be0e98b
Always keep block argument space in stack; fix #3469
2017-02-27 13:05:26 +09:00
Yukihiro "Matz" Matsumoto
83a6c0e0a4
Merge pull request #3458 from dabroz/gitlab-ci
...
GitLab.com tests for multiple configurations
2017-02-27 08:59:33 +09:00
Yukihiro "Matz" Matsumoto
fecbde328a
Merge pull request #3461 from iij/build-with-byacc
...
Build with byacc
2017-02-24 18:39:20 +09:00
Tomoyuki Sahara
da4f8e19fa
replace "yylval" with "pylval" to make it compile with byacc.
2017-02-24 11:47:48 +09:00
Yukihiro "Matz" Matsumoto
a9f7b41219
Merge pull request #3460 from AltimitSystems/android.rake-ndk-clang
...
Additional options for Android build script.
2017-02-17 01:13:37 +09:00
Felix Jones
fd08e0ea3a
Added example build script for Android armeabi-v7a NEON hardware FPU
2017-02-16 15:07:18 +00:00
Felix Jones
324231a733
Android toolchain separated target architecture compile flags (ctarget) from shared compile flags (cflags). Added support for custom mfpu and float-abi switches for the armeabi-v7a target.
2017-02-16 15:02:10 +00:00
Yukihiro "Matz" Matsumoto
73e5a19c39
Configure callinfo target_class as CRuby; ref #3429
2017-02-16 23:43:02 +09:00
Yukihiro "Matz" Matsumoto
4dae285325
Merge pull request #3457 from dabroz/fix-clang-32-64
...
Build fix for 32-bit clang 3.8/3.9 with MRB_INT64
2017-02-16 23:21:58 +09:00
Yukihiro "Matz" Matsumoto
097da2399a
Avoid executing OP_STOP in eval(); fix #3429
2017-02-16 22:40:31 +09:00
Yukihiro "Matz" Matsumoto
5e3c329c98
Adjust callinfo env and target_class; ref #3429
2017-02-16 22:38:47 +09:00
Felix Jones
d83aad8d57
Merge branch 'master' into android.rake-ndk-clang
2017-02-16 13:33:46 +00:00
Tomasz Dabrowski
bc721ec45d
Gitlab tests for multiple configurations
...
Gitlab testing is introduced, using GitLab CI, to test many different configurations:
- 32/64 bit architecture
- float/double
- 16/32/64 bit int size
- none/NaN/word boxing
- ASCII/UTF8
using various compilers:
- gcc-4.7
- gcc-4.8
- gcc-4.9
- gcc-5
- gcc-6
- clang-3.5
- clang-3.6
- clang-3.7
- clang-3.8
- clang-3.9
2017-02-16 13:50:27 +01:00
Tomasz Dabrowski
bd2b76ea85
Build fix for 32-bit clang 3.8/3.9 with MRB_INT64
2017-02-16 13:39:21 +01:00
Yukihiro "Matz" Matsumoto
b165708c8d
Move #instance_exec to Kernel module
...
CRuby defines #instance_exec in BasicObject, but we don't.
It's a small incompatibility that isn't worth accomplish at
the price of implementation complexity.
2017-02-15 13:24:03 +09:00
Yukihiro "Matz" Matsumoto
517e9313bf
Move #__id__ to BasicObject; ref #3417
2017-02-15 13:19:21 +09:00
Yukihiro "Matz" Matsumoto
612d636b77
Move #instance_eval to BasicObject; ref #3417
2017-02-15 13:15:58 +09:00
Yukihiro "Matz" Matsumoto
3dbda91788
Move #__send__ to BasicObject; ref #3417
2017-02-15 13:12:05 +09:00
Yukihiro "Matz" Matsumoto
8b4bd3158b
Move #== and #!= to BasicObject; ref #3417
2017-02-15 13:07:53 +09:00
Yukihiro "Matz" Matsumoto
3f9450e7b0
Move BasicObject#method_missing to Kernel#method_missing; ref #3417
...
More compatibility to CRuby.
Updated tests that assume old mruby behavior.
2017-02-15 12:56:27 +09:00
Yukihiro "Matz" Matsumoto
1e5b5b14d7
Prohibit too deep mrb_funcall() recursion; ref #3421
...
`mrb_funcall()` recursion can cause stack overflow easily,
so recursion depth is now limited to MRB_FUNCALL_DEPTH_MAX,
which default value is 512.
2017-02-15 12:06:32 +09:00
Yukihiro "Matz" Matsumoto
1e57fefbcf
Do not funcall() Exception#set_backtrace from runtime.
...
This change reduce flexibility but makes mruby simpler and faster.
2017-02-15 12:01:52 +09:00
Yukihiro "Matz" Matsumoto
8efa7b00df
Preallocate SystemStackError; ref #3421
2017-02-15 11:59:47 +09:00
Yukihiro "Matz" Matsumoto
0376d4d4c6
Merge pull request #3455 from crimsonwoods/fix-android-build-script
...
Update android build script.
2017-02-15 10:30:27 +09:00
Yukihiro "Matz" Matsumoto
dd24f9f5cc
Avoid calling hook methods if they are not overridden.
2017-02-15 09:25:09 +09:00
Yukihiro "Matz" Matsumoto
04296925ac
Use mrb_funcall_argv() instead of mrb_funcall()
2017-02-15 09:24:35 +09:00
crimsonwoods
5395dbfb3a
Add new two build config files.
2017-02-15 09:01:55 +09:00
crimsonwoods
a6b1e964a3
Modify default cflags.
2017-02-15 03:03:47 +09:00
crimsonwoods
838fa69aa3
Add '-Wl,--fix-cortex-a8' linker option for 'armeabi-v7a' architecture.
2017-02-15 00:51:10 +09:00
crimsonwoods
83a3da4456
Set default linker 'flags' and 'flags_before_libraries'.
2017-02-15 00:36:02 +09:00
Yukihiro "Matz" Matsumoto
ba812d25ad
Merge pull request #3453 from palkan/fix/test-gems-setup
...
Separate compilers setup from config setup
2017-02-14 09:09:34 +09:00
palkan
131566753d
Separate compilers setup from config setup
...
Fixes #3418 .
2017-02-13 20:59:07 +03:00
Yukihiro "Matz" Matsumoto
30aa521854
Do not use mrb_funcall() if Hash#default is not overridden; ref #3421
...
This change reduces the recursion level, but does not solve the stack
overflow issue entirely.
2017-02-14 00:22:12 +09:00
Yukihiro "Matz" Matsumoto
719f700adf
Extend mruby stack when keep is bigger than room; fix #3421
...
But #3421 still cause stack overflow error due to infinite recursion.
To prevent overflow, we need to add different stack depth check.
2017-02-14 00:15:58 +09:00
Yukihiro "Matz" Matsumoto
ecb6ac8b4a
Fixed codegen error of redo in rescue; fix #3422
...
The issue (and the fix) was reported by https://hackerone.com/dgaletic
2017-02-13 19:31:06 +09:00
Yukihiro "Matz" Matsumoto
c2ddcd4517
Should handle break from funcall(); fix #3434
...
This issue was reported by https://hackerone.com/d4nny
2017-02-13 18:45:20 +09:00
Yukihiro "Matz" Matsumoto
f198530444
Fixed too much value_copy() when block is not given; fix #3440
...
The issue was reported by https://hackerone.com/titanous
2017-02-13 18:18:09 +09:00
Yukihiro "Matz" Matsumoto
b23874777d
Merge pull request #3452 from dabroz/fix-kernel-caller-aspec
...
Fixed aspec for Kernel#caller
2017-02-12 20:46:10 +09:00
Tomasz Dabrowski
e4fa59f5ed
Fixed aspec for Kernel#caller
2017-02-12 11:15:40 +01:00
Yukihiro "Matz" Matsumoto
60664823ba
Merge pull request #3451 from dabroz/revert-string-mul
...
Revert "Optimization for String#* for 1-byte strings"
2017-02-11 22:49:20 +09:00
Yukihiro "Matz" Matsumoto
1f2d786e32
Avoid direct return from ecall(); fix #3441
...
There's incompatibility left for mruby.
When you return from `ensure` clause, mruby simply ignores the return
value. CRuby returns from the method squashing the exception raised.
```
def f
no_such_method() # NoMethodError
ensure
return 22
end
p f() # CRuby prints `22`
```
2017-02-11 21:58:47 +09:00
Tomasz Dabrowski
90f262f642
Revert "Optimization for String#* for 1-byte strings"
...
This reverts commit d1bc7caeca .
2017-02-11 13:02:48 +01:00
Yukihiro "Matz" Matsumoto
ff03a9a61c
Avoid integer overflow in sprintf(); fix #3439
...
This issue was reported by https://hackerone.com/aerodudrizzt
2017-02-11 20:35:52 +09:00
Yukihiro "Matz" Matsumoto
642ab8ecda
ecall() should preserve stack address referenced from ci[1].
...
OP_RETURN accesses ci[1]->stackent that might be broken; fix #3442
2017-02-11 18:13:39 +09:00
Yukihiro "Matz" Matsumoto
0b143898c4
Remove historical comment; ref #3450 #3448
2017-02-11 16:52:45 +09:00