Commit graph

178 commits

Author SHA1 Message Date
nobu
23a8183bea Check stx_btime in struct statx
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-24 11:57:18 +00:00
glass
8b8285e253 configure.ac: remove check for broken memmem
the bug of memmem(3) was fixed in glibc 2.1 released in 1999.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-24 05:27:33 +00:00
glass
dc700cf903 configure.ac: skip check of statx() on AIX
Linux and AIX have statx() with different prototype.

Linux: int statx(int, const char*, int, unsigned int, struct statx*)
AIX: int statx(char, struct stat*, int, int)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-23 04:42:48 +00:00
nobu
15a98ab428 Try statx syscall
* file.c (rb_file_s_birthtime): export for pathname to check if
  birthtime is supported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-20 06:54:23 +00:00
glass
88798f0787 file.c: enable File.birthtime on Linux
enable File.birthtime on Linux if statx(2) is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-19 05:44:53 +00:00
glass
1a8583de72 random.c: use getrandom() if available.
getrandom() is supported by glibc 2.25 or later.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-10 08:21:33 +00:00
nobu
74f94b3e6e configure.ac: check finite,isinf,isnan as macros first
[ruby-core:91487] [Bug #15595]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-08 07:22:55 +00:00
nobu
cc7dedfb4d configure.ac: separate -std=gnu99 condition
Also necessary on mingw, cygwin, darwin and netbsd.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-02-04 08:17:44 +00:00
glass
2210709b79 io.c: use fcopyfile(3) in IO.copy_stream if available
fixed r66930.

* io.c (nogvl_copy_stream_func): use fcopyfile(3) in IO.copy_stream if available

* configure.ac: check copyfile.h and fcopyfile(3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-28 05:04:17 +00:00
glass
774c60955a Revert "io.c: use fcopyfile(3) in IO.copy_stream if available"
This reverts commit bd670062c4.
It fails on rubyspec.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66933 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-27 21:46:06 +00:00
glass
bd670062c4 io.c: use fcopyfile(3) in IO.copy_stream if available
* io.c (nogvl_copy_stream_func): use fcopyfile(3) in IO.copy_stream if available

* configure.ac: check copyfile.h and fcopyfile(3)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-27 20:55:26 +00:00
nobu
bac705529d fix typo in r66836, missing '/'s
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-22 01:56:26 +00:00
glass
12afc11fcd * io.c: use copy_file_range() if defined
* configure.ac: check copy_file_range()

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-21 10:11:04 +00:00
nobu
c4e832bf6f configure.ac: fix build_os name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-18 06:13:10 +00:00
nobu
3859b77be1 configure.ac: use MINIRUBY as BOOTSTRAPRUBY on msys
Msys shell may not be able to run a command with a drive letter?

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-18 05:14:59 +00:00
nobu
3c55a0b942 configure.ac: use BASERUBY as BOOTSTRAPRUBY if available
MINIRUBY may not be stable enough to run btest, in developing.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-18 01:55:25 +00:00
nobu
74477ec2b3 Strip warnflags
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-16 02:09:48 +00:00
nobu
923d03e10c Fixed a typo, missing $
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-16 00:48:42 +00:00
nobu
bb44d9ecf0 configure: refuse to build with jemalloc when header is missing
[ruby-core:90964] [Bug #15520]

Freom: Misty De Meo <mistydemeo@github.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10 14:44:11 +00:00
k0kubun
ec336fb40e configure.ac: Require C99
We already added AC_PROG_CC_C99 in r66605.
This commit stops warning C99 features.

[Misc #15347] [close https://github.com/ruby/ruby/pull/2064]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-10 08:04:35 +00:00
k0kubun
61885c9b7c configure.ac: try to fix addr2line build failure
20181228T063002Z.fail.html.gz
20181228T081706Z.fail.html.gz
20181228T063002Z.fail.html.gz
20181228T063003Z.fail.html.gz
20181228T080003Z.fail.html.gz
20181228T080002Z.fail.html.gz
20181228T063303Z.fail.html.gz
20181228T090003Z.fail.html.gz

I suspect r66598 triggered something.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 09:23:27 +00:00
ko1
da8830e3de fix r66599 to sucess install. please refix this patch @nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-28 03:09:29 +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
odaira
3a5cc345f8 Native coroutine implementation for ppc64le Linux
* configure.ac: enable fiber coroutine for powerpc64le-linux

* coroutine/ppc64le/Context.S: coroutine_transfer implementation

* coroutine/ppc64le/Context.h: coroutine implementation

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10 23:22:56 +00:00
naruse
2f18a95c4e fix r66311
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10 15:48:45 +00:00
naruse
7405bbda27 Define HAVE_STMT_AND_DECL_IN_EXPR and use it [Bug #15293]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-10 13:58:36 +00:00
ko1
3e1f06da5d fix C90 error.
* configure.ac (check broken_backtrace code): fix decl. position
  error because of `-Werror=declaration-after-statement`.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-05 16:15:09 +00:00
odaira
d612c44dad Enable MJIT on AIX
* configure.ac: disable using __builtin_setjmp to avoid errors when execution
  globally jumps out of JITted code. Specify -std=gnu99 to JIT compilation
  to avoid errors regarding the "restrict" keyword in the precompiled header.
  Specify -shared in addition to -Wl,-G when building shared libraries
  to make mjit_build_dir.so expose the MJIT_BUILD_DIR symbol.  Use LDR_PRELOAD
  to load mjit_build_dir.so.

* mjit_worker.c: do not specify -nodefaultlibs or -nostdlibs because on AIX
  JITted code internally refers to the memcpy function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04 22:19:09 +00:00
ko1
66e9bfd4be use __builtin_setjmp on mingw64 [Bug #15348].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-29 06:37:01 +00:00
shyouhei
0b899a25f5 Remove HEAP_ALIGN_LOG setting in configure.ac for OpenBSD/MirOS
The ruby setting was renamed to HEAP_PAGE_ALIGN_LOG, but the
configure.in (now configure.ac) file was not updated, so the
setting had no effect.  The configure setting is unnecessary
after OpenBSD 5.2 and MirOS has been discontinued (with the last
release being over 10 years ago), so it is better to just remove
the related configure setting.

Fix [Bug #13438]
From: Jeremy Evans <code@jeremyevans.net>



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-29 06:16:31 +00:00
samuel
4b0a256e9b Enable msys2 to check build status.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-24 02:31:06 +00:00
normal
b009de13bf configure.ac: support 32-bit builds on x86-64 systems
Because RAM is still expensive :<

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-22 08:46:44 +00:00
odaira
e7d919d265 * configure.ac: On AIX, LDFLAGS must be after -L../.. in TRY_LINK,
not to refer to a system-installed libruby-static.a
  when configuring the ext libraries

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 22:44:24 +00:00
nobu
e0cd7d65e9 configure.ac: silence command -v outpout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 09:11:06 +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
9cda5bba1b configure.ac: gather preset variables on mingw
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 03:26:58 +00:00
k0kubun
c6d0892fa2 configure.ac: disable native-fiber for MinGW
because it had already been SEGV-ed in pull request'S CI
20427065/job/32oahrcd58b8ubb1
and has never worked on trunk either.

Please make sure it does not SEGVs on your MinGW environment or pull
request before enabling native fiber on MinGW.

appveyor.yml: reverted commits to make CI green with native fiber
test/excludes/_appveyor/msys2/TestArray.rb: ditto
test/excludes/_appveyor/msys2/TestEnumerable.rb: ditto
test/excludes/_appveyor/vs/TestArray.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 14:40:55 +00:00
samuel
972cc2d50b Fix message result.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:56 +00:00
samuel
76c6b6d14b Fix configure.ac typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:52 +00:00
samuel
0b5e1442f5 Initial support for x64-mingw32
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:44 +00:00
samuel
904af4aef2 Be even more specific, for some reason it was selecting amd64 on x64-mingw32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:35 +00:00
samuel
43d7fd0946 Limit coroutine implementations to Linux.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:17:31 +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
3e9beaf72b Initial effort to support 32-bit Linux.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 10:13:59 +00:00
samuel
990ddcfccf Better support for amd64 platforms
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 09:59:14 +00:00
samuel
07a324a0f6 Native implementation of coroutines to improve performance of fibers
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 09:59:10 +00:00
nobu
d7d0ee1065 Check -fcf-protection
* configure.ac: Check if CFLAGS actually includes -fcf-protection
  instead of checking if the flag is valid by RUBY_TRY_CFLAGS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 00:39:07 +00:00
k0kubun
00fac76efa configure.ac: avoid crashing MJIT with -fcf-protection
by avoiding using __builtin_longjmp, like r64983.

[Bug #15307]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 23:05:11 +00:00
k0kubun
b756b25c60 ruby.c: do not surface MJIT to user
In some places, both JIT and MJIT are being used, but it could be
confusing for new comers. We're not explaining MJIT on NEWS file or release
notes as well. So we consider MJIT as an internal term of implementation
like YARV.

configure.ac: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-19 14:00:49 +00:00