summaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2018-09-05Add `argv` and `argc` check in `OP_ENTER`; fix #4102Yukihiro "Matz" Matsumoto
`argv` may be retrieved from an array whose `ptr` is `NULL` when it`s empty.
2018-09-04Revert "Remove top-level constant lookup; CRuby2.5"; fix #4070Yukihiro "Matz" Matsumoto
This reverts commit c96def7c96c50f3b8e22e47ce31a6c5a37939dfd. This change was from my misunderstanding.
2018-09-04Need more precise constant name check.Yukihiro "Matz" Matsumoto
This change was inspired by [ruby-bugs#7573]
2018-09-04Add type casts to silence MSVC warnings.Yukihiro "Matz" Matsumoto
2018-09-01Avoid warning in MSVC compilation.Yukihiro "Matz" Matsumoto
2018-09-01Move `Kernel#send` to `mruby-metaprog` gem.Yukihiro "Matz" Matsumoto
But `BasicObject#__send__` is still available from the core.
2018-09-01Avoid `NoMethodError` exception from `mrb_func_basic_p`.Yukihiro "Matz" Matsumoto
2018-09-01Fix ISO/JIS section numbers.Yukihiro "Matz" Matsumoto
2018-08-30Use `mrb_ensure_hash_type()` to check if an operand is a `Hash`; fix #4097Yukihiro "Matz" Matsumoto
2018-08-30Add new function `mrb_ensure_hash_type()`; ref #4097Yukihiro "Matz" Matsumoto
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-30Separate meta-programming features to `mruby-metaprog` gem.Yukihiro "Matz" Matsumoto
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-30Need to clear `mrb->c->cibase->ridx` (toplevel ridx) at L_STOP; fix #4092Yukihiro "Matz" Matsumoto
This problem only appears when `mrb` executed multiple times (i.e. `mirb`)
2018-08-30The operand of `OP_ARYDUP` may not be an array; fix #4094Yukihiro "Matz" Matsumoto
This commit also fix #4096.
2018-08-29Fix off-by-one error in `OP_EPUSH` and `OP_ONERR`; fix #4095Yukihiro "Matz" Matsumoto
2018-08-29Check the size of rescue&ensure stacks; ref #4088Yukihiro "Matz" Matsumoto
Those small stack indexes can cause integer overflow.
2018-08-29Simplified `#ifdef` nesting in `codedump.c`; fix #4089Yukihiro "Matz" Matsumoto
`printf()` and related functions should not be called when `MRB_DISABLE_STDIO` is defined.
2018-08-25Reduce integer casting warnings.Yukihiro "Matz" Matsumoto
2018-08-25fixup! New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-08-25Hash splat `**` should not be ignored.Yukihiro "Matz" Matsumoto
Implemented by adding `OP_HASHCAT` that merges hashes.
2018-08-25Fixed a bug in `OP_HASHADD`.Yukihiro "Matz" Matsumoto
2018-08-25Add a new function `mrb_hash_merge()`.Yukihiro "Matz" Matsumoto
2018-08-25Add bytecode support for `MRB_WORD_BOXING`.Yukihiro "Matz" Matsumoto
2018-08-25New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-08-25irep is released when Fiber is terminatedpyama86
2018-08-25Rename ambiguous function names.Yukihiro "Matz" Matsumoto
`mrb_iv_p` -> `mrb_iv_name_sym_p` `mrb_iv_check` -> `mrb_iv_name_sym_check`
2018-08-25Remove utility functions: `mrb_vm_iv_{get,set}`.Yukihiro "Matz" Matsumoto
2018-08-25Revert 04dbbff.Yukihiro "Matz" Matsumoto
Use segment list for instance variable again to reduce memory.
2018-08-25Small refactoring of `flodivmod()`.Yukihiro "Matz" Matsumoto
2018-08-25Simply use `snprintf` instead of custom `fmt_fp`,Yukihiro "Matz" Matsumoto
Unless `MRB_DISABLE_STDIO` is set. `snprintf` is used anyway if mruby is configured to use `stdio`. This change reduces 8KB of program size on the Linux box.
2018-08-25Remove `nregs` member from `mrb_callinfo`.Yukihiro "Matz" Matsumoto
This means reducing one word per a call frame.
2018-08-25Reorganize flags values for classes; fix #3975Yukihiro "Matz" Matsumoto
Renamed flag macro names as well: `MRB_FLAG_IS_FROZEN` -> `MRB_FL_OBJ_FROZEN` `MRB_FLAG_IS_PREPENDED` -> `MRB_FL_CLASS_IS_PREPENDED` `MRB_FLAG_IS_ORIGIN` -> `MRB_FL_CLASS_IS_ORIGIN` `MRB_FLAG_IS_INHERITED` -> `MRB_FL_CLASS_IS_INHERITED`
2018-07-31Removed unused instruction: `OP_KDICT`.Yukihiro "Matz" Matsumoto
2018-07-31Fixed a small bug in keyword argument parsing.Yukihiro "Matz" Matsumoto
def m(a=1,**k) p [a,k] end m(a: 1)
2018-07-30Keyword argument implemented.Yukihiro "Matz" Matsumoto
2018-07-30New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-06-28Use `mrb_raise()` instead of `mrb_raisef()`; ref #4062Yukihiro "Matz" Matsumoto
2018-06-27Add negative check in `mrb_str_resize`; fix #4062Yukihiro "Matz" Matsumoto
2018-06-22initialize a local variable to avoid warningYukihiro "Matz" Matsumoto
2018-06-14Restore GC arena after raised exceptions; ref #4042Yukihiro "Matz" Matsumoto
2018-06-14Need to add a write barrier for ranges; fix #4042Yukihiro "Matz" Matsumoto
Ranges are almost immutable but `initialize` and `initialize_copy` modify the receiver so that we need to add a write barrier.
2018-06-11Revert "No longer need to insert write barriers for fibers."Yukihiro "Matz" Matsumoto
This reverts commit c6736357a72049a0eb2a31ccabcc3cd2baba7c9e. The assumption was wrong and caused the issue; fix #4020
2018-06-11Retrieve `b` operand from the instruction (for debugging); ref #4020Yukihiro "Matz" Matsumoto
2018-06-08`mrb_class_real()` did not work for `BasicObject`; fix #4037Yukihiro "Matz" Matsumoto
2018-06-07Allow `Object#clone` to copy frozen status only; fix #4036Yukihiro "Matz" Matsumoto
Copying all flags from the original object may overwrite the clone's flags e.g. the embedded flag.
2018-06-07Merge pull request #4039 from i110/i110/fix-broken-lexical-variablesYukihiro "Matz" Matsumoto
fix broken lexical variables
2018-06-07Export `stack_extend` function (renamed `mrb_stack_extend`); fix #3219Yukihiro "Matz" Matsumoto
This change is required to support #4038.
2018-06-06Revert "Fix heap use after free on mruby-aws-sigv4."Ichito Nagata
This reverts commit b8869498b7b1458af1cf2a5ccc7644849f826230.
2018-06-03fix env->stack misadjustingIchito Nagata
2018-06-01Instead of defining `Hash#dup`, we should define `Hash#initialize_copy`.Yukihiro "Matz" Matsumoto
`Hash#clone` did not work properly; fix #4030
2018-06-01The `clone` method should copy object status (e.g. frozen) too; #4030Yukihiro "Matz" Matsumoto