Yukihiro "Matz" Matsumoto
4e15832000
Update y.tab.c; ref #4933
2020-09-10 21:17:38 +09:00
Yukihiro "Matz" Matsumoto
c27e451931
Merge pull request #4933 from dearblue/variables
...
Fix take over file scope variables with `mruby` and `mirb` command
2020-09-10 18:12:38 +09:00
Yukihiro "Matz" Matsumoto
c345fe4321
Merge pull request #5076 from dearblue/call_type
...
Remove `enum call_type`
2020-09-07 23:22:13 +09:00
dearblue
f99c315400
Remove enum call_type
...
It seems to be unnecessary from mruby-1.0.0 or earlier.
2020-09-03 23:18:16 +09:00
Yukihiro "Matz" Matsumoto
e2c628583e
Fix mrb_ary_splat() to copy the array always.
2020-08-30 19:14:34 +09:00
Yukihiro "Matz" Matsumoto
705f95c983
Merge pull request #5068 from sizious/mingw32-legacy-fixes
...
mruby-io: Fixing compilation issue under the legacy MinGW environment
2020-08-29 23:04:02 +09:00
Yukihiro "Matz" Matsumoto
6b8664b951
Fix the bug caused by to_a returning a frozen array.
...
Reported by @shuujii.
2020-08-29 23:00:36 +09:00
Yukihiro "Matz" Matsumoto
f08f3c34be
Fix a bug introduced by the last commit.
...
Should have handled the case `to_a` returns `nil`.
2020-08-29 22:58:07 +09:00
SiZiOUS
510b9e7abc
mruby-io: Fixing compilation issue under the legacy MinGW environment
...
Adding MRB_MINGW32_LEGACY in common.h in order to identify the legacy MinGW environment (i.e. NOT to be confused with MinGW-w64).
For more info about MinGW defined macros, see: https://sourceforge.net/p/predef/wiki/Compilers/
2020-08-29 13:58:00 +02:00
Yukihiro "Matz" Matsumoto
564372d7b9
Fix mrb_obj_ceqq to avoid array copying.
2020-08-29 18:43:47 +09:00
Yukihiro "Matz" Matsumoto
a66d86cfc1
Fix mrb_ary_splat to copy the array; fix #5067
2020-08-29 18:43:26 +09:00
Yukihiro "Matz" Matsumoto
96bae1d508
Merge pull request #5065 from shuujii/simplify-MSVC-detection-to-mrb_static_assert
...
Simplify MSVC detection to `mrb_static_assert`
2020-08-12 21:51:45 +09:00
KOBAYASHI Shuji
77c35e7097
Simplify MSVC detection to mrb_static_assert
2020-08-12 20:05:31 +09:00
Yukihiro "Matz" Matsumoto
2aa70e9690
Merge pull request #5062 from 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-11 22:33:44 +09:00
Yukihiro "Matz" Matsumoto
ae09a219d5
Merge pull request #5063 from dearblue/stat32
...
Use `struct _stat32` instead of `struct __stat32`
2020-08-11 22:31:09 +09:00
dearblue
c5dc184a6d
Use struct _stat32 instead of struct __stat32
...
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-11 22:09:28 +09:00
KOBAYASHI Shuji
bab7e9f032
Use normal static_assert in mrb_static_assert as much as possible
...
* `_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-11 20:47:20 +09:00
Yukihiro "Matz" Matsumoto
3b8df2c285
Fixed VC fstat issue.
2020-08-11 16:35:50 +09:00
Yukihiro "Matz" Matsumoto
cfaaf7c6d4
Should use _fstat32() on 32bit Windows.
2020-08-11 16:02:05 +09:00
Yukihiro "Matz" Matsumoto
5210482c59
Add cast for mrb_fixnum_value() from time_t.
2020-08-11 16:01:23 +09:00
Yukihiro "Matz" Matsumoto
5e55b61c44
Fix mrb_int and size_t combination warnings.
2020-08-11 15:06:51 +09:00
Yukihiro "Matz" Matsumoto
4695dfdcb6
Avoid using mrb_funcall() from mruby-io gem.
2020-08-10 08:53:35 +09:00
Yukihiro "Matz" Matsumoto
55482063a7
Remove duplicated definition of E_EOF_ERROR.
2020-08-09 21:57:41 +09:00
Yukihiro "Matz" Matsumoto
ab5726d4e4
Merge pull request #5061 from shuujii/allow-mrb_static_assert-to-be-used-outside-of-functions
...
Allow `mrb_static_assert()` to be used outside of functions
2020-08-09 21:57:30 +09:00
KOBAYASHI Shuji
0d54568b4d
Allow mrb_static_assert() to be used outside of functions
...
The use of `struct` is an idea by @dearblue.
2020-08-09 20:39:36 +09:00
Yukihiro "Matz" Matsumoto
df969b163a
Return NaN for 0/0; d8e060d
2020-08-08 15:36:55 +09:00
Yukihiro "Matz" Matsumoto
ad8b36daa1
Should not use mrb_float_value() with MRB_WITHOUT_FLOAT.
2020-08-08 14:14:17 +09:00
Yukihiro "Matz" Matsumoto
c849b894ed
Reintroduce mrb_static_assert; #5051
...
Note that the home brew version of `mrb_static_assert` only works within
the function body. This reverts commit 8f99689 .
2020-08-08 10:39:26 +09:00
Yukihiro "Matz" Matsumoto
d8e060d2d3
Avoid division by zero undefined behavior.
2020-08-07 10:51:33 +09:00
Yukihiro "Matz" Matsumoto
9742bce198
Merge pull request #5059 from mruby/stable
...
Merge mruby 2.1.2
2020-08-06 17:47:36 +09:00
Hiroshi Mimaki
7f8d38bbbe
Merge master.
2020-08-06 17:38:20 +09:00
Yukihiro "Matz" Matsumoto
0b95c8a1e8
Use memcpy to copy stack.
2020-08-06 17:02:15 +09:00
Yukihiro "Matz" Matsumoto
57a798e687
Use memset() to clear stack unless MRB_NAN_BOXING.
2020-08-06 17:01:59 +09:00
Yukihiro "Matz" Matsumoto
755233ef7d
Remove block clear of callinfo.
2020-08-06 17:01:28 +09:00
Yukihiro "Matz" Matsumoto
8f99689ba3
Remove mrb_static_assert from the core; #5051
2020-08-06 16:01:45 +09:00
Hiroshi Mimaki
1a9bdfcde5
Update release date.
2.1.2
2020-08-06 12:45:59 +09:00
Yukihiro "Matz" Matsumoto
11cc7bed96
Merge pull request #5052 from dearblue/cistacks
...
Extend the `cipush()` and `cipop()` functions
2020-08-05 17:38:51 +09:00
Yukihiro "Matz" Matsumoto
ef9c68795f
Merge pull request #5058 from dearblue/benchmark
...
Improve `rake benchmark`
2020-08-05 06:51:54 +09:00
dearblue
fde95a7db5
Improve rake benchmark
...
- 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-04 22:04:05 +09:00
Yukihiro "Matz" Matsumoto
cfb799a18e
Fix wrong condition for PACK_DIR_HEX; ref #5057
2020-08-04 17:50:09 +09:00
Yukihiro "Matz" Matsumoto
43443d9377
Should not decrement count when PACK_FLAG_COUNT2; fix #5057
2020-08-03 19:46:34 +09:00
Yukihiro "Matz" Matsumoto
faed5054f8
Initialized local variables in mrb_hash_shift().
2020-08-03 15:53:50 +09:00
Yukihiro "Matz" Matsumoto
0a505dcfd6
Simplify khash.h.
...
- Remove ` kh_put_prepare` function used only internally
- Remove `n_occupied` member from `kh_` struct
2020-07-31 18:14:02 +09:00
Yukihiro "Matz" Matsumoto
1517d77e93
Fix puts in mruby-print on no argument; 0e9bd24
...
`puts` should print newline when called without arguments.
2020-07-31 06:57:05 +09:00
KOBAYASHI Shuji
112120969d
Use type tag for hash code in ht_hash_func()
...
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.
2.1.2-rc2
2020-07-29 09:17:32 +09:00
Yukihiro "Matz" Matsumoto
63956036e1
Fix the VM stack handling bug in 'mrb_yield_with_class()`; fix #5042
2020-07-29 09:09:37 +09:00
dearblue
cdf45438f0
Fixed shift width for MRB_ENV_SET_BIDX()
...
ref c07f24cd1 and close #5035
2020-07-29 09:05:29 +09:00
Yukihiro "Matz" Matsumoto
9571a4c07e
Merge pull request #5050 from dearblue/memsize_of2
...
Update document for `ObjectSpace.memsize_of` [ci skip]
2020-07-26 13:56:26 +09:00
dearblue
d96be5c1b2
Extend the cipush() and cipop() functions
...
- Returns the updated call info.
- Unify the processing around `cipush()`.
- `cipop()` restores the stack.
2020-07-26 13:12:01 +09:00
dearblue
0983c723c5
Update document for ObjectSpace.memsize_of [ci skip]
...
The `recurse` keyword is removed by f00657ead7 .
2020-07-26 13:12:01 +09:00