644 Commits

Author SHA1 Message Date
usa
e564a82a93 * common.mk (encs enc trans libencs libenc libtrans): force to run
enk.mk because common.mk does not know the dependency, but enk.mk
  knows. [ruby-dev:48530] [Bug #10220]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 05:16:21 +00:00
hsbt
355c032fcf * test/runner.rb: reporting test coverage for test-all with COVERAGE env.
[Feature #10189][ruby-core:64681]
* Makefile.in: added task for coverage report.
* common.mk: added definition of forked simplecov url.
* .gitignore: ignored coverage directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-02 07:59:18 +00:00
normal
343f8b02a1 string.c: remove vm_core.h dependency [ruby-core:64627]
* string.c: revert part of r47311, add rb_vm_fstring_table(),
  remove vm_core.h dependency. [ruby-core:64627]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 07:22:23 +00:00
normal
a1e95636ac string.c: move frozen_strings table to rb_vm_t
Cleanup in case MVM development proceeds.

* string.c: remove static frozen_strings
* string.c (Init_frozen_strings): new function
* string.c (rb_fstring): remove check for frozen strings,
  use per-VM table
* string.c (rb_str_free): use per-VM table
* string.c (Init_String): use per-VM table
* vm_core.h (rb_vm_t): add frozen_strings table
* internal.h (Init_frozen_strings): new function prototype
* eval.c (ruby_setup): call Init_frozen_strings
  [Feature #10182]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-29 06:30:03 +00:00
nobu
f024d46f11 tool/vcs.rb: no time.rb
* common.mk (Doxyfile): revert r43888, not to require preinstalled
  ruby.  [ruby-core:64488] [Bug #10161]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-22 06:36:46 +00:00
nobu
1d196e0d2b sprintf.c: rational 'f' format
* sprintf.c (rb_str_format): support rational 'f' format.
  [ruby-core:64382] [Bug #10136]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-18 08:06:48 +00:00
nobu
62a4c2f55f common.mk: ignore timestamp directory
* common.mk (clean-ext): ignore error on removing non-existent
  timestamp directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-10 03:31:33 +00:00
nobu
e4c92f24fe common.mk: null device name
* common.mk (clean-platform): use $(NULL) as portabile null device
  name instead of hard coded /dev/null for the portability.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-28 05:38:26 +00:00
nobu
e23d173679 revert r46859 and r46860
revert "enum.c: optimize any? object allocations for Array and Hash"

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-18 13:16:37 +00:00
nobu
0d0fc55122 enum.c: optimize any? object allocations for Array and Hash
* enum.c (enum_any): optimize object allocations for Array and
  Hash when `each` is not redefined, always false if empty and the
  case without a block.  [fix GH-617]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-18 02:10:37 +00:00
nobu
47adf5709a symbol.c: remove dependency on parse.h
* symbol.c (op_tbl): remove non-regular symbols.

* symbol.c (global_symbols): start from the next of the preserved
  ID.

* symbol.c: (rb_id2str): op_tbl does not exceed tLAST_OP_ID.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-11 14:10:50 +00:00
ngoto
60ee5e03f1 * common.mk (DTRACE_DEPENDENT_OBJS): fix build failure on Solaris
introduced in r46768. Object files containing dtrace probes should
  be listed in DTRACE_DEPENDENT_OBJS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46770 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-09 15:28:53 +00:00
nobu
94ce481263 symbol.c, symbol.h: split from parse.y
* symbol.c, symbol.h: Symbol class implementation and internals,
  split from parse.y.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-09 08:07:32 +00:00
nobu
b1f4bf8aa2 common.mk: integrate clean targets
* common.mk (clean-rdoc, clean-capi, clean-platform): integrate
  from Makefile.in and win32/Makefile.sub.

* win32/Makefile.sub (RMALL): now use rm.bat instead of rmall.bat
  which does not handle any options and convert slashes.

* win32/rmall.bat: no longer used.  use rm.bat with -r instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-07 07:08:06 +00:00
ko1
a31219c91c * parse.y: do not use rb_gc_resurrect(), but create a new dynamic
symbol for garbage dynamic symbol.
* common.mk: use gc.h by parse.y.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-07 01:53:54 +00:00
ko1
7ad35210a3 * string.c (fstr_update_callback): do not use rb_gc_resurrect()
any more.
  Make new frozen string and replace with garbage frozen string.
* common.mk: use gc.h from string.c.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-06 17:20:30 +00:00
nobu
dd1f6b7d88 common.mk: ignore clean-runnable errors
* common.mk (clean-runnable): get rid of errors running again after
  clean-runnable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-05 23:38:13 +00:00
nobu
c97934b364 common.mk: remove sizes.o
* common.mk (sizes.o): remove stale target.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-05 07:05:38 +00:00
nobu
86689e037f common.mk: empty by distclean
* common.mk (clean-runnable): remove files made by mkrunnable.

* common.mk (clean-extout): remove archir too.

* common.mk (clean-ext): remove timestamp directory

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-05 07:02:39 +00:00
nobu
8eedcaa6b5 common.mk: move DEFAULT_PRELUDES
* common.mk (DEFAULT_PRELUDES): no longer configurable since
  r43278, move from Makefile.in and win32/Makefile.sub.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-04 17:32:51 +00:00
nobu
c2b0992156 configure.in: fix static-linked-ext
* 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
2014-07-03 03:40:24 +00:00
nobu
0b4e4b20cb extmk.rb: GNU make -C option
* 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
2014-07-03 03:38:13 +00:00
nobu
3f3c86faaa common.mk: fix dependencies
* 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
2014-06-19 14:11:52 +00:00
nobu
f1b49b7bb9 constify character property tables
* 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
2014-05-22 05:02:15 +00:00
normal
f11db2a605 vm*: doubly-linked list from ccan to manage vm->living_threads
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
2014-05-10 23:48:51 +00:00
akr
db9d8759ee * common.mk: Unused target, $(MKMAIN_CMD), removed.
* 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
2014-04-13 01:21:39 +00:00
hsbt
1f20820054 * common.mk: Use redmine-2.x url for DeveloperHowto wiki.
[ruby-core:60657] [Bug #9511]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-02 06:15:19 +00:00
nobu
10cf7c5b2a hash.c: use ID_SCOPE_SHIFT
* 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
2014-03-23 01:10:12 +00:00
ko1
1ccaa4756a * internal.h, vm_core.h: move LIKELY/UNLIKELY/UNINITIALIZED_VAR()
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
2014-02-05 04:58:00 +00:00
nobu
9a9f5f0f93 common.mk: fix command error
* 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
2014-01-16 05:54:32 +00:00
nobu
9707b23d71 common.mk: ignore capi failure
* common.mk (capi): ignore doxygen failure (temporarily).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-15 23:23:17 +00:00
nobu
5e9b7bacc3 ruby/util.h: DECIMAL_SIZE_OF_BITS
* 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
2014-01-12 00:21:37 +00:00
nobu
fe5554af85 verconf.h.tmpl: rename
* 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
2013-12-27 05:46:01 +00:00
kanemoto
9109292789 avoid circular dependency on AIX
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:33:59 +00:00
nobu
72807178f3 common.mk: use BASERUBY
* 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
2013-11-28 04:56:08 +00:00
ko1
be26a374e9 * common.mk: add useful config "set breakpoint pending on"
for run.gdb.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-26 10:30:42 +00:00
nobu
28849ce257 ext/rbconfig/sizeof: move to an extension library
* 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
2013-11-18 14:19:16 +00:00
tarui
a50ce9498c * common.mk (help): add texts about gcbench.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-06 10:32:40 +00:00
akr
674f14a0bc * common.mk, ext/objspace/depend, ext/coverage/depend,
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
2013-10-28 03:43:17 +00:00
nobu
02d28d01cf ruby.c: gem_prelude to load rubygems
* 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
2013-10-14 03:22:24 +00:00
nobu
a10c9a0e76 common.mk: revert r43137 and r43145
* 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
2013-10-05 01:02:15 +00:00
nobu
156eb84808 common.mk: sizes.c depends on PREP now
* 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
2013-10-05 00:18:54 +00:00
nobu
0f8032ba2b common.mk: make sizes.c with MINIRUBY
* 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
2013-10-04 07:36:22 +00:00
nobu
870dc20922 common.mk: use RUNRUBY for test-sample
* 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
2013-10-03 04:42:55 +00:00
nobu
8be7ad2b6d common.mk: RUN_OPTS to tests
* 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
2013-09-20 14:24:10 +00:00
nobu
c95d5b250d common.mk, win32/Makefile.sub: refix sizez.c for nmake
* 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
2013-09-08 03:54:41 +00:00
nobu
2b44bbf697 common.mk: in-place build
* 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
2013-09-07 22:03:17 +00:00
glass
e334bb2ce5 * common.mk: use RUNRUBY instead of MINIRUBY because MINIRUBY can't
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
2013-09-06 15:15:07 +00:00
nobu
64455007e6 common.mk: sizes.c for nmake
* 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
2013-09-06 05:23:25 +00:00
nobu
21d7cd3988 sizes.c.tmpl: autogenerate
* 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
2013-08-26 03:37:15 +00:00