summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
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
2020-11-14Change the fallback `mrb_int_mul_overflow()`.Yukihiro "Matz" Matsumoto
2020-11-14Change the type of `rlen` to `uint8_t` in `mrb_irep`.Yukihiro "Matz" Matsumoto
2020-11-14Integer overflow in operations should cause `RangeError`.Yukihiro "Matz" Matsumoto
2020-11-14Allow full `mrb_int` operations in overflow detection.Yukihiro "Matz" Matsumoto
Fix overflow detection in integer operations with `MRB_WORD_BOXING`. This bug made `1073741824 == 1073741824+0` to be `false` on 32bit platforms.
2020-11-14Integer operation should result in Integer.Yukihiro "Matz" Matsumoto
Should raise `RangeError` if the operation overflows.
2020-11-14Scan source files only from `cdump` enabled gems.Yukihiro "Matz" Matsumoto
2020-11-14Merge pull request #5132 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-redundant-command-execution-in-header_search_paths Remove redundant command execution in `header_search_paths`
2020-11-14Remove redundant command execution in `header_search_paths`KOBAYASHI Shuji
There is no need to execute command in duplicate for the same reason as #5128.
2020-11-14Merge pull request #5131 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-unused-constant-in-lib-mruby-build-command.rb Remove unused constant in `lib/mruby/build/command.rb`
2020-11-14Merge pull request #5130 from ↵Yukihiro "Matz" Matsumoto
shuujii/workaround-to-build-mirb-with-Homebrews-readline-on-Mac Workaround to build `mirb` with Homebrew's readline on Mac; fix #4537
2020-11-14Remove unused constant in `lib/mruby/build/command.rb`KOBAYASHI Shuji
2020-11-14Workaround to build `mirb` with Homebrew's readline on Mac; fix #4537KOBAYASHI Shuji
2020-11-14Merge pull request #5128 from ↵Yukihiro "Matz" Matsumoto
shuujii/simplify-MRubyCommand-_run-to-avoid-duplicated-compilation Simplify `MRuby::Command#_run` to avoid duplicated compilation