summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval
AgeCommit message (Collapse)Author
2020-10-12Fix warning from VC regarding implicit int conversion.Yukihiro "Matz" Matsumoto
2020-10-12Use functions that take symbols to reduce string litrals in C.Yukihiro "Matz" Matsumoto
2020-09-25Prohibit string changes by "s"/"z" specifier of `mrb_get_args()`dearblue
- The `s` specifier is a string pointer obtained without performing `mrb_str_modify()`, so it cannot be changed. - The `z` specifier cannot be changed because it is a string pointer obtained by `RSTRING_CSTR()` which returns `const char *`.
2020-06-25Change flag names in preparation of `REnv` refactoring.Yukihiro "Matz" Matsumoto
2020-06-02Remove `patch_irep()` in `mruby-eval`dearblue
- It can now deal with operands in the range of `OP_EXT*`. - It can now call the same method as the variable name without arguments. ```ruby def a "Safe!" end a = "Auto!" eval "a()" # call method `a` ```
2019-11-20Use proper `PEEK` macro for `OP_EPUSH` in `patch_irep`; fix #4833KOBAYASHI Shuji
2019-11-15Fix argument specs to `Kernel`KOBAYASHI Shuji
2019-08-18Prohibit changes to iseq in principledearblue
2019-08-05Use new specifiers/modifiers of `mrb_vfromat()`KOBAYASHI Shuji
The binary sizes (gems are only `mruby-bin-mruby`) are reduced slightly in my environment than before the introduction of new specifiers/modifiers (5116789a) with this change. ------------+-------------------+-------------------+-------- BINARY | BEFORE (5116789a) | AFTER (This PR) | RATIO ------------+-------------------+-------------------+-------- mruby | 593416 bytes | 593208 bytes | -0.04% libmruby.a | 769048 bytes | 767264 bytes | -0.23% ------------+-------------------+-------------------+-------- BTW, I accidentally changed `tasks/toolchains/visualcpp.rake` at #4613, so I put it back.
2019-07-15Unify type of line number to `uint16_t`KOBAYASHI Shuji
2019-05-18Move `Kernel#instance_eval` to `BasicObject`KOBAYASHI Shuji
2018-10-23Fixed a bug in processing `OP_EXT?` instructions.Yukihiro "Matz" Matsumoto
fix haconiwa/haconiwa#171
2018-10-02Fixed SEGV from `eval` called form top-level `mrb_funcall()`; fix #4028Yukihiro "Matz" Matsumoto
2018-09-01Move `Kernel#send` to `mruby-metaprog` gem.Yukihiro "Matz" Matsumoto
But `BasicObject#__send__` is still available from the core.
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-25Reduce integer casting warnings.Yukihiro "Matz" Matsumoto
2018-08-25Should update `ci->env` to share the environment; fix #4073Yukihiro "Matz" Matsumoto
2018-07-30New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-07-23Kernel#instance_eval should define singleton methods; fix #4069Yukihiro "Matz" Matsumoto
2018-06-06add test for evalIchito Nagata
2017-11-10Need to clear stack region for local variables in eval; fix #3844Yukihiro "Matz" Matsumoto
2017-10-28Fixed UPVAR gotchas; fix #3835Yukihiro "Matz" Matsumoto
Both `uvenv` function and `env` generation in `create_proc_from_string` function have bugs to handling enclosed environment objects.
2017-10-28Heavily refactored how lexical scope links are implemented; fix #3821Yukihiro "Matz" Matsumoto
Instead of `irep` links, we added a `upper` link to `struct RProc`. To make a space for the `upper` link, we moved `target_class` reference. If a `Proc` does not have `env`, `target_class` is saved in an `union` shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()). Otherwise `target_class` is referenced from `env->c`. We removed links in `env` as well. This change removes 2 members from `mrb_irep` struct, thus saving 2 words per method/proc/block. This also fixes potential memory leaks due to the circular references caused by a link from `mrb_irep`.
2017-09-27fix: mrbgems\mruby-eval\src\eval.c(301): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-eval\src\eval.c(214): warning C4244: '=': conversion from ↵Tomasz Dąbrowski
'mrb_int' to 'short', possible loss of data
2017-08-12Reduce integer type mismatch warnings in VC.Yukihiro "Matz" Matsumoto
2017-07-20Need to patch `OP_GETUPVAR` and `OP_SETUPVAR`; fix #3732Yukihiro "Matz" Matsumoto
2017-07-12Use "$!" specifier of `mrb_get_args`.Yukihiro "Matz" Matsumoto
2017-06-19Fixed disclosure of local variables by `eval`; ref #3710Yukihiro "Matz" Matsumoto
This patch fixes the latter part of #3710. We need to change `struct REnv` to fix the former part of the issue.
2017-06-15Print the file name along with line number on syntax errors; fix #3698Yukihiro "Matz" Matsumoto
2017-04-25Avoid use of `snprintf()` when DISABLE_STDIO is set; fix #3632Yukihiro "Matz" Matsumoto
ref #3492 #3515 #3517
2017-04-22Keep reference to mrb_context from env; fix #3619Yukihiro "Matz" Matsumoto
2017-03-17Avoid trampoline when #eval is called from mrb_funcall(); fix #3522Yukihiro "Matz" Matsumoto
2017-03-15`instance_eval` method does not introduce C function boundary; fix #3508Yukihiro "Matz" Matsumoto
2017-02-16Configure callinfo target_class as CRuby; ref #3429Yukihiro "Matz" Matsumoto
2017-02-16Avoid executing OP_STOP in eval(); fix #3429Yukihiro "Matz" Matsumoto
2017-02-16Adjust callinfo env and target_class; ref #3429Yukihiro "Matz" Matsumoto
2017-02-04Make `eval` to use trampoline technique; fix #3415Yukihiro "Matz" Matsumoto
Now `eval()` can call Fiber.yield etc.
2016-09-06Fix SEGV when unshared envksss
2016-08-08instance_eval env should remake Fix #3191ksss
2016-04-11mruby-eval: instance_eval should keep target_class; close #3141Yukihiro "Matz" Matsumoto
2016-03-06Suppress a warningKouhei Sutou
mrbgems/mruby-eval/src/eval.c: In function ‘create_proc_from_string’: mrbgems/mruby-eval/src/eval.c:152:10: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] file = "(eval)"; ^
2016-02-15Fix segfault when `eval("__FILE__")` is executedYusuke Endoh
2016-01-08fixed a problem with upvar access from instance_eval; ref #3072Yukihiro "Matz" Matsumoto
2016-01-07mruby-eval: fixed receiver value in eval context; close #3072Yukihiro "Matz" Matsumoto
2016-01-07mruby-sprintf to use mrb_int formatting macros; ref #3076Yukihiro "Matz" Matsumoto
2015-11-27include changed from by quotes ("") to by brackets (<>); close #3032Yukihiro "Matz" Matsumoto
2015-10-04Add regression test for #2933INOUE Yasuyuki
2015-09-14instance_eval should set target_class; close #2936Yukihiro "Matz" Matsumoto
target_class should be singleton class of the receiver
2015-06-01Compile mruby compiler as mrbgem.take_cheeze
Compiler codes is moved to "mruby-compiler". Executable `mrbc` is moved to "mruby-bin-mrbc".