Yukihiro "Matz" Matsumoto
e9b1d9dc2f
Array size may be changed in mrb_get_args() reentry.
...
fix #4116 ; fix #4117 ; fix #4118 ; fix #4119 ; fix #4120
2018-09-18 07:07:43 +09:00
Yukihiro "Matz" Matsumoto
0ff1540e8b
Merge pull request #4122 from blacktm/iphone-exclude-pipe-exec
...
Exclude pipe and exec on iOS/tvOS
2018-09-17 13:26:04 +09:00
Tom Black
82053dd945
Exclude pipe and exec on iOS/tvOS
...
Use of `execl()` is prohibited on these platforms
2018-09-15 13:55:11 -07:00
Yukihiro "Matz" Matsumoto
ed4dbce052
fixup! Add support for iOS platforms that does not support fork; fix #4113
2018-09-16 00:58:52 +09:00
Yukihiro "Matz" Matsumoto
05595c1284
Merge pull request #4121 from clayton-shopify/fix-sprintf-overflow
...
Prevent signed integer overflow.
2018-09-16 00:45:55 +09:00
Yukihiro "Matz" Matsumoto
2661ac7049
Add support for iOS platforms that does not support fork; fix #4113
2018-09-16 00:41:48 +09:00
Clayton Smith
2760cea451
Prevent signed integer overflow.
2018-09-14 16:53:26 -04:00
Yukihiro "Matz" Matsumoto
f93734f622
Merge pull request #4110 from dearblue/fix-typo1
...
Fix typo
2018-09-08 11:20:11 +09:00
dearblue
366848996a
Clear terminated space
2018-09-07 22:32:34 +09:00
dearblue
1595e8368a
Fix indent
2018-09-07 22:32:34 +09:00
dearblue
fd57af3ea4
Undesirable line split
2018-09-07 22:32:34 +09:00
dearblue
9da9e5eb4e
Fix typo for concatenate
2018-09-07 22:32:34 +09:00
Yukihiro "Matz" Matsumoto
625976d793
Fix integer overflow issue; fix #4108
...
I misunderstood the return value from `snprintf()`, which is NOT number
of characters written in buffer, but the number of character the buffer
has to have to write the complete output.
2018-09-07 03:20:57 +09:00
Yukihiro "Matz" Matsumoto
3447162a4c
Add a new method unpack1 to mruby-pack gem.
2018-09-07 02:16:56 +09:00
Yukihiro "Matz" Matsumoto
04f8b0431c
Fix heap buffer overflow in unpack_a; fix #4103
2018-09-07 02:15:55 +09:00
Yukihiro "Matz" Matsumoto
fdaec90780
Make Kernel#sleep to accept float as a duration time.
...
But when `MRB_WITHOUT_FLOAT` is set, there's no way to sleep for
sub seconds. So mruby specific `usleep` is provided.
2018-09-06 23:42:05 +09:00
Yukihiro "Matz" Matsumoto
72522f8e0e
Remove Sleep module that does not exist in CRuby.
2018-09-06 23:35:32 +09:00
Yukihiro "Matz" Matsumoto
0b44e802a9
Need to check if merging hash is empty; fix #4107
2018-09-06 23:30:32 +09:00
Yukihiro "Matz" Matsumoto
4cd4c64266
Need to support multiple ** splats in argument list; fix #4106
2018-09-06 14:40:21 +09:00
Yukihiro "Matz" Matsumoto
a170c1dd70
Refactored mruby-sleep gem.
...
* Method implementation functions made `static`.
* Function declaration style has been changed.
* Unnecessary header file `mrb_sleep.h` removed.
* Used `mrb_get_args()` instead of self parsing.
* Indentation kept untouched.
2018-09-05 14:55:49 +09:00
Yukihiro "Matz" Matsumoto
44fdd53f2e
Add mruby-sleep gem to the core.
2018-09-05 13:30:14 +09:00
Yukihiro "Matz" Matsumoto
b01b0d242b
Free mrbc_context on exit from mruby.
2018-09-05 07:58:36 +09:00
Yukihiro "Matz" Matsumoto
ade7185a2b
Merge pull request #4055 from take-cheeze/verbose_bintest
...
Support verbose mode in bintest.
2018-09-05 07:11:23 +09:00
Yukihiro "Matz" Matsumoto
2a9525caab
Add argv and argc check in OP_ENTER; fix #4102
...
`argv` may be retrieved from an array whose `ptr` is `NULL` when it`s
empty.
2018-09-05 07:06:25 +09:00
Yukihiro "Matz" Matsumoto
9b5910bd0f
Revert "Remove top-level constant lookup; CRuby2.5"; fix #4070
...
This reverts commit c96def7c96 .
This change was from my misunderstanding.
2018-09-04 21:19:07 +09:00
Yukihiro "Matz" Matsumoto
7592dfcf7d
Need more precise constant name check.
...
This change was inspired by [ruby-bugs#7573]
2018-09-04 20:50:54 +09:00
Yukihiro "Matz" Matsumoto
c2634e18b6
Add type casts to silence MSVC warnings.
2018-09-04 16:22:50 +09:00
Yukihiro "Matz" Matsumoto
28c50b3e90
Merge pull request #4101 from take-cheeze/fix_4085
...
Avoid root fiber initialization for CRuby.
2018-09-04 16:22:40 +09:00
take-cheeze
901dccb2df
Avoid root fiber initialization for CRuby workaround.
...
closes #4085 .
2018-09-04 16:18:01 +09:00
take-cheeze
e6357f3baa
Fix indent.
2018-09-04 16:18:01 +09:00
Yukihiro "Matz" Matsumoto
02adae167f
Merge pull request #4098 from dearblue/reverse-gems-final
...
Reversing gems final
2018-09-04 07:26:25 +09:00
dearblue
cbf2738861
Reverse gems final
2018-09-02 14:13:09 +09:00
Yukihiro "Matz" Matsumoto
a657117e4e
Avoid warning in MSVC compilation.
2018-09-01 17:36:35 +09:00
Yukihiro "Matz" Matsumoto
20c0c6330f
Too much peephole optimization in gen_call; fix #4091
...
It causes trouble for safe navigation operator.
2018-09-01 17:14:54 +09:00
Yukihiro "Matz" Matsumoto
b80e0ef742
Move Kernel#send to mruby-metaprog gem.
...
But `BasicObject#__send__` is still available from the core.
2018-09-01 11:20:30 +09:00
Yukihiro "Matz" Matsumoto
593c12a5cd
Avoid NoMethodError exception from mrb_func_basic_p.
2018-09-01 11:18:12 +09:00
Yukihiro "Matz" Matsumoto
05f377dee4
Use __send__ instead of send.
2018-09-01 11:02:59 +09:00
Yukihiro "Matz" Matsumoto
0c6353aa2c
Remove MRB_API from mrb_f_send which is not API.
2018-09-01 11:01:50 +09:00
Yukihiro "Matz" Matsumoto
2be42aef0f
Fix ISO/JIS section numbers.
2018-09-01 09:35:46 +09:00
Yukihiro "Matz" Matsumoto
1bc1fed534
Update RITE_BINARY_FORMAT_VER and RITE_VM_VER.
...
The bytecode format was updated so the header version constants must be
updated as well.
2018-08-30 22:48:05 +09:00
Yukihiro "Matz" Matsumoto
50b840c9de
Use mrb_ensure_hash_type() to check if an operand is a Hash; fix #4097
2018-08-30 22:30:36 +09:00
Yukihiro "Matz" Matsumoto
f6564dd83e
Add new function mrb_ensure_hash_type(); ref #4097
...
Unlike `mrb_check_hash_type()` that returns `nil` if the argument is
not a `Hash`, `mrb_ensure_hash_type()` raises a `TypeError` exception.
2018-08-30 22:30:36 +09:00
Yukihiro "Matz" Matsumoto
e471d37ca5
Separate meta-programming features to mruby-metaprog gem.
...
We assume meta-programming is less used in embedded environments.
We have moved following methods:
* Kernel module
global_variables, local_variables, singleton_class,
instance_variables, instance_variables_defined?, instance_variable_get,
instance_variable_set, methods, private_methods, public_methods,
protected_methods, singleton_methods, define_singleton_methods
* Module class
class_variables, class_variables_defined?, class_variable_get,
class_variable_set, remove_class_variable, included_modules,
instance_methods, remove_method, method_removed, constants
* Module class methods
constants, nesting
Note:
Following meta-programming methods are kept in the core:
* Module class
alias_method, undef_method, ancestors, const_defined?, const_get,
const_set, remove_const, method_defined?, define_method
* Toplevel object
define_method
`mruby-metaprog` gem is linked by default (specified in default.gembox).
When it is removed, it will save 40KB (stripped:8KB) on x86-64
environment last time I measured.
2018-08-30 22:30:36 +09:00
Yukihiro "Matz" Matsumoto
75a01af710
Remove consequent OP_RETURN by peephole optimization.
2018-08-30 01:23:17 +09:00
Yukihiro "Matz" Matsumoto
5addd5db4a
Need to clear mrb->c->cibase->ridx (toplevel ridx) at L_STOP; fix #4092
...
This problem only appears when `mrb` executed multiple times (i.e. `mirb`)
2018-08-30 01:20:59 +09:00
Yukihiro "Matz" Matsumoto
500bd38dfe
uint16_t is too small for reference count; fix #4093
...
Use `uint32_t` instead. Theoretically `uint32_t` can overflow as well,
but I think it is sufficient size for embeddable Ruby VM.
2018-08-30 00:29:35 +09:00
Yukihiro "Matz" Matsumoto
2c93e4a0a8
The operand of OP_ARYDUP may not be an array; fix #4094
...
This commit also fix #4096 .
2018-08-30 00:29:35 +09:00
Yukihiro "Matz" Matsumoto
f76cc483d5
Fix off-by-one error in OP_EPUSH and OP_ONERR; fix #4095
2018-08-29 23:59:20 +09:00
Yukihiro "Matz" Matsumoto
e91b6a0378
Merge pull request #4080 from 'ukrainskiysergey-node_negate_fix'
2018-08-29 13:34:02 +09:00
Yukihiro "Matz" Matsumoto
441ff45a51
Merge branch 'node_negate_fix' of https://github.com/ukrainskiysergey/mruby into ukrainskiysergey-node_negate_fix
2018-08-29 13:29:54 +09:00