summaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2015-02-07Merge pull request #2717 from sgnr/missing-lastpc-on-funcall-cfuncYukihiro "Matz" Matsumoto
Fix possible segfault when accessing backtrace with MRB_WORD_BOXING.
2015-02-05Fix possible segfault when accessing backtrace with MRB_WORD_BOXING.Simon Génier
2015-02-05Fix ensure with yield context on break and returnKouhei Sutou
How to reproduce: class A def x yield ensure y end def y end end # Work A.new.x do end # Not work # trace: # [2] /tmp/a.rb:5:in A.x # [0] /tmp/a.rb:15 # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError) A.new.x do break end # trace: # [2] /tmp/a.rb:5:in A.call # [0] /tmp/a.rb:19 # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError) lambda do A.new.x do return end end.call `self` in ensure is broken when yield and break/return are used.
2015-02-02Replace int with mrb_bool in dump_bigendian_p funcJun Hiroe
2015-02-02allow endian specification of mrb files by `mrbc -e/-E`Yukihiro "Matz" Matsumoto
`mruby -b` now accepts both big/little endian mrb (compiled binary) files. `mrbc` generates mrb files in big endian for .mrb files and in native endian for C files (with -B option specified) by default. If you are cross compiling, you need to specify target endian by -e/-E options if it is different from host endian.
2015-01-31block_given? should work with nested block; fix #2695 close #2712Yukihiro "Matz" Matsumoto
2015-01-26Use setter macro instead of directly setting valuesXuejie "Rafael" Xiao
2015-01-03Use mrb_exc_new_str_lit().Tatsuhiko Kubo
2014-12-27Use suitable type.Tatsuhiko Kubo
2014-12-23Fix splat and multiple assignmentsKouhei Sutou
Case1: From variable Code: a = [1, 2, 3, 4, 5] b, c, *d = a p [a, b, c, d] Before: [[1, 2, 3, 4, 5], 1, 2, []] After: [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]] Ruby: [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]] Case2: From variables Code: a = [1, 2, 3] b = [4, 5, 6, 7] c, d, *e, f, g = *a, *b p [a, b, c, d, e, f, g] Before: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [], 6, 7] After: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Ruby: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Case 3: "for" Code: a = [1, 2, 3, 4, 5, 6, 7] for b, c, *d, e, f in [a] do p [a, b, c, d, e, f] end Before: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [], nil, nil] After: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Ruby: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7]
2014-12-19block_given? should return correct value when called in blocks; close #2678Yukihiro "Matz" Matsumoto
avoid a loop to find parent's callinfo using mrb->c->cibase[env->cioff]
2014-12-19block_given? should return false on top-level; ref #2678Yukihiro "Matz" Matsumoto
2014-12-17String#[]: float handling merged to #2677Yukihiro "Matz" Matsumoto
2014-12-17try to convert not only nil but every objects to fixnums; ref #2677Yukihiro "Matz" Matsumoto
2014-12-17String#[] should reject nil indexh2so5
2014-12-17mrb_str_new(mrb, "", len) creates an unmodifiable string object; ref #2674Yukihiro "Matz" Matsumoto
2014-12-12Fix crash if #inspect does not return a string valuesdottaka
case 1 ~~~ class A; def inspect; 1; end; end A.new.a ~~~ case 2 ~~~ class A def self.inspect 1 end alias_method :a, :b end ~~~
2014-12-12mrb_p() should print mrb_obj_as_string() if #inspect does not return a ↵Yukihiro "Matz" Matsumoto
string value
2014-12-11block_given did not work with nested block invocation for some cases; fix #2665Yukihiro "Matz" Matsumoto
2014-12-11mrb_parser_dump() did not work with block argumentsYukihiro "Matz" Matsumoto
2014-12-01should not pop register when value from multiple assignment requiredYukihiro "Matz" Matsumoto
2014-11-28preserve ICLASS in ci->target_class; fix #2657; ensuring #1467 #1470 #1493 ↵Yukihiro "Matz" Matsumoto
still works
2014-11-27wrong register adjustmentYukihiro "Matz" Matsumoto
2014-11-26add "fall through" commentYukihiro "Matz" Matsumoto
2014-11-26fix(String) String#[] accepts float; close #2650 #2651Robert Mosolgo
2014-11-26wrong register number adjustment in multiple assignment; fix #2654Yukihiro "Matz" Matsumoto
2014-11-26OP_APOST local variable display was wrongYukihiro "Matz" Matsumoto
2014-11-25remove unnecessary _WIN32 preprocessor checkcremno
SIZE_MAX < UINT32_MAX is false on Win32 / Win64.
2014-11-23align indent of local variable names in codedump()Yukihiro "Matz" Matsumoto
2014-11-22should support recursive mlhs decomposition, e.g. (a,b),c = [1,2],3Yukihiro "Matz" Matsumoto
2014-11-19Fix an error when calling a method implemented in C by super() with ↵sdottaka
arguments. This fix makes the following code workable: Expected: class MRBTime < Time; def self.new; super(2012, 4, 21); end; end MRBTime.new # => Sat Apr 21 00:00:00 2012 Actual: class MRBTime < Time; def self.new; super(2012, 4, 21); end; end MRBTime.new # => can't convert nil into Integer (TypeError)
2014-11-19separate mrb_notimplement() and mrb_notimplement_m(); ref #2636Yukihiro "Matz" Matsumoto
2014-11-17fix mrb_notimplement typoRobert Mosolgo
2014-11-17Implement C API mrb_notimplementksss
2014-11-12add Float::{INFINITY,NAN} if availableYukihiro "Matz" Matsumoto
2014-11-06%zu format is not supported by MSVCHiroshi Mimaki
2014-11-04avoid using rewind(3) to load mrb filesYukihiro "Matz" Matsumoto
2014-11-04read whole mrb file at once to calculate correct padding offset; ref #2630Yukihiro "Matz" Matsumoto
2014-11-04specify alignment specifier for GCC and MSC; ref #2630Yukihiro "Matz" Matsumoto
2014-11-04Fix misaligned access when reading irep; close #2630Yukihiro "Matz" Matsumoto
Add padding bytes before iseq block that may be used as mrb_code[]. Note that dumped mrb format has changed. Based on a patch from kimu_shu <[email protected]>
2014-10-30avoid wrong ArgumentError from mrb_get_args() when surrounding method takes ↵Yukihiro "Matz" Matsumoto
more than one argument; ref #2627
2014-10-30add cast to return from aget_index(); ref #2627Yukihiro "Matz" Matsumoto
2014-10-29Handle Array#[float, int] Close #2626mattn
2014-10-29Fix mrb_convert_to_integer.Jun Hiroe
2014-10-28Refactor for_body funcJun Hiroe
2014-10-28Merge pull request #2623 from suzukaze/fix-indentYukihiro "Matz" Matsumoto
Fix indent
2014-10-28Merge pull request #2621 from suzukaze/fix-parse_stringYukihiro "Matz" Matsumoto
Replace int with mrb_bool in parse_string func
2014-10-28Fix indentJun Hiroe
2014-10-28Replace int with mrb_bool in parse_string funcJun Hiroe
2014-10-28Replace int with mrb_bool in local_var_p funcJun Hiroe