summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2020-08-29Fix `mrb_ary_splat` to copy the array; fix #5067Yukihiro "Matz" Matsumoto
2020-08-12Merge pull request #5065 from ↵Yukihiro "Matz" Matsumoto
shuujii/simplify-MSVC-detection-to-mrb_static_assert Simplify MSVC detection to `mrb_static_assert`
2020-08-12Simplify MSVC detection to `mrb_static_assert`KOBAYASHI Shuji
2020-08-11Merge pull request #5062 from ↵Yukihiro "Matz" Matsumoto
shuujii/use-normal-static_assert-in-mrb_static_assert-as-much-as-possible Use normal `static_assert` in `mrb_static_assert` as much as possible
2020-08-11Merge pull request #5063 from dearblue/stat32Yukihiro "Matz" Matsumoto
Use `struct _stat32` instead of `struct __stat32`
2020-08-11Use `struct _stat32` instead of `struct __stat32`dearblue
It is described as `struct __stat32` in the MSVC reference manual. https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/stat-functions?view=vs-2019 But it doesn't really exist, so it must use `struct _stat32`. It also replaces `struct __stat64` with `struct _stat64` to make it look nicer.
2020-08-11Use normal `static_assert` in `mrb_static_assert` as much as possibleKOBAYASHI Shuji
* `_Static_assert` can also be used with `-std=gnu99` on GCC >= 4.6. * `static_assert` can be used on MSVC. * `static_assert` can be used even on old G++/Clang++ if `__GXX_EXPERIMENTAL_CXX0X__` is defined.
2020-08-11Fixed VC `fstat` issue.Yukihiro "Matz" Matsumoto
2020-08-11Should use `_fstat32()` on 32bit Windows.Yukihiro "Matz" Matsumoto
2020-08-11Add cast for `mrb_fixnum_value()` from `time_t`.Yukihiro "Matz" Matsumoto
2020-08-11Fix `mrb_int` and `size_t` combination warnings.Yukihiro "Matz" Matsumoto
2020-08-10Avoid using `mrb_funcall()` from `mruby-io` gem.Yukihiro "Matz" Matsumoto
2020-08-09Remove duplicated definition of `E_EOF_ERROR`.Yukihiro "Matz" Matsumoto
2020-08-09Merge pull request #5061 from ↵Yukihiro "Matz" Matsumoto
shuujii/allow-mrb_static_assert-to-be-used-outside-of-functions Allow `mrb_static_assert()` to be used outside of functions
2020-08-09Allow `mrb_static_assert()` to be used outside of functionsKOBAYASHI Shuji
The use of `struct` is an idea by @dearblue.
2020-08-08Return `NaN` for `0/0`; d8e060dYukihiro "Matz" Matsumoto
2020-08-08Should not use `mrb_float_value()` with `MRB_WITHOUT_FLOAT`.Yukihiro "Matz" Matsumoto
2020-08-08Reintroduce `mrb_static_assert`; #5051Yukihiro "Matz" Matsumoto
Note that the home brew version of `mrb_static_assert` only works within the function body. This reverts commit 8f99689.
2020-08-07Avoid `division by zero` undefined behavior.Yukihiro "Matz" Matsumoto
2020-08-06Merge pull request #5059 from mruby/stableYukihiro "Matz" Matsumoto
Merge mruby 2.1.2
2020-08-06Merge master.Hiroshi Mimaki
2020-08-06Use `memcpy` to copy stack.Yukihiro "Matz" Matsumoto
2020-08-06Use `memset()` to clear stack unless `MRB_NAN_BOXING`.Yukihiro "Matz" Matsumoto
2020-08-06Remove block clear of `callinfo`.Yukihiro "Matz" Matsumoto
2020-08-06Remove `mrb_static_assert` from the core; #5051Yukihiro "Matz" Matsumoto
2020-08-06Update release date.2.1.2Hiroshi Mimaki
2020-08-05Merge pull request #5052 from dearblue/cistacksYukihiro "Matz" Matsumoto
Extend the `cipush()` and `cipop()` functions
2020-08-05Merge pull request #5058 from dearblue/benchmarkYukihiro "Matz" Matsumoto
Improve `rake benchmark`
2020-08-04Improve `rake benchmark`dearblue
- 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`.
2020-08-04Fix wrong condition for `PACK_DIR_HEX`; ref #5057Yukihiro "Matz" Matsumoto
2020-08-03Should not decrement `count` when `PACK_FLAG_COUNT2`; fix #5057Yukihiro "Matz" Matsumoto
2020-08-03Initialized local variables in `mrb_hash_shift()`.Yukihiro "Matz" Matsumoto
2020-07-31Simplify `khash.h`.Yukihiro "Matz" Matsumoto
- Remove ` kh_put_prepare` function used only internally - Remove `n_occupied` member from `kh_` struct
2020-07-31Fix `puts` in `mruby-print` on no argument; 0e9bd24Yukihiro "Matz" Matsumoto
`puts` should print newline when called without arguments.
2020-07-29Use type tag for hash code in `ht_hash_func()`2.1.2-rc2KOBAYASHI Shuji
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.
2020-07-29Fix the VM stack handling bug in 'mrb_yield_with_class()`; fix #5042Yukihiro "Matz" Matsumoto
2020-07-29Fixed shift width for `MRB_ENV_SET_BIDX()`dearblue
ref c07f24cd1 and close #5035
2020-07-26Merge pull request #5050 from dearblue/memsize_of2Yukihiro "Matz" Matsumoto
Update document for `ObjectSpace.memsize_of` [ci skip]
2020-07-26Extend the `cipush()` and `cipop()` functionsdearblue
- Returns the updated call info. - Unify the processing around `cipush()`. - `cipop()` restores the stack.
2020-07-26Update document for `ObjectSpace.memsize_of` [ci skip]dearblue
The `recurse` keyword is removed by f00657ead7c3e5f6f9a346d7797a280b5c9f02fa.
2020-07-25Merge pull request #5049 from shuujii/use-type-tag-for-hash-code-in-ht_hash_funcYukihiro "Matz" Matsumoto
Use type tag for hash code in `ht_hash_func()`
2020-07-25Use type tag for hash code in `ht_hash_func()`KOBAYASHI Shuji
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.
2020-07-24Change the logic to calculate object (`iv_tbl`) size; #5045Yukihiro "Matz" Matsumoto
2020-07-24Merge pull request #5045 from dearblue/memsize_ofYukihiro "Matz" Matsumoto
Improve `mruby-os-memsize`
2020-07-24Improve prototype for `mrb_objspace_page_slot_size()`; ref #5032dearblue
If it qualify a return type that is not a pointer with `const`, the compiler ignores it.
2020-07-24Avoid using FPU with `mruby-os-memsize`; ref #5032dearblue
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.
2020-07-24Support without `mruby-method` for `mruby-os-memsize`; ref #5032dearblue
2020-07-24Add NUL terminator to string object size calculation; ref #5032dearblue
2020-07-23`ObjectSpace.count_objects` to support `MRB_TT_ISTRUCT`; #5046Yukihiro "Matz" Matsumoto
2020-07-23Fix a bug with `ht_index` called with `size==0`; fix #5046Yukihiro "Matz" Matsumoto
It happens when a hash made empty calls `rehash`.