summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2015-04-17Use builtins for overflow math if possiblefurunkel
2015-04-17Merge pull request #2765 from miura1729/original2Yukihiro "Matz" Matsumoto
Fix to avoid warning
2015-04-17Fix to avoid warningMiura Hideki
2015-04-17Merge pull request #2762 from miura1729/originalYukihiro "Matz" Matsumoto
Add test of negative arguments for Integer#%
2015-04-17Add test of negative arguments for Integer#%Miura Hideki
2015-04-05Excluding wait call for windowsJared Breeden
2015-04-05Merge pull request #38 from jbreeden/masterTomoyuki Sahara
Excluding wait call for windows
2015-04-03wait for child processes when we close pipes. fixes #37.Tomoyuki Sahara
2015-04-03Merge pull request #2755 from Yuuhei-Okazaki/fix_maxbreakpoint_referenceYukihiro "Matz" Matsumoto
fix maximum value of the index when access breakpoints.
2015-04-03Merge pull request #2754 from cremno/remove-unnecessary-inttypes.h-inclusionYukihiro "Matz" Matsumoto
remove unnecessary <inttypes.h> inclusion
2015-04-02Merge pull request #2753 from cremno/vs2015-has-inline-kwYukihiro "Matz" Matsumoto
MSVC 2015 implements inline keyword
2015-03-31fix maximum value of the index when access breakpoints.Yuhei Okazaki
2015-03-30remove unnecessary <inttypes.h> inclusioncremno
The format specifier macros were needed to portably print a mrb_int, because mrb_raisef() originally called vsnprintf(). It doesn't anymore since 18b2683b97ae54d4f2f15c19076f33aa29eaf2b7 and the mrb_int format specifier macros are already gone.
2015-03-30MSVC 2015 implements inline keywordcremno
Apparently the C compiler of Visual Studio 2015 CTP6 finally implements inline as inline and not only as _inline and __inline.
2015-03-23Merge pull request #2750 from cremno/call-c11-timespec_getYukihiro "Matz" Matsumoto
mruby-time: call ISO C11's timespec_get() if available
2015-03-23Merge pull request #2751 from cremno/refactor-write_pool_blockYukihiro "Matz" Matsumoto
refactor write_pool_block()
2015-03-22refactor write_pool_block()cremno
No need to write the same assertion in each case (except the default one). Instead we can assert after the switch statement.
2015-03-22call C11's timespec_get()cremno
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).
2015-03-21Merge branch 'master' of github.com:mruby/mrubyYukihiro "Matz" Matsumoto
2015-03-21execute ensure clause only when skipping call frame; fix #2726Yukihiro "Matz" Matsumoto
2015-03-20Merge pull request #2747 from jbreeden/vcpp_exceptionsYukihiro "Matz" Matsumoto
Fix exceptions for visualcpp
2015-03-18Fix exceptions for visualcppJared Breeden
2015-03-16Merge pull request #2746 from tarosay/tarosaYukihiro "Matz" Matsumoto
I modified the undefined frexpl in cygwin of make
2015-03-16I have added the #ifdef __CYGWIN32__ to modify the fmt_fp.cTarosa
2015-03-16I modified the undefined frexpl in cygwin of makeTarosa
2015-03-06Merge pull request #2740 from govm/stack_extend-in-mrb_f_sendYukihiro "Matz" Matsumoto
Fix #2739 stack_extend in mrb_f_send
2015-03-05stack_extend in mrb_f_sendGo Saito
mrb_f_send needs stack_extend like OP_SEND Signed-off-by: Go Saito <[email protected]>
2015-02-28Merge pull request #2738 from kou/use-ptrdiff-tYukihiro "Matz" Matsumoto
Use ptrdiff_t to suppress signedness warning
2015-02-28Use ptrdiff_t to suppress signedness warningKouhei Sutou
3df32161797aa9c6e9df259e8d8571b454cb2333 says so but there is no warning with GCC 4.9 on my Debian GNU/Linux environment.
2015-02-27Merge pull request #2736 from cremno/delete-prototypes-of-undefined-functionsYukihiro "Matz" Matsumoto
delete prototypes of undefined functions
2015-02-27fix MSVC initialization issue by a patch from @dyama; close #2734Yukihiro "Matz" Matsumoto
2015-02-27change size_t to ptrdiff_t to silence signedness warnings; #2732Yukihiro "Matz" Matsumoto
2015-02-26delete prototypes of undefined functionscremno
2015-02-26Merge pull request #2732 from kou/fix-a-crash-bug-on-raise-after-reallocYukihiro "Matz" Matsumoto
Fix a crash bug on raising after realloc
2015-02-25Fix a crash bug on raising after reallocKouhei Sutou
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.
2015-02-24Merge pull request #2730 from kou/fix-no-expression-caseYukihiro "Matz" Matsumoto
Fix a bug that no expression case doesn't return valid value
2015-02-24Fix a bug that no expression case doesn't return valid valueKouhei Sutou
Here is a script that reproduces this problem: x = case when true; 1 end p x # => main # 1 is expected
2015-02-24Merge pull request #2729 from kou/fix-if-and-no-value-returned-caseYukihiro "Matz" Matsumoto
Fix a bug that if and no return value case can't return true clause value
2015-02-24Merge pull request #2728 from govm/fix-dereference-invalid-argvYukihiro "Matz" Matsumoto
fix pointer dereference after realloc
2015-02-24Fix a bug that if and no return value case can't return true clause valueKouhei Sutou
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
2015-02-23fix pointer dereference after reallocGo Saito
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 <[email protected]>
2015-02-19add a prototype declaration for mrb_fiber_resume(); ref #1269Yukihiro "Matz" Matsumoto
2015-02-19new API function mrb_fiber_resume(); ref #1269Yukihiro "Matz" Matsumoto
2015-02-19add description comment to mrb_fiber_yield()Yukihiro "Matz" Matsumoto
2015-02-16silence warnings in fmt_fp.cYukihiro "Matz" Matsumoto
2015-02-16Merge pull request #2723 from cremno/use-musl-fmt_fpYukihiro "Matz" Matsumoto
re-implement mrb_float_to_str()
2015-02-13re-implement mrb_float_to_str()cremno
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).
2015-02-13Merge pull request #2722 from sgnr/disable-stdio-enable-backtracesYukihiro "Matz" Matsumoto
Make backtraces work again under DISABLE_STDIO
2015-02-13Merge pull request #2721 from kou/add-more-debug-flagsYukihiro "Matz" Matsumoto
Add more debug flags for GCC based compilers
2015-02-13add IPv6 constants defined in RFC3493.Tomoyuki Sahara