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

1579 Коммитов

Автор SHA1 Сообщение Дата
usa 66b6d76648 Show/unshow executing command as specified by `V`
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-21 04:52:38 +00:00
nobu 958798851d FindFirstFile cannot glob share names
* win32/file.c (replace_to_long_name): do not try to glob host
  names and share names by FindFirstFile which is useless for that
  purpose.  [ruby-core:91656] [Bug #15633]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-03-04 08:13:25 +00:00
nobu bd8cb9f5d2 Parenthesize `for` to ignore errors
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-13 15:34:08 +00:00
nobu 43ee21f26d Ignore errors on cleaning
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-13 15:19:26 +00:00
nobu af479d54dc README.win32: [DOC] added modeline [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-05 06:00:25 +00:00
usa 9acd2b20c8 Update requirements
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-04 08:10:24 +00:00
nobu 8f8b51c6ac README.win32: mention GIT as well as SVN
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-02 07:25:07 +00:00
nobu c2781525ec README.win32: update required commands and platform names
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-02 07:18:50 +00:00
nobu 3f78209cd1 README.win32: use label-list
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-02 06:38:08 +00:00
nobu adbdbff2df README.win32: reformat as RDoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-01 13:40:10 +00:00
k0kubun 6c1ed519ef win32/Makefile.sub: try to use __restrict on Visual Studio 2013
as well. Follows up r66598.

https://bugs.ruby-lang.org/issues/15347#note-7 is saying __restrict
is supported on Visual Studio 2013.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-04 15:41:29 +00:00
nobu f826cde5a9 Add RUBY_API_VERSION to rbconfig.rb on mswin too
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 09:44:32 +00:00
nobu 9417d10fe1 RUBY_PROGRAM_VERSION for MJIT_PRECOMPILED_HEADER
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 03:55:28 +00:00
nobu 8422725408 Moved version numbers
* Define major and minor version numbers only in the public
  include/ruby/version.h header, as the API version numbers.

* Define only teeny version number in the private version.h
  header.

* RUBY_VERSION moved to version.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66599 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 02:12:34 +00:00
nobu 1095705c42 Check if restrict keyword is supported
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 01:56:20 +00:00
nobu 2ea54f0c1d win32/Makefile.sub: missing dependency of mjit_config.h
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10 02:58:01 +00:00
nobu 0b343021da Fix compile error at r66280
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-08 03:32:39 +00:00
nobu fddf7a0518 update-deps: support coroutine dependencies
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-03 13:12:34 +00:00
nobu c5fe904f6e Fix for coroutine/win32/Context.obj
* coroutine/win32/Context.asm: old ml version 9 needs CPU
  directive before `.model` directive.

* win32/Makefile.sub: specify object directories to separate Win32
  and Win64 targets.  Win32 rule was overridden by Win64 rule and
  just ignored.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66059 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 01:04:39 +00:00
nobu db67f542dc win32/Makefile.sub: add flags for AS
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 01:04:38 +00:00
normal 6a65f2b1e4 io + socket: make pipes and sockets nonblocking by default
All normal Ruby IO methods (IO#read, IO#gets, IO#write, ...) are
all capable of appearing to be "blocking" when presented with a
file description with the O_NONBLOCK flag set; so there is
little risk of incompatibility within Ruby-using programs.

The biggest compatibility risk is when spawning external
programs.  As a result, stdin, stdout, and stderr are now always
made blocking before exec-family calls.

This change will make an event-oriented MJIT usable if it is
waiting on pipes on POSIX_like platforms.

It is ALSO necessary to take advantage of (proposed lightweight
concurrency (aka "auto-Fiber") or any similar proposal for
network concurrency: https://bugs.ruby-lang.org/issues/13618

Named-pipe (FIFO) are NOT yet non-blocking by default since
they are rarely-used and may introduce compatibility problems
and extra syscall overhead for a common path.

Please revert this commit if there are problems and if I am afk
since I am afk a lot, lately.

[ruby-core:89950] [Bug #14968]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 08:46:51 +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 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 3ccb5b9770 Support Visual C++ (mswin)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:18:25 +00:00
nobu 45295303ac gmake.mk: force updating revision.h
Since `.revision.time` recipe needs `$(BASERUBY)`, it should not
try to get updated unconditionally, or tarballs fail to build on
environments where BASERUBY is not available.

All developers who build frequently use GNU make anyway, don't
you?

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 03:24:18 +00:00
nobu 1febaff10d win32/setup.mak: Substitute slashes in `MJIT_CC`
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-11 23:22:54 +00:00
nobu 2fcdfa6e9b `MJIT_BUILD_DIR` is not used on Windows
Because `LOAD_RELATIVE` is always enabled on Windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-11 23:22:53 +00:00
nobu 852ddf187b Expand MJIT_CC on mswin too
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-07 15:47:21 +00:00
ko1 b4766a4d9e support --disable-mjit-support on mswin32/64.
* win32/configure.bat: add --enable/disable-mjit-support
  configure.bat options.

* win32/setup.mak: ditto.

* win32/Makefile.sub: ditto.

* win32/Makefile.sub: fix typo for congig.status file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 14:07:59 +00:00
ko1 9f5d9d3169 fix macro-name.
* win32/Makefile.sub: Not MJIT_SUPPORT, but USE_MJIT.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 11:35:11 +00:00
ko1 ecac8d0c34 fix MJIT_SUPPORT on win32.
* win32/Makefile.sub: add MJIT_SUPPORT macro for C codes
  and variable for Makefile.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-20 11:27:48 +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
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 f2427a436f Define PRIdPTR etc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-13 16:21:07 +00:00
k0kubun e296f6cf63 win32/win32.c: fix typo in comment [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-13 01:32:20 +00:00
k0kubun cc5154af6d win32/win32.c: I meant FindFreeChildSlot [ci skip]
which was formerly used in CreateChild.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-13 00:25:58 +00:00
k0kubun 26519ebaed win32/win32.c: don't call FindChildSlot in MJIT
worker. It's very likely to be thread-unsafe and so it's better to avoid
using in MJIT worker to prevent surprises by race condition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-13 00:22:18 +00:00
svn d6b0fe7db1 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-12 23:57:44 +00:00
k0kubun 09cd99b304 win32/win32.c: drop always-NULL psa parameter
I'm simplifying the interface of ChildRecord as I'm going to complicate
it a little next.

I didn't drop hInput since leaving it would be more natural as its
interface.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-12 23:57:42 +00:00
k0kubun b712840c8a mjit_worker.c: suppress child process's output properly
Prior to this commit, some of parent process's output was unintentionally
suppressed. We couldn't suppress only child process's output with spawnvp.

Instead of that, this commit uses CreateProcess directly to redirect stdout
and stderr only for child process.

As it's dealing with HANDLE returned from CreateProcess, now waitpid macro
needs to CloseHandle it.

win32/win32.c: Introduce rb_w32_start_process which is designed for MJIT
worker. Other similar functions can't be used since they are using ALLOCV
that may trigger GC, which should be avoided on MJIT worker.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-12 15:14:51 +00:00
k0kubun 0fd5f063aa win32/Makefile.sub: generate MJIT header pdb
in the MJIT-header-specific path, not default path like vc140.pdb.

mjit_worker.c: specify the MJIT-header-specific pdb path.

tool/rbinstall.rb: install MJIT header pdb as well.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 16:28:04 +00:00
k0kubun 34ade9a4b7 win32/Makefile.sub: install MJIT header and object
to prefix. This is a retry of r64947. So this doesn't still make mswin MJIT
on install directory succeed. One more step required.

tool/rbinstall.rb: This change is needed to install headers correctly since
the extensions are .obj and .pch, not .h


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-11 15:01:56 +00:00
k0kubun 1f49e9bc62 revert r64947 and r64949
Both didn't work well on mswin. Reverting.
https://ci.appveyor.com/project/ruby/ruby/builds/19322867/job/28fgwiq8j7hdmeu6
https://ci.appveyor.com/project/ruby/ruby/builds/19323721/job/1s73mrgu8n8wpa5f

We need to revisit this to have MJIT header in a correct place, but
having both in the place didn't make JIT on install directory functional
either anyway...

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-08 00:12:21 +00:00
k0kubun 0da1f4e8bb win32/Makefile.sub: create header install dir first
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-07 16:52:21 +00:00
k0kubun 24ca872070 win32/Makefile.sub: install precompiled header to prefix
This is needed to run JIT from the installed ruby binary.

Even after this, we're hitting another error though.

start compilation: a@-e:1 -> C:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.c
Starting process: cl cl -nologo -LD -DMJIT_HEADER -MD -Zi -W2 -wd4100 -wd4127 -wd4210 -wd4214 -wd4255 -wd4574 -wd4668 -wd4710 -wd4711 -wd4820 -wd4996 -we4028 -we4142 -O2sy- -Zm600 -DRUBY_EXPORT -I. -I.ext/include/x64-mswin64_140 -I../ruby/include -I../ruby -I../ruby/enc/unicode/10.0.0 -DRUBY_DEVEL=1 -DCANONICALIZATION_FOR_MATHN -D_WIN32_WINNT=0x0600 -FeC:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.so -FoC:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.obj -YuC:/usr/include/ruby-2.6.0/x64-mswin64_140/rb_mjit_header-2.6.0.pch C:/usr/include/ruby-2.6.0/x64-mswin64_140/rb_mjit_header-2.6.0.obj -TcC:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.c -link -LIBPATH:C:/usr/lib x64-vcruntime140-ruby260.lib -incremental:no -debug -opt:ref -opt:icf -dll
_ruby_mjit_p9712u0.c
C:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.c(1): error C2859: C:\usr\bin\vc140.pdb is not the pdb file that was used when this precompiled header was created, recreate the precompiled header.
compile_c_to_so: compile error: 2
Failed to generate so: C:\Users\k0kubun\AppData\Local\Temp/_ruby_mjit_p9712u0.so


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-07 15:38:06 +00:00
usa c4e433a83a Support ubasecrt.dll 10.0.17763.1 included in Windows 10 October 2018 Update
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-04 06:29:31 +00:00
nobu 0d95805c2e Suppress more -Wparentheses warnings
[Fix GH-1958]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-09-21 10:31:11 +00:00
nobu 4bf11e21f9 Makefile.sub: remove -DRUBY_EXPORT overridden by -U option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-16 16:11:55 +00:00
k0kubun 8430d0d123 win32/Makefile.sub: escape `=` in MJIT cflags
Since `=` is considered as delimiter in `()` of `for`, having
`-DRUBY_DEVEL=1` in CPPFLAGS had resulted in:

 #define MJIT_OPTFLAGS "-DMJIT_HEADER", \
   "-DRUBY_DEVEL", \
   "1", \

Even escaped `for %I in (... -DRUBY_DEVEL^=1)` does not yield an
expected result. This commit is a workaround for this issue.

After this commit, mjit_config.h will have:

 #define MJIT_OPTFLAGS "-DMJIT_HEADER", \
   "-DRUBY_DEVEL" MJIT_CONFIG_ESCAPED_EQ "1", \

And C macro resolves MJIT_CONFIG_ESCAPED_EQ to "=".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-07 15:14:48 +00:00
k0kubun 20c1e4a733 win32/Makefile.sub: remove RUBY_EXPORT macro
defined in XCFLAGS.

This change resolves following link errors in MJIT:

```
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cObject
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cFalseClass
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cFloat
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cInteger
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cNilClass
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cProc
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cString
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cSymbol
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_cTrueClass
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_eArgError
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_eNoMethodError
rb_mjit_header-2.6.0.obj : error LNK2001: unresolved external symbol rb_eNameError
_ruby_mjit_p41476u0.obj : error LNK2001: unresolved external symbol rb_eFatal
```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-07 01:17:39 +00:00
k0kubun 88975c821c mjit.c: link precompiled object
This is needed to resolve:
"error LNK2011: precompiled object not linked in; image may not run"

win32/Makefile.sub: Use the same flags as ones for precompiled header.

This is needed to resolve:
"error C2855: command-line option '/Z7' inconsistent with precompiled header"

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-05 05:34:37 +00:00
k0kubun 5f13fe31ad mjit.c: initialize prebuilt precompiled header
file name correctly. This allows to use the header installed by r64188.

win32/Makefile.sub: define prebuilt precompiled header path instead of
unused min header path

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-05 03:12:09 +00:00
k0kubun cdf72ddc3b win32/Makefile.sub: build precompiled header
See the comment in win32/Makefile.sub.
Not only .pch, but also .obj needs to be installed and used on runtime.

.gitignore: ignore .pch that will be built by this.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-08-04 23:53:41 +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
nobu 63ae1e3cb5 mkexports.rb: flip-flop
* win32/mkexports.rb (Exports::Mswin#each_export): get rid of
  flip-flop warning.  [ruby-core:88147] [Bug #14946]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-29 00:09:08 +00:00
nobu 73ae3e9b46 win32.c: limit write size on console
* win32/win32.c (constat_parse): split long buffer and limit write
  size on a console, as well as rb_w32_write.
  [ruby-dev:50597] [Bug #14942]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-28 15:29:14 +00:00
nobu bf9169d555 common.mk: codesign ruby-runner too
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-09 01:50:12 +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
normal 4c777ac94e Revert "get rid of a compiler warning of VC"
Partially revert r63820.  mjit.c seems to have different idea of
"pid" type/size than the rest of Ruby on win32.

As noted in [ruby-core:87794], this seems to break Greg's build.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-05 03:20:20 +00:00
normal 44fc3d08eb unrevert r63852 but keep SIGCHLD path disabled for win32
Reading win32/win32.c waitpid implementation, maybe waitpid(-1, ...)
on that platform will never conflict with mjit use of waitpid.

In any case, I've added WAITPID_USE_SIGCHLD macro to vm_core.h
so it can be easy for Linux/BSD users to test (hopefully!)
win32-compatible code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-05 03:02:33 +00:00
naruse df4a126d65 Revert r63758 and related commits
The change is unstable on Windows. Please re-commit it when it correctly
supports Windows.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-04 15:08:56 +00:00
usa dea8422992 get rid of a compiler warning of VC
* mjit.c (exec_prcess): use PRI_PIDT_PREFIX for pid.

* win32/Makefile.sub (PRI_PIDT_PREFIX): force to "I".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-07-02 01:50:23 +00:00
nobu 64a189d207 remove DISABLE_RUBYGEMS from config files
* configure.ac: removed DISABLE_RUBYGEMS macro from config.h, not
  to rebuild everything when the flag changed.

* configure.ac, win32/configure.bat: make USE_RUBYGEMS lowercase.

* tool/mkconfig.rb: remove RUBYGEMS stuff from rbconfig.rb, not to
  reconfigure and rebuild all extension libraries.

* Makefile.in (CPPFLAGS): enable/disable Rubygems by USE_RUBYGEMS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-22 04:13:02 +00:00
nobu d31d66314b win32/Makefile.sub: gettimeofday is defined in win32.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-15 10:15:40 +00:00
nobu 19ad3b2b2d win32.c: precise time
* win32/win32.c (filetime_split, clock_gettime): keep the
  precision as possible as the FILETIME format.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63636 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-06-12 00:39:14 +00:00
usa 300524a0bd goruby build was broken
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-20 18:36:53 +00:00
usa 9fe9ffb842 goruby build was broken
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-05-20 18:13:08 +00:00
nobu 13dc8e4ef0 mjit_config.h: expand min header name
* Makefile.in, win32/Makefile.sub (mjit_config.h): expand min
  header name, including the version number and the suffix.

* mjit.c (init_header_filename): the version number and the suffix
  are now included in the header name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-28 01:45:52 +00:00
nobu 81f02142b8 win32/Makefile.sub: LIBDIR_BASENAME
* mjit.c (init_header_filename): support LIBDIR_BASENAME.

* win32/Makefile.sub (config.h): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-26 12:36:27 +00:00
nobu 56e87b2c4b made *.cmd excutable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-22 00:47:56 +00:00
nobu 55d3ed4b9d win32.c: fix CSI sequences to delete
* win32/win32.c (constat_apply): CSI 'J' and 'K' are defaulted to
  1, not 0.  [ruby-core:86560] [Bug #14691]

* win32/win32.c (constat_apply): "delete before cursor" sequences
  include the cursor position.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-18 03:51:19 +00:00
kazu dfeafff30e [DOC] Add win32/README.win32 to .document
see https://github.com/ruby/docs.ruby-lang.org/issues/56

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-12 14:24:06 +00:00
nobu 5bcb76ebbd removed never used variable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-03 06:25:10 +00:00
nobu ebf5348528 win32/file.c: relative path with drive letter
* win32/file.c (IS_ABSOLUTE_PATH_P): home directory should not be
  a relative path regardless a drive letter.   PathIsRelativeW
  returns FALSE on such path.  [ruby-core:86356] [Bug #14638]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-28 07:01:48 +00:00
usa de87b9695f * win32/README.win32: `make up` is only necessary when building from SVN source.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-19 15:40:32 +00:00
usa 68f374727a note that patch is required and need to run make up before make
* win32/README.win32: patch(1) is required, and running `make up` before
	  `make` is also required.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-19 13:04:22 +00:00
nobu 80e8b524d3 win32/configure.bat: stop when setup failed
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-15 01:05:00 +00:00
nobu 2dafe8df55 configure.ac: --disable-mathn option
* Makefile.in, win32/Makefile.sub: move CANONICALIZATION_FOR_MATHN
  from config.h which affects all extension libraries to XCFLAGS
  for the core only.

* configure.ac: added --disable-mathn option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-09 04:24:48 +00:00
kazu 4f125262f4 Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 12:23:48 +00:00
nobu ec7ee438ac Makefile.sub: reconfig
* win32/Makefile.sub (reconfig): phony target to force reconfigure
  with previous options.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62659 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-05 01:54:21 +00:00
nobu 3bc92b8eac mjit_config.h: MJIT_LDSHARED
* configure.in (MJIT_LDSHARED): define based on LDSHARED with
  replacing CC with MJIT_CC.

* Makefile.in, win32/Makefile.sub (mjit_config.h): instead of the
  default LDSHARED, use MJIT_LDSHARED to link mjit shared objects.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-03 05:09:32 +00:00
nobu d1d2235ed9 Makefile.sub: need suffix
* win32/Makefile.sub: fix missing suffix of user32.lib.
  [Bug #14422]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 07:49:20 +00:00
nobu 0f3452f4c2 Makefile.sub: link user32.lib
* win32/Makefile.sub: always link user32.lib which provides a lot
  of very common library functions.  [Bug #14422]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 07:24:16 +00:00
nobu bb3db69e2a configure.ac: library options to MAINLIBS
* configure.ac (MAINLIBS): moved library options for main program
  and static libruby, and append MAINLIBS to LIBRUBYARG_STATIC, as
  these libraries are not needed for linking to shared libruby.
  [ruby-core:85882] [Bug #14422]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-02 01:37:53 +00:00
nobu f6ff45ceb3 MJIT specific flags
Passing options to configure like as `configure MJIT_OPTFLAGS=-O
MJIT_DEBUGFLAGS=-g` overrides options to be used to compile JIT
code, separately from the default options to be used for ruby
itself.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-01 22:49:26 +00:00
nobu fe5d65f157 common.mk: moved macros to mjit_config.h
* Makefile.in, common.mk, win32/Makefile.sub: moved MJIT macros to
  mjit_config.h from XCFLAGS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-20 02:37:28 +00:00
nobu a4f2606b2d LIBRUBY_A with exts
* Makefile.in, win32/Makefile.sub (LIBRUBY_A): link with extension
  libraries if EXTSTATIC is set, so that static-ruby would work
  too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-17 05:52:21 +00:00
nobu e28a7c204d separate PRE_LIBRUBY_UPDATE
* Makefile.in, win32/Makefile.sub (PRE_LIBRUBY_UPDATE): separate
  definitions without miniruby.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-17 05:52:20 +00:00
nobu aae7d3d6df win32/Makefile.sub: fix typo, missing comma
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-11 09:00:44 +00:00
nobu fa6e29175b mjit_config.h: include trailing comma for empty list
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-11 07:10:37 +00:00
nobu 8f66876988 mjit_config.h: more macros
* Makefie.in, win32/Makefile.sub: add more macros for compiler to
  mjit_config.h.

* mjit.c: unification VC and GCC in progress.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-11 04:54:15 +00:00
nobu cb1cde4621 Makefile.sub: cpp out for older VC
* win32/Makefile.sub (CPPOUTFLAG, MJIT_HEADER_FLAGS): -Fi option
  is available since VC 10.  redirect stdout on older versions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-11 01:01:09 +00:00
nobu b40f9d55b6 mjit_config.h: show content if verbose
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-10 10:07:41 +00:00
nobu f6ca5edf3e mjit_config.h
* Makefie.in, win32/Makefile.sub: make mjit_config.h from
  configured variables, including necessary options, e.g., `-m32`
  for 32bit binary on 64bit platform.

* mjit.c: always use configured CC command.  as config.h depends
  on the compiler, different compilers cannot work.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-10 06:22:38 +00:00
nobu f6ea97260d Makefile.sub: MESSAGE_BEGIN/END redirection
* win32/Makefile.sub (MESSAGE_BEGIN, MESSAGE_END): group the whole
  `for` command, to redirect all lines but not overwrite line by
  line.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-09 03:51:57 +00:00
usa 355b147f5e missing macro definition
* win32/Makefile.sub (RUBY_VERSION_NAME): used in this file but not defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-08 18:48:25 +00:00
nobu 4b8719c1cd MJIT header for multiarch
* configure.ac: MJIT_HEADER_INSTALL_DIR to rubyarchhdrdir to
  support multiarch.

* Makefile.in (MJIT_HEADER_INSTALL_DIR): configured by multiarch.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-08 15:19:32 +00:00
nobu 4695019a1c ifchange: --debug option
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-08 02:08:27 +00:00
nobu d34e50570c ifchange.bat: --color option
* win32/ifchange.bat: added --color option for the compatibility
  with tool/ifchange.  do nothing right now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-02-08 02:08:26 +00:00