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

533 Коммитов

Автор SHA1 Сообщение Дата
nobu 7aea1e657d Honor configured ruby header locations as the MJIT header path
[Bug #15391]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 02:20:14 +00:00
nobu 96339a9e1f Removed unnecessary dependency on mjit_config.h
MJIT_MIN_HEADER is passed via a command line option for
mjit_build_dir.so.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 02:05:06 +00:00
nobu e15d9d86df Give the MJIT header path name
Give the whole MJIT header path name by preloaded shared library
mjit_build_dir.so, than building the path from a given directory
name and the embedded base name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 01:50:39 +00:00
nobu 2301054a99 Use BUILDDIR in ruby-runner.h from config.status
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 01:49:02 +00:00
samuel e64f71f812 Change Makefile rule for assembly to use .S rather than .s
It is more conventional to use compiler to pre-process and
assemble the `.S` file rather than forcing Makefile to use `.s`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 11:35:29 +00:00
nobu 091422388e Makefile.in: use ASMEXT in implicit rules
Use $(ASMEXT) instead of `.s` directly, as well as `.SUFFIXES:`
line.

Also, use the same suffix at compiling from `.c`.  These are
different things traditionally, but we won't mix same name files
with `.c` and `.s`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 10:29:23 +00:00
nobu 71ce60ceb6 Makefile.in: get rid of `local` for Solaris sh
[ruby-dev:50673] [Bug #15319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 09:27:47 +00:00
nobu f1ed4b713b configure.ac: add --disable-fiber-coroutine option
* configure.ac: add --disable-fiber-coroutine option, and disable
  it on x86-mingw32 for now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 03:26:59 +00:00
nobu 91e6ac3d96 Make coroutine object directory for each arch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 12:02:29 +00:00
nobu 6f59255747 Change ASMEXT to s
By the default of GNU make, .S is used to be compiled with CC, but
we have already used .s as ia64.s, and now coroutine/*/Context.s.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 11:45:13 +00:00
k0kubun 51af9bac69 Makefile.in: fix Travis i686 build
by r65880

https://travis-ci.org/ruby/ruby/jobs/457384539

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 11:24:30 +00:00
nobu 973bcc5953 Fix typo and make directory
* common.mk (coroutine/amd64/Context.$(OBJEXT)): fix a typo,
  $(OBJECT).

* common.mk (coroutine/amd64): recipe to make object directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:29:03 +00:00
samuel 98e26e962d Tidy up assembly make rule.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:27 +00:00
samuel a2cd16e58e Expose dependency between cont.c and coroutine implementation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:24 +00:00
samuel 42575570a9 Try using compiler for assembling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:16:49 +00:00
samuel 11b672f337 Print out what the assembler is doing to figure out why it's not working.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:16:45 +00:00
samuel 4aa44a762e Create output directory when assembling file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:06:54 +00:00
nobu 3f84ef9740 fix for Solaris sh
* Makefile.in (mjit_config.h): removed unnecessary assignment.

* tool/mjit_archflag.sh (define_arch_flags): need to quote on
  Solaris.  [ruby-dev:50669] [Bug #15319]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 13:43:44 +00:00
nobu 74564fbe74 Makefile.in: reconfig with the original warnflags
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 06:52:55 +00:00
nobu 9cbfb17754 Also clean ruby-runner.o and ruby.imp [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-18 23:29:41 +00:00
nobu f632ecd0ff Makefile.in: test-almost also needs mjit_build_dir.so
[ruby-core:89830] [Bug #15311]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65769 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-16 12:11:23 +00:00
nobu a42784000e . command in some sh cannot take arguments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 06:22:17 +00:00
nobu 3dac8eda41 tool/mjit_archflag.sh: separated, too many escapes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-15 05:22:44 +00:00
nobu 2c989a6ff4 Makefile.in: update-known-errors
* Makefile.in (update-known-errors): update defs/known_errors.def
  by using errno(1).

* defs/known_errors.def: sort alphabetically for merger.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-14 02:27:16 +00:00
nobu 27f4058f92 Makefile.in: `$` for shell needs to be escaped in Makefile
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 14:56:49 +00:00
kazu b93023f8ff Remove duplicated assignment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 14:35:19 +00:00
shyouhei 3b257773a5 .travis.yml: specify --tty=no
To reduce the amount of output, prefer --tty=no instead of
--color=never.  This option not only disables color output but also
kill some tty-related features, like spinners.  Travis limits its
output by the physical size of the log, not by the number of lines.
This change should make more room for new logs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 04:55:43 +00:00
nobu f84577ba84 clean mjit_build_dir.dylib.dSYM directory on macOS
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-07 10:55:23 +00:00
nobu f837601cdb mjit_build_dir: separate MJIT_BUILD_DIR
* Makefile.in (mjit_build_dir.so): separate MJIT_BUILD_DIR to
  eliminate the feature for test-all after installation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-07 02:49:26 +00:00
nobu 78bf275c56 Expand MJIT_CC in configure
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 12:08:54 +00:00
nobu e0a3558668 Makefile.in: do not expand MJIT_CC if cross compiling
* Makefile.in (mjit_config.h): expand MJIT_CC only if native
  build, the path on cross compiling host is useless.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:28:11 +00:00
nobu 9f17712d2c Makefile.in: convert MJIT_CC to Windows path
* Makefile.in (mjit_config.h): convert MJIT_CC to Windows path on
  mingw.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:03:24 +00:00
nobu b11b804f8f Revert "mjit_build_dir: separate MJIT_BUILD_DIR"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 05:14:36 +00:00
nobu a39080f59c mjit_build_dir: separate MJIT_BUILD_DIR
* Makefile.in (mjit_build_dir.so): separate MJIT_BUILD_DIR to
  eliminate the feature for test-all after installation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 04:13:48 +00:00
nobu a4b73e7e9f Makefile.in: make MJIT_CC_COMMON an absolute path
* Makefile.in (mjit_config.h): expand MJIT_CC_COMMON path to
  mitigate potential security risks.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 04:13:47 +00:00
nobu 67de434219 configure.ac: insert DLDSHARED
* configure.ac (DLDSHARED): `.dylib` (created by `-dynamiclib`)
  and `.bundle` (created by `-dynamic -bundle`) on macOS are
  different.  `LIBRUBY_LDSHARED` should be the former always.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 03:32:57 +00:00
nobu 7d9623eb24 Makefile.in: use CC_WRAPPER
* Makefile.in (CC_WRAPPER): use the wrapper to suppress warnings
  by Apple's broken packages when linking in the toplevel
  directory.

* configure.ac (CC_WRAPPER): separate from CC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-03 23:43:17 +00:00
ko1 0b19e15a12 rename configure option `--disable-mjit` to `--disable-mjit-support`
* configure.ac: rename configure option `--disable-mjit` to
  `--disable-mjit-support` because `--disable-mjit` is ambiguous that
  runtime MJIT default enable option or supporting MJIT features.
  `ENABLE_MJIT` is also renamed to `MJIT_SUPPORT`

* Makefile.in: catch up this fix.

* common.mk: ditto.

* test/ruby/test_jit.rb: ditto.

* win32/Makefile.sub: catch up this fix on mswin.

* tool/mkconfig.rb: fix to pass `MJIT_SUPPORT` key.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 08:00:42 +00:00
ko1 b710785f1a add disabling MJIT features option.
* configure.ac: introduce new configure option `--enable-mjit` and
  `--disable-mjit`. Default is "enable".
  `--disable-mjit` disables all of MJIT features so that `ruby --jit`
  can't enable MJIT.
  This option affect a macro `USE_MJIT`.
  This change remove `--enable/disable-install-mjit-header` option.

* Makefile.in: introduce the `ENABLE_MJIT` variable.

* common.mk: use `ENABLE_MJIT` option.

* internal.h: respect `USE_MJIT`. Same as other *.c, *.h.

* test/ruby/test_jit.rb: check `ENABLE_MJIT` key of rbconfg.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 06:53:00 +00:00
k0kubun 6e11415b9c configure.ac: add --disable-install-mjit-header
and substitute INSTALL_MJIT_HEADER. This would be convenient as a workaround
for user if we found a platform that can't compile Ruby after Ruby 2.6.0 release.

common.mk: Install MJIT header only when INSTALL_MJIT_HEADER
Makefile.in: ditto
win32/Makefile.sub: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-19 12:31:02 +00:00
nobu 9067330c6d Pass cflags given to configure to mjit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-15 00:11:45 +00:00
nobu ae59620bbc Makefile.in: dependencies to config.status
* Makefile.in (ruby.pc, ruby-runner.h): fix missing dependencies.
  config.status is needed to be up to date, to run it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16 09:27:53 +00:00
k0kubun 0ab6266c9d Makefile.in: drop MJIT_DLDFLAGS_NOCOMPRESS
which is obsoleted by r64331

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-13 11:02:37 +00:00
k0kubun 422f4e3e1b configure.ac: MJIT_DLDFLAGS_NOCOMPRESS
is configured now, to force -Wl,--compress-debug-sections=no
for MJIT only when the option is used in MJIT_DLDFLAGS.

This needs to be done in configure.ac to resolve build failure like
https://travis-ci.org/ruby/ruby/builds/415120662.

Makefile.in: define it in mjit_config.h

mjit_worker.c: replace hard-coded flag to MJIT_DLDFLAGS_NOCOMPRESS

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-12 15:13:06 +00:00
nobu 8778e9267c fix mjit_min_header for universal binary
* common.mk: rules using MJIT_HEADER_SUFFIX, which to be overriden
  in defs/universal.mk, must be in common.mk, not Makefile.in.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-08 14:34:24 +00:00
k0kubun be38f53bae common.mk: stop building MJIT min header for mswin
Since it's impossible to leave macro when preprocessing C source file
with cl.exe, I decided to create precompiled header on Ruby's build time
instead.

We're not doing it for non-mswin environment for 2 reasons:
1) Precompiled header may not be able to be used when CC is upgraded.
2) We need to create as many precompiled headers as the patterns of
   compile options. (Probably only 2, for with and without --jit-debug)

I'll ignore them for mswin for now, and solve it later by including CC
version and --jit-debug information in precompiled header filename.
After that, non-mswin environment may follow it to simplify build system.

Makefile.in: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-04 15:12:30 +00:00
nobu d99fb784ab Makefile.in: remove GNU-make dependency
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-31 15:02:31 +00:00
k0kubun 11974fc010 mjit.c: allow using MJIT header in build directory
when $MJIT_SEARCH_BUILD_DIR is set.

If prefix path is owned by root, `make install` needs to be run by root.
But in general we don't want to run `make test-all`, and also running
`make test-all` currently fails due to permission tests of rdoc and rubygems.
Thus, prior to this commit, specifying a prefix like "/usr/local" could
mean there was no way to pass test-all.

So we should not depend on `make install` for `make test-all`. Thus I
reverted r64104 and r64103, and applied this workaround to pass `make
test-all` without `make install`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-31 12:43:06 +00:00
k0kubun 3293322a39 benchmark: introduce benchmark_driver.gem
Makefile.in: Clone benchmark-driver repository in benchmark/benchmark-driver
  `make update-benchmark-driver`, like simplecov.
win32/Makefile.sub: Roughly do the same thing.
.gitignore: Ignore the cloned repository.
common.mk: Trigger `make update-benchmark-driver` to run `make benchmark`
  and adjust arguments for benchmark_driver.gem.

benchmark/require.yml: renamed from benchmark/bm_require.rb, benchmark/prepare_require.rb
benchmark/require_thread.yml: renamed from benchmark/bm_require_thread.rb, benchmark/prepare_require_thread.rb
benchmark/so_count_words.yml: renamed from benchmark/bm_so_count_words.rb, benchmark/prepare_so_count_words.rb,
  benchmark/wc.input.base
benchmark/so_k_nucleotide.yml: renamed from benchmark/bm_so_k_nucleotide.rb, benchmark/prepare_so_k_nucleotide.rb,
  benchmark/make_fasta_output.rb
benchmark/so_reverse_complement.yml: renamed from benchmark/bm_so_reverse_complement.rb, benchmark/prepare_so_reverse_complement.rb,
  benchmark/make_fasta_output.rb

I'm sorry but I made some duplications between benchmark/require.yml and benchmark/require_thread.yml,
and between benchmark/so_k_nucleotide.yml and benchmark/so_reverse_complement.yml.

If you're not comfortable with it, please combine these YAMLs to share
the same prelude. One YAML file can have multiple benchmark definitions
sharing prelude.

benchmark/driver.rb: Replace its core feature with benchmark_driver.gem.
  Some old features are gone for now, but I'll add them again later.

[Misc #14902]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-08 14:38:05 +00:00
ngoto 2c68033a6d Makefile.in: ARCH_FLAG may contain "-m64" etc.
* Makefile.in (mjit_config.h): ARCH_FLAG may contain "-m64", "-m32",
  "-march=i486" and so on, but the change made with r63232 only
  supports "-arch AAA -arch BBB" mainly used on Mac OS X.
  To solve the issue, ARCH_FLAG is parsed and the architectures
  specified in "-arch XXX" are added to $archs and the rest is
  stored to $arch_flag. The $arch_flag is defined as MJIT_ARCHFLAG
  if $archs is empty or the target architecture is not listed in $arch.
  Fix build failure on Solaris 10 with ./configure CFLAGS="-m64".
  [Bug #14876] [ruby-dev:50583]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 13:50:53 +00:00