summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2017-08-29Revert "Clear `irep->outer` when no `Proc` reference the `irep`; fix #3793"Yukihiro "Matz" Matsumoto
This reverts commit 15d48efa4bf6a6b999dab99720fb9fe3c4a06ef0.
2017-08-28Add `__ENCODING__' support.Yukihiro "Matz" Matsumoto
`__ENCODING__' returns the current encoding name (string), unlike CRuby that returns the encoding object.
2017-08-28Remove integer type mismatch warnings from parse.y.Yukihiro "Matz" Matsumoto
2017-08-28Clear `irep->outer` when no `Proc` reference the `irep`; fix #3793Yukihiro "Matz" Matsumoto
2017-08-27Merge pull request #3795 from christopheraue/array_refactoringYukihiro "Matz" Matsumoto
Array refactorings and speed improvements
2017-08-26Replaced Array#each with while loop for performance reasonsChristopher Aue
Example benchmark: $ time build/bench/bin/mruby -e "Array.new(2_000_000){ |i| i }.index{ |i| i == 1_999_999 }" Before: real 0m0.934s user 0m0.922s sys 0m0.003s After: real 0m0.590s user 0m0.583s sys 0m0.007s
2017-08-26Removed unneeded block check in Array#uniqChristopher Aue
2017-08-26Reimplemented Array#flatten with #flatten!Christopher Aue
2017-08-26Merge pull request #3794 from dabroz/fix-flt-epsilonYukihiro "Matz" Matsumoto
Fix building with MRB_USE_FLOAT=1
2017-08-26fix mrbgems/mruby-range-ext/src/range.c:142:71: error: use of undeclared ↵Tomasz Dąbrowski
identifier 'FLT_EPSILON'
2017-08-26Reimplement `Array#shift` to be faster.Yukihiro "Matz" Matsumoto
2017-08-26`Array#first` to treat 1 argument case specially to improve performance.Yukihiro "Matz" Matsumoto
2017-08-26Check for ability to skip optional argument parsing.Yukihiro "Matz" Matsumoto
2017-08-26Silence compiler warning regarding float condition; fix #3790Yukihiro "Matz" Matsumoto
2017-08-26Remove unused `mrb_obj_iv_ifnone()` from API.Yukihiro "Matz" Matsumoto
2017-08-26Add checks if `iv_tbl` is NULL.Yukihiro "Matz" Matsumoto
2017-08-26Keep `Range` class in `mrb_state` structure for performance.Yukihiro "Matz" Matsumoto
2017-08-26Use `khash` for instance variables tables instead of segment list.Yukihiro "Matz" Matsumoto
For performance reason. Segmented list consumes slightly less memory but takes a lot of time especially when there are many slots in the segment lists (e.g. class constants).
2017-08-26Turn on method cache for Travis CI.Yukihiro "Matz" Matsumoto
2017-08-26Merge pull request #3792 from dabroz/fix-test-int16Yukihiro "Matz" Matsumoto
Fix string test with 16-bit integers
2017-08-26Merge pull request #3791 from dabroz/fix-msvc-warningYukihiro "Matz" Matsumoto
Fix MSVC warnings in fmt_fp.c
2017-08-25fix `String#% %d` test with `MRB_INT16` setTomasz Dąbrowski
2017-08-25fix fmt_fp.c(329) : warning C4244: 'return' : conversion from 'ptrdiff_t' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-08-25fix fmt_fp.c(251) : warning C4244: '=' : conversion from '__int64' to 'int', ↵Tomasz Dąbrowski
possible loss of data
2017-08-25fix fmt_fp.c(224) : warning C4244: '=' : conversion from 'ptrdiff_t' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-08-25fix fmt_fp.c(220) : warning C4244: '=' : conversion from '__int64' to 'int', ↵Tomasz Dąbrowski
possible loss of data
2017-08-25fix fmt_fp.c(206) : warning C4244: 'initializing' : conversion from ↵Tomasz Dąbrowski
'ptrdiff_t' to 'int', possible loss of data
2017-08-25fix fmt_fp.c(178) : warning C4244: 'return' : conversion from 'ptrdiff_t' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-08-25fix fmt_fp.c(123) : warning C4244: 'return' : conversion from 'ptrdiff_t' to ↵Tomasz Dąbrowski
'int', possible loss of data
2017-08-24Merge pull request #3788 from christopheraue/fix_codegen_op_send_nregsYukihiro "Matz" Matsumoto
Fixed register windows of OP_SENDs generated during codegen
2017-08-23Fixed register windows of OP_SENDs generated by NODE_{DREGX,REGX}; ref #3783Christopher Aue
2017-08-23Tested register windows of OP_SENDs generated by NODE_{DXSTR,XSTR}; ref #3783Christopher Aue
2017-08-23Fixed register windows of OP_SENDs generated by NODE_OP_ASGN; ref #3783Christopher Aue
2017-08-23Refactored code around generation of OP_SEND in NODE_OP_ASGNChristopher Aue
2017-08-23Fixed register windows of OP_SENDs generated by NODE_{FOR,SYMBOLS}; ref #3783Christopher Aue
2017-08-23Tested register windows of OP_SENDs generated by NODE_{RESCUE,HASH,ALIAS}; ↵Christopher Aue
ref #3783
2017-08-23Fixed register windows of OP_SENDs generated by ↵Christopher Aue
NODE_{SCALL,CASE,YIELD,UNDEF}; ref #3783
2017-08-23Asserted bidx < ci->nregs for OP_SEND and OP_SUPERChristopher Aue
2017-08-22Added method cache.Yukihiro "Matz" Matsumoto
To enable method cache, define `MRB_METHOD_CACHE` or `MRB_METHOD_CACHE_SIZE`. The cache size must be power of 2. The default cache size is 128. The measurement: I measured simple benchmarks found in benchmark/ directory. With method cache enabled, we gained 6-8% performance improvement, with 97-99% cache hit rate.
2017-08-22Remove possible path that leaves a local variable uninitialized.Yukihiro "Matz" Matsumoto
2017-08-22`mrb_obj_respond_to` to use `mrb_method_search_vm`.Yukihiro "Matz" Matsumoto
2017-08-22`c` (`mrbc_context`) may be NULL; fix #3787Yukihiro "Matz" Matsumoto
2017-08-22`strlen` returns `size_t`; need to cast before assigning to `int`.Yukihiro "Matz" Matsumoto
2017-08-22(Try to) fix mixture of `int` and `size_t` in UTF-8 conversion.Yukihiro "Matz" Matsumoto
This only effects VC.
2017-08-19Reduce signed/unsigned warnings in dump.cYukihiro "Matz" Matsumoto
2017-08-19Reduce signed/unsigned warnings in fmt_fp.cYukihiro "Matz" Matsumoto
2017-08-19Use `ptrdiff_t` instead of `int`.Yukihiro "Matz" Matsumoto
2017-08-19Remove mixed signed/unsigned comparison in debug.c.Yukihiro "Matz" Matsumoto
2017-08-19Replace stack `pop()` by `push_n(2); pop_n(3)`; fix #3783Yukihiro "Matz" Matsumoto
To calculate correct register windows size. The fix was suggested by Christopher Aue.
2017-08-19Type check before traversing `irep->outer`; fix #3782Yukihiro "Matz" Matsumoto