Skip to content

Commit

Permalink
use native CMake variables for compiler flags
Browse files Browse the repository at this point in the history
  • Loading branch information
upsj committed Jan 18, 2024
1 parent 717f24e commit c9c200b
Show file tree
Hide file tree
Showing 19 changed files with 18 additions and 83 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
spack find --loaded
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=install_ginkgo -DGINKGO_COMPILER_FLAGS="-ffp-model=precise" -DCMAKE_CXX_COMPILER=${{ matrix.config.compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_DPCPP_SINGLE_MODE=ON
cmake .. -DCMAKE_INSTALL_PREFIX=install_ginkgo -DGINKGO_COMPILER_FLAGS="-Wpedantic;-ffp-model=precise" -DCMAKE_CXX_COMPILER=${{ matrix.config.compiler }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }} -DGINKGO_DPCPP_SINGLE_MODE=ON
make -j8
ONEAPI_DEVICE_SELECTOR=level_zero:gpu ctest -j10 --output-on-failure
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
run: |
mkdir build
cd build
cmake .. -DBUILD_SHARED_LIBS=${{ matrix.config.shared }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }}
cmake .. -DCMAKE_CXX_FLAGS=-Wpedantic -DBUILD_SHARED_LIBS=${{ matrix.config.shared }} -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DGINKGO_MIXED_PRECISION=${{ matrix.config.mixed }}
make -j8
ctest -j10 --output-on-failure
Expand Down
41 changes: 9 additions & 32 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ build/cuda101/nompi/clang/cuda_wo_omp/release/shared:
- .full_test_condition
- .use_gko-cuda101-openmpi-gnu8-llvm7-intel2019
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_CUDA: "ON"
BUILD_HIP: "ON"
Expand Down Expand Up @@ -138,7 +137,6 @@ build/cuda101/nompi/clang/all/release/static:
- .full_test_condition
- .use_gko-cuda101-openmpi-gnu8-llvm7-intel2019
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand All @@ -155,7 +153,6 @@ build/cuda101/nompi/clang/all/release/static:
# - .quick_test_condition
# - .use_gko-cuda101-openmpi-gnu8-llvm13-intel2019
# variables:
# C_COMPILER: "clang"
# CXX_COMPILER: "clang++"
# CUDA_COMPILER: "clang++"
# BUILD_OMP: "ON"
Expand All @@ -173,7 +170,6 @@ build/cuda101/nompi/clang/all/release/static:
# - .full_test_condition
# - .use_gko-cuda101-openmpi-gnu8-llvm13-intel2019
# variables:
# C_COMPILER: "clang"
# CXX_COMPILER: "clang++"
# CUDA_COMPILER: "clang++"
# BUILD_OMP: "ON"
Expand Down Expand Up @@ -209,7 +205,6 @@ build/cuda102/nompi/clang/all/release/static:
- .full_test_condition
- .use_gko-cuda102-nompi-gnu8-llvm8-intel2019
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand All @@ -225,8 +220,8 @@ build/cuda102/nompi/intel/cuda/debug/static:
- .full_test_condition
- .use_gko-cuda102-nompi-gnu8-llvm8-intel2019
variables:
C_COMPILER: "icc"
CXX_COMPILER: "icpc"
CXX_FLAGS: ""
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
BUILD_TYPE: "Debug"
Expand Down Expand Up @@ -277,7 +272,6 @@ build/cuda110/nompi/clang/cuda/release/static:
- .full_test_condition
- .use_gko-cuda110-mvapich2-gnu9-llvm9-intel2020
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand Down Expand Up @@ -312,8 +306,8 @@ build/cuda110/nompi/intel/cuda/debug/static:
- .full_test_condition
- .use_gko-cuda110-mvapich2-gnu9-llvm9-intel2020
variables:
C_COMPILER: "icc"
CXX_COMPILER: "icpc"
CXX_FLAGS: ""
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
BUILD_TYPE: "Debug"
Expand Down Expand Up @@ -367,7 +361,6 @@ build/nvhpc233/cuda120/nompi/nvcpp/release/static:
- .quick_test_condition
- .use_gko_nvhpc233-cuda120-openmpi-gnu12-llvm16
variables:
C_COMPILER: "nvc"
CXX_COMPILER: "nvc++"
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand All @@ -387,7 +380,6 @@ build/nvhpc227/cuda117/nompi/nvcpp/debug/shared:
- .quick_test_condition
- .use_gko_nvhpc227-cuda117-openmpi-gnu11-llvm14
variables:
C_COMPILER: "nvc"
CXX_COMPILER: "nvc++"
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
Expand Down Expand Up @@ -420,7 +412,6 @@ build/amd/nompi/clang/rocm45/release/static:
- .full_test_condition
- .use_gko-rocm45-nompi-gnu8-llvm8
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_HIP: "ON"
Expand All @@ -435,7 +426,6 @@ build/amd/nompi/clang/rocm45/debug/shared:
- .quick_test_condition
- .use_gko-rocm45-nompi-gnu8-llvm8
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_HIP: "ON"
Expand Down Expand Up @@ -463,7 +453,6 @@ build/amd/nompi/clang/rocm502/release/shared:
- .quick_test_condition
- .use_gko-rocm502-nompi-gnu11-llvm11
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_HIP: "ON"
Expand Down Expand Up @@ -504,7 +493,6 @@ build/nocuda/nompi/clang/core/release/shared:
- .quick_test_condition
- .use_gko-nocuda-nompi-gnu9-llvm8
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_TYPE: "Release"

