KOBAYASHI Shuji
aeb86d953e
Avoid changing directory in mruby-io test
2020-04-29 17:48:01 +09:00
Yukihiro "Matz" Matsumoto
e2ac2a82a5
Should not use assert with expressions with side-effect; ref #4981
...
`assert()` can be completely removed when `NDEBUG` is set.
2020-04-28 22:37:14 +09:00
Yukihiro "Matz" Matsumoto
bb6290a5d5
Fixed wrong condition in #4981 .
2020-04-28 22:34:33 +09:00
Yukihiro "Matz" Matsumoto
312411dea0
Add #include <string.h> on all platforms for strncpy; #4981
2020-04-28 22:34:33 +09:00
Yukihiro "Matz" Matsumoto
7277682cfb
Remove unused local variable if MRB_UTF8_STRING is not set.
...
Ref #4982 #4983
2020-04-28 22:34:01 +09:00
Yukihiro "Matz" Matsumoto
0f229bfbbf
Avoid snprintf in mruby-io test; ref #4981
2020-04-28 18:30:50 +09:00
Yukihiro "Matz" Matsumoto
28b23b44ec
Remove the temporary file from the AF_UNIX socket test; #4981
2020-04-28 18:13:43 +09:00
Yukihiro "Matz" Matsumoto
8627157298
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-04-28 18:07:17 +09:00
Yukihiro "Matz" Matsumoto
b87268f130
Fix IO#readchar to support UTF-8 char reading; fix #4712
...
This fix only effective when `MRB_UTF8_STRING` is set.
2020-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
a395f8e2c8
Rename (and expose) UTF-8 related functions; ref #4712
...
- mrb_utf8len() - returns the size of a UTF-8 char (in bytes)
- mrb_utf8_strlen() - returns the length of a UTF-8 string (in char)
2020-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
3ce459f23a
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-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
e51923778f
Fix IO#sysread to update buffer string on EOF; ref #4982
2020-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
468578113a
Update IO#ungetc to keep @buf string; ref #4982
2020-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
2c32154115
Fix UTF-8 boundary check; ref #4982
2020-04-28 13:57:46 +09:00
Yukihiro "Matz" Matsumoto
47d99457d9
Merge pull request #4981 from udzura/fix-test-mruby-io-on-vboxsf
...
Test mruby-io in tmpdir when AF_UNIX cannot be created on cwd
2020-04-28 09:46:56 +09:00
Uchio Kondo
88b756b39f
Fix typo and include location
2020-04-28 01:52:56 +09:00
Uchio Kondo
462ff4cc84
Skip socket check on windows
2020-04-28 01:49:39 +09:00
Uchio Kondo
18274e717a
Follow C90 style
2020-04-28 01:45:46 +09:00
Uchio Kondo
7870f74c21
Test mruby-io in tmpdir when AF_UNIX cannot be created on cwd
2020-04-28 01:33:50 +09:00
Yukihiro "Matz" Matsumoto
8dee2e3984
Updating parse.y for recent bison` (retry).
2020-04-27 18:52:43 +09:00
Yukihiro "Matz" Matsumoto
8e86e64d78
Revert "Change obsolete %pure-parser to %define api.pure."
...
This reverts commit 682a31f92b .
Unfortunately, I couldn't run newer `bison` on TravisCI. Maybe next
time.
2020-04-27 12:27:56 +09:00
Yukihiro "Matz" Matsumoto
e79e972255
Update .travis.yml to support newer bison on MacOS.
...
If it doesn't work, I will revert the last update to `parse.y`.
2020-04-27 12:21:35 +09:00
Yukihiro "Matz" Matsumoto
682a31f92b
Change obsolete %pure-parser to %define api.pure.
...
Recent `bison` warns for `%pure-parser`. We kept it since MacOS only
provide ancient `bison`, but the warning is noisy and there's no hope
that Apple will upgrade `bison`. MacOS users must install the newer
version of `bison`, by typing `brew install bison` for example.
Note that `brew` does not overwrite the `bison` execution path
automatically, so you need to update your `.bash_profile` as instructed
by `brew`.
2020-04-27 09:00:22 +09:00
Yukihiro "Matz" Matsumoto
17974aa285
Merge pull request #4978 from dearblue/test-ensure
...
Integrate class `EnsureYieldBreak` under test
2020-04-27 09:00:13 +09:00
Yukihiro "Matz" Matsumoto
0a7fd86d59
Merge pull request #4980 from dearblue/context
...
Reduce `struct mrb_context`
2020-04-27 08:59:19 +09:00
Yukihiro "Matz" Matsumoto
d95d46dee6
Merge pull request #4979 from dearblue/mruby-bin
...
Remove unused `mruby-error` in `mruby-bin-mruby`
2020-04-27 08:56:50 +09:00
dearblue
81c8352179
Integrate class EnsureYieldBreak under test
2020-04-26 21:16:44 +09:00
dearblue
6d80c9505d
Remove unused mruby-error in mruby-bin-mruby
2020-04-26 21:16:22 +09:00
dearblue
1b0cf6a91b
Reduce struct mrb_context
2020-04-26 21:15:24 +09:00
Yukihiro "Matz" Matsumoto
954ce5379c
Implemented argument forwarding by ...
2020-04-25 00:00:22 +09:00
Yukihiro "Matz" Matsumoto
8b5c19218d
Merge pull request #4976 from dearblue/splice-undef
...
Support `undef` for `mrb_ary_splice()` instead of `[]`
2020-04-24 23:36:12 +09:00
Yukihiro "Matz" Matsumoto
f6408c7b11
Merge pull request #4975 from dearblue/io-comment
...
Removed comments mentioning `MRB_WITHOUT_FLOAT`; ref 2e661e8
2020-04-24 23:35:10 +09:00
dearblue
095aae5e2c
Removed comments mentioning MRB_WITHOUT_FLOAT; ref 2e661e8
...
The comment is for messages when `MRB_INT16` and `MRB_WITHOUT_FLOAT` are
specified at the same time.
The comment itself is no longer needed now that `MRB_INT16` is gone.
2020-04-24 21:47:20 +09:00
dearblue
26eb29547b
Support undef for mrb_ary_splice() instead of []
...
When removing elements from an array, it is possible to avoid creating
an empty array.
Before this patch:
```c
mrb_ary_splice(mrb, ary, head, len, mrb_ary_new(mrb));
```
After this patch:
```c
mrb_ary_splice(mrb, ary, head, len, mrb_undef_value());
```
2020-04-24 21:32:35 +09:00
Yukihiro "Matz" Matsumoto
d3a02a297f
Fix instance_exec and class_exec to avoid crash on indirect calls.
...
Thank you @shuujii to additional report on #4973
2020-04-22 16:48:33 +09:00
Yukihiro "Matz" Matsumoto
ab508e1e7f
Make mrb_obj_instance_eval to use mrb_singleton_class_ptr; #4973
2020-04-22 16:47:26 +09:00
Yukihiro "Matz" Matsumoto
87d1bbe947
Add new function mrb_singleton_class_ptr(); ref #4973
...
The difference between `mrb_singleton_class` and `mrb_singleton_class_ptr`:
- `mrb_singleton_class_ptr` returns `struct RClass*`.
- `mrb_singleton_class_ptr` returns `NULL` on immediate values where
`mrb_singleton_class` raises exceptions.
2020-04-22 16:44:39 +09:00
Yukihiro "Matz" Matsumoto
2e661e82d1
Removed comments mentioning MRB_INT16.
2020-04-21 20:47:22 +09:00
Yukihiro "Matz" Matsumoto
61c6832b48
Fix the bug by #instance_eval called via a method object; fix #4973
...
The tranpoline code in 6a0b68f8b was wrong; reverted.
2020-04-21 15:44:21 +09:00
Yukihiro "Matz" Matsumoto
ed0038fdf2
Simplified mrb_obj_instance_eval; ref #4973
2020-04-21 15:43:35 +09:00
Yukihiro "Matz" Matsumoto
c181d89c9d
Kernel#clone and Kernel#dup no longer raise TypeError; fix #4974
...
In ISO, those methods should raise `TypeError`, but the spec has been
changed. The change was discussed in [Feature#12979].
2020-04-21 13:21:12 +09:00
Yukihiro "Matz" Matsumoto
c91c9e2429
Merge pull request #4968 from dearblue/check-fd
...
Check the file descriptor with `IO#initialize`; resolve #4966
2020-04-15 09:58:20 +09:00
Yukihiro "Matz" Matsumoto
7add524041
Selecting fd should be less than FD_SETSIZE; close #4966
2020-04-14 14:51:22 +09:00
Yukihiro "Matz" Matsumoto
72928f201c
Merge pull request #4972 from dearblue/boxnan-cptr
...
Fix `MRB_TT_CPTR` object with `MRB_NAN_BOXING`
2020-04-14 14:51:00 +09:00
Yukihiro "Matz" Matsumoto
81a9210091
Merge pull request #4969 from dearblue/nostdio-pack
...
Support `MRB_DISABLE_STDIO` for mruby-pack; ref #4954
2020-04-14 14:46:25 +09:00
Yukihiro "Matz" Matsumoto
e9877bc72a
Merge pull request #4970 from dearblue/nostdio-sprintf
...
Support `MRB_DISABLE_STDIO` for mruby-sprintf; ref #4954
2020-04-14 14:45:26 +09:00
Yukihiro "Matz" Matsumoto
ea632ab8a4
Merge pull request #4971 from dearblue/mruby-config
...
Fixed a build error in mruby-config
2020-04-14 09:29:00 +09:00
dearblue
d0501c69b0
Fix MRB_TT_CPTR object with MRB_NAN_BOXING
...
Previously, if `MRB_NAN_BOXING` is defined, for example,
`mrb_cptr_value()` could not keep an odd address.
If it is `MRB_32BIT`, it can be embedded in `NaN` as it is.
If it is `MRB_64BIT`, some operations are shared with `MRB_WORD_BOXING`.
In this case, the MRB_API function `mrb_nan_boxing_cptr_value()` is
defined.
2020-04-13 23:12:09 +09:00
dearblue
3c03385e2e
Check the file descriptor with IO#initialize; resolve #4966
2020-04-12 14:18:36 +09:00
dearblue
191ccbf660
Support MRB_DISABLE_STDIO for mruby-sprintf; ref #4954
2020-04-11 22:11:24 +09:00