summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-11-21Test each combination of boxing, `mrb_int` size, and archtecture.Yukihiro "Matz" Matsumoto
Boxing: * `MRB_NO_BOXING` (`mrb_value` packed in `struct`) * `MRB_WORD_BOXING` (`mrb_value` packed in `struct`) default * `MRB_NAN_BOXING` (`mrb_value` packed in `double`) `mrb_int` size * `MRB_INT32` (`int32_t` as `mrb_int`) * `MRB_INT64` (`int64` as `mrb_int`) conflict with `MRB_NAN_BOXING' Architecture * `MRB_64BIT` (`sizeof(void*)` is 64 bits) * `MRB_32BIT` (`sizeof(void*)` is 32 bits)
2020-11-21Specify `conf` explicitly for `enable_debug`.Yukihiro "Matz" Matsumoto
2020-11-21Update `Float#to_s` to keep trailing zero as CRuby does; ref 68cebb6Yukihiro "Matz" Matsumoto
2020-11-21Merge pull request #5156 from ↵Yukihiro "Matz" Matsumoto
shuujii/improve-determining-C++-compiler-in-tasks-toolchains-gcc.rake Improve determining C++ compiler in `tasks/toolchains/gcc.rake`
2020-11-21Improve determining C++ compiler in `tasks/toolchains/gcc.rake`KOBAYASHI Shuji
* Consider CC envvar as C compiler on which to make the decision. * Consider the case where C compiler is `ccache gcc`, etc.
2020-11-20Merge pull request #5155 from shuujii/refactor-mrblib-mrblib.rakeYukihiro "Matz" Matsumoto
Refactor `mrblib/mrblib.rake`
2020-11-20Refactor `mrblib/mrblib.rake`KOBAYASHI Shuji
2020-11-20Merge pull request #5153 from shuujii/refactor-src-mruby_core.rakeYukihiro "Matz" Matsumoto
Refactor `src/mruby_core.rake`
2020-11-20Merge pull request #5152 from ↵Yukihiro "Matz" Matsumoto
shuujii/move-lib-mruby-core-ext.rb-to-lib-mruby-core_ext.rb-for-consistency Move `lib/mruby-core-ext.rb` to `lib/mruby/core_ext.rb` for consistency
2020-11-20Refactor `src/mruby_core.rake`KOBAYASHI Shuji
2020-11-20Move `lib/mruby-core-ext.rb` to `lib/mruby/core_ext.rb` for consistencyKOBAYASHI Shuji
2020-11-19Merge pull request #5150 from ↵Yukihiro "Matz" Matsumoto
shuujii/allow-bintest-even-if-build-name-is-not-host Allow `bintest` even if build name is not `host`
2020-11-19Allow `bintest` even if build name is not `host`KOBAYASHI Shuji
2020-11-18Merge pull request #5146 from shuujii/fix-integer-overflow-error-in-mrdb-testYukihiro "Matz" Matsumoto
Fix integer overflow error in mrdb test
2020-11-18Fix integer overflow error in mrdb testKOBAYASHI Shuji
2020-11-18Merge pull request #5149 from mruby/revert-5147-patch1Yukihiro "Matz" Matsumoto
Revert "Check if irep->reps is NULL in lv_defined_p"
2020-11-18Revert "Check if irep->reps is NULL in lv_defined_p"Yukihiro "Matz" Matsumoto
2020-11-18Use `mrb_int_value()` instead of `mrb_fixnum_value()`; fix #5142Yukihiro "Matz" Matsumoto
2020-11-18Merge pull request #5147 from hifoolno/patch1Yukihiro "Matz" Matsumoto
Check if irep->reps is NULL in lv_defined_p
2020-11-18Check if irep->reps is NULL in lv_defined_pZhang Xiaohui
2020-11-18Merge pull request #5143 from ↵Yukihiro "Matz" Matsumoto
shuujii/use-mrb_int_value-instead-of-mrb_fixnum_value-in-src-hash.c Use `mrb_int_value` instead of `mrb_fixnum_value` in `src/hash.c`
2020-11-18Merge pull request #5145 from shuujii/remove-unused-MRubyBuild-enable_bintest=Yukihiro "Matz" Matsumoto
Remove unused `MRuby::Build#enable_{bin,}test=`
2020-11-18Merge pull request #5144 from hifoolno/masterYukihiro "Matz" Matsumoto
Check if irep->reps is NULL
2020-11-18Remove unused `MRuby::Build#enable_{bin,}test=`KOBAYASHI Shuji
The writers seem to be unnecessary because `MRuby::Build#enable_{bin,}test` are used from the beginning.
2020-11-18Check if irep->reps is NULLZhang Xiaohui
2020-11-18Use `mrb_int_value` instead of `mrb_fixnum_value` in `src/hash.c`KOBAYASHI Shuji
2020-11-18Retrieve `irep` from `proc` after `MRB_PROC_CFUNC_P` check; ref #5140Yukihiro "Matz" Matsumoto
2020-11-17Revert half of 9fbf0ef8.Yukihiro "Matz" Matsumoto
I misunderstand the meaning of #4483. Sorry.
2020-11-17Check division overflow (`MRB_INT_MIN` and `-1`).Yukihiro "Matz" Matsumoto
2020-11-17Merge pull request #5141 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-deprecated-set-env-command-error-on-GitHub-Actions Fix deprecated `set-env` command error on GitHub Actions [ci skip]
2020-11-17Fix deprecated `set-env` command error on GitHub Actions [ci skip]KOBAYASHI Shuji
I tried `$GITHUB_PATH` and `$GITHUB_ENV` instead of `set-env`, but for some reason path was not recognized, so I changed to using `ACTIONS_ALLOW_UNSECURE_COMMANDS`.
2020-11-17Overflown integers should not be fall back to float values.Yukihiro "Matz" Matsumoto
2020-11-17Detect overflow in `flo_shift()`.Yukihiro "Matz" Matsumoto
2020-11-17Refactoring integer ranges.Yukihiro "Matz" Matsumoto
- Remove `mrb_ssize` - Fix `MRB_FIXNUM_{MIN,MAX}` to 32 bits on `MRB_NAN_BOXING`
2020-11-17Scan all active C source files; ref 600e333Yukihiro "Matz" Matsumoto
In addition, `include/mruby.h` will be scanned for error class symbols.
2020-11-17Refactor integer division.Yukihiro "Matz" Matsumoto
2020-11-17Simplify `mrb_num_div_int()`.Yukihiro "Matz" Matsumoto
2020-11-16Allow `int` size combinations for `MRB_WORD_BOXING`.Yukihiro "Matz" Matsumoto
- `MRB_64BIT` and `MRB_INT32` - `MRB_32BIT` and `MRB_INT64`
2020-11-16Merge pull request #5137 from ↵Yukihiro "Matz" Matsumoto
shuujii/use-uintptr_t-instead-of-unsigned-long-in-include-mruby-boxing_word.h Use `uintptr_t` instead of `unsigned long` in `include/mruby/boxing_word.h`
2020-11-16Merge pull request #5139 from shuujii/avoid-undefined-behaviorYukihiro "Matz" Matsumoto
Avoid undefined behavior
2020-11-16Merge pull request #5138 from shuujii/simplify-obj_freeYukihiro "Matz" Matsumoto
Simplify `obj_free`
2020-11-16Avoid undefined behaviorKOBAYASHI Shuji
### ASAN report (`MRB_INT32`) ```console $ bin/mruby -ve '-0x40000000' mruby 3.0.0preview (2020-10-16) 00001 NODE_SCOPE: 00001 NODE_BEGIN: 00001 NODE_NEGATE: 00001 NODE_INT 40000000 base 16 irep 0x6070000001e0 nregs=2 nlocals=1 pools=0 syms=0 reps=0 iseq=9 file: -e /mruby/src/codedump.c:173:49: runtime error: left shift of 49152 by 16 places cannot be represented in type 'int' SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /mruby/src/codedump.c:173:49 in 1 000 OP_LOADI32 R1 -1073741824 1 006 OP_RETURN R1 1 008 OP_STOP /mruby/src/vm.c:1138:7: runtime error: left shift of 49152 by 16 places cannot be represented in type 'mrb_int' (aka 'int') SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /mruby/src/vm.c:1138:7 in ```
2020-11-16Simplify `obj_free`KOBAYASHI Shuji
2020-11-16Use `uintptr_t` instead of `unsigned long` in `include/mruby/boxing_word.h`KOBAYASHI Shuji
`mrb_bool` on LLP64 environment seems to become false if, for example, `mrb_value` is a pointer whose lower 32 bits are 0.
2020-11-15Merge pull request #5135 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-paths-of-gem-files-to-be-scanned-for-presym Fix paths of gem files to be scanned for presym
2020-11-15Merge pull request #5134 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-that-large-integer-is-not-GCed-with-Word-boxing Fix that large integer is not GCed with Word-boxing
2020-11-15Fix paths of gem files to be scanned for presymKOBAYASHI Shuji
When building from outside `MRUBY_ROOT` (e.g. `rake -f`), gem files were not scanned.
2020-11-15Fix that large integer is not GCed with Word-boxingKOBAYASHI Shuji
### Example (32-bit Word-boxing) ```ruby # example.rb int_count = ObjectSpace.count_objects[:T_INTEGER]||0 int = 1<<30 p (ObjectSpace.count_objects[:T_INTEGER]||0) - int_count int = nil GC.start p (ObjectSpace.count_objects[:T_INTEGER]||0) - int_count ``` #### Before this patch: ```console $ bin/mruby example.rb 1 1 ``` #### After this patch: ```console $ bin/mruby example.rb 1 0 ```
2020-11-15Fixed further wrong condition in overflow detection.Yukihiro "Matz" Matsumoto
2020-11-14Fixed wrong condition in `mrb_int_mul_overflow()`.Yukihiro "Matz" Matsumoto