Expand All @@ -525,7 +513,6 @@ build/nocuda/openmpi/clang/omp/debug/static:
- .full_test_condition
- .use_gko-nocuda-openmpi-gnu9-llvm8
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
MPI_AS_ROOT: "ON"
Expand Down Expand Up @@ -553,7 +540,6 @@ build/nocuda-nomixed/nompi/clang/omp/release/static:
- .full_test_condition
- .use_gko-nocuda-mvapich2-gnu5-llvm39-intel2019
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_TYPE: "Release"
Expand All @@ -580,7 +566,6 @@ build/nocuda-nomixed/nompi/clang/omp/debug/static:
- .full_test_condition
- .use_gko-nocuda-nompi-gnu9-llvm8
variables:
C_COMPILER: "clang"
CXX_COMPILER: "clang++"
BUILD_OMP: "ON"
BUILD_TYPE: "Debug"
Expand All @@ -594,10 +579,9 @@ build/dpcpp/2022-1/cpu/release/shared:
- .quick_test_condition
- .use_gko-oneapi-cpu
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
CXX_FLAGS: "-Wpedantic;-ffp-model=precise"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "ON"
SYCL_DEVICE_FILTER: "*:cpu"
Expand All @@ -613,10 +597,9 @@ build/dpcpp/igpu/release/shared:
- .quick_test_condition
- .use_gko-oneapi-igpu
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
CXX_FLAGS: "-Wpedantic;-ffp-model=precise"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "ON"
DPCPP_SINGLE_MODE: "ON"
Expand All @@ -630,10 +613,9 @@ build/dpcpp/igpu/release/shared:
# - .full_test_condition
# - .use_gko-oneapi-igpu
# variables:
# C_COMPILER: "gcc"
# CXX_COMPILER: "dpcpp"
# CXX_FLAGS: "-Wpedantic;-ffp-model=precise"
# BUILD_SYCL: "ON"
# GKO_COMPILER_FLAGS: "-ffp-model=precise"
# BUILD_TYPE: "Debug"
# BUILD_SHARED_LIBS: "ON"
# DPCPP_SINGLE_MODE: "ON"
Expand All @@ -647,10 +629,9 @@ build/dpcpp/dgpu/release/static:
- .full_test_condition
- .use_gko-oneapi-igpu
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
CXX_FLAGS: "-Wpedantic;-ffp-model=precise"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
BUILD_SHARED_LIBS: "OF"
DPCPP_SINGLE_MODE: "ON"
Expand All @@ -663,10 +644,9 @@ build/dpcpp/level_zero_dgpu/release/shared:
- .quick_test_condition
- .use_gko-oneapi-dgpu
variables:
C_COMPILER: "gcc"
CXX_COMPILER: "dpcpp"
CXX_FLAGS: "-Wpedantic;-ffp-model=precise"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
DPCPP_SINGLE_MODE: "ON"
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"
Expand All @@ -678,10 +658,8 @@ build/icpx/level_zero_dgpu/release/shared:
- .quick_test_condition
- .use_gko-oneapi-dgpu
variables:
C_COMPILER: "icx"
CXX_COMPILER: "icpx"
BUILD_SYCL: "ON"
GKO_COMPILER_FLAGS: "-ffp-model=precise"
BUILD_TYPE: "Release"
DPCPP_SINGLE_MODE: "ON"
ONEAPI_DEVICE_SELECTOR: "level_zero:gpu"
Expand All @@ -698,8 +676,7 @@ warnings:
BUILD_OMP: "ON"
BUILD_CUDA: "ON"
BUILD_HIP: "ON"
CXX_FLAGS: "-Werror=pedantic -pedantic-errors"
GKO_COMPILER_FLAGS: "-Wpedantic"
CXX_FLAGS: "-Werror=pedantic;-pedantic-errors"
allow_failure: yes

