Commit graph

1457 commits

Author SHA1 Message Date
naruse
b207e7cd1d include/ruby/defines.h (GCC_VERSION_SINCE): moved from internal.h
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-12 18:12:47 +00:00
naruse
ac11f944e1 Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-12 18:12:46 +00:00
usa
2cb362b51f * include/ruby/{defines,ruby}.h: need to define function attributes
alternatives in defines.h instead of ruby.h, because they are used
  in oniguruma.h and the header used without including ruby.h at
  encoding library sources.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-08 22:20:05 +00:00
usa
a8e1070d9d * include/ruby/ruby.h (CONSTFUNC, PUREFUNC): fixed build errors on
non-gcc build environments introduced at r54952.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-08 21:31:23 +00:00
naruse
28f5e12c24 * configure.in: check function attirbute const and pure,
and define CONSTFUNC and PUREFUNC if available.
  Note that I don't add those options as default because
  it still shows many false-positive (it seems not to consider
  longjmp).

* vm_eval.c (stack_check): get rb_thread_t* as an argument
  to avoid duplicate call of GET_THREAD().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-08 17:44:51 +00:00
nobu
65bbd0884c intern.h: suppress warnings
* include/ruby/intern.h (rb_disable_super, rb_enable_super):
  remove NORETURN.  these do nothing but just return.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-08 03:21:28 +00:00
naruse
a6c8e8d15b * configure.in: add -Wsuggest-attribute=noreturn and suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-08 00:55:28 +00:00
usa
3e5dc499a8 * win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new
truncate alternative which accepts UTF-8 path.

