Граф коммитов

1320 Коммитов

Автор SHA1 Сообщение Дата
nobu 257bf9c0d0 ruby.h: unused parameter
* include/ruby/ruby.h (rb_scan_args_set): remove unused parameter
  for more pedantic extension libraries.
  [ruby-core:79399] [Feature #13184]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-03 23:50:41 +00:00
naruse b5381899c8 fix typo [Bug #13091]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-01 16:42:43 +00:00
matz 110bfb7152 include/ruby/version.h: Update API version.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-25 16:53:00 +00:00
nobu 353395f969 get rid of implicit signedness conversions
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-22 20:58:55 +00:00
naruse 5153260c30 suppress warning: implicit conversion changes signedness
It causes [Bug #13060]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-22 09:44:30 +00:00
nobu c0ff5f4dd7 st.c: fix st_hash* functions [Bug #13019]
Previous implementation had an issues:
- macros murmur1 assumes murmur_step takes rotation value
  as a second argument
- but murmur_step second argument is "next block"
- this makes st_hash_uint and st_hash_end to not mix high bits of
  hash value into lower bits
- this leads to pure hash behavior on doubles and mixing hashes using
  st_hash_uint.
  It didn't matter when bins amount were prime numbers, but it hurts
  when bins are powers of two.

Mistake were created cause of attempt to co-exist Murmur1 and Murmur2
in a same code.

Change it to single hash-function implementation.
- block function is in a spirit of Murmur functions,
  but handles inter-block dependency a bit better (imho).
- final block is read in bit more optimal way on CPU with unaligned word access,
- final block is mixed in simple way,
- finalizer is taken from MurmurHash3 (it makes most of magic :) )
  (64bit finalizer is taken from
  http://zimbry.blogspot.ru/2011/09/better-bit-mixing-improving-on.html)

Also remove ST_USE_FNV1: it lacks implementation of many functions,
and looks to be abandoned

Author: Sokolov Yura aka funny_falcon <funny.falcon@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-21 06:22:16 +00:00
usa 42d9712e78 declare `rb_w32_sysinit` in header.
* include/ruby/win32.h (rb_w32_sysinit): declare.
  [ruby-core:78444] [Bug #12994]

* ruby.c (ruby_sysinit): follow above change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-13 05:17:48 +00:00
naruse 2873edeafb Merge Onigmo 6.0.0
* https://github.com/k-takata/Onigmo/blob/Onigmo-6.0.0/HISTORY
* fix for ruby 2.4: https://github.com/k-takata/Onigmo/pull/78
* suppress warning: https://github.com/k-takata/Onigmo/pull/79
* include/ruby/oniguruma.h: include onigmo.h.
* template/encdb.h.tmpl: ignore duplicated definition of EUC-CN in
  enc/euc_kr.c. It is defined in enc/gb2313.c with CRuby macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-10 17:47:04 +00:00
naruse 1f63c0fcb8 Suppress warning: this use of "defined" may not be portable
Use of defined() in macro expansion is considered non portable.
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01577.html

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-09 22:45:38 +00:00
nobu c047f58da6 ruby.h: add prefix
* include/ruby/ruby.h (RB_TEST, RB_NIL_P): prefix RB to get rid of
  name conflicts with other headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-09 03:25:20 +00:00
nobu 5714a26b90 switching hash removal
* st.h (struct st_hash_type): Remove strong_hash.
  (struct st_table): Remove inside_rebuild_p and curr_hash.
* st.c (do_hash): Use type->hash instead of curr_hash.
  (make_tab_empty): Remove setting up curr_hash.
  (st_init_table_with_size): Remove setting up inside_rebuild_p.
  (rebuild_table): Remove clearing inside_rebuild_p.
  (reset_entry_hashes, HIT_THRESHOULD_FOR_STRONG_HASH): Remove code
  recognizing a denial attack and switching to strong hash.
* hash.c (rb_dbl_long_hash, rb_objid_hash, rb_ident_hash): Use
  rb_hash_start to randomize the hash.
  (str_seed): Remove.
  (any_hash): Remove strong_p and use always rb_str_hash for
  strings.
  (any_hash_weak, rb_any_hash_weak): Remove.
  (st_hash_type objhash): Remove rb_any_hash_weak.

based on the patch by Vladimir N Makarov <vmakarov@redhat.com> at
[ruby-core:78490].  [Bug #13002]

* test/ruby/test_hash.rb (test_wrapper): objects other than special
  constants should be able to be wrapped.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-06 04:43:48 +00:00
ktsj b16d1968e6 Revert changes on rb_frame_method_id_and_class()
r56593 introduced backwards incompatible changes in the API.
[ruby-core:78471] [Feature #12747]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-04 05:40:18 +00:00
usa f6f158c65a use `rb_struct_ptr` for `RSTRUCT_PTR` macro
* include/ruby/ruby.h (RSTRUCT_PTR): at r55788, `rb_struct_const_ptr` had been hidden and `rb_struct_ptr` had been implemented for backward compatiblity.  but the definition of `RSTRUCT_PTR` was not modified to use it, probably by mistake.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-24 20:51:45 +00:00
nobu 6839d47eb8 ruby.h: rb_big_sign
* include/ruby/ruby.h (RBIGNUM_SIGN): use a wrapper function to
  return the sign bit, instead of comparing with 0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-19 04:32:52 +00:00
ko1 75775157ea Introduce table improvement by Vladimir Makarov <vmakarov@redhat.com>.
[Feature #12142]
	See header of st.c for improvment details.

	You can see all of code history here:
	<https://github.com/vnmakarov/ruby/tree/hash_tables_with_open_addressing>

	This improvement is discussed at
	<https://bugs.ruby-lang.org/issues/12142>
	with many people, especially with Yura Sokolov.

	* st.c: improve st_table.

	* include/ruby/st.h: ditto.

	* internal.h, numeric.c, hash.c (rb_dbl_long_hash): extract a function.

	* ext/-test-/st/foreach/foreach.c: catch up this change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-07 00:45:00 +00:00
ktsj 9cbd6ee097 * vm_trace.c (tracepoint_attr_callee_id, rb_tracearg_callee_id):
add TracePoint#callee_id. [ruby-core:77241] [Feature #12747]

* cont.c, eval.c, gc.c, include/ruby/intern.h, insns.def, thread.c,
  vm.c, vm_backtrace.c, vm_core.h, vm_eval.c, vm_insnhelper.c, vm_trace.c: ditto.

* test/ruby/test_settracefunc.rb: tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-05 13:15:27 +00:00
nobu 8998c06461 ruby/ruby.h: optimize rb_integer_type_p
* include/ruby/ruby.h (rb_integer_type_p): turn into macro to help
  clang based on old gcc to eliminate CSE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-27 14:28:14 +00:00
nobu de2773a3ce ruby.h: use prefixed macro
* include/ruby/ruby.h (rb_intern): use prefixed version macro
  RUBY_CONST_ID_CACHE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-26 08:10:00 +00:00
nobu 2639eaebfc encoding.h: include ruby/ruby.h
* include/ruby/encoding.h: include "ruby/ruby.h" explicitly for
  enum ruby_fl_type and VALUE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-23 02:41:43 +00:00
kazu 787e878863 Add prefix to FIX2LONG in include/ruby/ruby.h
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-03 12:18:33 +00:00
nobu 432a075035 ruby.h: add prefix
* include/ruby/ruby.h (RB_INT2FIX, RB_LONG2FIX): prefix RB to
  global symbols to get rid of name conflicts with other headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-01 23:22:30 +00:00
nobu 68aa1d81cf gc.c: rb_gc_adjust_memory_usage
* gc.c (rb_gc_adjust_memory_usage): notify memory usage to the GC
  engine by extension libraries, to trigger GC.  [Feature #12690]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-09-20 07:52:25 +00:00
nobu b22b725c5d util.h: POSIX-noncompliant setenv
* include/ruby/util.h (setenv): remove POSIX-noncompliant
  definition with 2 arguments.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-09-07 08:50:39 +00:00
ngoto 4e062d14d2 * include/ruby/defines.h (ALWAYS_INLINE): Add alternative definition.
Fix compile error with compilers that do not have force inline
  attribute, including old version of fcc on Solaris 10.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-24 11:08:30 +00:00
shyouhei 26f59b09fe hide struct internal [Feature #9916]
* include/ruby/ruby.h (struct RStruct): no longer.

	* internal.h (struct RStruct): moved here.

	* struct.c (rb_struct_ptr): a compensation function for the lack
	  of RSTRUCT_PTR.  But now that we have RSTRUCT_GET/SET, that must
	  not be used anyway.  I mark this deprecated.  Dont use it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-01 07:23:56 +00:00
nobu 7475d44308 ruby.h: use __extension__
* include/ruby/ruby.h (ruby_fl_type): use __extension__ to get rid
  of pedantic warning against RUBY_FL_USER19.
  https://github.com/skylightio/skylight-ruby/issues/64
* include/ruby/ruby.h (rb_mul_size_overflow): ditto for use of
  int128.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-28 06:05:14 +00:00
duerst 6ed393ad89 * regenc.h/c, include/ruby/oniguruma.h, enc/ascii.c, big5.c, cp949.c,
emacs_mule.c, euc_jp.c, euc_kr.c, euc_tw.c, gb18030.c, gbk.c,
  iso_8859_1|2|3|4|5|6|7|8|9|10|11|13|14|15|16.c, koi8_r.c, koi8_u.c,
  shift_jis.c, unicode.c, us_ascii.c, utf_16|32be|le.c, utf_8.c,
  windows_1250|51|52|53|54|57.c, windows_31j.c, unicode.c:
  Remove conditional compilation macro ONIG_CASE_MAPPING. [Feature #12386].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-24 07:33:15 +00:00
nobu c29ad01850 ruby.h: use prefixed name
* include/ruby/ruby.h (RTEST, NIL_P): use RUBY prefixed name in
  macros.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-22 19:06:07 +00:00
nobu 3674064bf2 RUBY_USE_SETJMPEX
* configure.in, include/ruby/defines.h (RUBY_USE_SETJMPEX):
  include setjmpex.h only when using setjmpex() for RUBY_SETJMP.
  the header of mingw32 overrides setjmp() by setjmpex().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-20 15:22:04 +00:00
nobu 5bddb94492 remove backward macros
* include/ruby/backward.h (rb_cFixnum, rb_cBignum): remove the
  backward compatibility macros, to fail incompatible extension
  libraries earily.  [Bug #12427]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-14 14:43:02 +00:00
nobu c071c05229 Integer unification macro
* include/ruby/ruby.h (RUBY_INTEGER_UNIFICATION): macro to tell if
  Integer is integrated.  [ruby-core:75718][Bug #12427]
* include/ruby/backward.h, internal.h (rb_cFixnum, rb_cBignum):
  fallback to rb_cInteger.
* bignum.c, numeric.c, ext/json/generator/generator.{c,h}: use the
  macro.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-13 11:34:56 +00:00
ngoto 8a8d3e2ed4 * include/ruby/defines.h (GCC_VERSION_SINCE): Fix logic error by
adding parentheses. Fix failures of TestMkmf::TestConvertible
  with GCC 3.4.3 on Solaris 10. [Bug #12479] [ruby-dev:49660]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-10 16:47:05 +00:00
duerst f0fc6ec872 * string.c: New static function rb_str_ascii_casemap; special-casing
:ascii option in rb_str_upcase_bang and rb_str_downcase_bang.
* regenc.c: Fix a bug (wrong use of unnecessary slack at end of string).
* regenc.h -> include/ruby/oniguruma.h: Move declaration of
  onigenc_ascii_only_case_map so that it is visible in string.c.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-08 12:28:42 +00:00
ngoto fd25eea0e4 * include/ruby/intern.h: Remove excess semicolons in PUREFUNC().
Fix failure of TestMkmf::TestConvertible on Solaris with
  Oracle Solaris Studio 12. [ruby-dev:49651] [Bug #12470]
* internal.h: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-08 11:36:57 +00:00
nobu 81d55195cf ruby.h: reduce repeated calcuations
* include/ruby/ruby.h (rb_scan_args_{hash,block}_idx): reduce
  repeated index calcuations.

* include/ruby/ruby.h (rb_scan_args_end_idx): unused right now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-02 01:54:17 +00:00
hsbt 2bd2001d16 * addr2line.c: drop to support ATARI ST platform. It was discontinued
more than two decades ago. [fix GH-1350] Patch by @cremno
* include/ruby/ruby.h: ditto.
* io.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-28 01:46:27 +00:00
nobu be1ceb2723 fix non-static rb_scan_args
* include/ruby/ruby.h (rb_scan_args): remove nul padding which
  caused syntax error if fmt is not a string literal.
* include/ruby/ruby.h (rb_scan_args_verify): suppress array-bounds
  warnings by old clang.
* include/ruby/ruby.h (rb_scan_args0): make extractor macros
  inline functions, which do not varidate the format and are
  unnecessary to be expanded.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-27 06:07:34 +00:00
nobu d92b58d537 ruby.h: fix parameter name
* include/ruby/ruby.h (rb_scan_args): fix macro parameter name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-27 05:44:52 +00:00
nobu 08fefd70e5 ruby.h: fix for old clang
* include/ruby/ruby.h (rb_scan_args): add nul padding here to
  apply to all references.

* include/ruby/ruby.h (rb_scan_args_verify): move length mismatch
  check outside conditional operators.

Since old clang cannot optimize away string literal dereference by
an immediate index, e.g., ""[0], and both of true and false side
expressions are compiled and warned unintentionally.  With such
old compilers, the check in rb_scan_args() does not work but may
result unpredictable value if the format is wrong.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-26 15:39:43 +00:00
nobu ef10b81c78 ruby.h: suppress warnings
* include/ruby/ruby.h (rb_scan_args_count): add filler nul bytes
  to suppress array-bounds warnings by old clang.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-26 05:16:04 +00:00
nobu be44af047a ruby.h: count and verify
* include/ruby/ruby.h (rb_scan_args_count): verify length with
  counting variables together.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-26 05:13:54 +00:00
nobu 374513ce82 revert r55171
Revert r55171, "ruby.h: fix clang warnings", it did fix
array-bounds warnings, but caused string-plus-int warnings
instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-26 05:11:07 +00:00
nobu 43079283a8 ruby.h: fix clang warnings
* include/ruby/ruby.h (rb_scan_args0): use pointer dereference
  forms instead of array forms, to get rid of warnings by clang.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-26 01:30:31 +00:00
nobu c7bc778dde ruby.h: rb_scan_args_validate
* include/ruby/ruby.h (rb_scan_args_validate): move failed
  condition to the terminal.  [ruby-core:75714] [Bug #12426]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-25 08:11:36 +00:00
nobu b3d3d52cd6 ruby.h: optimize rb_scan_args_set
* include/ruby/ruby.h (rb_scan_args_set): check the arity after
  adjusting argc for an option hash, for optimization in simpler
  cases.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-24 15:23:06 +00:00
nobu eb15df1f89 ruby.h: rb_scan_args_verify
* include/ruby/ruby.h (rb_scan_args_verify): verify the format to
  scan if no invalid chars and variable argument length matching,
  at the compile time if possible.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-24 09:52:14 +00:00
nobu 6a787c68bc defines.h: fallback ERRORFUNC and WARNINGFUNC
* include/ruby/defines.h (ERRORFUNC, WARNINGFUNC): add fallback
  definitions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-24 08:18:47 +00:00
nobu 88cc25f96d missing.h: isfinite
* include/ruby/missing.h (isfinite): move from numeric.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55136 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 12:33:39 +00:00
nobu 2d9d6caabd revert error attributes
* include/ruby/ruby.h (rb_scan_args0): revert error attributes,
  which may not be optimized away in readline extension library.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 10:45:13 +00:00
nobu a6144809eb make compile error if possible
* include/ruby/ruby.h (rb_scan_args0): make compile error if the
  format is wrong or does not match with the variable argument
  length if possible.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 04:19:43 +00:00