- 08 Aug, 2020 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Note that the home brew version of `mrb_static_assert` only works within the function body. This reverts commit 8f99689b.
-
- 07 Aug, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
-
- 06 Aug, 2020 7 commits
-
-
Yukihiro "Matz" Matsumoto authored
Merge mruby 2.1.2
-
Hiroshi Mimaki authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Hiroshi Mimaki authored
-
- 05 Aug, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
Extend the `cipush()` and `cipop()` functions
-
- 04 Aug, 2020 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
Improve `rake benchmark`
-
dearblue authored
- Use POSIX format instead of GNU extension for `time` command. For example FreeBSD's `time(1)` does not have GNU extensions available. - Sort `benchmark/bm_*.rb`. This is because the order of the bar graph cannot be uniquely determined depending on the result of `Dir.glob`.
-
Yukihiro "Matz" Matsumoto authored
-
- 03 Aug, 2020 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 31 Jul, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
- Remove ` kh_put_prepare` function used only internally - Remove `n_occupied` member from `kh_` struct
-
- 30 Jul, 2020 1 commit
-
-
Yukihiro "Matz" Matsumoto authored
`puts` should print newline when called without arguments.
-
- 29 Jul, 2020 3 commits
-
-
KOBAYASHI Shuji authored
The function corresponding to `ht_hash_func()` was as follows in the days of khash implementation (before d78acc7a). ```c mrb_hash_ht_hash_func(mrb_state *mrb, mrb_value key) { enum mrb_vtype t = mrb_type(key); ... switch (t) { ... default: hv = mrb_funcall(mrb, key, "hash", 0); h = (khint_t)t ^ (khint_t)mrb_fixnum(hv); break; } ... } ``` When switched to the segmented list implementation (d78acc7a), this function was changed as follows. ```c sg_hash_func(mrb_state *mrb, seglist *t, mrb_value key) { enum mrb_vtype tt = mrb_type(key); ... switch (tt) { ... default: hv = mrb_funcall(mrb, key, "hash", 0); h = (size_t)t ^ (size_t)mrb_fixnum(hv); break; } ... } ``` Since the argument `t` was added, the variable for type tag was changed from `t` to `tt`, but the variable used in the expression of `h` remained `t`. Probably this is an omission of change, so fixed it.
-
Yukihiro "Matz" Matsumoto authored
-
- 26 Jul, 2020 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
Update document for `ObjectSpace.memsize_of` [ci skip]
-
dearblue authored
- Returns the updated call info. - Unify the processing around `cipush()`. - `cipop()` restores the stack.
-
- 25 Jul, 2020 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Use type tag for hash code in `ht_hash_func()`
-
KOBAYASHI Shuji authored
The function corresponding to `ht_hash_func()` was as follows in the days of khash implementation (before d78acc7a). ```c mrb_hash_ht_hash_func(mrb_state *mrb, mrb_value key) { enum mrb_vtype t = mrb_type(key); ... switch (t) { ... default: hv = mrb_funcall(mrb, key, "hash", 0); h = (khint_t)t ^ (khint_t)mrb_fixnum(hv); break; } ... } ``` When switched to the segmented list implementation (d78acc7a), this function was changed as follows. ```c sg_hash_func(mrb_state *mrb, seglist *t, mrb_value key) { enum mrb_vtype tt = mrb_type(key); ... switch (tt) { ... default: hv = mrb_funcall(mrb, key, "hash", 0); h = (size_t)t ^ (size_t)mrb_fixnum(hv); break; } ... } ``` Since the argument `t` was added, the variable for type tag was changed from `t` to `tt`, but the variable used in the expression of `h` remained `t`. Probably this is an omission of change, so fixed it.
-
- 24 Jul, 2020 6 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
Improve `mruby-os-memsize`
-
dearblue authored
If it qualify a return type that is not a pointer with `const`, the compiler ignores it.
-
dearblue authored
And, in the calculation of the instance variable size, the fraction was always rounded down because of division of integers, so fix it. At the same time, test items that are no longer passed due to this change are deleted.
-
dearblue authored
-
dearblue authored
-
- 22 Jul, 2020 8 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
It happens when a hash made empty calls `rehash`.
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
To make debugging easy, and to improve the performance little bit.
-
Yukihiro "Matz" Matsumoto authored
The responsibility moved to caller to avoid confusion. Currently the function is called from only 2 places, so it is relatively easy to ensure not to update `gray_list` in the caller. But the assumption may change in the future.
-
Yukihiro "Matz" Matsumoto authored
`mrb_ary_modify` calls `mrb_write_barrier`, so can cause the same problem of the past `push`. It is provided for use-level API.
-
Yukihiro "Matz" Matsumoto authored
When the array is very big, the simpler `mrb_write_barrier` causes calling `gc_mark_children` for big arrays repeatedly. That would hinder performance very badly.
-