- 02 Apr, 2015 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
fix maximum value of the index when access breakpoints.
-
Yukihiro "Matz" Matsumoto authored
remove unnecessary <inttypes.h> inclusion
-
Yukihiro "Matz" Matsumoto authored
MSVC 2015 implements inline keyword
-
- 31 Mar, 2015 1 commit
-
-
Yuhei Okazaki authored
-
- 30 Mar, 2015 2 commits
-
-
cremno authored
Apparently the C compiler of Visual Studio 2015 CTP6 finally implements inline as inline and not only as _inline and __inline.
- 23 Mar, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
mruby-time: call ISO C11's timespec_get() if available
-
Yukihiro "Matz" Matsumoto authored
refactor write_pool_block()
-
- 22 Mar, 2015 2 commits
-
-
cremno authored
No need to write the same assertion in each case (except the default one). Instead we can assert after the switch statement.
-
cremno authored
gettimeofday() is an obsolescent POSIX function which may be removed in a future version. POSIX recommends using clock_gettime() (also POSIX) instead, but it isn't available on OS X or Windows (at least with MSVC and older MinGW versions). Whereas timespec_get() is part of ISO C11 and mruby uses some small other C11 features too. It isn't universally available yet either, but it might be in the future. And Visual C++ 2015 implements it! Since mruby strives for ISO C and not POSIX compatibility, I think it's a reasonable choice. TIME_UTC is used instead of __STDC_VERSION__, because if TIME_UTC is defined, then most likely timespec_get() is too. This isn't true in case of __STDC_VERSION__ (see MSVC).
-
- 21 Mar, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 19 Mar, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Fix exceptions for visualcpp
-
Jared Breeden authored
-
- 16 Mar, 2015 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
I modified the undefined frexpl in cygwin of make
-
Tarosa authored
-
Tarosa authored
-
- 05 Mar, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Fix #2739 stack_extend in mrb_f_send
-
Go Saito authored
mrb_f_send needs stack_extend like OP_SEND Signed-off-by:
Go Saito <gos@iij.ad.jp>
-
- 28 Feb, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
Use ptrdiff_t to suppress signedness warning
-
Kouhei Sutou authored
3df32161 says so but there is no warning with GCC 4.9 on my Debian GNU/Linux environment.
-
- 27 Feb, 2015 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
delete prototypes of undefined functions
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 26 Feb, 2015 2 commits
-
-
cremno authored
-
Yukihiro "Matz" Matsumoto authored
Fix a crash bug on raising after realloc
-
- 24 Feb, 2015 5 commits
-
-
Kouhei Sutou authored
The following program reproduces this problem: #include <mruby.h> static mrb_value recursive(mrb_state *mrb, mrb_value self) { mrb_int n; mrb_get_args(mrb, "i", &n); if (n == 0) { mrb_raise(mrb, E_RUNTIME_ERROR, "XXX"); } else { mrb_funcall(mrb, self, "recursive", 1, mrb_fixnum_value(n - 1)); } return self; } int main(void) { mrb_state *mrb; mrb = mrb_open(); mrb_define_method(mrb, mrb->kernel_module, "recursive", recursive, MRB_ARGS_REQ(1)); mrb_funcall(mrb, mrb_top_self(mrb), "recursive", 1, mrb_fixnum_value(30)); mrb_close(mrb); } Recursive method call isn't required. It's just for expanding call info stack. If mrb_realloc() is called in cipush(), cibase address is changed. So, we shouldn't compare ci before mrb_realloc() and cibase after mrb_realloc(). It accesses unknown address and causes crash.
-
Yukihiro "Matz" Matsumoto authored
Fix a bug that no expression case doesn't return valid value
-
Kouhei Sutou authored
Here is a script that reproduces this problem: x = case when true; 1 end p x # => main # 1 is expected
-
Yukihiro "Matz" Matsumoto authored
Fix a bug that if and no return value case can't return true clause value
-
Yukihiro "Matz" Matsumoto authored
fix pointer dereference after realloc
-
- 23 Feb, 2015 2 commits
-
-
Kouhei Sutou authored
Here is a script that reproduce this problem: x = if true 1 else case 2 when 3 end 4 end p x # => nil # 1 is expected
-
Go Saito authored
In src/vm.c: mrb_funcall_with_block stack_extend may realloc mrb->c->stbase, if argv points on mruby's stack, then it points invalid address after stack_extend. e.g. src/class.c: mrb_instance_new This code: ```ruby class A def initialize(a0,a1,a2,a3,a4) a0.is_a? Array end end def f(a0,a1,a2,a3,a4) A.new(a0,a1,a2,a3,a4) f(a0,a1,a2,a3,a4) end f(0,1,2,3,4) ``` is expected to get exception ``` stack level too deep. (limit=(0x40000 - 128)) (SystemStackError) ``` but get segfault. Signed-off-by:
Go Saito <gos@iij.ad.jp>
-
- 19 Feb, 2015 3 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
-
- 16 Feb, 2015 2 commits
-
-
Yukihiro "Matz" Matsumoto authored
-
Yukihiro "Matz" Matsumoto authored
re-implement mrb_float_to_str()
-
- 13 Feb, 2015 2 commits
-
-
cremno authored
The new implementation is backwards incompatible, but I couldn't find any usage outside mruby and I also couldn't think of a different and good name. All ISO C99 printf conversion specifiers for floating point numbers and an optional precision are supported. It is largely based on code from the MIT licensed musl libc (http://www.musl-libc.org/) and its floating point printing is exact (unlike the current code behind Float#to_s).
-
Yukihiro "Matz" Matsumoto authored
Make backtraces work again under DISABLE_STDIO
-