dearblue
fda5c0c073
Fix the lack of precision for Time; ref d74355061
...
- `Time.local` and `Time.utc` are able to use with `MRB_INT16 + MRB_WITHOUT_FLOAT`.
- `time_t` is converted directly from the Ruby object.
- `time + sec` and` time - sec` are not affected by the precision of `mrb_float`.
Similarly, calculations are possible with `MRB_INT16 + MRB_WITHOUT_FLOAT`.
2019-07-27 21:25:18 +09:00
Yukihiro "Matz" Matsumoto
2f0a95768b
Merge pull request #4598 from dearblue/time-without-float
...
Fix mruby-time with `MRB_WITHOUT_FLOAT`; ref d74355061
2019-07-27 15:05:16 +09:00
Yukihiro "Matz" Matsumoto
b58f769c96
Fix line number bug; fix #4513
...
Also fix the misfeature introduced in 23783a4 , that ignores newlines
between method chains.
2019-07-27 15:00:46 +09:00
dearblue
1467c14adc
Fix mruby-time with MRB_WITHOUT_FLOAT; ref d74355061
2019-07-27 14:42:37 +09:00
Yukihiro "Matz" Matsumoto
42fb251d0a
Merge pull request #4597 from shuujii/drop-dependency-from-mruby-array-ext-to-mruby-enum-ext
...
Drop dependency from `mruby-array-ext` to `mruby-enum-ext`
2019-07-27 14:01:37 +09:00
Yukihiro "Matz" Matsumoto
3103da8570
Merge pull request #4594 from shuujii/move-NilClass-to_h-to-mruby-object-ext-from-mruby-enum-ext
...
Move `NilClass#to_h` to `mruby-object-ext` from `mruby-enum-ext`
2019-07-27 13:09:34 +09:00
KOBAYASHI Shuji
778310260c
Drop dependency from mruby-array-ext to mruby-enum-ext
2019-07-26 11:48:53 +09:00
KOBAYASHI Shuji
87cc58ba3d
Refine Array#(permutation|combination) test
...
- No guarantees about the order in which the permutations/combinations
are yielded.
- Drop dependency on `Enumerator`.
2019-07-25 22:31:54 +09:00
KOBAYASHI Shuji
2d520eaf6f
Move NilClass#to_h to mruby-object-ext from mruby-enum-ext
2019-07-24 20:13:26 +09:00
Yukihiro "Matz" Matsumoto
5779464ec3
Add return to silence a warning; ref #4593
2019-07-24 10:50:22 +09:00
Yukihiro "Matz" Matsumoto
866a9e6481
Use MRB_TT_ISTRUCT for Random to reduce memory.
...
When the size of Xorshift128 seed (`sizeof(uint32)*4`) is bigger than
ISTRUCT_DATA_SIZE, `Random` uses Xorshift96 instead.
2019-07-24 10:48:00 +09:00
Yukihiro "Matz" Matsumoto
a57a9bce79
Call MRB_SET_INSTANCE_TT for Complex and Rational.
2019-07-24 10:48:00 +09:00
KOBAYASHI Shuji
e86aa61f20
Add encoding argument to Integral#chr
...
Currently, `Integral#chr` in mruby changes behavior by `MRB_UTF8_STRING`
setting.
before this patch:
$ bin/mruby -e 'p 171.chr' #=> "\xab" (`MRB_UTF8_STRING` is disabled)
$ bin/mruby -e 'p 171.chr' #=> "«" (`MRB_UTF8_STRING` is enabled)
This behavior is incompatible with Ruby, and a little inconvenient because
it can't be interpreted as ASCII-8BIT with `MRB_UTF8_STRING`, I think.
So add encoding argument according to Ruby.
after this patch:
$ bin/mruby -e 'p 171.chr' #=> "\xab"
$ bin/mruby -e 'p 171.chr("ASCII-8BIT")' #=> "\xab"
$ bin/mruby -e 'p 171.chr("UTF-8")' #=> "«"
Allow only `String` for encoding because mruby doesn't have `Encoding`
class, and `"ASCII-8BIT"` (`"BINARY"`) and `"UTF-8"` (only with
`MRB_UTF8_STRING`) are valid value (default is `"ASCII-8BIT"`).
2019-07-23 20:16:46 +09:00
Yukihiro "Matz" Matsumoto
5166e316ef
Merge pull request #4591 from shuujii/integrate-Integral-chr-Fixnum-chr-to-mruby-string-ext
...
Integrate `Integral#chr` (`Fixnum#chr`) to `mruby-string-ext`
2019-07-22 21:40:02 +09:00
Yukihiro "Matz" Matsumoto
d74355061b
Fix mruby-time to work with MRB_WITHOUT_FLOAT; ref #4576
...
As a side effect, `mrb_time_at()` now takes `mrb_int` instead of
`double` as time arguments.
2019-07-22 21:34:37 +09:00
Yukihiro "Matz" Matsumoto
87d1b2a910
Improve conflict error message of Time and Math; ref #4576
2019-07-22 20:21:30 +09:00
Yukihiro "Matz" Matsumoto
949f6f5324
Check conflicts with Complex and MRB_WITHOUT_FLOAT; ref #4576
...
The Complex class needs `mrb_float` so that it does not work with
`MRB_WITHOUT_FLOAT` anyway.
2019-07-22 20:19:01 +09:00
Yukihiro "Matz" Matsumoto
f99e9963b2
Switch random generator from Mersenne Twister to Xorshit128.
...
Now `rand` can be used with `MRB_WITHOUT_FLOAT`; ref #4576
2019-07-22 15:49:59 +09:00
KOBAYASHI Shuji
c980fe2792
Integrate Integral#chr (Fixnum#chr) to mruby-string-ext
...
Because they're defined in both `mruby-string-ext` and `mruby-numeric-ext`
(they seem more natural to define in N, but `mruby-string-ext` depends on
`Integral#chr`).
2019-07-21 22:59:41 +09:00
KOBAYASHI Shuji
8ab846b5b9
Refine String#chr test and separate Fixnum#chr test
2019-07-19 21:48:06 +09:00
Yukihiro "Matz" Matsumoto
2a410c0e1b
Avoid making top-level env in initialization code; ref #4581
2019-07-18 00:34:08 +09:00
Yukihiro "Matz" Matsumoto
cdf5e3963d
Merge branch 'master' into fix-range-min-with-mruby-range-ext
2019-07-17 22:33:55 +09:00
Yukihiro "Matz" Matsumoto
7172231b8f
Merge pull request #4586 from shuujii/revert-4300
...
Revert #4300
2019-07-17 22:29:35 +09:00
KOBAYASHI Shuji
e38ba3d58c
Revert #4300
...
Originally, it was not necessary to change. I made mistake.
2019-07-17 19:49:58 +09:00
KOBAYASHI Shuji
1b7516a4ae
Fix (fixnum_value ... float_value).min with mruby-range-ext
...
Before this patch:
$ bin/mruby -e 'p (2...4.0).min' #=> TypeError
After this patch (same as CRuby and without `mruby-range-ext`):
$ bin/mruby -e 'p (2...4.0).min' #=> 2
2019-07-17 19:18:23 +09:00
KOBAYASHI Shuji
8cb37804c1
Allow mruby-range-ext to work with MRB_WITHOUT_FLOAT; ref 2add8641
2019-07-17 18:58:21 +09:00
Yukihiro "Matz" Matsumoto
2add864164
Allow mruby-range-ext to work with MRB_WITHOUT_FLOAT; ref #4576
2019-07-17 10:36:10 +09:00
Yukihiro "Matz" Matsumoto
d605b72c1d
Merge branch 'master' into i110/inspect-recursion
2019-07-17 10:35:41 +09:00
Yukihiro "Matz" Matsumoto
d9a656756b
Merge pull request #4576 from dearblue/error-configuration
...
Error needed/conflicts configuration
2019-07-16 12:12:58 +09:00
KOBAYASHI Shuji
acad9567c1
Unify type of line number to uint16_t
2019-07-15 23:03:41 +09:00
dearblue
fd89948164
Fix empty array refers; ref #4556
...
For example, `"".unpack("")` evaluates to `[]`.
2019-07-14 12:03:44 +09:00
dearblue
4861be1171
Fix pack/unpack for base64; ref #4556
...
The pack/unpack "m" directive should be treated as a length rather than
an element count.
2019-07-14 12:03:00 +09:00
dearblue
109d926e9c
Add pack/unpack test for base64
2019-07-15 10:41:32 +09:00
dearblue
c96b517ea2
Error needed/conflicts configuration
...
The purpose is to clarify the error if there is a needed/conflicts
configuration at compile time.
2019-07-14 00:29:17 +09:00
KOBAYASHI Shuji
e8a84d663f
Add mruby-method gem to default.gembox [ci skip]
2019-07-13 20:42:32 +09:00
Yukihiro "Matz" Matsumoto
a9fd2e6464
Resolve ambiguous argument warning.
2019-07-13 13:16:30 +09:00
Ryan Lopopolo
56929362f5
Fix Range#min fast path with exclusive range
2019-07-09 01:48:15 -07:00
Ryan Lopopolo
0ad5ba7a0f
Add a fast path for Float and Fixnum ranges for Range#max and Range#min
...
If no block is given and the Range has Fixnum or Float endpoints, do not iterate with
each and instead compare the endpoints directly. This implementation passes all of
the applicable specs from Ruby Spec.
2019-07-09 01:42:40 -07:00
Ryan Lopopolo
eab07daf92
Add Range#max and Range#min tests from Ruby Spec
2019-07-09 01:41:10 -07:00
Ryan Lopopolo
469c6261c6
Add tests for String Ranges
...
Range#each depends on String#upto which is implemented in mruby-string-ext
which is why these tests live there.
2019-07-08 22:36:24 -07:00
dearblue
a215292b6a
Use nested assert
2019-06-29 11:54:17 +09:00
dearblue
1b9f949f36
Use a normal method instead of a lambda
...
Ref commit 35319bed01
2019-06-29 11:54:17 +09:00
KOBAYASHI Shuji
bc3176da63
Use __ENCODING__ in tests
...
It cannot be used for `String#size` test if judging whether or not `MRB_UTF8_STRING` is defined by result of `String#size`.
2019-06-28 19:26:29 +09:00
KOBAYASHI Shuji
ad8473bd66
Add modification tests for immediate value
2019-06-27 18:47:48 +09:00
Yukihiro "Matz" Matsumoto
84779f0170
Merge pull request #4532 from shuujii/fix-String-byteslice-with-MRB_UTF8_STRING-and-some-edge-cases
...
Fix `String#byteslice` with `MRB_UTF8_STRING` and some edge cases
2019-06-26 12:41:56 +09:00
Yukihiro "Matz" Matsumoto
a5b005b57c
Merge pull request #4493 from dearblue/fix-rational-new
...
Fix rational new on 32 bits mode
2019-06-26 08:06:06 +09:00
Yukihiro "Matz" Matsumoto
45c99155d8
Merge pull request #4492 from dearblue/fix-complex-new
...
Fix complex new on 32 bits mode
2019-06-26 07:40:38 +09:00
KOBAYASHI Shuji
75df13a973
Fix String#byteslice with MRB_UTF8_STRING and some edge cases
...
Example:
$ bin/mruby -e '
p "あa".byteslice(1)
p "bar".byteslice(3)
p "bar".byteslice(4..0)
'
Before this patch:
"a"
""
RangeError (4..0 out of range)
After this patch (same as Ruby):
"\x81"
nil
nil
2019-06-25 23:09:23 +09:00
Yukihiro "Matz" Matsumoto
e59a80c787
Merge pull request #4528 from shuujii/fix-argument-specs-to-Array
...
Fix argument specs to `Array`
2019-06-25 20:27:26 +09:00
Yukihiro "Matz" Matsumoto
6724416d5c
Fixed a bug caused by to_s that returns nil; fix 4504
2019-06-25 18:07:48 +09:00