summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-10-16Merge pull request #5094 from mruby-Forum/mruby3-preview3.0.0-previewYukihiro "Matz" Matsumoto
mruby 3.0.0-preview.
2020-10-16mruby 3.0.0-preview.Hiroshi Mimaki
2020-10-15Merge branch 'zubycz-work_for_merge'Yukihiro "Matz" Matsumoto
2020-10-15Merge branch 'work_for_merge' of https://github.com/zubycz/mruby into ↵Yukihiro "Matz" Matsumoto
zubycz-work_for_merge
2020-10-15Fix out of bound access in `parse.y`.Yukihiro "Matz" Matsumoto
2020-10-15Merge pull request #5084 from mruby/mruby3Yukihiro "Matz" Matsumoto
Mruby3
2020-10-14Add indent to `lv` in the C dump.Yukihiro "Matz" Matsumoto
2020-10-14Avoid using C struct dump for test Ruby code.Yukihiro "Matz" Matsumoto
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-13Introduce endless range (a part of #5085)taiyoslime
Co-Authored-By: n4o847 <[email protected]> Co-Authored-By: smallkirby <[email protected]>
2020-10-12Merge pull request #5091 from zubycz/remove_unnecessary_assignmentYukihiro "Matz" Matsumoto
Remove unnecessary assignment in String#upto
2020-10-12Revert "Add a new function `mrb_exc_protect()`."Yukihiro "Matz" Matsumoto
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-12Add a new function `mrb_exc_protect()`.Yukihiro "Matz" Matsumoto
`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-12Cause error explicitly from `MRB_TRY()` with `cxx_exception`; ref #5088Yukihiro "Matz" Matsumoto
`MRB_TRY()` does not work when compiled by C compiler with `cxx_exception` configuration. We should explicitly warn.
2020-10-12Revert e2e6554b56 not to use `MRB_TRY()`; close #5088Yukihiro "Matz" Matsumoto
`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-12No need to get the `irep` record size twice.Yukihiro "Matz" Matsumoto
2020-10-12Update `MRB_FLOAT_FMT` to always use double precision.Yukihiro "Matz" Matsumoto
2020-10-12Remove the length of `Float' pool from the binary dump.Yukihiro "Matz" Matsumoto
Also fixed the size calculation of `irep` dump, that could cause memory corruption.
2020-10-12Add `bintest` to `host-m32` target.Yukihiro "Matz" Matsumoto
2020-10-12Remove `DEBUG_ONLY_EXPR()` from `CHECKPOINT_*` macros; ref #5060Yukihiro "Matz" Matsumoto
To allow C++ compilation. Fix suggested by @dearblue.
2020-10-12Unify `mrb_str_to_str` to `mrb_obj_as_string`.Yukihiro "Matz" Matsumoto
Redirect `mrb_str_to_str` to `mrb_obj_as_string` via C macro. Inspired by #5082
2020-10-12Dump/load 16 bits for `ilen` and `slen` in `irep`.Yukihiro "Matz" Matsumoto
Those types are `uint16_t` in definition. Also we no longer need padding for `iseq`.
2020-10-12Clarify the meaning of `MRB_IREP_STATIC`; ref #5084Yukihiro "Matz" Matsumoto
2020-10-12Remove duplicated constant `IREP_TT_SFLAG`; #5084Yukihiro "Matz" Matsumoto
2020-10-12Use Markdown section marker `#`; ref #5084 [ci skip]Yukihiro "Matz" Matsumoto
The fix was proposed by @dearblue
2020-10-12Add `const` modifier to `table` in `mrb_kwargs`; #5084Yukihiro "Matz" Matsumoto
The fix was proposed by @dearblue
2020-10-12Should use `PRId32` to dump `.i32`; ref #5084Yukihiro "Matz" Matsumoto
The fix was proposed by @dearblue
2020-10-12Update `bintest` of `mruby-bin-debugger`.Yukihiro "Matz" Matsumoto
Need to support `int / int -> int` update.
2020-10-12Add `const` before `struct mrb_irep` in `mruby-bin-debugger` gem.Yukihiro "Matz" Matsumoto
2020-10-12Remove `host-debug` internal target.Yukihiro "Matz" Matsumoto
Target `host-debug` to use `host` internal target with debugging configuration.
2020-10-12Use `NULL` instead of `0`; close #2467Yukihiro "Matz" Matsumoto
The PR was from @cubicdaiya.
2020-10-12Fix `mrb_int_mul_overflow()` to check either operand being zero.Yukihiro "Matz" Matsumoto
2020-10-12Embed debug information to resolve Windows VC's issue.Yukihiro "Matz" Matsumoto
2020-10-12Adjust backslash position in multi-line macros.Yukihiro "Matz" Matsumoto
2020-10-12Use `MRB_INT_MAX` instead of `INT_MAX` according to variable type.Yukihiro "Matz" Matsumoto
2020-10-12Remove duplicated patternKondo Uchio
2020-10-12Scan ruby files in directoriesUchio Kondo
2020-10-12Exact match to allowed method/variable namesKondo Uchio
2020-10-12Ensure exact match for symbols like foo!/foo?/foo=Uchio Kondo
e.g. symbols like "foo[]=" make invalid C codes
2020-10-12Skip C comments from scan target; close #5072Yukihiro "Matz" Matsumoto
The original PR was skipping Ruby comments as well, but caused some issues in test suites.
2020-10-12Restore old function names for compatibility; ref #5070Yukihiro "Matz" Matsumoto
- `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-12Scan source code lines from downloaded mrbgems; fix #5071Yukihiro "Matz" Matsumoto
2020-10-12Restore old function names for compatibility; fix #5070Yukihiro "Matz" Matsumoto
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-12Fix integer casting on 64 bit platforms.Yukihiro "Matz" Matsumoto
On platforms where `sizeof(long)` is 4, casting `(long)` can lose data or sign information.
2020-10-12Fix warning from VC regarding implicit int conversion.Yukihiro "Matz" Matsumoto
2020-10-12Made `Rational` overhaul.Yukihiro "Matz" Matsumoto
- Implement `Rational()` in `C`. - Use `float` to `rational` conversion function taken from: https://rosettacode.org/wiki/Convert_decimal_number_to_rational#C
2020-10-12Avoid `unsigned int`; Use `mrb_int` instead.Yukihiro "Matz" Matsumoto
2020-10-12Use `mrb_int` extensively instead of `int`.Yukihiro "Matz" Matsumoto
The mixture causes warnings on 64 bit Windows (VC).
2020-10-12Use `goto` to avoid problems with `DIRECT_THREADED`.Yukihiro "Matz" Matsumoto
You can now use `NEXT` within `switch` statement like 7c087eb.
2020-10-12Extract `div` code in VM and make them shared by `div` methods.Yukihiro "Matz" Matsumoto
2020-10-12Don't use `NEXT` within `switch` statement.Yukihiro "Matz" Matsumoto
On non-`gcc` compatible environment, `NEXT` is translated to `break`.