summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2019-08-18first bit of doc generationDavid Siaw
2019-08-17Merge pull request #4634 from shuujii/refactor-set-unset-string-type-flagsYukihiro "Matz" Matsumoto
Refactor set/unset string type flags
2019-08-17Fix wrong argument for `fprintf` in `mruby-bin-mrbc`KOBAYASHI Shuji
2019-08-17Refactor set/unset string type flagsKOBAYASHI Shuji
Introduce `RSTR_SET_TYPE_FLAG` macro to set the specified string type flag and clear the others.
2019-08-17Merge pull request #4625 from dearblue/rindex-broken-utf8Yukihiro "Matz" Matsumoto
Fix `String#rindex` with invalid UTF-8 string
2019-08-17Resolve conflict between #4582 and C++ warning.Yukihiro "Matz" Matsumoto
2019-08-17Implement `Array#each` using inline mruby bytecode.Yukihiro "Matz" Matsumoto
2019-08-17Remove unnecessary `OP_JMPNOT` for `unless` statement.Yukihiro "Matz" Matsumoto
2019-08-17Fix `String#rindex` with invalid UTF-8 stringdearblue
Previously `String#rindex` returned the wrong index when given an invalid UTF-8 string. ```terminal % ruby26 -e 'str = "\xf0☀\xf1☁\xf2☂\xf3☃\xf0☀\xf1☁\xf2☂\xf3☃"; p str.rindex("☁")' 11 % ./mruby-head -e 'str = "\xf0☀\xf1☁\xf2☂\xf3☃\xf0☀\xf1☁\xf2☂\xf3☃"; p str.rindex("☁")' nil % ./mruby-patched -e 'str = "\xf0☀\xf1☁\xf2☂\xf3☃\xf0☀\xf1☁\xf2☂\xf3☃"; p str.rindex("☁")' 11 ```
2019-08-17Stop using `mrb_to_str` as a converter (it is not).Yukihiro "Matz" Matsumoto
2019-08-17Add `String#rindex` test for invalid UTF-8 stringdearblue
2019-08-17Fix `String#rindex` test for UTF-8 stringdearblue
2019-08-17Avoid `mrb_funcall` from `Class#new` when no overloading.Yukihiro "Matz" Matsumoto
2019-08-16Merge pull request #4633 from ↵Yukihiro "Matz" Matsumoto
shuujii/shared-fshared-string-is-not-required-when-sharing-nofree-string SHARED/FSHARED string is not required when sharing NOFREE string
2019-08-16Update `struct RArray` union to silence C++ warning.Yukihiro "Matz" Matsumoto
2019-08-16Optimize bytecode for `Class#new`.Yukihiro "Matz" Matsumoto
2019-08-16Implement `Class#new` using inline mruby bytecode.Yukihiro "Matz" Matsumoto
2019-08-16SHARED/FSHARED string is not required when sharing NOFREE stringKOBAYASHI Shuji
I think the string buffer of NOFREE string always exists and does not need to be released, so it can be shared as another NOFREE string. Also changed the `mrb_shared_string` field order so that eliminate padding if `int` and `mrb_int` sizes are less than pointer size.
2019-08-16Avoid creating unnecessary empty arrays on splat.Yukihiro "Matz" Matsumoto
But this changes requires `OP_ARYCAT` and `OP_ARYPUSH` to accept `nil` as their first operand. Alternative VMs (e.g. `mruby/c`) that understand mruby bytecode need to be updated.
2019-08-16Stop raising exceptions from `undef` C API.Yukihiro "Matz" Matsumoto
Some `undef' functions may be called before initialization, thus causes infinite error recursion.
2019-08-15Merge pull request #4632 from shuujii/remove-unneeded--include-in-src-string.cYukihiro "Matz" Matsumoto
Remove unneeded `#include` in `src/string.c`
2019-08-15Remove unneeded `#include` in `src/string.c`KOBAYASHI Shuji
2019-08-14Merge pull request #4631 from ↵Yukihiro "Matz" Matsumoto
shuujii/extract-initialization-code-of-shared-and-fshared-string-to-function Extract initialization code of shared and fshared string to function
2019-08-14Extract initialization code of shared and fshared string to functionKOBAYASHI Shuji
2019-08-14Avoid array copying in `mrb_instance_new`.Yukihiro "Matz" Matsumoto
2019-08-14Integrate `kazuho/mruby-class-new-fiber-safe` in the master.Yukihiro "Matz" Matsumoto
Avoid calling `initialize` via `mrb_funcall`, which cause `cross C boundary` error from Fibers started in the method.
2019-08-14Small refactoring on #4630Yukihiro "Matz" Matsumoto
2019-08-14Remove `MRB_API` from functions only called from `vm.c`.Yukihiro "Matz" Matsumoto
* `mrb_vm_define_class` * `mrb_vm_define_module` Only functions called from user code requires `MRB_API`.
2019-08-14Merge pull request #4630 from ↵Yukihiro "Matz" Matsumoto
shuujii/extract-struct-RString-initialization-code-to-function Extract `struct RString` initialization code to function
2019-08-13Extract `struct RString` initialization code to functionKOBAYASHI Shuji
2019-08-12Merge pull request #4629 from shuujii/mrb_str_pool-can-embed-one-more-byteYukihiro "Matz" Matsumoto
`mrb_str_pool` can embed one more byte; ref #4626
2019-08-12`mrb_str_pool` can embed one more byte; ref #4626KOBAYASHI Shuji
2019-08-12Remove unnecessary prototypes from 'keywords`; fix #4628Yukihiro "Matz" Matsumoto
2019-08-12Merge pull request #4626 from ↵Yukihiro "Matz" Matsumoto
shuujii/mrb_str_modify_keep_ascii-can-embed-one-more-byte `mrb_str_modify_keep_ascii` can embed one more byte
2019-08-12Replacing region may overwrap with the target region; fix #4627Yukihiro "Matz" Matsumoto
2019-08-11Revert "Should have cleared `mrb->globals` in `mrb_gc_free_gv`; fix #4618"Yukihiro "Matz" Matsumoto
This reverts commit 3dc8d9d7b3d0be2f91fa050a13e3b422500df628.
2019-08-11Reorder finalization to avoid potential crash; ref #4618Yukihiro "Matz" Matsumoto
`mrb_gc_destroy` may call other mruby API functions from the finalizers. So call that function first.
2019-08-11Add `NUL` always to short strings; ref 98fc887Yukihiro "Matz" Matsumoto
2019-08-11`mrb_str_modify_keep_ascii` can embed one more byteKOBAYASHI Shuji
The condition to make an embedded string was incorrect. Because there were several similar codes, extracted into `RSTR_EMBEDDABLE_P` macro.
2019-08-11Merge pull request #4621 from ↵Yukihiro "Matz" Matsumoto
shuujii/remove-monkey-patches-for-Ruby-1.9-or-earlier Remove monkey patches for Ruby 1.9 or earlier
2019-08-11Merge pull request #4624 from ↵Yukihiro "Matz" Matsumoto
shuujii/enumerable-reject-etc.-should-return-Enumerable-without-block `Enumerable#reject`, etc. should return `Enumerable` without block
2019-08-10`Enumerable#reject`, etc. should return `Enumerable` without blockKOBAYASHI Shuji
2019-08-09Merge pull request #4623 from chasonr/complex-fixesYukihiro "Matz" Matsumoto
Avoid premature overflow in Complex#abs and Complex#/
2019-08-09Avoid overflow and underflow in Complex#/Ray Chason
2019-08-08Implement Complex#abs in terms of Math.hypotRay Chason
Math.hypot avoids premature overflow and underflow
2019-08-08Remove monkey patches for Ruby 1.9 or earlierKOBAYASHI Shuji
2019-08-07Merge pull request #4620 from ↵Yukihiro "Matz" Matsumoto
shuujii/improve-MiniRake-rule-enhancement-for-Rake-compatibility Improve MiniRake rule enhancement for Rake compatibility
2019-08-07Improve MiniRake rule enhancement for Rake compatibilityKOBAYASHI Shuji
Support pathmap notation, recursive dependencies search, and so on.
2019-08-07Update `mrb_to_str` and related functions.Yukihiro "Matz" Matsumoto
Contrary to the name, `mrb_to_str` just checks type, no conversion.
2019-08-07Reorganize `mrb_string_value_cstr` and related functions.Yukihiro "Matz" Matsumoto
`mrb_string_value_cstr` and `mrb_string_value_len`: obsolete `mrb_string_cstr`: new function to retrieve NULL terminated C string `RSTRING_CSTR`: wrapper macro of `mrb_string_cstr`