* template/verconf.h.tmpl: rename from .in since this is an erb
template file, but not for config.status.
* common.mk (verconf.h): rename the dependent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c (process_options): use gem_prelude instead of requiring
rubygems directly when --enable=gems is given.
* Makefile.in (DEFAULT_PRELUDES): always use gem_prelude regardless of
--disable-rubygems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (sizes.c): revert r43137 and r43145, because the former
commit made sizes.c rebuild always each build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (sizes.c): now depends on PREP, which is miniruby if
native compile or fake.rb otherwise, to run MINIRUBY [Bug #8968]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (sizes.c): use MINIRUBY because Init_sizes() for miniruby
is defined in miniinit.c and miniruby does not depend on this file.
[Bug #8968]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (yes-test-sample): use RUNRUBY instead of MINIRUBY to set
runtime library path and run the built ruby. [Bug #8971]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (btest, btest-ruby, test-knownbug): add $(RUN_OPTS) to
ruby to be run, so that tests are runnable before making exts.
* common.mk (test-sample): ditto, and use $(MINIRUBY) as rubytest.rb
does not need extension libraries.
* tool/rubytest.rb: pass $(RUN_OPTS) to testing ruby using --run-opt.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
require extension libraries. The patch is from nobu
(Nobuyoshi Nakada).
* ext/thread/extconf.rb: for build ext/thread/thread.c.
* include/ruby/intern.h: ditto.
* thread.c: ditto.
* lib/thread.rb: removed and replaced by ext/thread/thread.c.
* ext/thread/thread.c: Queue, SizedQueue and ConditionVariable
implementations in C. This patch is based on patches from panaggio
(Ricardo Panaggio) and funny_falcon (Yura Sokolov) and ko1
(Koichi Sasada). [ruby-core:31513] [Feature #3620]
* test/thread/test_queue.rb (test_queue_thread_raise): add a test for
ensuring that killed thread should be removed from waiting threads.
It is based on a code by ko1 (Koichi Sasada). [ruby-core:45950]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (bisect): run git-bisect with miniruby
* common.mk (bisect-ruby): run git-bisect with ruby
* tool/bisect.sh: script for git-bisect
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32/win32.c (rb_w32_write_console): use MultiByteToWideChar() for
the last step of conversion to WCHAR, to get rid of warnings from
rb_enc_find() in miniruby. [ruby-dev:47584] [Bug #8733]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Because RubySpec often include tests which fails on CRuby even if
RubySpec is a test suite which verifies whether an implementation is
compatible with CRuby or not. Moreover recent mspec can't ignore specs
guarded with ruby_bug. It breaks running RubySpec with Ruby 1.8 because
those guards is used to avoid specs which cause stuck or crash.
Therefore we gave up tracking original and dicided to fork.
https://github.com/nurse/rubyspec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Move native thread related lines from vm_core.h.
And declare several functions "rb_nativethread_lock_*",
manipulate locking.
* common.mk: add thread_native.h.
* thread.c: add functions "rb_nativethread_lock_*".
* thraed.c, thread_[pthread,win32].[ch]: rename rb_thread_lock_t
to rb_nativethread_lock_t to make it clear that this lock is for
native thraeds, not for ruby threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Actually it can also be a directory or any argument for
test/unit runner. [Fixes GH-363]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/gcbench.rb: separate GC bench framework and process.
* tool/hashbench1.rb, tool/hashbench2.rb: add two types GC bench.
hashbench1: many temporal objects (GC by newobj)
hashbench2: hash size becomes bigger and bigger (GC by malloc)
Two benchs are executed by `gcbench-hash' rule.
* tool/rdocbench.rb: separated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (loadpath.o): $LOAD_PATH should not be affected by
the revision number.
* common.mk (dmyloadpath.o): depends on nothing except for the source
file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Postponed jobs are registered with this API. Registered jobs
are invoked at `ruby-running-safe-point' as soon as possible.
This timing is completely same as finalizer timing.
There are two APIs:
* rb_postponed_job_register(flags, func, data): register a
postponed job with data. flags are reserved.
* rb_postponed_job_register_one(flags, func, data): same as
`rb_postponed_job_register', but only one `func' job is
registered (skip if `func' is already registered).
This change is mostly written by Aman Gupta (tmm1).
https://bugs.ruby-lang.org/issues/8107#note-15
[Feature #8107]
* gc.c: use postponed job API for finalizer.
* common.mk: add dependency from vm_trace.c to debug.h.
* ext/-test-/postponed_job/extconf.rb, postponed_job.c,
test/-ext-/postponed_job/test_postponed_job.rb: add a test.
* thread.c: implement postponed API.
* vm_core.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
using RDoc. Generate all rdoc related files
(same as `make rdoc') in temporary directory
and remove them. Excecution time, GC::Profiler
and results of GC.stat are printed.
* tool/rdocbench.rb: added for `rdoc-bench'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Makefile.in (loadpath): $LOAD_PATH in miniruby is empty by default
now.
* win32/Makefile.sub (loadpath): separate for quirky cmd.exe syntax.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* template/verconf.h.in: generate verconf.h from the template and
rbconfig.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (verconf.h): depend on the timestamp file instead of
rbconfig.rb, for parallel build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (verconf.h): no needs to update always unless rbconfig.rb
is updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (verconf.h): $< cannot be used in explicit rules with
nmake.
* win32/Makefile.sub (CONFIG_H): create verconf.in instead of
verconf.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e