| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
* configure.in (--with-static-linked-ext): fix for extensions to
be linked statically.
* Makefile.in, common.mk: use ENCSTATIC for enc directory.
* ext/extmk.rb: supply dependencies of statically linked extension
libraries.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
| |
* ext/extmk.rb: use -C option for GNU make instead of shell.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
| |
* common.mk, defs/gmake.mk: fix install and uninstall dependencies
with parallel make.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
* enc/jis/props.kwd: constify character property tables of JIS
based encodings by perfect hash.
* enc/euc_jp.c, enc/shift_jis.c: use character property functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A doubly-linked list for tracking living threads guarantees
constant-time insert/delete performance with no corner cases of a
hash table. I chose this ccan implementation of doubly-linked
lists over the BSD sys/queue.h implementation since:
1) insertion and removal are both branchless
2) locality is improved if a struct may be a member of multiple lists
(0002 patch in Feature 9632 will introduce a secondary list
for waiting FDs)
This also increases cache locality during iteration: improving
performance in a new IO#close benchmark with many sleeping threads
while still scanning the same number of threads.
vm_thread_close 1.762
* vm_core.h (rb_vm_t): list_head and counter for living_threads
(rb_thread_t): vmlt_node for living_threads linkage
(rb_vm_living_threads_init): new function wrapper
(rb_vm_living_threads_insert): ditto
(rb_vm_living_threads_remove): ditto
* vm.c (rb_vm_living_threads_foreach): new function wrapper
* thread.c (terminate_i, thread_start_func_2, thread_create_core,
thread_fd_close_i, thread_fd_close): update to use new APIs
* vm.c (vm_mark_each_thread_func, rb_vm_mark, ruby_vm_destruct,
vm_memsize, vm_init2, Init_VM): ditto
* vm_trace.c (clear_trace_func_i, rb_clear_trace_func): ditto
* benchmark/bm_vm_thread_close.rb: added to show improvement
* ccan/build_assert/build_assert.h: added as a dependency of list.h
* ccan/check_type/check_type.h: ditto
* ccan/container_of/container_of.h: ditto
* ccan/licenses/BSD-MIT: ditto
* ccan/licenses/CC0: ditto
* ccan/str/str.h: ditto (stripped of unused macros)
* ccan/list/list.h: ditto
* common.mk: add CCAN_LIST_INCLUDES
[ruby-core:61871][Feature 9632 (part 1)]
Apologies for the size of this commit, but I think a good
doubly-linked list will be useful for future features, too.
This may be used to add ordering to a container_of-based hash
table to preserve compatibility if required (e.g. feature 9614).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (MKMAIN_CMD): Unused macro removed.
* win32/Makefile.sub (MKMAIN_CMD): Ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
| |
[ruby-core:60657] [Bug #9511]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
| |
* hash.c (rb_any_hash): use ID_SCOPE_SHIFT instead of magic number.
[Feature #9425]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
| |
macros from vm_core.h to internal.h.
* string.c: remove dependency to "vm_core.h".
* common.mk: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
| |
* common.mk (capi): flags cannot be separated by escaped newlines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
| |
* common.mk (capi): ignore doxygen failure (temporarily).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/ruby/util.h (DECIMAL_SIZE_OF_BITS): a preprocessor
constant macro to approximate decimal representation size of n-bits
integer.
* iseq.c (register_label): use DECIMAL_SIZE_OF_BITS for better
approximation.
* ext/bigdecimal/bigdecimal.c (BigMath_s_log): ditto.
* common.mk (iseq.o), ext/bigdecimal/depend (bigdecimal.o): add
dependency to ruby/util.h for DECIMAL_SIZE_OF_BITS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
* common.mk (Doxyfile): tool/file2lastrev.rb needs running with
BASERUBY since r43617. [ruby-dev:47823] [Bug #9169]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
for run.gdb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
|
|
| |
* common.mk, ext/rbconfig/sizeof: move RbConfig::SIZEOF to an
extension library to get rid of annoying nmake VPATH rule.
* inits.c (rb_call_inits), miniinit.c (Init_sizes): RbConfig::SIZEOF
is no loger built-in.
* template/sizes.c.tmpl (Init_sizeof): rename initialization function.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
| |
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
| |
ext/-test-/debug/depend, ext/date/depend: Update dependencies.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43445 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
|
|
|
|
|
|
|
|
| |
* common.mk (sizes.c): revert r42854 and r42883.
* win32/Makefile.sub (sizes.c): rule for outplace build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
| |
* common.mk (sizes.c): try to fix for in-place build.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42883 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 (sizes.c): needs VPATH to outplace build with nmake.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
* template/sizes.c.tmpl: generate automatically by extracting
RUBY_CHECK_SIZEOF from configure.in.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
| |
* common.mk (do-install-arch): install architecture dependent files
all, including libraries.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42452 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
|
|
|
|
|
|
| |
* sizes.c (Init_sizes): define RbConfig::SIZEOF. [Feature #8568]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42244 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
|
|
|
|
|
|
|
| |
Patch by Avdi Grimm https://github.com/ruby/ruby/pull/363
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
| |
* localeinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
move from encoding.c.
* miniinit.c (rb_locale_charmap, Init_enc_set_filesystem_encoding):
define miniruby specific functions only.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
rb_w32_udln_find_file_r
* win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r):
codepage independent versions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
|
|
|
| |
* benchmark/gc/gcbench.rb: moved from tool/gcbench.rb.
* benchmark/gc/hash(1|2).rb: ditto.
* benchmark/gc/rdoc.rb: ditto.
* benchmark/gc/null.rb: added.
* common.mk: fix rule.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
| |
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
* common.mk: separete gcbench-hash to gcbench-hash1 and gcbench-hash2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41462 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
|
|
|
|
|
|
| |
config files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
| |
* .travis.yml (before_script): update config files.
* common.mk ($(srcdir)/tool/config.{guess,sub}): use get-config_files.
* tool/config_files.rb: split get-config_files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
|
| |
* common.mk (update-config_files): rule to download config files.
* tool/config.guess, tool/config.sub: remove and download from the
upstream.
* tool/get-config_files: download config files from GNU.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
|
|
|
|
|
|
| |
(mt_state): Use rb_integer_unpack.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41156 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
|