Yukihiro "Matz" Matsumoto
045761390d
Merge pull request #5094 from mruby-Forum/mruby3-preview
...
mruby 3.0.0-preview.
3.0.0-preview
2020-10-16 10:56:54 +09:00
Hiroshi Mimaki
0589749952
mruby 3.0.0-preview.
2020-10-16 10:43:03 +09:00
Yukihiro "Matz" Matsumoto
4b5dd5683b
Merge branch 'zubycz-work_for_merge'
2020-10-15 18:35:53 +09:00
Yukihiro "Matz" Matsumoto
6b457d2c00
Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into zubycz-work_for_merge
2020-10-15 18:35:13 +09:00
Yukihiro "Matz" Matsumoto
c779413df3
Fix out of bound access in parse.y.
2020-10-15 18:32:27 +09:00
Yukihiro "Matz" Matsumoto
9cebddf9fe
Merge pull request #5084 from mruby/mruby3
...
Mruby3
2020-10-15 18:31:06 +09:00
Yukihiro "Matz" Matsumoto
21e07d6113
Add indent to lv in the C dump.
2020-10-14 20:26:06 +09:00
Yukihiro "Matz" Matsumoto
5b40bb8d15
Avoid using C struct dump for test Ruby code.
...
Files under `test/t` and `mrbgem/*/test` are for tests, not for actual
execution. So symbols in those files need not to be pre-allocated. This
change slightly reduce the memory consumption.
2020-10-14 15:52:14 +09:00
taiyoslime
bec4d05340
Introduce endless range (a part of #5085 )
...
Co-Authored-By: n4o847 <22975590+n4o847@users.noreply.github.com >
Co-Authored-By: smallkirby <ssmallkirby@gmail.com >
2020-10-13 14:09:36 +09:00
Yukihiro "Matz" Matsumoto
8c276f95be
Merge pull request #5091 from zubycz/remove_unnecessary_assignment
...
Remove unnecessary assignment in String#upto
2020-10-12 18:23:22 +09:00
Yukihiro "Matz" Matsumoto
82046ff26e
Revert "Add a new function mrb_exc_protect()."
...
This reverts commit 8746a6fe4e7bda8a0fbc0eaece9314ec51a0c255.
We already have `mrb_protect()`, `mrb_ensure()` and `mrb_rescue()`
functions. If you need to handle exceptions from C functions, use those
functions above.
2020-10-12 18:20:30 +09:00
Yukihiro "Matz" Matsumoto
3d6adccfbe
Add a new function mrb_exc_protect().
...
`mrb_exc_protect()` takes two C functions, `body` to be executed first,
and `resc` to be executed when an error happens during `body` execution.
Since `mrb_exc_protect()` should be compiled with the proper compiler,
we will not see the problem like #5088 that was caused by `setjmp()` and
`throw` mixture.
2020-10-12 18:20:29 +09:00
Yukihiro "Matz" Matsumoto
5069fb15e4
Cause error explicitly from MRB_TRY() with cxx_exception; ref #5088
...
`MRB_TRY()` does not work when compiled by C compiler with `cxx_exception`
configuration. We should explicitly warn.
2020-10-12 18:20:29 +09:00
Yukihiro "Matz" Matsumoto
7ca59ecea2
Revert e2e6554b56 not to use MRB_TRY(); close #5088
...
`MRB_TRY()` does not work when compiled by C compiler with `cxx_exception`,
due to the mixture of `setjmp()` used by `mirb.c` and `throw` used by
the core. The original intension of e2e6554b56 is to protect code from
signal interruption, but the signal interruption is not well-defined in
mruby anyway.
2020-10-12 18:20:29 +09:00
Yukihiro "Matz" Matsumoto
041351fb05
No need to get the irep record size twice.
2020-10-12 18:20:28 +09:00
Yukihiro "Matz" Matsumoto
34356974ee
Update MRB_FLOAT_FMT to always use double precision.
2020-10-12 18:20:28 +09:00
Yukihiro "Matz" Matsumoto
d2b548de60
Remove the length of `Float' pool from the binary dump.
...
Also fixed the size calculation of `irep` dump, that could cause memory
corruption.
2020-10-12 18:20:28 +09:00
Yukihiro "Matz" Matsumoto
c80ece2149
Add bintest to host-m32 target.
2020-10-12 18:20:27 +09:00
Yukihiro "Matz" Matsumoto
356b719fef
Remove DEBUG_ONLY_EXPR() from CHECKPOINT_* macros; ref #5060
...
To allow C++ compilation. Fix suggested by @dearblue.
2020-10-12 18:20:27 +09:00
Yukihiro "Matz" Matsumoto
896338e219
Unify mrb_str_to_str to mrb_obj_as_string.
...
Redirect `mrb_str_to_str` to `mrb_obj_as_string` via C macro.
Inspired by #5082
2020-10-12 18:20:26 +09:00
Yukihiro "Matz" Matsumoto
bff79112a6
Dump/load 16 bits for ilen and slen in irep.
...
Those types are `uint16_t` in definition. Also we no longer need padding
for `iseq`.
2020-10-12 18:20:26 +09:00
Yukihiro "Matz" Matsumoto
f1d02bfc15
Clarify the meaning of MRB_IREP_STATIC; ref #5084
2020-10-12 18:20:26 +09:00
Yukihiro "Matz" Matsumoto
c1f5fdafb6
Remove duplicated constant IREP_TT_SFLAG; #5084
2020-10-12 18:20:25 +09:00
Yukihiro "Matz" Matsumoto
5d1d94d911
Use Markdown section marker #; ref #5084 [ci skip]
...
The fix was proposed by @dearblue
2020-10-12 18:20:25 +09:00
Yukihiro "Matz" Matsumoto
762556b6e8
Add const modifier to table in mrb_kwargs; #5084
...
The fix was proposed by @dearblue
2020-10-12 18:20:24 +09:00
Yukihiro "Matz" Matsumoto
618c589162
Should use PRId32 to dump .i32; ref #5084
...
The fix was proposed by @dearblue
2020-10-12 18:20:24 +09:00
Yukihiro "Matz" Matsumoto
ab2b42d363
Update bintest of mruby-bin-debugger.
...
Need to support `int / int -> int` update.
2020-10-12 18:20:24 +09:00
Yukihiro "Matz" Matsumoto
b9007244bd
Add const before struct mrb_irep in mruby-bin-debugger gem.
2020-10-12 18:20:23 +09:00
Yukihiro "Matz" Matsumoto
7932523052
Remove host-debug internal target.
...
Target `host-debug` to use `host` internal target with debugging
configuration.
2020-10-12 18:20:23 +09:00
Yukihiro "Matz" Matsumoto
12881ccb05
Use NULL instead of 0; close #2467
...
The PR was from @cubicdaiya.
2020-10-12 18:20:23 +09:00
Yukihiro "Matz" Matsumoto
3ff2757bf7
Fix mrb_int_mul_overflow() to check either operand being zero.
2020-10-12 18:20:22 +09:00
Yukihiro "Matz" Matsumoto
4dcc1819c9
Embed debug information to resolve Windows VC's issue.
2020-10-12 18:20:22 +09:00
Yukihiro "Matz" Matsumoto
21ee56d82a
Adjust backslash position in multi-line macros.
2020-10-12 18:20:21 +09:00
Yukihiro "Matz" Matsumoto
55a2ff5faf
Use MRB_INT_MAX instead of INT_MAX according to variable type.
2020-10-12 18:20:21 +09:00
Kondo Uchio
ed97c1779e
Remove duplicated pattern
2020-10-12 18:20:21 +09:00
Uchio Kondo
0d8793047d
Scan ruby files in directories
2020-10-12 18:20:20 +09:00
Kondo Uchio
cbb46f6975
Exact match to allowed method/variable names
2020-10-12 18:20:20 +09:00
Uchio Kondo
0c242e278d
Ensure exact match for symbols like foo!/foo?/foo=
...
e.g. symbols like "foo[]=" make invalid C codes
2020-10-12 18:20:20 +09:00
Yukihiro "Matz" Matsumoto
932b93fd12
Skip C comments from scan target; close #5072
...
The original PR was skipping Ruby comments as well, but caused some
issues in test suites.
2020-10-12 18:20:19 +09:00
Yukihiro "Matz" Matsumoto
a4c5824e59
Restore old function names for compatibility; ref #5070
...
- `mrb_check_intern()` to return `mrb_value`
- `mrb_intern_check()` to return `mrb_sym` [NEW]
Other new functions:
- `mrb_intern_check_cstr()`
- `mrb_intern_check_str()`
2020-10-12 18:20:19 +09:00
Yukihiro "Matz" Matsumoto
afcf19b727
Scan source code lines from downloaded mrbgems; fix #5071
2020-10-12 18:20:18 +09:00
Yukihiro "Matz" Matsumoto
30424dfa74
Restore old function names for compatibility; fix #5070
...
Rename new functions:
- `mrb_convert_type(mrb,val,type,tname,method)`
=> `mrb_type_convert(mrb,val,type,tname,method)`
- `mrb_check_convert_type(mrb,val,type,tname,method)`
=> `mrb_type_convert_check(mrb,val,type,tname,method)`
Old names are defined by macros (support `tname` drop and
`char*` => `mrb_sym` conversion).
2020-10-12 18:20:18 +09:00
Yukihiro "Matz" Matsumoto
9b8e5658ce
Fix integer casting on 64 bit platforms.
...
On platforms where `sizeof(long)` is 4, casting `(long)` can lose data
or sign information.
2020-10-12 18:20:18 +09:00
Yukihiro "Matz" Matsumoto
a127ded486
Fix warning from VC regarding implicit int conversion.
2020-10-12 18:20:17 +09:00
Yukihiro "Matz" Matsumoto
fe3c3bb661
Made Rational overhaul.
...
- Implement `Rational()` in `C`.
- Use `float` to `rational` conversion function taken from:
https://rosettacode.org/wiki/Convert_decimal_number_to_rational#C
2020-10-12 18:20:17 +09:00
Yukihiro "Matz" Matsumoto
f9e781d83a
Avoid unsigned int; Use mrb_int instead.
2020-10-12 18:20:16 +09:00
Yukihiro "Matz" Matsumoto
fc8885f2f4
Use mrb_int extensively instead of int.
...
The mixture causes warnings on 64 bit Windows (VC).
2020-10-12 18:20:16 +09:00
Yukihiro "Matz" Matsumoto
fe1ad37bfb
Use goto to avoid problems with DIRECT_THREADED.
...
You can now use `NEXT` within `switch` statement like 7c087eb.
2020-10-12 18:20:16 +09:00
Yukihiro "Matz" Matsumoto
9e842b3a75
Extract div code in VM and make them shared by div methods.
2020-10-12 18:20:15 +09:00
Yukihiro "Matz" Matsumoto
b81edb0035
Don't use NEXT within switch statement.
...
On non-`gcc` compatible environment, `NEXT` is translated to `break`.
2020-10-12 18:20:15 +09:00