* file.c (truncate): use above function.
  [Bug #12340]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-02 14:05:19 +00:00
naruse
b888ee25ff revert UNALIGNED_WORD_ACCESS for GCC6
Released GCC 6.0 fixed the issue.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69291
[ruby-core:72211] [Bug #11831] [Bug #11979]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-30 15:39:03 +00:00
naruse
973ba3e8e2 * include/ruby/ruby.h (rb_mul_size_overflow): use UNLIKELY
by user side to improve generallity.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-23 07:15:26 +00:00
naruse
5587badf24 * include/ruby/ruby.h (RB_LIKELY): use prefix in ruby.h.
* intern.h (LIKELY): define with RB_LIKELY.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-23 07:15:25 +00:00
naruse
fac42e6c76 * include/ruby/ruby.h (rb_mul_size_overflow): added to handle
mul overflow efficiently.

* include/ruby/ruby.h (rb_alloc_tmp_buffer2): use rb_mul_size_overflow
  and avoid division where it can define DSIZE_T.

* gc.c (xmalloc2_size): moved from ruby.h and use rb_mul_size_overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-22 11:42:31 +00:00
naruse
3738fe3333 * variable.c: use uint32_t instead of long to avoid confusion about
the type of ivtbl->numiv.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-22 09:47:34 +00:00
naruse
feaa82a42b * gc.c (rb_alloc_tmp_buffer_with_count): added like xmalloc2 to
avoid duplicated check of size.

* gc.c (ruby_xmalloc2): added to keep separate layers.

* include/ruby/ruby.h (rb_alloc_tmp_buffer2): added to check
  the size more statically.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-21 20:59:40 +00:00
naruse
54c1f47930 * include/ruby/ruby.h (LIKELY): moved from internal.h.
* include/ruby/ruby.h (UNLIKELY): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-21 20:59:39 +00:00
naruse
fe120ac1f1 * gc.c (objspace_malloc_prepare): remove size check because it is
used by objspace_xmalloc and objspace_xcalloc.
  objspace_xmalloc introduces its own check in this commit.
  objspace_xcalloc checks with xmalloc2_size (ruby_xmalloc2_size).

* gc.c (objspace_xmalloc0): common xmalloc function.

* gc.c (objspace_xmalloc): introduce its own size check.

* gc.c (objspace_xmalloc2): separated from ruby_xmalloc2 to clarify
  the layer who has the responsibility to check the size.

* gc.c (objspace_xrealloc): remove duplicated size check.

* gc.c (ruby_xmalloc2): use objspace_xmalloc2.

* include/ruby/ruby.h (ruby_xmalloc2_size): follow the size limit
  as SSIZE_MAX. Note that ISO C says size_t is unsigned integer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-21 20:59:39 +00:00
nobu
d2e214736f rb_check_arity returns argc now
* include/ruby/intern.h (rb_check_arity): returns argc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-02 06:24:19 +00:00
naruse
723241fcb9 * include/ruby/ruby.h (rb_isupper, rb_islower, rb_isalpha, rb_isdigit,
rb_isalnum, rb_isxdigit, rb_isblank, rb_isspace, rb_isblank,
  rb_iscntrl, rb_isprint, rb_ispunct, rb_isgraph,
  rb_tolower, rb_toupper): use inline function to avoid function call.

* include/ruby/ruby.h (rb_isascii): use inline function to clarify
  the logic.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-29 10:24:05 +00:00
duerst
2f455ceca4 * include/ruby/oniguruma.h: Additional flag for characters that are titlecase.
* enc/unicode/case-folding.rb, casefold.h: Using above flag in data.
* enc/unicode.c: Marking capitalized character as unmodified if it is
  already titlecase.
* test/ruby/enc/test_case_mapping.rb: Tests for above functionality.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-22 12:08:30 +00:00
mrkn
fa860a9497 * include/ruby/intern.h (rb_big_odd_p, rb_big_even_p): move to
internal.h so that they are exported only for ruby itself.

* internal.h (rb_big_odd_p, rb_big_even_p): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-19 16:08:52 +00:00
mrkn
2897eb11a0 * include/ruby/intern.h (rb_big_hash): Move to internal.h.
* internal.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-18 13:33:42 +00:00
mrkn
f8e79c84a9 * bignum.c (rb_big_hash): make it public function to be available in
other source files, and remove documentation comment for Bignum#hash.

* bignum.c (Bignum#hash): remove its definition because it is unified
  with Object#hash.

* include/ruby/intern.h (rb_big_hash): add a prototype declaration.

* hash.c (any_hash): treat Bignum values directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-18 01:22:38 +00:00
mrkn
a3c9cda6d7 * bignum.c (rb_big_even_p, rb_big_odd_p): make them public functions
to be available in other source files.

* include/ruby/intern.h (rb_big_even_p, rb_big_odd_p): add prototype
  declarations.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 17:07:29 +00:00
nobu
37153c03f8 ruby.h: remove RB_GC_GUARD_PTR
* include/ruby/ruby.h (RB_GC_GUARD_PTR): remove intermediate
  macro, and expand for each RB_GC_GUARD.  [Fix GH-1293]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-17 13:21:36 +00:00
duerst
4b15b54d68 * include/ruby/oniguruma.h, enc/unicode.c: Adjusting flag assignments
and macros to work with unified CaseMappingSpecials array.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-14 09:39:54 +00:00
nobu
e13db770f4 win32.h: fix O_SHARE_DELETE
* include/ruby/win32.h (O_SHARE_DELETE): change to fit Fixnum
  limit.  [ruby-core:74285] [Bug #12171]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-13 00:43:25 +00:00
nobu
8e1a0856ed internal.h: functions for class internals
* internal.h: move function declarations for class internals from
  include/ruby/intern.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-07 04:28:32 +00:00
svn
35f40f5347 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-24 13:32:02 +00:00
duerst
f1f48e6103 * include/ruby/oniguruma.h: Rearranging flag assignments and making
space for titlecase indices; adding additional macros to add or
  extract titlecase index; adding comments for better documentation.
* enc/unicode.c: Moving some macros to include/ruby/oniguruma.h;
  activating use of titlecase indices.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-24 13:32:01 +00:00
nobu
383555fe44 encoding.h: rb_enc_asciicompat_inline
* include/ruby/encoding.h (rb_enc_asciicompat): turn into an
  inline function to get rid of evalucating the argument twice.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-04 03:16:50 +00:00
naruse
21daa56b2a * re.c: Introduce RREGEXP_PTR.
patch by dbussink.
  partially merge https://github.com/ruby/ruby/pull/497

* include/ruby/ruby.h: ditto.

* gc.c: ditto.

* ext/strscan/strscan.c: ditto.

* parse.y: ditto.

* string.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-02 04:39:44 +00:00
nobu
fd7b490fc3 disable unaligned word access
* include/ruby/defines.h, st.c: disable unaligned word access with
  gcc 6 or later.  [Bug #11831]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-15 13:15:39 +00:00
duerst
eb86cd6b7b include/ruby/oniguruma.h: Added flags needed for upcase/downcase
Unicode addition (with Kimihito Matsui)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-11 12:28:55 +00:00
nobu
d138a11095 io.h: remove old macros
* include/ruby/io.h (RB_IO_BUFFER_INIT, RB_IO_FPTR_NEW): remove
  old macros only for internal use and obsolete since 2.2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-11 00:01:12 +00:00
nobu
09bdb7913c missing.h: remove explicit_bzero_by_memset_s
* include/ruby/missing.h (explicit_bzero_by_memset_s): remove
  inline implementation by memset_s, which needs a macro before
  including headers and can cause problems in extension libraries
  by the order of the macro and headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-10 06:45:36 +00:00
mrkn
98e565ec78 * ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.
  [ruby-core:72736] [Bug #11962]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-07 13:35:32 +00:00
nobu
7aab062ef3 version.c: no exit in ruby_show_copyright
* include/ruby/backward.h (ruby_show_copyright_to_die): for source
  code backward compatibility.
* ruby.c (process_options): return Qtrue to exit the process
  successfully.
* version.c (ruby_show_copyright): no longer exit.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-07 02:34:33 +00:00
matz
fe2123f3ec version.h (RUBY_VERSION): 2.4.0 development has started.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-25 12:40:38 +00:00
duerst
0ab9e70625 doc/CangeLog-2.3.0, ext/tk/lib/txextlib/SUPPORT_STATUS,
include/ruby/version.h: minor grammar fixes [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-25 05:12:16 +00:00
nobu
22d8481f08 fix common misspelling [ci skip]
* compile.c, cont.c, doc, man: fix common misspelling.
  [ruby-core:72466] [Bug #11870]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-24 23:23:46 +00:00
nobu
94090b0502 deprecate exposed internal functions
* error.c (rb_compile_error_with_enc, rb_compile_error),
  (rb_compile_bug): deprecate internal functions.
* parse.y (parser_yyerror): construct exception message with
  source code and carret.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-24 09:43:22 +00:00
nobu
f9adadc5e6 rb_readwrite_syserr_fail
* io.c (rb_readwrite_syserr_fail): works with the given errno than
  thread local errno.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-23 14:58:47 +00:00
normal
a2e025a7d0 introduce rb_autoload_str to replace rb_autoload
rb_autoload_str may be safer by preventing premature GC.  It
can also be more efficient by passing a pre-frozen string that
can be deduped using rb_fstring.  Common autoload callers (e.g.
rubygems, rdoc) already use string literals as the file
argument.

There seems to be no reason to expose rb_autoload_str to the
public C API since autoload is not performance-critical.
Applications may declare autoloads in Ruby code or via
rb_funcall; so merely deprecate rb_autoload without exposing
rb_autoload_str to new users.

Running: valgrind -v ruby -rrdoc -rubygems -e exit
shows a minor memory reduction (32-bit userspace)

before:

  in use at exit: 1,600,621 bytes in 28,819 blocks
total heap usage: 55,786 allocs, 26,967 frees, 6,693,790 bytes allocated

after:

  in use at exit: 1,599,778 bytes in 28,789 blocks
total heap usage: 55,739 allocs, 26,950 frees, 6,692,973 bytes allocated

* include/ruby/intern.h (rb_autoload): deprecate
* internal.h (rb_autoload_str): declare
* load.c (rb_mod_autoload): use rb_autoload_str
* variable.c (rb_autoload): become compatibility wrapper
  (rb_autoload_str): hoisted out from old rb_autoload
  [ruby-core:71369] [Feature #11664]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-06 12:28:09 +00:00
ngoto
bc9ac3ab7f * include/ruby/ruby.h (RB_OBJ_TAINT): follow-up of r52881.
Turn into void expression not to use unexpected result.
  Fix "operands have incompatible types" error with
  Oracle Solaris Studio 12.x on Solaris.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-04 15:59:10 +00:00
nobu
7eb6942dbb ruby.h: make flag setting macros void
* include/ruby/ruby.h (RB_FL_{SET,UNSET,REVERSE,INFECT,FREEZE}):
  turn into void expressions not to use unexpected results.  these
  macros were statements till 2.2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-04 07:32:05 +00:00
nobu
bc6e31eebf missing.h: __STDC_WANT_LIB_EXT1__
* include/ruby/missing.h: get rid of redefinition of
  __STDC_WANT_LIB_EXT1__.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 09:17:42 +00:00
nobu
4a7dedf7f0 missing.h: __STDC_WANT_LIB_EXT1__
* include/ruby/missing.h: __STDC_WANT_LIB_EXT1__ is necessary for
  memset_s.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 01:50:34 +00:00
nobu
24dcb1285d explicit_bzero.c: needs windows.h
* missing/explicit_bzero.c, random.c (explicit_bzero):
  SecureZeroMemory() needs windows.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 03:52:20 +00:00
nobu
e84000fcba missing.h: explicit_bzero by SecureZeroMemory
* include/ruby/missing.h (explicit_bzero): use SecureZeroMemory on
  Windows.  assume Windows XP or later at compile time.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 01:39:24 +00:00
nobu
10bb9e6fab missing.h: explicit_bzero by memset_s
* include/ruby/missing.h (explicit_bzero_by_memset_s): call
  memset_s directly if available.

* missing/explicit_bzero.c: optimization is not a matter if
  memset_s is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 01:24:23 +00:00