Yukihiro "Matz" Matsumoto
b68e7a605c
Negation was not a good way to handle negative integers; fix #3729
...
There's a number that negation does not work (-2147483648 in 32bit
environment).
2017-07-05 18:13:37 +09:00
Yukihiro "Matz" Matsumoto
b643a1a8bc
In Ruby, sprintf specifier %u should behave as %d; fix #3730
...
Since there's no unsigned integer in Ruby. Binary, octal and
hexadecimal negative numbers can be represented by using 2's
compliment. But decimal (not being power of 2) cannot be use
that kind of format.
2017-07-05 17:48:40 +09:00
Yukihiro "Matz" Matsumoto
e9cdc88008
Refactor sprintf() code.
2017-07-04 08:50:39 +09:00
Yukihiro "Matz" Matsumoto
31bc2b0009
Initialize flags for each loop.
2017-07-04 08:46:33 +09:00
Yukihiro "Matz" Matsumoto
466a18b0d3
Remove redundant use of Object#to_s in interpolation.
2017-06-28 23:28:24 +09:00
Yukihiro "Matz" Matsumoto
aee1476ebd
Provide better way to check compile errors.
...
Now you can just call `mrb_load_*` functions then check
`context->parser_nerr > 0` if the return value is `undef`,
instead of calling `mrb_parse_*` functions independently.
ref #3248 #3331
2017-06-28 16:04:40 +09:00
Yukihiro "Matz" Matsumoto
15945e14b9
Revert "Make mrb_load_exec a static function."
...
This reverts commit 7944d9a6d4 .
Because it voids #3248 and #3331 . But we should add better way
to check whether compile errors occur without duplicated callings.
2017-06-28 16:00:59 +09:00
Yukihiro "Matz" Matsumoto
f0abd4241f
Avoid mrb_funcall() unless absolutely necessary; ref #3722
...
As a result, `#chr` is not called for ch < 0x80, so we need to
update the "invalid chr" test.
2017-06-28 12:03:53 +09:00
Yukihiro "Matz" Matsumoto
3554a41a54
Remove unnecessary initialization of a local variable.
2017-06-27 22:48:06 +09:00
Yukihiro "Matz" Matsumoto
877e16501c
No longer need to copy argv from mrb_get_args; ref #3722
2017-06-27 22:47:26 +09:00
Yukihiro "Matz" Matsumoto
d0717efda6
Should raise an exception if break called in ensure; fix #3721
2017-06-23 18:08:04 +09:00
Yukihiro "Matz" Matsumoto
7944d9a6d4
Make mrb_load_exec a static function.
2017-06-23 17:56:12 +09:00
Yukihiro "Matz" Matsumoto
e8a4e4262a
Add write barrier to protect proc reference from fiber; fix #3719
2017-06-21 17:59:14 +09:00
Yukihiro "Matz" Matsumoto
464d3fc0a3
Use alias enum_for to_enum instead of alias :enum_for :to_enum.
2017-06-21 11:13:43 +09:00
Yukihiro "Matz" Matsumoto
057be5ffb5
use unless instead of if not.
2017-06-21 11:13:33 +09:00
Yukihiro "Matz" Matsumoto
615e7e44e3
Avoid using snprintf(3) in case MRB_DISABLE_STDIO; fix #3714
2017-06-20 09:39:33 +09:00
Asmod4n
abca63c73b
Save gc_arena after buffer got allocated
...
Latest fix was freeing the buffer while it was still in use.
Fixes #3712
2017-06-19 20:27:38 +02:00
Yukihiro "Matz" Matsumoto
0de7eec628
Fixed disclosure of local variables by eval; ref #3710
...
This patch fixes the latter part of #3710 . We need to change
`struct REnv` to fix the former part of the issue.
2017-06-19 22:00:16 +09:00
Yukihiro "Matz" Matsumoto
0411cea2df
Use MRB_PRId instead of d for mrb_int decimal specifier; ref #3701
2017-06-16 11:50:38 +09:00
Yukihiro "Matz" Matsumoto
e96f254ead
Use mrb_str_new() instead of malloc(); ref #3701
...
Otherwise the function may terminate and cause memory leaks.
2017-06-16 11:46:40 +09:00
Yukihiro "Matz" Matsumoto
473b2bb20d
Should not use sizeof(buf) when buf is char*; #3701
2017-06-16 11:42:51 +09:00
Yukihiro "Matz" Matsumoto
a7770a39aa
Merge branch 'string-upto' of https://github.com/ksss/mruby into ksss-string-upto
2017-06-16 11:35:42 +09:00
Yukihiro "Matz" Matsumoto
ebd6636a1e
Call write barriers for stack-modified fibers; fix #3699
2017-06-15 23:20:36 +09:00
Yukihiro "Matz" Matsumoto
d7e09ffa5f
Print the file name along with line number on syntax errors; fix #3698
2017-06-15 15:46:03 +09:00
Yukihiro "Matz" Matsumoto
47bd44fce1
Prevent Fiber#initialize to be called twice; fix #3705
2017-06-15 15:16:56 +09:00
ksss
4d9ca27ba6
Use malloc instead of dynamic allocation
2017-06-14 18:28:39 +09:00
ksss
432a813905
Fix arena overflow error
2017-06-14 18:12:56 +09:00
ksss
19785f43d1
Reimplement String#upto
2017-06-14 17:30:31 +09:00
Yukihiro "Matz" Matsumoto
b9f771dc50
Handles exceptions from code generation phase; fix #3695
2017-06-07 13:29:08 +09:00
Yukihiro "Matz" Matsumoto
fc7096f18a
Limit recursion level of codegen(); fix #3690
2017-06-05 13:18:31 +09:00
Yukihiro "Matz" Matsumoto
7f417ade42
Revert "Update NODE_BLOCK check logic in void_expr_error."
...
This reverts commit 31e30686b0 .
2017-06-02 13:31:03 +09:00
Yukihiro "Matz" Matsumoto
31e30686b0
Update NODE_BLOCK check logic in void_expr_error.
2017-06-02 13:01:29 +09:00
Yukihiro "Matz" Matsumoto
0f2f021330
Fixed a bug in void_expr_error.
2017-06-02 12:06:40 +09:00
Yukihiro "Matz" Matsumoto
b59d244c0d
Add more precise void expression checks; ref #3686
2017-06-02 11:53:26 +09:00
Yukihiro "Matz" Matsumoto
a893877b0d
Check for super using OP_ARGARY; fix #3678
...
It generates a wasted empty array for each `super` call though.
It should be fixed in the future, if possible.
2017-06-01 09:38:42 +09:00
Yukihiro "Matz" Matsumoto
cbd4aae41c
Mark the proc object representing top-level as an internal object; #3621
2017-05-29 14:13:17 +09:00
Yukihiro "Matz" Matsumoto
7e4731655f
Fixed off-by-one error in fiber_switch(); ref #3641
2017-05-26 01:24:28 +09:00
Yukihiro "Matz" Matsumoto
ac442bc1df
Raise an exception when transfer arguments are too many; fix #3641
...
The fix was proposed by @block8437. Thank you.
2017-05-25 21:39:13 +09:00
Yukihiro "Matz" Matsumoto
5e1a6a2cc2
Make gen_assignment() to support NODE_SCALL; ref #3658
2017-05-25 12:40:49 +09:00
Yukihiro "Matz" Matsumoto
3ef97e3dd9
Under MRB_INT64, width may be bigger than INT_MAX; fix #3665
2017-05-25 10:40:35 +09:00
Yukihiro "Matz" Matsumoto
d2458e66c2
Remove class info from backtrace lines.
2017-05-23 23:50:42 +09:00
ksss
98f9c33fe0
String#concat: Try to convert when not string
2017-05-21 10:30:27 +09:00
Clayton Smith
bf30b8e8bf
Change return back to break in the default case.
2017-05-12 14:43:12 -04:00
ksss
30df7c8762
Fix segmentation fault ref: #3648
2017-05-08 23:18:14 +09:00
Nobuyoshi Nakada
ef6e14ee2b
Better error message
...
Raise argument error with the better message, at the only place
where the size to fill can be negative.
2017-04-29 10:17:24 +09:00
Nobuyoshi Nakada
e05c30738e
Use FILL and PUSH
...
Instead of loop or `memcpy` after `CHECK`, use dedicated macros,
`FILL` and `PUSH`, respectively.
2017-04-29 10:10:31 +09:00
Yukihiro "Matz" Matsumoto
3e07a2d77c
Silence warnings caused by implicit type casting.
2017-04-25 21:00:16 +09:00
Yukihiro "Matz" Matsumoto
92dcfbaab3
Add explicit cast from double to long.
2017-04-25 17:43:03 +09:00
Yukihiro "Matz" Matsumoto
88cd807379
Avoid use of snprintf() when DISABLE_STDIO is set; fix #3632
...
ref #3492 #3515 #3517
2017-04-25 10:41:50 +09:00
Yukihiro "Matz" Matsumoto
6088276cc8
Merge pull request #3630 from nobu/bug/sprintf-sp3inf
...
Fix space flag with inf/nan
2017-04-24 09:06:57 +09:00