diff --git a/.appveyor.yml b/.appveyor.yml index 4993cdc8..05d2480d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -4,7 +4,7 @@ environment: # /E:ON and /V:ON options are not enabled in the batch script intepreter # See: http://stackoverflow.com/a/13751649/163740 CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\ci\\run_with_env.cmd" - BOOST_PREFIX: C:\Libraries\boost_1_63_0 + BOOST_PREFIX: C:\Libraries\boost_1_66_0 matrix: @@ -18,21 +18,19 @@ environment: MSVC: "14.0" ARCH: x86 - #- PYTHON: "C:\\Python27-x64" - # PYTHON_VERSION: "2.7.x" # currently 2.7.9 - # PYTHON_ARCH: "64" - # ARCH: "x86_64" - - #- PYTHON: "C:\\Python35" - # PYTHON_VERSION: "3.5.x" # currently 3.4.3 - # PYTHON_ARCH: "32" - - PYTHON: "C:\\Python36-x64" PYTHON_VERSION: "3.6.x" PYTHON_ARCH: "64" MSVC: "12.0" ARCH: x86_64 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + PYTHON: "C:\\Python36-x64" + PYTHON_VERSION: "3.6.x" + PYTHON_ARCH: "64" + MSVC: "14.13.26128" + ARCH: x86_64 + install: # If there is a newer build queued for the same PR, cancel this one. # The AppVeyor 'rollout builds' option is supposed to serve the same @@ -47,8 +45,9 @@ install: - ps: "ls \"C:/\"" - ECHO "Installed libraries:" - ps: "ls \"C:/Libraries/\"" - - ECHO "Installed SDKs:" - - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\"" + ## This path doesn't exist with the VS 2017 worker images + #- ECHO "Installed SDKs:" + #- ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\"" # Install Python (from the official .msi of http://python.org) and pip when # not already installed. @@ -72,13 +71,13 @@ install: # pip will build them from source using the MSVC compiler matching the # target Python version and architecture - | - curl -LfsS -o faber.tar.gz https://github.com/stefanseefeld/faber/archive/snapshot/2018-03-07.tar.gz + curl -LfsS -o faber.tar.gz https://github.com/stefanseefeld/faber/archive/snapshot/2018-04-08.tar.gz tar xf faber.tar.gz - CD faber-snapshot-2018-03-07 + CD faber-snapshot-2018-04-08 python setup.py install CD .. # report the available MSVC compilers - - python -m faber.tools.msvc + - faber --info=tools cxx - easy_install sphinx - pip install numpy diff --git a/.travis.yml b/.travis.yml index af460c39..5d37070b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,20 +17,23 @@ env: matrix: include: - - compiler: gcc + - os: linux env: CXX=g++ PYTHON=python CXXFLAGS=-std=c++98 - - compiler: gcc + - os: linux env: CXX=g++ PYTHON=python CXXFLAGS=-std=c++11 - - compiler: gcc + - os: linux env: CXX=g++ PYTHON=python3 CXXFLAGS=-std=c++98 - - compiler: gcc + - os: linux env: CXX=g++ PYTHON=python3 CXXFLAGS=-std=c++11 - - compiler: clang + - os: linux env: CXX=clang++ PYTHON=python3 CXXFLAGS=-std=c++98 - - compiler: clang + - os: linux env: CXX=clang++ PYTHON=python3 CXXFLAGS=-std=c++11 + - os: osx + env: CXX=clang++ PYTHON=python CXXFLAGS=-std=c++11 - env: PYTHON=python DOC=1 - + allow_failures: + - os: osx addons: apt: @@ -64,7 +67,6 @@ install: # Install our own version of Boost (the subset we need) as the system version is # too old (for C++11 support). - | - set -e if [ ! -d $HOME/Boost/tools/boostbook ]; then echo "rebuilding Boost prerequisites." wget https://sourceforge.net/projects/boost/files/boost/1.66.0/boost_1_66_0.tar.gz/download @@ -81,7 +83,7 @@ install: echo "using cached Boost prerequisites." fi # Install Faber, the build tool. - date=2018-03-07 + date=2018-04-08 wget https://github.com/stefanseefeld/faber/archive/snapshot/$date.tar.gz tar xf $date.tar.gz pushd faber-snapshot-$date diff --git a/README.md b/README.md index c692bb8a..e6f5d0d5 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,8 @@ See the [Boost.Python](http://boostorg.github.io/python) documentation for detai **Hint :** Check out the [development version](http://boostorg.github.io/python/develop) of the documentation to see work in progress. -# Building ![Build Status](https://travis-ci.org/boostorg/python.svg?branch=develop) +# Building [![Build Status](https://travis-ci.org/boostorg/python.svg?branch=develop)](https://travis-ci.org/boostorg/python) [![Build status](https://ci.appveyor.com/api/projects/status/cgx9xma6v3gjav92/branch/develop?svg=true)](https://ci.appveyor.com/project/stefanseefeld/python/branch/develop) + While Boost.Python is part of the Boost C++ Libraries super-project, and thus can be compiled as part of Boost, it can also be compiled and installed stand-alone, i.e. against a pre-installed Boost package. diff --git a/build/Jamfile b/build/Jamfile index 98c386c7..220a9aa4 100644 --- a/build/Jamfile +++ b/build/Jamfile @@ -30,6 +30,8 @@ else ; } +if [ python.configured ] +{ project boost/python : source-location ../src ; @@ -130,3 +132,4 @@ lib boost_numpy static:BOOST_NUMPY_STATIC_LIB on:BOOST_DEBUG_PYTHON ; +} \ No newline at end of file diff --git a/include/boost/python/detail/config.hpp b/include/boost/python/detail/config.hpp index acf58831..8dce9b74 100644 --- a/include/boost/python/detail/config.hpp +++ b/include/boost/python/detail/config.hpp @@ -105,7 +105,9 @@ // Set the name of our library, this will get undef'ed by auto_link.hpp // once it's done with it: // -#define BOOST_LIB_NAME boost_python##PY_MAJOR_VERSION##PY_MINOR_VERSION +#define _BOOST_PYTHON_CONCAT(N, M, m) N ## M ## m +#define BOOST_PYTHON_CONCAT(N, M, m) _BOOST_PYTHON_CONCAT(N, M, m) +#define BOOST_LIB_NAME BOOST_PYTHON_CONCAT(boost_python, PY_MAJOR_VERSION, PY_MINOR_VERSION) // // If we're importing code from a dll, then tell auto_link.hpp about it: // @@ -118,6 +120,9 @@ #include #endif // auto-linking disabled +#undef BOOST_PYTHON_CONCAT +#undef _BOOST_PYTHON_CONCAT + #ifndef BOOST_PYTHON_NO_PY_SIGNATURES #define BOOST_PYTHON_SUPPORTS_PY_SIGNATURES // enables smooth transition #endif diff --git a/include/boost/python/other.hpp b/include/boost/python/other.hpp index 24a24ad8..26ebb426 100644 --- a/include/boost/python/other.hpp +++ b/include/boost/python/other.hpp @@ -1,5 +1,5 @@ -#ifndef OTHER_DWA20020601_HPP -# define OTHER_DWA20020601_HPP +#ifndef BOOST_PYTHON_OTHER_HPP +# define BOOST_PYTHON_OTHER_HPP # include // Copyright David Abrahams 2002. @@ -7,8 +7,6 @@ // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) -# pragma once - # include namespace boost { namespace python { @@ -51,4 +49,4 @@ namespace detail }} // namespace boost::python -#endif // #ifndef OTHER_DWA20020601_HPP +#endif diff --git a/include/boost/python/ptr.hpp b/include/boost/python/ptr.hpp index 287daba4..8e97aa40 100644 --- a/include/boost/python/ptr.hpp +++ b/include/boost/python/ptr.hpp @@ -1,5 +1,5 @@ -#ifndef PTR_DWA20020601_HPP -# define PTR_DWA20020601_HPP +#ifndef BOOST_PYTHON_PTR_HPP +# define BOOST_PYTHON_PTR_HPP # include // Copyright David Abrahams 2002. @@ -11,8 +11,6 @@ // Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) // Copyright (C) 2001 Peter Dimov -# pragma once - # include # include @@ -64,4 +62,4 @@ class unwrap_pointer > }} // namespace boost::python -#endif // #ifndef PTR_DWA20020601_HPP +#endif diff --git a/src/object/function.cpp b/src/object/function.cpp index 5c59cc77..e612963b 100644 --- a/src/object/function.cpp +++ b/src/object/function.cpp @@ -158,11 +158,6 @@ PyObject* function::call(PyObject* args, PyObject* keywords) const { // no argument preprocessing } - else if (n_actual > max_arity) - { - // too many arguments - inner_args = handle<>(); - } else { // build a new arg tuple, will adjust its size later diff --git a/test/Jamfile b/test/Jamfile index 7f088cf7..9a5c7569 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -50,6 +50,8 @@ rule require-windows ( properties * ) } } +if [ python.configured ] +{ test-suite python : @@ -97,12 +99,16 @@ bpl-test crossmod_exception [ bpl-test polymorphism2_auto_ptr : polymorphism2_auto_ptr.py polymorphism2.py polymorphism2_auto_ptr.cpp + : [ requires auto_ptr ] ] [ bpl-test polymorphism ] [ bpl-test polymorphism2 ] -[ bpl-test auto_ptr ] +[ bpl-test auto_ptr + : # files + : [ requires auto_ptr ] +] [ bpl-test minimal ] [ bpl-test args ] @@ -248,3 +254,4 @@ bpl-test crossmod_opaque ; +}