Commit graph

971 commits

Author SHA1 Message Date
glass
c5b19cf01c * re.c (rb_memsearch_ss): performance improvement by using memmem(3) if
possible. [ruby-dev:45530] [Feature #6311]

* configure.in: check existence of memmem(3) and that it is not broken.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-13 02:12:40 +00:00
tenderlove
4c740bae97 * probes.d: add DTrace probe declarations. [ruby-core:27448]
* array.c (empty_ary_alloc, ary_new): added array create DTrace probe.

* compile.c (rb_insns_name): allowing DTrace probes to access
  instruction sequence name.

* Makefile.in: translate probes.d file to appropriate header file.

* common.mk: declare dependencies on the DTrace header.

* configure.in: add a test for existence of DTrace.

* eval.c (setup_exception): add a probe for when an exception is
  raised.

* gc.c: Add DTrace probes for mark begin and end, and sweep begin and
  end.

* hash.c (empty_hash_alloc): Add a probe for hash allocation.

* insns.def: Add probes for function entry and return.

* internal.h: function declaration for compile.c change.

* load.c (rb_f_load): add probes for `load` entry and exit, require
  entry and exit, and wrapping search_required for load path search.

* object.c (rb_obj_alloc): added a probe for general object creation.

* parse.y (yycompile0): added a probe around parse and compile phase.

* string.c (empty_str_alloc, str_new): DTrace probes for string
  allocation.

* test/dtrace/*: tests for DTrace probes.

* vm.c (vm_invoke_proc): add probes for function return on exception
  raise, hash create, and instruction sequence execution.

* vm_core.h: add probe declarations for function entry and exit.

* vm_dump.c: add probes header file.

* vm_eval.c (vm_call0_cfunc, vm_call0_cfunc_with_frame): add probe on
  function entry and return.

* vm_exec.c: expose instruction number to instruction name function.

* vm_insnshelper.c: add function entry and exit probes for cfunc
  methods.

* vm_insnhelper.h: vm usage information is always collected, so
  uncomment the functions.

12 19:14:50 2012  Akinori MUSHA  <knu@iDaemons.org>

* configure.in (isinf, isnan): isinf() and isnan() are macros on
  DragonFly which cannot be found by AC_REPLACE_FUNCS().  This
  workaround enforces the fact that they exist on DragonFly.

12 15:59:38 2012  Shugo Maeda  <shugo@ruby-lang.org>

* vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo),
  vm_insnhelper.c (vm_search_method): revert r37616 because it's too
  slow.  [ruby-dev:46477]

* test/ruby/test_refinement.rb (test_inline_method_cache): skip
  the test until the bug is fixed efficiently.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-12 21:52:12 +00:00
knu
e34f508775 Fix build on DragonFly where configure fails to detect isinf()/isnan().
* configure.in (isinf, isnan): isinf() and isnan() are macros on
  DragonFly which cannot be found by AC_REPLACE_FUNCS().  This
  workaround enforces the fact that they exist on DragonFly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-12 10:26:28 +00:00
knu
0a741075a3 * configure.in (--with-opt-dir): Avoid nesting of double quotes
inside backquotes, since some traditional shells like PD KSH
  (which OpenBSD's /bin/sh bases on) fails to parse them.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-08 03:09:18 +00:00
nobu
0249395582 configure.in: no visibility option for older GCC
* configure.in (visibility_option): visibility attribute is not
  available before GCC 4, so do not use -fvisibility option in that
  case.  [ruby-core:48147] [Bug #7205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-23 05:06:50 +00:00
nobu
7254573c55 configure.in: multiple opt-dir
* configure.in (opt-dir): allow multiple directories separated by
  $PATH_SEPARATOR as well as dir_config in mkmf.rb. [ruby-core:47868]
  [Bug #7120]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-17 06:33:14 +00:00
nari
8d53a08ed8 * gc.c: Use the non-recursive marking instead of recursion. The
recursion marking of CRuby needs checking stack overflow and the
  fail-safe system, but these systems not good at partial points,
  for example, marking deep tree structures. [ruby-dev:46184]
  [Feature #7095]

* configure.in (GC_MARK_STACKFRAME_WORD): removed. It's used by
  checking stack overflow of marking.

* win32/Makefile.sub (GC_MARK_STACKFRAME_WORD): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-03 12:30:21 +00:00
knu
1d695c36b9 * configure.in (--with-opt-dir): Make this also work on DLDFLAGS
so LIBRUBY_SO links fine with libexecinfo installed in a
  non-system directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-30 17:36:09 +00:00
nobu
c278c84692 configure.in: warnflags
* configure.in (warnflags): needs to check configuration with strict
  options.  [ruby-dev:46105]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-16 08:41:37 +00:00
nobu
4a906510a2 configure.in: strict warnflags
* configure.in (strict_warnflags): separate strict flags from
  warnflags only for core.  [ruby-dev:46105]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-15 23:58:04 +00:00
nobu
057b1986a4 configure.in: aix warnflags
* configure.in: append -qinfo option not overriding.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-15 23:52:34 +00:00
eregon
429c856e9c * configure.in: fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-14 17:29:40 +00:00
nobu
d11ef850b2 configure.in: no PIE on Haiku
* configure.in: Don't use PIE on Haiku because loader support is not
  enough.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-13 01:22:13 +00:00
nobu
059f14a6c5 configure.in: unquote
* configure.in (LIBDIR_BASENAME): unquote shell variable.
  [ruby-core:47267] [Bug #6903]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-01 05:03:34 +00:00
nobu
22c81db9d8 configure.in: use configured libdir value
* configure.in (LIBDIR_BASENAME): use configured libdir value to fix
  --enable-load-relative on systems where libdir is not default value,
  overridden in config.site files.  [ruby-core:47267] [Bug #6903]
* ruby.c (ruby_init_loadpath_safe): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-29 06:03:09 +00:00
naruse
4358271106 * configure.in: Fixing Haiku R1/alpha3 build with gcc-4.4.4.
- omit ANSI standard flags to compile socket extension where
    anonymous union is required.
  - remove redundant -be flags.
  by Takashi Toyoshima <toyoshim@gmail.com>
  https://github.com/ruby/ruby/pull/168

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-28 11:05:23 +00:00
yugui
a66b2c6df1 * nacl/GNUmakefile.in (CC, LD, NM, AR, AS, RANLIB, OBJDUMP, OBJCOPY)
Rewrites these variables instead of PATH.
  NaCl port uses a toolchain which is specified by NACL_SDK_ROOT
  environment variable. Originally, NaCl build added the toolchain
  under the NACL_SDK_ROOT to the PATH. But updating PATH doesn't work
  on Mac.
  (RBCONFIG): Replaces configs with the variable updates above.

* configure.in: Thus it is no longer necessary to check $PATH.

Based on a patch by Takashi Toyoshima <toyoshim AT gmail.com>.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-27 01:22:53 +00:00
luislavena
86df08dac6 Improve require/File.expand_path performance on Windows
* configure.in (mingw): add shlwapi to the list of dependency
  libs for Windows.
* win32/Makefile.sub (EXTSOLIBS): ditto.

* internal.h: declare internal functions rb_w32_init_file,
  rb_file_expand_path_internal and rb_file_expand_path_fast.

* file.c (Init_File): invoke Windows initialization rb_w32_init_file

* win32/file.c (rb_file_load_path_internal): new function.
  Windows-specific implementation that replaces file_expand_path.
  [Bug #6836][ruby-core:46996]

* win32/file.c (rb_w32_init_file): new function. Initialize codepage
  cache for faster conversion encodings lookup.

* file.c (file_expand_path): rename to rb_file_expand_path_internal.
  Conditionally exclude from Windows.

* file.c (rb_file_expand_path_fast): new function. delegates to
  rb_file_expand_path_internal without performing a hit to the
  filesystem.

* file.c (file_expand_path_1): use rb_file_expand_path_internal without
  path expansion (used by require).
* file.c (rb_find_file_ext_safe): ditto.
* file.c (rb_find_file_safe): ditto.

* load.c (rb_get_expanded_load_path): use rb_file_expand_path_fast.
* load.c (rb_feature_provided): ditto.

* file.c (rb_file_expand_path): use rb_file_expand_path_internal with
  path expansion.
* file.c (rb_file_absolute_path): ditto.

* test/ruby/test_file_exhaustive.rb: new tests to exercise
  rb_file_expand_path_internal implementation and compliance with
  existing behaviors.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-24 03:44:56 +00:00
naruse
f896ad3b49 * configure.in: Fixing Haiku build.
- -lbe is not required for linking
  - stack protector doesn't work for now because of the default gcc's bug
  by Takashi Toyoshima <toyoshim@gmail.com>
  https://github.com/ruby/ruby/pull/167

* signal.c (ruby_signal): haiku doesn't have SIGBUS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-23 02:59:24 +00:00
naruse
ea16237c61 * configure.in: use the value of --with-opt-dir on building ruby
itself. [ruby-dev:46064] [Bug #6900]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-23 01:50:12 +00:00
yugui
0d05a79bca * configure.in (ac_cv_func_shutdown): shutdown(2) has a dummy
implementation but has no declaration and does not work in
  NativeClient SDK pepper_20.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-22 01:12:52 +00:00
nobu
2ed9b46b4f configure.in: noral blocks
* configure.in: use noral blocks instead of dnl, so that matching
  parentheses would match.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-21 16:18:10 +00:00
nobu
5eb9453fc3 configure.in: escape #-marks
* configure.in: escape #-marks, so that matching parentheses would
  match.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-21 16:18:05 +00:00
nobu
404cc1ae3f configure.in: no bare case statement
* configure.in (RUBY_CHECK_SIZEOF): use single test instead of split
  bare case statement, so that matching parentheses would match.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-21 16:18:02 +00:00
nobu
50f3d3feb5 configure.in: use real path
* configure.in (MINIRUBY): use real path for include path.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-09 14:46:48 +00:00
naruse
e57da6109c * configure.in: use gcc-4.2 prior to clang, gcc, and cc if exist for
the use of Snow Leopard's old clang. see also r36594, r36610, r36611.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-05 04:26:24 +00:00
nobu
bea3f0df10 configure.in: use default compilers for non-darwin
* configure.in: use clang prior to gcc only when self-compiling on
  darwin.  search default compilers on other platforms.  [Bug #6816]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-03 10:21:22 +00:00
naruse
a713b37640 * configure.in: move RUBY_MINGW32 after AC_PROG_CC.
RUBY_MINGW32 uses AC_TRY_CPP and it sets CC and CPP. [Bug #6816]

* configure.in: don't use AC_PROG_CC in AS_CASE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-03 08:27:04 +00:00
naruse
e07bdafbf4 Revert "* configure.in: move RUBY_MINGW32 after AC_PROG_CC."
This reverts commit r36603.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-03 07:25:55 +00:00
naruse
77ef86feaa * configure.in: move RUBY_MINGW32 after AC_PROG_CC.
RUBY_MINGW32 uses AC_TRY_CPP and it sets CC and CPP. [Bug #6816]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-03 06:21:16 +00:00
naruse
14bf66f252 * configure.in (AC_PROG_CC): AC_PROG_CC tries clang at first on
darwin. [Bug #6816]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-02 04:24:13 +00:00
nobu
48d7aa4ae9 configure.in: deprecate -flat_namespace
* configure.in (DLDFLAGS): on Darwin, deprecate -flat_namespace to get
  rid of huge imported symbols table.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-30 04:11:56 +00:00
nobu
a18558140a configure.in: runnable if disable-shared
* configure.in (LIBRUBY_RELATIVE): libruby_so is not made when
  disable-shared, so no absolute path is used for it and executable
  file is runnable anywhere.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-30 04:11:21 +00:00
nobu
a8aa1e2127 configure.in: get rid of duplication in CPPFLAGS
* configure.in (RUBY_CPPOUTFILE): get rid of variable conflict so
  CPPFLAGS is not duplicated.  [ruby-core:43097] [Bug #6119]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-27 08:58:15 +00:00
nobu
dafab791d5 configure.in: LIBPATH on AIX
* configure.in (LIBPATHENV): LIBPATH is used on AIX, but not
  SHLIB_PATH which was carelessly copied from HP/UX.  suggested by
  Perry Smith at [ruby-core:46397].  [Bug #6728]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-23 05:43:37 +00:00
nobu
6684ade9a3 configure.in: EXTDLDFLAGS
* configure.in (EXTDLDFLAGS): split options for each extension
  libraries, and unused in ruby.pc.  [Bug #6734]
* lib/mkmf.rb (MakeMakefile#configuration): add EXTDLDFLAGS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-18 05:53:23 +00:00
usa
8a02eed723 * configure.in: removed --enable/disable-win95 options. (see r36432)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-10 01:45:22 +00:00
nobu
37c8b68555 mkmf.rb: add TARGET_NAME
* configure.in (DLDFLAGS): use TARGET_ENTRY to specify an entry point
  instead of TARGET which may contain non-identifer characters.
* lib/mkmf.rb (create_makefile): add TARGET_NAME which is the first
  part consists of only word characters.  [ruby-core:46248][Bug #6709]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-09 04:28:40 +00:00
nobu
3fceaf10ab make runnable
* common.mk (runnable): make symbolic links to run in build directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-03 02:16:08 +00:00
kosaki
1ebe152ede * configure.in (for stack end address): remove human68k specific
check. It is no longer supported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-24 15:42:21 +00:00
nobu
d1351e98fd fix CPPOUTFILE
* configure.in (RUBY_CPPOUTFILE): check if output is really sent to
  specified file to tell if -o option works.  [ruby-dev:45742]
  [Bug#6591]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-14 14:00:02 +00:00
nobu
b1644bfca9 fix CPPOUTFILE
* configure.in (RUBY_CPPOUTFILE): check if output file is actually
  created.  [ruby-dev:45742] [Bug#6591]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-14 13:49:51 +00:00
naruse
e9e603145f * configure.in: revert r36071 and add NetBSD to blacklist of -ansi.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-14 01:16:33 +00:00
naruse
114ae69b45 * configure.in: use -fbuiltin with -ansi -std=iso9899:199409.
This prevents errors introduced by disabling bulitin functions,
  which is the sub-effect of -ansi/-std.
  Now NetBSD can use -ansi -std=iso9899:199409.
  Maybe mingw, cygwin and darwin can also.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 19:57:31 +00:00
nobu
a9ff01cdae configure.in: option for darwin
* configure.in: remove -ansi and -std options for lgamma_r() and
  finite().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 13:18:05 +00:00
nobu
e985a6841c configure.in: option for cygwin
* configure.in: cygwin does not provide some declarations in strict
  ANSI mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 12:46:36 +00:00
nobu
23838b93e8 configure.in: option for cygwin
* configure.in: cygwin needs C99 for some stuff, e.g.,
  pthread_attr_setstacksize, sched_yield.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 08:51:04 +00:00
shyouhei
43bc8f9beb * configure.in: On Windows platforms, system provided headers are
VC++ optimized.  That is, C++ habits are often contaminated into
	  various  headers.  Most  frequent  situation is  the  use of  //
	  comments.  We bypass ANSI  C mode for them.  Otherwise extension
	  libs cannot include those headers.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 06:16:46 +00:00
nobu
6379978d45 configure.in: check iff nacl
* configure.in (RUBY_NACL_CHECK_PEPPER_TYPES): check only on nacl.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 04:09:37 +00:00
shyouhei
0dcc1f0dfe fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-12 12:09:16 +00:00