From 080bec3fbccd9fdd50630e30aa713ad68d820d69 Mon Sep 17 00:00:00 2001 From: Marc Lanctot Date: Sat, 6 Apr 2024 11:00:21 -0230 Subject: [PATCH 1/2] Remove all references to eigen --- open_spiel/CMakeLists.txt | 11 ---- open_spiel/eigen/CMakeLists.txt | 53 ---------------- open_spiel/eigen/README.md | 28 -------- open_spiel/eigen/eigen_basic_test.cc | 47 -------------- open_spiel/eigen/eigen_binding_test.py | 88 -------------------------- open_spiel/eigen/eigen_test_support.h | 51 --------------- open_spiel/eigen/pyeig.h | 44 ------------- open_spiel/eigen/pyspiel_eigen_test.cc | 49 -------------- open_spiel/python/CMakeLists.txt | 14 ---- open_spiel/scripts/global_variables.sh | 3 - open_spiel/scripts/install.sh | 7 -- 11 files changed, 395 deletions(-) delete mode 100644 open_spiel/eigen/CMakeLists.txt delete mode 100644 open_spiel/eigen/README.md delete mode 100644 open_spiel/eigen/eigen_basic_test.cc delete mode 100644 open_spiel/eigen/eigen_binding_test.py delete mode 100644 open_spiel/eigen/eigen_test_support.h delete mode 100644 open_spiel/eigen/pyeig.h delete mode 100644 open_spiel/eigen/pyspiel_eigen_test.cc diff --git a/open_spiel/CMakeLists.txt b/open_spiel/CMakeLists.txt index 880a9365ae..043fe2c3d9 100644 --- a/open_spiel/CMakeLists.txt +++ b/open_spiel/CMakeLists.txt @@ -107,8 +107,6 @@ endmacro() # List of all optional dependencies: openspiel_optional_dependency(OPEN_SPIEL_BUILD_WITH_ACPC OFF "Build against the Universal Poker library.") -openspiel_optional_dependency(OPEN_SPIEL_BUILD_WITH_EIGEN OFF - "Build with support for Eigen in C++.") openspiel_optional_dependency(OPEN_SPIEL_BUILD_WITH_GO OFF "Build with support for Golang API.") openspiel_optional_dependency(OPEN_SPIEL_BUILD_WITH_HANABI OFF @@ -243,15 +241,6 @@ if (OPEN_SPIEL_BUILD_WITH_ACPC) $ $) endif() -if (OPEN_SPIEL_BUILD_WITH_EIGEN) - add_compile_definitions(OPEN_SPIEL_BUILD_WITH_EIGEN) - # Add Eigen dependency. - add_subdirectory(eigen/) - # Now we can use #include "Eigen/Dense" - # This is needed so that pybind11/eigen.h locates - include_directories(eigen/libeigen) - set(OPEN_SPIEL_OBJECTS ${OPEN_SPIEL_OBJECTS} $) -endif() if (OPEN_SPIEL_BUILD_WITH_XINXIN) set(OPEN_SPIEL_OBJECTS ${OPEN_SPIEL_OBJECTS} $) endif() diff --git a/open_spiel/eigen/CMakeLists.txt b/open_spiel/eigen/CMakeLists.txt deleted file mode 100644 index 3339c0eb08..0000000000 --- a/open_spiel/eigen/CMakeLists.txt +++ /dev/null @@ -1,53 +0,0 @@ -# Now we can use #include "open_spiel/spiel.h" -include_directories(../..) -# Now we can use #include "Eigen/Dense" -include_directories(libeigen) - -set(EIGEN_SOURCES - libeigen/Eigen/Cholesky - libeigen/Eigen/CholmodSupport - libeigen/Eigen/Core - libeigen/Eigen/Dense - libeigen/Eigen/Eigen - libeigen/Eigen/Eigenvalues - libeigen/Eigen/Geometry - libeigen/Eigen/Householder - libeigen/Eigen/IterativeLinearSolvers - libeigen/Eigen/Jacobi - libeigen/Eigen/LU - libeigen/Eigen/MetisSupport - libeigen/Eigen/OrderingMethods - libeigen/Eigen/PardisoSupport - libeigen/Eigen/PaStiXSupport - libeigen/Eigen/QR - libeigen/Eigen/QtAlignedMalloc - libeigen/Eigen/Sparse - libeigen/Eigen/SparseCholesky - libeigen/Eigen/SparseCore - libeigen/Eigen/SparseLU - libeigen/Eigen/SparseQR - libeigen/Eigen/SPQRSupport - libeigen/Eigen/StdDeque - libeigen/Eigen/StdList - libeigen/Eigen/StdVector - libeigen/Eigen/SuperLUSupport - libeigen/Eigen/SVD - libeigen/Eigen/UmfPackSupport - ) - -set(EIGEN_OPENSPIEL_USES ${EIGEN_SOURCES} - pyeig.h - ) - -add_library(eigen OBJECT ${EIGEN_OPENSPIEL_USES}) -target_include_directories(eigen PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_include_directories(eigen PUBLIC libeigen/Eigen) - - -# ------ TESTS -------- - -# Add a basic eigen test -add_executable(eigen_basic_test - eigen_basic_test.cc ${OPEN_SPIEL_OBJECTS} - $) -add_test(eigen_basic_test eigen_basic_test) diff --git a/open_spiel/eigen/README.md b/open_spiel/eigen/README.md deleted file mode 100644 index e0f13a3c64..0000000000 --- a/open_spiel/eigen/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Integration with Eigen library - -This is an integration with the -[Eigen library](http://eigen.tuxfamily.org/index.php?title=Main_Page), based on -the documentation of -[pybind](https://pybind11.readthedocs.io/en/stable/advanced/cast/eigen.html#) - -This is an optional dependency and it can be enabled by -`OPEN_SPIEL_BUILD_WITH_EIGEN` global variable (see `install.sh`). - -Use the header `eigen/pyeig.h` to get basic `Matrix` and `Vector` types. The -types in this header file are tested for compatibility with numpy. Other Eigen -types might not be compatible (due to memory layout), so be careful if you use -them in the code and you'd like to expose them to Python. - -There is an integration test with pybind: it creates an internal namespace -`open_spiel::eigen_test`, which is then invoked as part of the Python test suite -by loading module `pyspiel_eigen`. - -## Known gotchas - -Things to keep in mind. - -- Numpy stores vectors as 1D shape. Eigen however stores vectors as 2D shape, - i.e. a matrix with one dimension equal to one. The default implementation in - Eigen sets the column dimension to be equal to 1. However, to be compatible - with numpy's memory layout, we need to use row layout, so by default **the - row dimension** is equal to 1. See `test_square_vector_elements` diff --git a/open_spiel/eigen/eigen_basic_test.cc b/open_spiel/eigen/eigen_basic_test.cc deleted file mode 100644 index 356b7765f1..0000000000 --- a/open_spiel/eigen/eigen_basic_test.cc +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2021 DeepMind Technologies Limited -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include - -#include "open_spiel/eigen/pyeig.h" -#include "open_spiel/spiel.h" - -// This is a simple test to check that Eigen works as intended. -// These tests do not involve python bindings, however the matrix types -// are compatible with numpy's arrays. -namespace open_spiel { -namespace { - -void MatrixScalarMultiplicationTest() { - MatrixXd m(2, 2); - m(0, 0) = 1; - m(1, 0) = 2; - m(0, 1) = 3; - m(1, 1) = 4; - - MatrixXd m2 = m * 2; - std::cout << "Orig matrix\n" << m << std::endl; - std::cout << "Multiplied matrix\n" << m2 << std::endl; - SPIEL_CHECK_EQ(m2(0, 0), 2.0); - SPIEL_CHECK_EQ(m2(1, 0), 4.0); - SPIEL_CHECK_EQ(m2(0, 1), 6.0); - SPIEL_CHECK_EQ(m2(1, 1), 8.0); -} - -} // namespace -} // namespace open_spiel - -int main(int argc, char** argv) { - open_spiel::MatrixScalarMultiplicationTest(); -} diff --git a/open_spiel/eigen/eigen_binding_test.py b/open_spiel/eigen/eigen_binding_test.py deleted file mode 100644 index 57cf19d6e6..0000000000 --- a/open_spiel/eigen/eigen_binding_test.py +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 2019 DeepMind Technologies Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Lint as python3 -"""Test that Python numpy arrays can be passed to C++ Eigen library.""" - -import time - -from absl.testing import absltest -import numpy as np - -import pyspiel_eigen_test - - -class PyEigenTest(absltest.TestCase): - - def test_square_matrix_elements(self): - x = np.array([[1, 2], [3, 4]]).astype(float) - expected = np.array([[1, 2], [3, 4]]) ** 2 - actual = pyspiel_eigen_test.square(x) - np.testing.assert_array_equal(expected, actual) - - def test_transpose_and_square_matrix_elements(self): - x = np.array([[1, 2], [3, 4]]).astype(float) - x = x.transpose() - expected = np.array( - [[1, 9], - [4, 16]]) - actual = pyspiel_eigen_test.square(x) - np.testing.assert_array_equal(expected, actual) - - def test_transpose_then_slice_and_square_matrix_elements(self): - x = np.array([[1, 2], [3, 4]]).astype(float) - x = x.transpose() - expected = np.array([[9], [16]]) - actual = pyspiel_eigen_test.square(x[0:, 1:]) - np.testing.assert_array_equal(expected, actual) - - def test_square_vector_elements(self): - x = np.array([1, 2, 3]).astype(float) - expected = np.array([[1], [4], [9]]) - actual = pyspiel_eigen_test.square(x) - np.testing.assert_array_equal(expected, actual) - - def test_allocate_cxx(self): - actual = pyspiel_eigen_test.matrix() - expected = np.array([[1, 2], [3, 4]]) - np.testing.assert_array_equal(expected, actual) - - def test_flags_copy_or_reference(self): - # A test implementing - # https://pybind11.readthedocs.io/en/stable/advanced/cast/eigen.html#returning-values-to-python - start = time.time() - a = pyspiel_eigen_test.BigMatrix() - print("Alloc: ", time.time() - start) - - start = time.time() - m = a.get_matrix() - print("Ref get: ", time.time() - start) - self.assertTrue(m.flags.writeable) - self.assertFalse(m.flags.owndata) - - start = time.time() - v = a.view_matrix() - print("Ref view: ", time.time() - start) - self.assertFalse(v.flags.writeable) - self.assertFalse(v.flags.owndata) - - start = time.time() - c = a.copy_matrix() - print("Copy: ", time.time() - start) - self.assertTrue(c.flags.writeable) - self.assertTrue(c.flags.owndata) - - -if __name__ == "__main__": - absltest.main() diff --git a/open_spiel/eigen/eigen_test_support.h b/open_spiel/eigen/eigen_test_support.h deleted file mode 100644 index ca7eda5b54..0000000000 --- a/open_spiel/eigen/eigen_test_support.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2021 DeepMind Technologies Limited -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef OPEN_SPIEL_EIGEN_EIGEN_TEST_SUPPORT_H_ -#define OPEN_SPIEL_EIGEN_EIGEN_TEST_SUPPORT_H_ - -#include "open_spiel/eigen/pyeig.h" - -namespace open_spiel { -namespace eigen_test { - -// A simple testing function that squares matrix elements. -inline MatrixXd SquareElements(const MatrixXd &xs) { - return xs.cwiseProduct(xs); -} - -// A simple function that allocates a matrix and returns a copy. -inline MatrixXd CreateSmallTestingMatrix() { - MatrixXd m(2, 2); - m(0, 0) = 1; - m(0, 1) = 2; - m(1, 0) = 3; - m(1, 1) = 4; - return m; -} - -// From https://pybind11.readthedocs.io/en/stable/advanced/cast/eigen.html#returning-values-to-python -// An example of returning an owning copy or a -// non-owning (non)writeable reference. -class BigMatrixForTestingClass { - MatrixXd big_mat = MatrixXd::Zero(10000, 10000); - public: - MatrixXd &getMatrix() { return big_mat; } - const MatrixXd &viewMatrix() { return big_mat; } -}; - -} // namespace eigen_test -} // namespace open_spiel - -#endif // OPEN_SPIEL_EIGEN_EIGEN_TEST_SUPPORT_H_ diff --git a/open_spiel/eigen/pyeig.h b/open_spiel/eigen/pyeig.h deleted file mode 100644 index a52ed6c939..0000000000 --- a/open_spiel/eigen/pyeig.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2021 DeepMind Technologies Limited -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef OPEN_SPIEL_EIGEN_PYEIG_H_ -#define OPEN_SPIEL_EIGEN_PYEIG_H_ - -#include "Eigen/Dense" - -// Defines matrix types that use the library Eigen in a way that is compatible -// with numpy arrays. The aim is to use an arrangement of the C++ matrices -// so that no unncessary copying is done to expose them as numpy arrays. -// The known "gotchas" are listed in the README in this directory. -// If you want to use Eigen, include this file. -// -// Relevant docs (recommended reading): -// - -// https://pybind11.readthedocs.io/en/stable/advanced/cast/eigen.html#storage-orders -// - https://eigen.tuxfamily.org/dox/classEigen_1_1Ref.html -namespace open_spiel { - -// Use this type for dynamically sized matrices of doubles. -using MatrixXd = - Eigen::Matrix; - -// Use this type for dynamically sized vectors of doubles. -using VectorXd = Eigen::VectorXd; - -// Use this type for dynamically sized arrays of doubles. -using ArrayXd = Eigen::ArrayXd; - -} // namespace open_spiel - -#endif // OPEN_SPIEL_EIGEN_PYEIG_H_ diff --git a/open_spiel/eigen/pyspiel_eigen_test.cc b/open_spiel/eigen/pyspiel_eigen_test.cc deleted file mode 100644 index f8975a579e..0000000000 --- a/open_spiel/eigen/pyspiel_eigen_test.cc +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2021 DeepMind Technologies Limited -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "open_spiel/eigen/eigen_test_support.h" -#include "open_spiel/python/pybind11/pybind11.h" -// Make sure that we can convert Eigen types to proper bindings. -#include "pybind11/include/pybind11/eigen.h" - -// This file contains OpenSpiel's Python API for Eigen. -// This is a python package intended for testing purposes. - -namespace open_spiel { -namespace { - -namespace py = ::pybind11; - -// Definition of our Python module. -PYBIND11_MODULE(pyspiel_eigen_test, m) { - m.doc() = "OpenSpiel Eigen testing module"; - - // Register bits of the testing API. - m.def("square", &eigen_test::SquareElements, - py::arg().noconvert(), // Avoid silent copying on incorrect types. - "Squares elements of a matrix."); - m.def("matrix", &eigen_test::CreateSmallTestingMatrix, - "Allocate a 2x2 testing matrix on C++ side."); - - py::class_(m, "BigMatrix") - .def(py::init<>()) - .def("copy_matrix", &eigen_test::BigMatrixForTestingClass::getMatrix) - .def("get_matrix", &eigen_test::BigMatrixForTestingClass::getMatrix, - py::return_value_policy::reference_internal) - .def("view_matrix", &eigen_test::BigMatrixForTestingClass::viewMatrix, - py::return_value_policy::reference_internal); -} - -} // namespace -} // namespace open_spiel diff --git a/open_spiel/python/CMakeLists.txt b/open_spiel/python/CMakeLists.txt index 672ee98f44..96dac5b02f 100644 --- a/open_spiel/python/CMakeLists.txt +++ b/open_spiel/python/CMakeLists.txt @@ -165,20 +165,6 @@ if (WIN32) set_target_properties(pyspiel PROPERTIES SUFFIX ".pyd") endif() -# Optional pyspiel-related modules, which can specify their own python tests. -if (OPEN_SPIEL_BUILD_WITH_EIGEN) - add_library(pyspiel_eigen_test MODULE - ../eigen/eigen_test_support.h - ../eigen/pyeig.h - ../eigen/pyspiel_eigen_test.cc - ${OPEN_SPIEL_OBJECTS}) - - # Without this, the binary is called `libpyspiel_eigen_test.so` - set_target_properties(pyspiel_eigen_test PROPERTIES PREFIX "") - - set(PYTHON_TESTS ${PYTHON_TESTS} - ../eigen/eigen_binding_test.py) -endif() if (OPEN_SPIEL_BUILD_WITH_XINXIN) set(PYTHON_TESTS ${PYTHON_TESTS} ../bots/xinxin/xinxin_bot_test.py) endif() diff --git a/open_spiel/scripts/global_variables.sh b/open_spiel/scripts/global_variables.sh index fcabb15ceb..88cc03e83d 100644 --- a/open_spiel/scripts/global_variables.sh +++ b/open_spiel/scripts/global_variables.sh @@ -42,9 +42,6 @@ export OPEN_SPIEL_BUILD_WITH_GO=${OPEN_SPIEL_BUILD_WITH_GO:-$DEFAULT_OPTIONAL_DE export OPEN_SPIEL_BUILD_WITH_HIGC="${OPEN_SPIEL_BUILD_WITH_HIGC:-$DEFAULT_OPTIONAL_DEPENDENCY}" export OPEN_SPIEL_BUILD_WITH_RUST=${OPEN_SPIEL_BUILD_WITH_RUST:-$DEFAULT_OPTIONAL_DEPENDENCY} -# Eigen repos is currently down. Setting to OFF by default temporarily. -export OPEN_SPIEL_BUILD_WITH_EIGEN="${OPEN_SPIEL_BUILD_WITH_EIGEN:-"OFF"}" - # Download the header-only library, libnop (https://github.com/google/libnop), # to support the serialization and deserialization of C++ data types. export OPEN_SPIEL_BUILD_WITH_LIBNOP="${OPEN_SPIEL_BUILD_WITH_LIBNOP:-"OFF"}" diff --git a/open_spiel/scripts/install.sh b/open_spiel/scripts/install.sh index 8ee38e1cd5..2f2bbfd972 100755 --- a/open_spiel/scripts/install.sh +++ b/open_spiel/scripts/install.sh @@ -144,13 +144,6 @@ if [[ ${OPEN_SPIEL_BUILD_WITH_ACPC:-"ON"} == "ON" ]] && [[ ! -d ${DIR} ]]; then cached_clone -b 'master' --single-branch --depth 1 https://github.com/jblespiau/project_acpc_server.git ${DIR} fi -# Add EIGEN template library for linear algebra. -# http://eigen.tuxfamily.org/index.php?title=Main_Page -DIR="open_spiel/eigen/libeigen" -if [[ ${OPEN_SPIEL_BUILD_WITH_EIGEN:-"ON"} == "ON" ]] && [[ ! -d ${DIR} ]]; then - cached_clone -b '3.3.7' --single-branch --depth 1 https://gitlab.com/libeigen/eigen.git ${DIR} -fi - # This GitHub repository contains Nathan Sturtevant's state of the art # Hearts program xinxin. DIR="open_spiel/bots/xinxin/hearts" From 61380ad7a8ef4a4bde2c186a4aed6ae8d4454149 Mon Sep 17 00:00:00 2001 From: Marc Lanctot Date: Sat, 6 Apr 2024 14:54:57 -0230 Subject: [PATCH 2/2] Remove old travis workflow --- travis.yml.old | 89 -------------------------------------------------- 1 file changed, 89 deletions(-) delete mode 100644 travis.yml.old diff --git a/travis.yml.old b/travis.yml.old deleted file mode 100644 index 32df43d32e..0000000000 --- a/travis.yml.old +++ /dev/null @@ -1,89 +0,0 @@ -# For context, OpenSpiel is developed day-to-day using private continuous -# integration software. -# -# The current Travis CI setup is unpolished and verifies that open-source -# OpenSpiel builds correctly. This is done on a best-effort basis; we are not -# attached to Travis CI. -# -# If you use OpenSpiel, continuous integration improvements are welcome. -# Potential contributions include improving the CI configuration, using either -# Travis CI or another service (CircleCI, etc). - -language: c - -cache: pip -git: - depth: 3 - -# We need to link against the shared C++ Python libraries. We will be using -# the system-wide python shared libraries and headers installed in install.sh. -# We assume the same Python version between the system wide Python, python-dev, -# and the virtualenv. -matrix: - include: - # Build and run tests without all optional dependencies (default behavior) - - os: linux - dist: bionic # Ubuntu 18.04.2 LTS released on 26 April 2018 - env: - - OS_PYTHON_VERSION=3.6 - - TRAVIS_USE_NOX=0 - - CC=/usr/local/clang-7.0.0/bin/clang - - CXX=/usr/local/clang-7.0.0/bin/clang++ - - os: linux - dist: focal # Ubuntu 20.04 LTS - env: - - OS_PYTHON_VERSION=3.8 - - TRAVIS_USE_NOX=0 - - CC=/usr/bin/clang - - CXX=/usr/bin/clang++ - # Build and run tests with all optional dependencies, including building a - # shared library with linkable third party dependencies in place. - - os: linux - dist: focal # Ubuntu 20.04 LTS - env: - - OS_PYTHON_VERSION=3.8 - - DEFAULT_OPTIONAL_DEPENDENCY="ON" - - TRAVIS_USE_NOX=0 - - CC=/usr/bin/clang - - CXX=/usr/bin/clang++ - - BUILD_SHARED_LIB="ON" - - OPEN_SPIEL_BUILD_WITH_ORTOOLS="ON" - - OPEN_SPIEL_BUILD_WITH_ORTOOLS_DOWNLOAD_URL="https://github.com/google/or-tools/releases/download/v8.0/or-tools_ubuntu-20.04_v8.0.8283.tar.gz" - # Build and test on MacOS. We use a single target, with all dependencies. - - os: osx - osx_image: xcode10.3 # macOS 10.14 (Mojave), release on March 25, 2019. - env: - - DEFAULT_OPTIONAL_DEPENDENCY="ON" - - TRAVIS_USE_NOX=0 - - ## Tests using PIP - # Build and run tests without all optional dependencies (default behavior) and - # use nox - - os: linux - dist: focal # Ubuntu 20.04 LTS - env: - - OS_PYTHON_VERSION=3.8 - - TRAVIS_USE_NOX=1 - - CC=/usr/bin/clang - - CXX=/usr/bin/clang++ - # Ubuntu 18.04 - - os: linux - dist: bionic # Ubuntu 18.04 - env: - - OS_PYTHON_VERSION=3.6 - - TRAVIS_USE_NOX=1 - - CC=/usr/local/clang-7.0.0/bin/clang - - CXX=/usr/local/clang-7.0.0/bin/clang++ - # Build and test on MacOS. We use a single target, with all dependencies and - # use nox. - - os: osx - osx_image: xcode10.3 # macOS 10.14 (Mojave), release on March 25, 2019. - env: - - TRAVIS_USE_NOX=1 - -script: - - pwd - - chmod +x install.sh - - ./install.sh - - python3 --version - - ./open_spiel/scripts/travis_script.sh