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
* configure.in: save configured load path values into verconf.in.
* common.mk (verconf.h): create from verconf.in with shvar_to_cpp.rb.
* tool/shvar_to_cpp.rb: turn shell variables into C macros.
[Bug #7959]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40758 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
instead of {$(VPATH)}version.h to avoid confusion by VPATH between
top level version.h and include/ruby/version.h for build in-place.
[ruby-dev:47249] [Bug #8256]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/update-deps: Use "make -p all miniruby ruby golf" to extract
deendencies in makefiles.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
other than source directory. (its commit log also says the same
thing, but such failure is not reproducible on my environment
and the commit breaks build on my environment)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (id.h, id.c): Always generated in $(srcdir).
(ext/ripper/ripper.c): Passes $(PATH_SEPARATOR) too to the sub make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (showflags): show the compiler version.
* configure.in (CC_VERSION): compiler with version option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (realclean-local): miniprelude.c is made by srcs, so it
should not removed by distclean but by realclean. [Bug #6807]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk (showconfig): get rid of variable expansion by shell.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e