* configure.ac: introduce new configure option `--enable-mjit` and
`--disable-mjit`. Default is "enable".
`--disable-mjit` disables all of MJIT features so that `ruby --jit`
can't enable MJIT.
This option affect a macro `USE_MJIT`.
This change remove `--enable/disable-install-mjit-header` option.
* Makefile.in: introduce the `ENABLE_MJIT` variable.
* common.mk: use `ENABLE_MJIT` option.
* internal.h: respect `USE_MJIT`. Same as other *.c, *.h.
* test/ruby/test_jit.rb: check `ENABLE_MJIT` key of rbconfg.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* version.c (Init_ruby_description): separate to initialize
RUBY_DESCRIPTION constant according to mjit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
in version output.
version.h: ditto
ruby.c: propagate option for it
common.mk: updated dependency for version.c
mjit.c: overwrites the RUBY_DESCRIPTION to have +JIT when --jit is passed
test/ruby/test_rubyoptions.rb: add test for them
Only `ruby --jit -v` will have "+JIT", but this is intentional.
This may not be convenient for debugging by ticket with `ruby -v`,
but it's convenient for benchmark tools that pass options (--jit)
when showing it. At least such behavior is planned for benchmark_driver.gem
and this behavior is designed for it. Other benchmark tools are
recommended to follow the behavior too if they show version.
RUBY_DESCRIPTION might be useful for it too.
The position of "+JIT" is changed from original proposal because other
platforms like JRuby and TruffleRuby end it with archtecture.
It's made similar to JRuby, but it's upper-cased because Matz made approval
for "+JIT" in the ticket.
Example:
$ ruby -v
ruby 2.6.0dev (2018-02-22 trunk 62529) [x86_64-linux]
$ ruby --jit -v
ruby 2.6.0dev (2018-02-22 trunk 62529) +JIT [x86_64-linux]
After --jit is made default in the future, this output may be removed.
So do not rely on this output if possible.
[Feature #14462]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c (load_file_internal, ruby_process_options): share
ruby_engine instead of literal strings.
* version.c (Init_version): remove internal `ruby_engine_name`,
but set the VM program name in addition to the global constant.
* vm_backtrace.c (location_to_str, oldbt_init): use th eVM program
name always.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/fake.rb.in: scan MKSTR and MKINT from version.c and
then extract the value for them from version.i.
* version.c (Init_version): use MKINT as the marker.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* version.c (MKSTR): always make from static strings for sizeof
operator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* version.c (Init_version): the version of the engine or
interpreter. [Fix GH-858]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* version.c (ruby_show_version): show last commit title, if
different than the trunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (jemalloc): check for the header regardless drop-in
libjemalloc is found, for `malloc_conf` declaration.
* version.c (ruby_show_version): show `malloc_conf` if set.
[Feature #9113]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* version.c (ruby_show_copyright): use EXIT_SUCCESS instead of magic
number 0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* loadpath.c: split load path staffs from version.c.
* dmyloadpath.c: miniruby has no builtin load paths, so verconf.h is
not needed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in, version.c: prevent duplicated load paths by empty
version string, it does not work right now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
version.c (ruby_initial_load_paths): exclude directories that
are configured without them from $LOAD_PATH. [ruby-core:33267]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29877 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
handler by using ruby_engine_name. [ruby-core:29497]
* vm_eval.c (print_backtrace): file may be nil when segfaulted in
very early stage.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c (ruby_init_loadpath_safe): TMP_RUBY_PREFIX should be
exec_prefix, not rubylibprefix. [ruby-core:28718]
* version.c (RUBY_LIB_PREFIX): fallback to RUBY_EXEC_PREFIX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
split from core version. [ruby-dev:37748]
* configure.in (RUBY_LIB_PATH, etc): moved actual version
dependent stuff to version.c.
* ruby.c (ruby_init_loadpath_safe): ditto.
* version.c (ruby_initial_load_paths): moved initial load path
version depending on version from ruby.c.
* version.h (RUBY_VERSION_{MAJOR,MINOR,TEENY}): now mean library
and API version, and reverted to 1.9.1. [ruby-dev:37889]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
NODE_GVAR("$!"), to avoid confusion from variable aliasing.
[ruby-talk:90074]
* version.c (Init_version): remove obsolete constants VERSION
etc. [ruby-dev:22643]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c (rb_hash_set_default): Hash#default= should return the
new value.
* string.c (rb_str_to_i): accepts optional base argument. [new]
* numeric.c (rb_fix2str): should not handle negative fixnum values
int32 via calling sprintf() directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c (rb_cvar_set): empty iv_tbl may cause infinite loop.
* variable.c (rb_cvar_get): ditto.
* variable.c (cvar_override_check): ditto.
* bignum.c (rb_big_eq): convert Bignum to Float, instead of
reverse.
* time.c (time_localtime): getting tm should not be prohibited for
frozen time objects.
* time.c (time_gmtime): ditto.
* version.c (Init_version): freeze RUBY_VERSION,
RUBY_RELEASE_DATE, and RUBY_PLATFORM.
* file.c (Init_File): freeze File::SEPARATOR, ALT_SEPARATOR and
PATH_SEPARATOR.
* file.c (rb_stat_cmp): should check operand type before calling
get_stat().
* eval.c (rb_eval_cmd): should not invoke "call" with a block on
any occasion.
* numeric.c (fix_aref): idx may be a Bignum.
* numeric.c (num_remainder): a bug in Numeric#remainder.
* eval.c (rb_exec_end_proc): END might be called within END
block.
* class.c (rb_mod_clone): should not copy class name, since clone
should remain anonymous.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and delimiters.
* dir.c (remove_backslases): remove backslashes from path before
calling stat(2).
* dir.c (dir_s_glob): call rb_yield directly (via push_pattern) if
block is given to the method.
* dir.c (push_pattern): do not call rb_ary_push; yield directly.
* eval.c (blk_copy_prev): reduced ALLOC_N too much.
* eval.c (frame_dup): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e