Yukihiro "Matz" Matsumoto
86dee45f1d
Remove meaningless IO.open(1<<32) test.
2020-10-12 18:20:15 +09:00
Yukihiro "Matz" Matsumoto
950e60363a
Update IO#popen to use keyword arguments instead of Hash args.
2020-10-12 18:20:11 +09:00
Yukihiro "Matz" Matsumoto
5134031e18
Use mrb_int_value() instead of mrb_fixnum_value().
...
Where fixnum overflow can happen.
2020-10-12 18:20:05 +09:00
Yukihiro "Matz" Matsumoto
2b188ed8a1
Reorganize Integer system.
...
- Integrate `Fixnum` and `Integer`
- Remove `Integral`
- `int / int -> int`
- Replace `mrb_fixnum()` to `mrb_int()`
- Replace `mrb_fixnum_value()` to `mrb_int_value()`.
- Use `mrb_integer_p()` instead of `mrb_fixnum_p()`
2020-10-12 18:19:54 +09:00
Yukihiro "Matz" Matsumoto
55163a8a0a
Rename MRB_TT_FIXNUM to MRB_TT_INTEGER.
...
We still have `#define MRB_TT_FIXNUM MRB_TT_INTEGER` for compatibility.
2020-10-12 16:21:47 +09:00
dearblue
80fe9838d2
Integrate Fixnum class into Integer class
...
* The `Fixnum` constant is now an alias for the `Integer` class.
* Remove `struct mrb_state::fixnum_class` member.
If necessary, use `struct mrb_state::integer_class` instead.
2020-10-12 16:21:44 +09:00
Yukihiro "Matz" Matsumoto
8a87549315
Rename float configuration option names.
...
- `MRB_WITHOUT_FLOAT` => `MRB_NO_FLOAT`
- `MRB_USE_FLOAT` => `MRB_USE_FLOAT32`
The former is to use `USE_XXX` naming convention. The latter is to make
sure `float` is 32bit float and not floating point number in general.
2020-10-12 16:21:40 +09:00
Yukihiro "Matz" Matsumoto
474545bba2
Do not define mrb_lstat unless S_ISLNK is defined.
2020-10-12 16:21:14 +09:00
Yukihiro "Matz" Matsumoto
2a366ffba8
Use functions that take symbols to reduce string litrals in C.
2020-10-12 16:20:59 +09:00
Yukihiro "Matz" Matsumoto
00f5ddc9ae
Use mrb_funcall_id() extensively.
...
Except for support files e.g. `mruby-test/driver.c`, which are not
target of symbol collection via `rake gensym`.
2020-10-12 16:20:58 +09:00
KOBAYASHI Shuji
ea31878b1f
Avoid changing directory in mruby-io test
2020-10-12 16:20:46 +09:00
Yukihiro "Matz" Matsumoto
d612344e48
Should not use assert with expressions with side-effect; ref #4981
...
`assert()` can be completely removed when `NDEBUG` is set.
2020-10-12 16:20:45 +09:00
Yukihiro "Matz" Matsumoto
d7e183bfdf
Fixed wrong condition in #4981 .
2020-10-12 16:20:45 +09:00
Yukihiro "Matz" Matsumoto
33647b904e
Avoid snprintf in mruby-io test; ref #4981
2020-10-12 16:20:43 +09:00
Yukihiro "Matz" Matsumoto
47f65a93c5
Remove the temporary file from the AF_UNIX socket test; #4981
2020-10-12 16:20:43 +09:00
dearblue
57611240a9
Prohibit string changes by "s"/"z" specifier of mrb_get_args()
...
- The `s` specifier is a string pointer obtained without performing `mrb_str_modify()`, so it cannot be changed.
- The `z` specifier cannot be changed because it is a string pointer obtained by `RSTRING_CSTR()` which returns `const char *`.
2020-09-25 21:02:58 +09:00
Yukihiro "Matz" Matsumoto
5bfb70e9db
Fix File.extname bug; fix #5077
2020-09-13 11:38:31 +09:00
Yukihiro "Matz" Matsumoto
8b65e4b73c
Add test to ensure #5077
2020-09-13 11:38:06 +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
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
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
4695dfdcb6
Avoid using mrb_funcall() from mruby-io gem.
2020-08-10 08:53:35 +09:00
dearblue
5df95e8d7b
Fix ssize_t for mingw; ref #5030
...
Legacy MinGW and MinGW-w64 had own `ssize_t`.
2020-07-12 17:10:57 +09:00
Rory OConnell
bb23faae65
downcase windows include file for mingw compatability
2020-07-10 21:18:31 -07:00
Rory OConnell
308c6c8311
Need typedef of ssize_t for msc compiler
2020-07-10 21:18:30 -07:00
Yukihiro "Matz" Matsumoto
49ae2a69f2
Add mrb_get_arg1() that retrieves single (and only) argument.
...
`mrb_get_arg1()` raises `ArgumentError` if the method does not receive one
argument.
And replaces all `mrb_get_args(mrb, "o", &arg)` by the new function.
2020-06-20 12:49:46 +09:00
Yukihiro "Matz" Matsumoto
6ba542cd53
Revert part of #5019 (mruby_io_test.c) to honor #4987
...
The issue was reported by @shuujii.
2020-06-05 17:20:41 +09:00
Hiroshi Mimaki
81d340e042
Merge master.
2020-06-05 12:42:56 +09:00
dearblue
ce12ef7e5c
Hiding method implementation C functions in mruby-io
2020-06-03 14:12:51 +09:00
Yukihiro "Matz" Matsumoto
49d97d6051
Add pread/pwrite support on __MACH__ (MacOS) in addition to __unix__.
2020-05-15 12:31:18 +09:00
Yukihiro "Matz" Matsumoto
d64c4d64e6
Make off_t handling simpler; #4872 #4939
...
The newer `clang` warns implicit float conversions.
2020-05-11 10:14:25 +09:00
Yukihiro "Matz" Matsumoto
5e01674b72
Should not use assert with expressions with side-effect; ref #4981
...
`assert()` can be completely removed when `NDEBUG` is set.
2020-05-07 09:37:02 +09:00
Yukihiro "Matz" Matsumoto
b652a4ff14
Fixed wrong condition in #4981 .
2020-05-07 09:36:43 +09:00
Yukihiro "Matz" Matsumoto
7dc0fe66c7
Add #include <string.h> on all platforms for strncpy; #4981
2020-05-07 09:36:21 +09:00
Yukihiro "Matz" Matsumoto
1cdcd00cc0
Remove unused local variable if MRB_UTF8_STRING is not set.
...
Ref #4982 #4983
2020-05-07 09:35:47 +09:00
Yukihiro "Matz" Matsumoto
9f4b5227fe
Avoid snprintf in mruby-io test; ref #4981
2020-05-07 09:33:44 +09:00
Yukihiro "Matz" Matsumoto
d464fe5003
Remove the temporary file from the AF_UNIX socket test; #4981
2020-05-07 09:33:08 +09:00
Yukihiro "Matz" Matsumoto
6b839b2319
Fix IO#readchar to return broken UTF-8 rather than EOF error.
...
The behavior is different from CRuby, but we believe this is a right
behavior for mruby, which only supports either ASCII or UTF-8
exclusively; fix #4983 , ref #4982
```
$ printf '\xe3\x81' | ruby -e 'p STDIN.readchar'
"\xE3\x81"
```
```
$ printf '\xe3\x81' | mruby -e 'p STDIN.readchar'
"\xE3"
```
2020-05-07 09:32:46 +09:00
Yukihiro "Matz" Matsumoto
45bd372755
Fix IO#readchar to support UTF-8 char reading; fix #4712
...
This fix only effective when `MRB_UTF8_STRING` is set.
2020-05-07 09:31:38 +09:00
Yukihiro "Matz" Matsumoto
2fcdd3f8eb
Add assertion as originally intended; ref #4986
2020-05-07 08:38:46 +09:00
Yukihiro "Matz" Matsumoto
e77e6e9d12
Fix _read_buf to be more efficient; fix #4982
...
The bug was introduced by #4712 . The `getc' problem resurrected.
It should be addressed soon.
2020-05-01 16:57:45 +09:00
Yukihiro "Matz" Matsumoto
a2b87c033a
Fix IO#sysread to update buffer string on EOF; ref #4982
2020-05-01 16:54:13 +09:00
Yukihiro "Matz" Matsumoto
b3c5d94bd1
Update IO#ungetc to keep @buf string; ref #4982
2020-05-01 16:53:55 +09:00
Uchio Kondo
6e13467ce8
Fix typo and include location
2020-05-01 16:52:11 +09:00
Uchio Kondo
508ac2030e
Skip socket check on windows
2020-05-01 16:51:47 +09:00
Uchio Kondo
4b81bce48d
Follow C90 style
2020-05-01 16:51:22 +09:00
Uchio Kondo
3486675e00
Test mruby-io in tmpdir when AF_UNIX cannot be created on cwd
2020-05-01 16:50:54 +09:00
Yukihiro "Matz" Matsumoto
84aad39940
Merge pull request #4987 from shuujii/avoid-changing-directory-in-mruby-io-test
...
Avoid changing directory in `mruby-io` test
2020-04-30 17:13:11 +09:00
KOBAYASHI Shuji
aeb86d953e
Avoid changing directory in mruby-io test
2020-04-29 17:48:01 +09:00