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

40 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada ac152b3cac
Update dependencies 2021-11-21 16:21:18 +09:00
Nobuyoshi Nakada 122ce52e8f
Check if alternative malloc header can work in C++
jemalloc (5.2.1 at least) cannot compile in C++ on macOS SDK, due
to conflicts on exception specification.
2021-06-13 15:12:45 +09:00
卜部昌平 80b316212a ext/-test-/cxxanyargs: suppress SunPro warning
I found a way to suppress particular kind of warnings via pragmas.
2020-08-21 11:04:54 +09:00
Nobuyoshi Nakada e9adc2f420
Match the output without encoding for localized compilers 2020-06-23 15:05:44 +09:00
卜部昌平 defc0ee9d1 ext/-test-/cxxanyargs: add #pragma for icc. 2020-04-10 16:17:30 +09:00
Benoit Daloze 5fa12dafa8 The last argument of rb_rescue2() should always be (VALUE)0
* Otherwise it might segfault, since C has no idea of the type of varargs,
  and the C code must assume all varargs are VALUE.
2020-03-28 13:03:17 +01:00
卜部昌平 0febd07c69 ext/-test-/cxxanyargs: use try_link instead
We would like to skip this extension library when libstdc++ is missing.
To avoid such situation let's use try_link instead of try_compile.
2020-02-25 13:39:46 +09:00
卜部昌平 4e6bae47c8 ext/-test-/cxxanyargs: prevent have_devel check
The `cxx.try_compile` command in this file kicks `cxx.have_devel?`
internally, which recursively calls `cxx.try_link` with a different
source code.  We don't want that happen (the source code compiled in
this file must be the first one).  We need to fake the system.
2020-02-20 11:46:54 +09:00
卜部昌平 7cff2f4585 fix delete unnecessary return
Was my mistake to put return here.
2020-02-01 14:02:59 +09:00
卜部昌平 cdd75d4e7f support C++ std::nullptr_t
C++ keyword `nullptr` represents a null pointer (note also that NULL is
an integer in C++ due to its design flaw).  Its type is `std::nullptr_t`,
defined in <cstddef> standard header.  Why not support it when the
backend implementation can take a null pointer as an argument.
2020-01-31 13:01:52 +09:00
Nobuyoshi Nakada 4942adf68c
Return the makefile content
Block for `create_makefile` is expected to return the content of
the makefile.
2020-01-31 12:52:22 +09:00
NARUSE, Yui ca2888fb3d Move .IGNORE in extconf.rb 2020-01-31 08:00:56 +09:00
NARUSE, Yui 9aed421d70 Support nmake 2020-01-31 06:47:55 +09:00
NARUSE, Yui 53adb53c9a Ignore expected errors on compiling C++ source [Bug #16331]
BSD make can run parallel more aggressively than GNU make. It communicate
with other make process through -J option in MAKEFLAGS environment variable
to notify a build failure happend in an other pararell make process.
https://www.freebsd.org/cgi/man.cgi?make

It usually works well but ext/-test-/cxxanyargs/Makefile has two targets
which are expected to fail (failure.o and failurem1.o).

Additional note:
To test and debug this issue, following command will speed up it.
`make -f exts.mk -j8 clean all`
2020-01-31 03:05:51 +09:00
卜部昌平 83d6487ae5 fix rb_define_global_function to take const VALUE*
It was unable for rb_define_global_function to take VALUE(*)(int argc,
const VLAUE *argv, VALUE self) -style function.  Test added.
2020-01-28 17:29:57 +09:00
卜部昌平 bbe3420cce add test for rb_define_global_function
was missing.
2020-01-28 17:09:42 +09:00
卜部昌平 16592d6b69 add test for rb_define_method_id
was missing.
2020-01-28 17:09:42 +09:00
卜部昌平 3c3eb418f9 improved support for rb_f_notimplement
rb_f_notimplement should be accepted for all possible arities.

Test provided for that.
2020-01-28 17:09:42 +09:00
Nobuyoshi Nakada a93d0a4e62
Check -1 arity for C++ 2019-11-22 18:42:49 +09:00
Nobuyoshi Nakada 710bc00379
Moved RB_METHOD_DEFINITION_DECL to intern.h
This macro is used here before defined in ruby.h.
2019-10-12 17:47:28 +09:00
Nobuyoshi Nakada 740a98fe10
Fix for explicit cast without RUBY_METHOD_FUNC 2019-09-20 19:12:36 +09:00
Nobuyoshi Nakada cb1f9fe918
Check various method defitions in C++ 2019-09-20 19:12:35 +09:00
Nobuyoshi Nakada 04c53a1d03
Get rid of embedding make command line
NMAKE sets MAKE to the full path name, which includes spaces by
the default installation.
2019-09-20 17:05:52 +09:00
Nobuyoshi Nakada d56a3c0635
Fixed cxxanyargs/depend
* Removed excess backslashes
* Fixed the target name to try failure.cpp
2019-09-20 16:58:47 +09:00
Nobuyoshi Nakada e0c56b45a4
Moved unmatch arity check to depend file
To substitute suffixes and VPATH for nmake.
2019-09-19 22:09:43 +09:00
Nobuyoshi Nakada a3daf8e49a
Ensure that unmatched arity fails in C++ 2019-09-19 20:57:58 +09:00
Nobuyoshi Nakada df3fd50717
Removed mkmf.log dump in Makefile 2019-09-19 12:25:48 +09:00
Nobuyoshi Nakada 2d1e3bd8f1
DEBUG: cxxanyargs 2019-09-19 11:25:09 +09:00
Nobuyoshi Nakada a98181eb11
DEBUG: cxxanyargs 2019-09-19 10:46:52 +09:00
Nobuyoshi Nakada 842f600a93
Look up the language module
Look up language module with `MakeMakefile.[]`, insted of a
accessing constant under that module directly, to get rid of
expose the constant to the toplevel inadvertently.
2019-09-19 00:03:18 +09:00
Nobuyoshi Nakada 15d5de59fb
Removed unused keyword argument [ci skip] 2019-09-19 00:03:18 +09:00
Nobuyoshi Nakada c3f03da494
[EXPERIMENTAL] MakeMakefile::CXX for C++ 2019-09-18 18:47:02 +09:00
卜部昌平 89c5d5a64e add minimaist C++ check
This is a test extension so we basically want test failures rather
than a configure breakage but if there is no C++ compiler, we need
no test at all because there will be no chance for the tested
header file to be used later.

This makes it possible to build the ruby binary without any C++
compiler installed in a build environment.
2019-09-09 21:27:40 +09:00
卜部昌平 042c436cd9 static member variables must explictly be initialized
These variables then get their room for storage.

See also https://github.com/ruby/ruby/runs/214042030
2019-09-09 21:27:40 +09:00
卜部昌平 92a8726994 Revert "save committers' weekend from CI failures"
This reverts commit 53d21087da.
2019-09-09 21:27:40 +09:00
卜部昌平 53d21087da save committers' weekend from CI failures
Kill the failing tests.
2019-09-06 18:20:11 +09:00
卜部昌平 1851dc269c avoid name mangling
Otherwise the dynamic linker cannot find this function.
See also https://ci.appveyor.com/project/ruby/ruby/builds/27224231/job/4pg6lxlsnsjotu2l
2019-09-06 16:52:20 +09:00
卜部昌平 2aa4fb57d1 nullptr is a C++11ism.
Should use numeric 0 for maximum portability.
See also https://travis-ci.org/ruby/ruby/jobs/581543798
2019-09-06 16:42:45 +09:00
卜部昌平 7516c48b27 fix Visual Studio compilation error
See also https://github.com/ruby/ruby/runs/213964487
2019-09-06 16:33:30 +09:00
卜部昌平 04f570e266 add test for cxxanyargs.hpp 2019-09-06 15:50:58 +09:00