summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2019-06-29Nested `assert` for mrbtestdearblue
When nesting `assert` used in test, it is indented and displayed. Assertion numbers are concatenated by `"-"` at this time. The purpose is to match the apparent numbers when failing with `assert_mruby` which is defined by `mrbgems/mruby-bin-mruby/bintest/mruby.rb` for example. Child assertions "skip" and "info" are reported as parent assertions "info" and `$ok_test += 1`. The child assertions "ko" and "crash" are reported as the parent assertion "ko" and `$ko_test += 1`. When child assertions are mixed, "ko" takes precedence. Incompatibility: - `$mrbtest_assert_idx` takes `nil` or an integer array object. So far it was `nil` or an integer. - `$asserts` points to the top of the internal stack in the `assert`. - `$mrbtest_assert` points to the top of the internal stack in `assert`.
2019-06-28Merge pull request #4538 from shuujii/use-__ENCODING__-in-testsYukihiro "Matz" Matsumoto
Use `__ENCODING__` in tests
2019-06-28Merge pull request #4539 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-unnecessary-backticks-in-src-range.c Remove unnecessary backticks in `src/range.c`; ref #2858
2019-06-28Remove unnecessary backticks in `src/range.c`; ref #2858KOBAYASHI Shuji
2019-06-28Use `__ENCODING__` in testsKOBAYASHI Shuji
It cannot be used for `String#size` test if judging whether or not `MRB_UTF8_STRING` is defined by result of `String#size`.
2019-06-28Merge pull request #4535 from shuujii/add-modification-tests-for-immediate-valueYukihiro "Matz" Matsumoto
Add modification tests for immediate value
2019-06-28Merge pull request #4536 from komainu8/fix_broken_linksYukihiro "Matz" Matsumoto
Fix broken links for mruby.org
2019-06-27Fix broken links for mruby.orgYasuhiro Horimoto
A part of a fix for issue mruby/mruby.github.io#50
2019-06-27Add modification tests for immediate valueKOBAYASHI Shuji
2019-06-27Skip copying delete keys in a hash; fix #4534Yukihiro "Matz" Matsumoto
2019-06-26Merge pull request #4533 from shuujii/silence-unused-label-warningsYukihiro "Matz" Matsumoto
Silence unused label warnings from gcc; ref #4524
2019-06-26Silence unused label warnings from gcc; ref #4524KOBAYASHI Shuji
mruby/mruby/src/string.c:1722:4: warning: label 'bytes' defined but not used [-Wunused-label] bytes: ^~~~~
2019-06-26Merge pull request #4524 from dearblue/reverse-utf8Yukihiro "Matz" Matsumoto
Change to UTF-8 string reversing with in place
2019-06-26Merge pull request #4532 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-String-byteslice-with-MRB_UTF8_STRING-and-some-edge-cases Fix `String#byteslice` with `MRB_UTF8_STRING` and some edge cases
2019-06-26Merge pull request #4493 from dearblue/fix-rational-newYukihiro "Matz" Matsumoto
Fix rational new on 32 bits mode
2019-06-26Merge pull request #4492 from dearblue/fix-complex-newYukihiro "Matz" Matsumoto
Fix complex new on 32 bits mode
2019-06-25Fix `String#byteslice` with `MRB_UTF8_STRING` and some edge casesKOBAYASHI Shuji
Example: $ bin/mruby -e ' p "あa".byteslice(1) p "bar".byteslice(3) p "bar".byteslice(4..0) ' Before this patch: "a" "" RangeError (4..0 out of range) After this patch (same as Ruby): "\x81" nil nil
2019-06-25Merge pull request #4516 from ↵Yukihiro "Matz" Matsumoto
shuujii/fix-struct-RRange-overflow-on-32-bit-CPU-with-MRB_NAN_BOXING Fix `struct RRange` overflow on 32-bit CPU with `MRB_NAN_BOXING`
2019-06-25Merge pull request #4517 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-unneeded-statement-in-SET_OBJ_VALUE-with-boxing_word.h Remove unneeded statement in `SET_OBJ_VALUE` with `boxing_word.h`
2019-06-25Merge pull request #4528 from shuujii/fix-argument-specs-to-ArrayYukihiro "Matz" Matsumoto
Fix argument specs to `Array`
2019-06-25Merge pull request #4530 from ↵Yukihiro "Matz" Matsumoto
shuujii/compare-obj-pointer-directly-instead-of-using-mrb_obj_eq-in-mrb_gc_unregister Compare obj pointer directly instead of using mrb_obj_eq in mrb_gc_unregister
2019-06-25Fixed `mrb_iv_remove` with immediate objects; fix #4519Yukihiro "Matz" Matsumoto
The #4520 tried to address the issue, but it changes the type of `mrb_check_frozen` argument; close #4520
2019-06-25Fixed a bug caused by `to_s` that returns `nil`; fix 4504Yukihiro "Matz" Matsumoto
2019-06-25Fix `mrb_str_to_str()` to handle symbols.Yukihiro "Matz" Matsumoto
2019-06-25Renamed `stacked` to `onstack`; ref #4523Yukihiro "Matz" Matsumoto
2019-06-25Unify loops to minimize bytecode sizeRyan Lopopolo
2019-06-24Compare obj pointer directly instead of using mrb_obj_eq in mrb_gc_unregisterKOBAYASHI Shuji
Because immediate values are not registered.
2019-06-23Fix argument specs to `Array`KOBAYASHI Shuji
2019-06-23Use explicit block parameterRyan Lopopolo
2019-06-23Optimize String#each_lineRyan Lopopolo
2019-06-23Merge pull request #4526 from shuujii/refine-Hash-rehash-exampleYukihiro "Matz" Matsumoto
Refine `Hash#rehash` example [ci skip]
2019-06-23Merge pull request #4523 from dearblue/use-stackYukihiro "Matz" Matsumoto
Use stack memory for small name of Struct members
2019-06-23Merge pull request #4525 from dearblue/utf8len-overflowYukihiro "Matz" Matsumoto
Fix potential overflow in `utf8len()`
2019-06-22Fix the unnecessary `mrb_str_modify()` calldearblue
Now to be calls `mrb_str_modify()` only once when 2 or more characters.
2019-06-22Delete the unnecessary block brace in `mrb_str_reverse_bang`dearblue
2019-06-22Fix string brakes for one UTF-8 charactordearblue
2019-06-22Add test for one UTF-8 charactordearblue
2019-06-22Change to UTF-8 string reversing with in placedearblue
Reverses UTF-8 strings without allocated heap for working memory. 1. String before reversing: ``` "!yburmの界世" # byte unit [33, 121, 98, 117, 114, 109, 227, 129, 174, 231, 149, 140, 228, 184, 150] ``` 2. Reverse the byte order of each character: ``` [33, 121, 98, 117, 114, 109, 174, 129, 227, 140, 149, 231, 150, 184, 228] ``` 3. Reverse the whole byte order and complete: ``` [228, 184, 150, 231, 149, 140, 227, 129, 174, 109, 114, 117, 98, 121, 33] # string "世界のmruby!" ```
2019-06-22Replacement to function for string reversingdearblue
2019-06-22Speed up base case by 2xRyan Lopopolo
Make non-paragraph mode twice as fast. Performance is within a factor of 2 of the original implementation.
2019-06-22Add paragraph mode to String#each_line in mrblibRyan Lopopolo
mruby/mruby#4511 demonstrated an infinite loop in `String#each_line` when given an empty string separator. In MRI, an empty separator places String#each_line in paragraph mode, where the String is separated on successive runs of newlines. In paragraph mode, the String `"abc\n\n\ndef\nxyz"` is split into `["abc\n\n\n", "def\nxyz"]`. This commit makes the String#each_line implementation as close to ruby/spec compliant as possible given the limitations of mruby core. With this patch, the following specs fail for `String#each_line`: - uses `$/` as the separator when none is given (can be fixed by aliasing and redefining the method to use $/ as the default value of separator in mruby-io) - when no block is given returned Enumerator size should return nil (`Enumerator#size` is not supported on mruby) - tries to convert the separator to a string using to_str (`String#to_str` is not implemented on mruby) This patch has similar memory consumption compared to the prior implementation and is takes 4x the time the prior implementation takes to execute: ```console /usr/bin/time -l ./bin/mruby -e '("aaa\n\nbbbbb\n\n\n\n\ncccc" * 100000).each_line("\n") { }'; ```
2019-06-22Refine `Hash#rehash` example [ci skip]KOBAYASHI Shuji
Previous example doesn't work because string key (frozen) can't be modified.
2019-06-22Fix potential overflow in `utf8len()`dearblue
For example on 32 bit mode, when `p = 0xfffffffd`, `e = 0xfffffffe` and `len = 4`, the sum of `p` and `len` can be to `1`, and comparison with `e` will to be false. As a result, a segmentation fault occurs by referring to address 0.
2019-06-22Merge pull request #4518 from ↵Yukihiro "Matz" Matsumoto
shuujii/add-ISO-section-number-to-Kernel-local_variables Add ISO section number to `Kernel.#local_variables` [ci skip]
2019-06-22Use stack memory for small name of Struct membersdearblue
2019-06-22Merge pull request #4521 from ↵Yukihiro "Matz" Matsumoto
shuujii/move-Kernel-__send__-test-to-core-from-mruby-metaprog Move `Kernel#__send__` test to core from `mruby-metaprog`
2019-06-21Move `Kernel#__send__` test to core from `mruby-metaprog`KOBAYASHI Shuji
2019-06-20Add ISO section number to `Kernel.#local_variables` [ci skip]KOBAYASHI Shuji
2019-06-19Remove unneeded statement in `SET_OBJ_VALUE` with `boxing_word.h`KOBAYASHI Shuji
`(r).value.bp` and `v` have the same value due to assignment of the line preceding the removed line.
2019-06-19Merge pull request #4510 from shuujii/remove-unneeded-mrb_str_dup-in-Module-nameYukihiro "Matz" Matsumoto
Remove unneeded `mrb_str_dup()` in `Module#name`