- 20 Aug, 2019 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Use `RBasic` padding for embedded string on 64-bit CPU
-
KOBAYASHI Shuji authored
On 64-bit CPU, there is padding in `RBasic`, so reorder the fields and use it as buffer of embedded string. This change allows 4 more bytes to be embedded on 64-bit CPU. However, an incompatibility will occur if `RString::as::ary` is accessed directly because `RString` structure has changed.
-
- 19 Aug, 2019 4 commits
-
-
Yukihiro "Matz" Matsumoto authored
Move `mrb_str_pool` to `src/string.c` to use `str_init` family
-
KOBAYASHI Shuji authored
-
Yukihiro "Matz" Matsumoto authored
Allow external definition of MRB_API macro
-
Ryan Lopopolo authored
When building WebAssembly targets with clang (e.g. wasm32-unknown-unknown), all symbols are hidden by default. To export a symbol, it must be marked with __attribute__((visibility(default))) Rather than detecting this exotic target in mruby, allow MRB_API to be defined externally.
-
- 18 Aug, 2019 16 commits
-
-
Yukihiro "Matz" Matsumoto authored
Suppress warnings for `strncat()`
-
Yukihiro "Matz" Matsumoto authored
Simplify get arguments
-
Yukihiro "Matz" Matsumoto authored
Generate doxygen docs for mruby
-
Yukihiro "Matz" Matsumoto authored
Make symbolic link names unique for test
-
Yukihiro "Matz" Matsumoto authored
Rename `mrb_shared_string::len` to `mrb_shared_string::capa`
-
Yukihiro "Matz" Matsumoto authored
Also use `str_init_shared` for `orig` in `str_make_shared()`
-
Yukihiro "Matz" Matsumoto authored
Prohibit changes to iseq in principle
-
dearblue authored
-
David Siaw authored
-
KOBAYASHI Shuji authored
Because this field is used as capacity of string buffer.
-
KOBAYASHI Shuji authored
-
dearblue authored
`strncat()` also needs `'\0'`.
-
dearblue authored
- `mrb_str_index_m()` and `mrb_str_rindex()` Make `mrb_get_args()` called only once from called twice. - `mrb_str_byteslice()` Replace `goto` with `if ~ else`.
-
dearblue authored
-
David Siaw authored
-
David Siaw authored
-
- 17 Aug, 2019 11 commits
-
-
Yukihiro "Matz" Matsumoto authored
Refactor set/unset string type flags
-
KOBAYASHI Shuji authored
Introduce `RSTR_SET_TYPE_FLAG` macro to set the specified string type flag and clear the others.
-
Yukihiro "Matz" Matsumoto authored
Fix `String#rindex` with invalid UTF-8 string
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
dearblue authored
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 ``` -
Yukihiro "Matz" Matsumoto authored
-
dearblue authored
-
dearblue authored
-
Yukihiro "Matz" Matsumoto authored
-
- 16 Aug, 2019 6 commits
-
-
Yukihiro "Matz" Matsumoto authored
Merge pull request #4633 from shuujii/shared-fshared-string-is-not-required-when-sharing-nofree-string SHARED/FSHARED string is not required when sharing NOFREE string
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
KOBAYASHI Shuji authored
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.
-
Yukihiro "Matz" Matsumoto authored
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.
-