summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2017-11-18Merge pull request #3853 from ukrainskiysergey/variable_c_cosmetic_changesYukihiro "Matz" Matsumoto
Removed useless condition
2017-11-17Removed useless conditionUkrainskiy Sergey
2017-11-17Merge pull request #3852 from dabroz/feature-array-transposeYukihiro "Matz" Matsumoto
implement Array.transpose
2017-11-17implement Array.transposeTomasz Dąbrowski
2017-11-17Merge pull request #3851 from ukrainskiysergey/variable_c_cosmetic_changesYukihiro "Matz" Matsumoto
Cosmetic changes in variable.c
2017-11-17Changed the assignment of a variable in variable.cUkrainskiy Sergey
2017-11-17Changed numbers to TRUE and FALSE for mrb_bool in variable.cUkrainskiy Sergey
2017-11-17Need to save stack space by number of registers from the current proc,Yukihiro "Matz" Matsumoto
Not from the execution ensure proc; fix #3849
2017-11-13The number of argument should be retrieved by `mrb_get_argc`; fix #3848Yukihiro "Matz" Matsumoto
You should not access `mrb->c->ci->argc` directly.
2017-11-11Fixed wrong stack extend size; fix #3847Yukihiro "Matz" Matsumoto
2017-11-10Need to clear stack region for local variables in eval; fix #3844Yukihiro "Matz" Matsumoto
2017-11-09Use proper target_class to define class/module; fix #3843Yukihiro "Matz" Matsumoto
The outer class of the class/module definition should be taken from `MRB_TARGET_CLASS(mrb->c->ci->proc)` not `mrb->c->ci->target_class` which is the target of constant lookups.
2017-11-08Should allocate memory region before updating `len`; fix #3842Yukihiro "Matz" Matsumoto
Otherwise half-baked string object will be allocated.
2017-11-08Simplify `MRB_WITHOUT_FLOAT` condtionYukihiro "Matz" Matsumoto
2017-11-04Removed redundant function prototype.Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'pandax381-mrb_without_float'Yukihiro "Matz" Matsumoto
2017-11-04Make `mirb` to print warnings; ref #3827Yukihiro "Matz" Matsumoto
2017-11-04Avoid compiling `fmt_fp.c` if `MRB_WITHOUT_FLOAT` is set; #3827Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'mrb_without_float' of https://github.com/pandax381/mruby into ↵Yukihiro "Matz" Matsumoto
pandax381-mrb_without_float
2017-11-04Reimplement `block_given?`; ref #3841Yukihiro "Matz" Matsumoto
Make `block_given?` to search for the top of the scope first. The top of the scope means either: * the top method body * the enclosing class body * the top-level The special case is the method defined by `define_method` with a block as in #3841. In cases like this, the method body (given by a block) is not considered as the top of the scope. You need to use `&block` in the block parameter if you want to know if a block is given to the method. This commit also changes the behavior of `MRB_PROC_SCOPE` flag. Now it is only set if the `proc` is either a class body or a method body defined in Ruby. It is no longer set for a block that given to `define_method`.
2017-11-04The `bidx` saved in `env` may be useless; fix #3841Yukihiro "Matz" Matsumoto
When `block_given?` is called from a block given to `define_method` as a method body, the `bidx` may not be within `env` saved closure. In this case, it causes heap buffer overflow.
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-11-04Avoid pointer arithmetic in backtrace.c; #3816Yukihiro "Matz" Matsumoto
2017-11-03Always check division-by-zero to avoid undefined behavior; fix #3816Yukihiro "Matz" Matsumoto
Also removed the code to normalize NaN value for `MRB_NAN_BOXING`. Tha code was added to fix #1712 but no longer required after 249f05e7d.
2017-11-03Reduce memory leaks from `mirb`.Yukihiro "Matz" Matsumoto
2017-11-03Should not use `FSHARED` state for string from `irep` pools; fix #3829Yukihiro "Matz" Matsumoto
This strings in `irep` pools may be freed forcefully in `mrb_irep_free`. This commit probably fixes #3817 as well.
2017-11-02Merge pull request #3840 from iij/keep-backtrace-rethrown-excYukihiro "Matz" Matsumoto
don't strip away backtrace info when an exception is re-thrown
2017-11-02don't overwrite backtrace info.Tomoyuki Sahara
2017-10-31Fixed constant (and class variable) reference bug; fix #3839Yukihiro "Matz" Matsumoto
Unlike method definition, constant reference should start from `MRB_PROC_TARGET_CLASS(ci->proc)`, not `ci->target_class`. In addition, `MRB_PROC_TARGET_CLASS(ci->proc)` is always set.
2017-10-31Call stack may not reference the destination `proc`; fix #3838Yukihiro "Matz" Matsumoto
The destination `proc` may be an orphan.
2017-10-31Need to mark fibers referenced from `env`; fix #3837Yukihiro "Matz" Matsumoto
The issue #3837 is a regression of #3819. I was mistakenly removed a important code to mark fibers from `env`.
2017-10-29Need to check number of argument of `Struct#new`; fix #3823Yukihiro "Matz" Matsumoto
2017-10-28Removed a debug printf; fix #3834Yukihiro "Matz" Matsumoto
2017-10-28Remove one of the lines that did the same thing; fix #3836Yukihiro "Matz" Matsumoto
The change is suggested by `ukrainskiysergey` in #3836. I deleted the other line for clarity. I also updated comment lines.
2017-10-28Should clear ensure stack at `OP_RETURN break`; #3715Yukihiro "Matz" Matsumoto
This is a resurrection of d0a7e01, which is accidentally removed by 93f5f22; Fix #3715
2017-10-28Should check if `callinfo` stack is popped before updating the stack.Yukihiro "Matz" Matsumoto
This is a resurrection of 75c374c, which is accidentally removed by 93f5f22; Fix #3507 #3512 #3518 #3521
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-28Remove a debug variableYukihiro "Matz" Matsumoto
2017-10-28Add parentheses to pacify a warning.Yukihiro "Matz" Matsumoto
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-10-28comment out `bench` build from standard `build_config.rb`Yukihiro "Matz" Matsumoto
2017-10-28remove `inline` from replacement `memcpy`&`memset`Yukihiro "Matz" Matsumoto
2017-10-28Update test for `Kernel#local_variables`Yukihiro "Matz" Matsumoto
2017-10-28Remove MRB_API from `mrb_env_unshare()`Yukihiro "Matz" Matsumoto
2017-10-28Add some peephole optimizationsYukihiro "Matz" Matsumoto
2017-10-28Change the order of "expected" and "actual" in testYukihiro "Matz" Matsumoto
2017-10-28Use alias to implement `attr` methodYukihiro "Matz" Matsumoto
2017-10-28Flush stdout after every print from testsYukihiro "Matz" Matsumoto
2017-10-28Format codedump for OP_{LE,LT,GE,GT}.Yukihiro "Matz" Matsumoto
2017-10-25Merge pull request #3833 from bggd/appveyor_winbison_ruby24Yukihiro "Matz" Matsumoto
Appveyor Improvements