* tool/mkconfig.rb: extract version numbers from version.h but not
from API version in include/ruby/version.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Revert "* tool/make-snapshot: fix for the changes of version.h in r53314."
Revert "* version.h (RUBY_BUILD_VERSION_STR_3): Workaround for old version of"
Revert "program version from API version"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir
not includedir, the latter is outside the ruby installation.
[ruby-core:72496] [Bug #11881]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
supported on IO.popen
* tool/vcs.rb (IO.popen): Fix NoMethodError. I guess r49705 was not
tested... :/
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enc/trans/ebcdic.trans: transcodings between EBCDIC-US
and iso-8859-1 [with code from Andrea Ribuoli]
* test/ruby/test_transcode.rb: tests for above
* tool/transcode_tablegen.rb: additional argument for
method transcode_tblgen
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/ytab.sed: substitute `fprintf`s used directory in
yy_reduce_print by bison 2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/ytab.sed: substitute the first argument of YYFPRINTF, instead
of substitution by preprocessor, not to redefine stderr.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/ytab.sed: work around for platforms where vairadic macro is
not available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (trace_lex_state): trace lex_state changes if yydebug is
set, and send the messages to rb_stdout.
* parse.y (rb_parser_printf): store YYPRINTF messages per lines
so that lex_state traces do not mix.
* tool/ytab.sed: add parser argument to yy_stack_print too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mkconfig.rb: rbconfig must not be fronzen-string-literal to
expand CONFIG hash. [ruby-core:72006] [Bug #11798]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/fake.rb: Fix cross build when srcdir is an absolute path.
* Makefile.in: PREP dependency is needed when cross build too, not
"-r$(arch)-fake" to be used before created. [Fix GH-1125]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/downloader.rb (Downloader.https): extract a method instead
of a global variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/rbinstall.rb (man): get rid of prompt from compress
program.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/fake.rb (prehook): consider the case building under the
source directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/mdoc2man.rb (parse_macro): colon should not pop quotes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/generic_erb.rb, tool/ifchange: no colorization if tput
returned nothing or dump terminal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
vm_call_iseq_setup_normal_0start() is simple, however it has
some loops/conditions depends on ISeq::param.size and
ISeq::local_size (in vm_push_frame(), inlined into this function).
There are many simple methods which has a few parameters and local
variables. So that this patch introduces several special functions
generated in vm_call_iseq_optimized.inc by
tool/mk_call_iseq_optimized.rb.
This script makes
vm_call_iseq_setup_normal_0start_Xparams_Ylocals()
where X is 0 to 3 and Y is 1 to 6 (as current setting).
In this case, X * Y = 24 functions are created.
These functions creates fast method dispatch by inlining
vm_push_frame() with immediate params/locals sizes.
On my laptop, we can have the following results.
vm2_method* 1.083 (8.3% faster)
vm2_poly_method* 0.961 (3.4% slower)
It shows 8.3% faster for inner loop method dispatch (hit inline
cache), but 3.4% slower when inline cache miss because we need
to find a suitable call handler.
* common.mk: add a rule for vm_call_iseq_optimized.inc.
* tool/mk_call_iseq_optimized.rb: added.
* vm.c: include vm_call_iseq_optimized.inc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/generic_erb.rb: use VT100 sequence if tput does not work.
* tool/ifchange: ditto and add --color option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/ifchange: do not exit by -e even if tput failed.
[ruby-core:71143] [Bug #11611]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/generic_erb.rb: ignore error that tput is not found.
[ruby-core:71143] [Bug #11611]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/runruby.rb: use ruby-runner only when exists and fallback
to ruby itself.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/ruby-runner.c.in: wrapper to set dynamic loading path
environment variable. /bin/sh on Mac OS X 10.11 (El Capitan)
clears DYLD_LIBRARY_PATH.
it must:
- do nothing even if current directory is not present
- do not set other environment variables, e.g. PWD, SHLVL, etc
- do not open other FDs, e.g. pipes for timer thread
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* rb_call_info (ci) has compiled fixed information.
* if ci->flag & VM_CALL_KWARG, then rb_call_info is
also rb_call_info_with_kwarg. This technique reduce one word
for major rb_call_info data.
* rb_calling_info has temporary data (argc, blockptr, recv).
for each method dispatch. This data is allocated only on
machine stack.
* rb_call_cache is for inline method cache.
Before this patch, only rb_call_info_t data is passed.
After this patch, above three structs are passed.
This patch improves:
* data locarity (rb_call_info is now read-only data).
* reduce memory consumption (rb_call_info_with_kwarg,
rb_calling_info).
* compile.c: use above data.
* insns.def: ditto.
* iseq.c: ditto.
* vm_args.c: ditto.
* vm_eval.c: ditto.
* vm_insnhelper.c: ditto.
* vm_insnhelper.h: ditto.
* iseq.h: add iseq_compile_data::ci_index and
iseq_compile_data::ci_kw_indx.
* tool/instruction.rb: introduce TS_CALLCACHE operand type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/extlibs.rb (do_patch): let "patch" command change the
working directory and open the patch file there, instead of
spawn options, so that proper error message will be shown by the
command not just "chdir" or "open".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/fake.rb: builddir should be "." if it is the current
working directory.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/fake.rb: get rid of use of uninitialized global variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e