# Ensure kernel modules do not depend on core
Expand Down Expand Up @@ -836,7 +813,7 @@ gh-pages:
# build docs
- mkdir -p ${CI_JOB_NAME} && pushd ${CI_JOB_NAME}
- cmake ${CI_PROJECT_DIR}
-DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${CXX_COMPILER}
-DCMAKE_CXX_COMPILER=${CXX_COMPILER}
-DCMAKE_CUDA_COMPILER=${CUDA_COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DBUILD_SHARED_LIBS=ON ${EXTRA_CMAKE_FLAGS} -DGINKGO_DEVEL_TOOLS=OFF
-DGINKGO_BUILD_REFERENCE=OFF -DGINKGO_BUILD_OMP=OFF -DGINKGO_BUILD_CUDA=OFF
Expand Down
6 changes: 2 additions & 4 deletions .gitlab/scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,12 @@
- if [[ "${BUILD_MPI}" == "ON" ]]; then
MPI_STR=-DGINKGO_MPI_EXEC_SUFFIX=${MPI_SUFFIX};
fi
- export CC=${C_COMPILER} CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER}
- export CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER}
- cmake ${CI_PROJECT_DIR}${CI_PROJECT_DIR_SUFFIX}
-GNinja
-DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
${EXTRA_CMAKE_FLAGS} ${CUDA_ARCH_STR}
-DGINKGO_COMPILER_FLAGS=${GKO_COMPILER_FLAGS}
-DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_REFERENCE=${BUILD_REFERENCE}
-DGINKGO_BUILD_OMP=${BUILD_OMP} -DGINKGO_BUILD_CUDA=${BUILD_CUDA}
-DGINKGO_BUILD_HIP=${BUILD_HIP} -DGINKGO_BUILD_SYCL=${BUILD_SYCL}
Expand Down Expand Up @@ -77,12 +76,11 @@
- if [[ "${BUILD_MPI}" == "ON" ]]; then
MPI_STR=-DGINKGO_MPI_EXEC_SUFFIX=${MPI_SUFFIX};
fi
- export CC=${C_COMPILER} CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER}
- export CXX=${CXX_COMPILER} CUDAHOSTCXX=${CXX_COMPILER} CUDACXX=${CUDA_COMPILER}
- cmake ${CI_PROJECT_DIR}${CI_PROJECT_DIR_SUFFIX}
-GNinja -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DCMAKE_CXX_FLAGS="${CXX_FLAGS}" -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
${EXTRA_CMAKE_FLAGS} ${CUDA_ARCH_STR}
-DGINKGO_COMPILER_FLAGS=${GKO_COMPILER_FLAGS}
-DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_REFERENCE=${BUILD_REFERENCE}
-DGINKGO_BUILD_OMP=${BUILD_OMP} -DGINKGO_BUILD_CUDA=${BUILD_CUDA}
-DGINKGO_BUILD_HIP=${BUILD_HIP} -DGINKGO_BUILD_SYCL=${BUILD_SYCL}
Expand Down
4 changes: 1 addition & 3 deletions .gitlab/variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
.default_variables:
variables:
BENCHMARK_SERVER: "FINECI"
C_COMPILER: "gcc"
CXX_COMPILER: "g++"
CUDA_COMPILER: "nvcc"
BUILD_TYPE: "Debug"
Expand All @@ -15,15 +14,14 @@
BUILD_HWLOC: "ON"
BUILD_PAPI_SDE: "OFF"
BUILD_MPI: "OFF"
GKO_COMPILER_FLAGS: ""
MPI_AS_ROOT: "OFF"
FAST_TESTS: "OFF"
NONDEFAULT_STREAM: "OFF"
DPCPP_SINGLE_MODE: "OFF"
MIXED_PRECISION: "ON"
RUN_EXAMPLES: "OFF"
CONFIG_LOG: "ON"
CXX_FLAGS: ""
CXX_FLAGS: "-Wpedantic"
EXTRA_CMAKE_FLAGS: ""
EXPORT_BUILD_DIR: "OFF"
CI_PROJECT_DIR_SUFFIX: ""
17 changes: 0 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,6 @@ option(GINKGO_BENCHMARK_ENABLE_TUNING
OFF)
set(GINKGO_VERBOSE_LEVEL "1" CACHE STRING
"Verbosity level. Put 0 to turn off. 1 activates a few important messages.")
if(MSVC)
set(GINKGO_COMPILER_FLAGS "" CACHE STRING
"Set the required CXX compiler flags, mainly used for warnings. Current default is ``")
elseif(GINKGO_BUILD_SYCL OR CMAKE_CXX_COMPILER MATCHES "dpcpp|icpx")
# For now always use `-ffp-model=precise` with DPC++. This can be removed when
# the floating point issues are fixed.
set(GINKGO_COMPILER_FLAGS "-Wpedantic;-ffp-model=precise" CACHE STRING
"Set the required CXX compiler flags, mainly used for warnings. Current default is `-Wpedantic;-ffp-model=precise`")
else()
set(GINKGO_COMPILER_FLAGS "-Wpedantic" CACHE STRING
"Set the required CXX compiler flags, mainly used for warnings. Current default is `-Wpedantic`")
endif()
set(GINKGO_CUDA_COMPILER_FLAGS "" CACHE STRING
"Set the required NVCC compiler flags, mainly used for warnings. Current default is an empty string")
set(GINKGO_CUDA_ARCHITECTURES "Auto" CACHE STRING
"A list of target NVIDIA GPU architectures. See README.md for more detail.")
# the details of fine/coarse grain memory and unsafe atomic are available https://docs.olcf.ornl.gov/systems/crusher_quick_start_guide.html#floating-point-fp-atomic-operations-and-coarse-fine-grained-memory-allocations
Expand Down Expand Up @@ -483,7 +469,6 @@ add_custom_target(test_install
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_PREFIX_PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
# `--config cfg` is ignored by single-configuration generator.
Expand All @@ -504,7 +489,6 @@ add_custom_target(test_exportbuild
-S${GINKGO_TEST_EXPORTBUILD_SRC_DIR}
-B${GINKGO_TEST_EXPORTBUILD_BIN_DIR}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
# `--config cfg` is ignored by single-configuration generator.
Expand All @@ -522,7 +506,6 @@ add_custom_target(test_pkgconfig
-S${GINKGO_TEST_PKGCONFIG_SRC_DIR}
-B${GINKGO_TEST_PKGCONFIG_BIN_DIR}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CUDA_COMPILER=${CMAKE_CUDA_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
# `--config cfg` is ignored by single-configuration generator.
Expand Down
1 change: 0 additions & 1 deletion benchmark/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ function(ginkgo_add_single_benchmark_executable name use_lib_linops macro_def ty
target_link_libraries(${name} mpi_timer)
endif()
target_compile_definitions("${name}" PRIVATE "${macro_def}")
target_compile_options("${name}" PRIVATE ${GINKGO_COMPILER_FLAGS})
ginkgo_benchmark_add_tuning_maybe("${name}")
if("${use_lib_linops}")
if (GINKGO_BUILD_CUDA)
Expand Down
4 changes: 0 additions & 4 deletions cmake/create_test.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ function(ginkgo_set_test_target_properties test_target_name test_library_suffix)
target_link_libraries(${test_target_name} PRIVATE ginkgo_gtest_main${test_library_suffix})
endif()
target_compile_features(${test_target_name} PUBLIC cxx_std_14)
target_compile_options(${test_target_name} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${GINKGO_COMPILER_FLAGS}>)
target_include_directories(${test_target_name} PRIVATE ${Ginkgo_BINARY_DIR} ${set_properties_ADDITIONAL_INCLUDES})
target_link_libraries(${test_target_name} PRIVATE ginkgo GTest::GTest ${set_properties_ADDITIONAL_LIBRARIES})
endfunction()
Expand Down Expand Up @@ -148,9 +147,6 @@ endfunction(ginkgo_create_cuda_test)
function(ginkgo_create_cuda_test_internal test_name filename test_target_name)
add_executable(${test_target_name} ${filename})
target_compile_definitions(${test_target_name} PRIVATE GKO_COMPILING_CUDA)
target_compile_options(${test_target_name}
PRIVATE
$<$<COMPILE_LANGUAGE:CUDA>:${GINKGO_CUDA_COMPILER_FLAGS}>)
if(MSVC)
target_compile_options(${test_target_name}
PRIVATE
Expand Down
2 changes: 0 additions & 2 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,6 @@ endif()

ginkgo_compile_features(ginkgo)

target_compile_options(ginkgo PRIVATE "${GINKGO_COMPILER_FLAGS}")

# add a namespace alias so Ginkgo can always be included as Ginkgo::ginkgo
# regardless of whether it is installed or added as a subdirectory
add_library(Ginkgo::ginkgo ALIAS ginkgo)
Expand Down
2 changes: 0 additions & 2 deletions core/get_info.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
ginkgo_print_module_header(${detailed_log} "Core")
ginkgo_print_variable(${detailed_log} "BUILD_SHARED_LIBS")
ginkgo_print_variable(${detailed_log} "CMAKE_C_COMPILER")
ginkgo_print_flags(${detailed_log} "CMAKE_C_FLAGS")
ginkgo_print_variable(${detailed_log} "CMAKE_CXX_COMPILER")
ginkgo_print_flags(${detailed_log} "CMAKE_CXX_FLAGS")
ginkgo_print_variable(${detailed_log} "CMAKE_GENERATOR")
Expand Down
Loading

0 comments on commit c9c200b

Please sign in to comment.