Skip to content

Commit

Permalink
Added reproducibility
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Jan 12, 2025
1 parent 6498c4f commit 05cf529
Show file tree
Hide file tree
Showing 37 changed files with 147 additions and 185 deletions.
15 changes: 10 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@ cmake_minimum_required(VERSION 3.27)

project(placeholder)

option(GPU_PROVER "Enable GPU support" OFF)
if (GPU_PROVER)
add_compile_options(-DGPU_PROVER)
endif()

if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
add_compile_options (-fdiagnostics-color=always)
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
add_compile_options (-fcolor-diagnostics)
endif ()

if(DEFINED CMAKE_BUILD_TYPE)
#if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb")
#set(BOOST_FORCEINLINE "OFF") # improves debugging traces
#endif()
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb")
set(BOOST_FORCEINLINE "OFF") # improves debugging traces
endif()
endif()

option(SANITIZE "Build sanitizers" FALSE)
Expand All @@ -26,7 +31,7 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp)
add_library(crypto3_precompiled_headers STATIC ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp)
set_target_properties(crypto3_precompiled_headers PROPERTIES
LINKER_LANGUAGE CXX
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE
)

Expand Down
2 changes: 1 addition & 1 deletion crypto3/benchmarks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ macro(define_benchmark benchmark)

set_target_properties(${full_name}
PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/algebra/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ macro(define_algebra_example name)
Boost::random
)

set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 20)
set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 23)
endmacro()

set(EXAMPLES_NAMES
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/algebra/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ macro(define_runtime_algebra_test name)

${Boost_INCLUDE_DIRS})

set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20
set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand All @@ -44,7 +44,7 @@ macro(define_compile_time_algebra_test name)

${Boost_INCLUDE_DIRS})

set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 20)
set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 23)
endmacro()

set(RUNTIME_TESTS_NAMES
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/blueprint/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ macro(define_blueprint_example name)
${CMAKE_WORKSPACE_NAME}::multiprecision
${CMAKE_WORKSPACE_NAME}::zk
)
set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE)
set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE)
endmacro()


Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/blueprint/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
crypto3::hash
Boost::unit_test_framework
)
set_target_properties(_cm_internal_tests-crypto3-blueprint-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-blueprint-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-blueprint-test REUSE_FROM crypto3_precompiled_headers)

macro(define_blueprint_test test)
Expand All @@ -60,7 +60,7 @@ macro(define_blueprint_test test)
target_include_directories(${full_test_name} PRIVATE
${Boost_INCLUDE_DIRS})

set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23)

target_compile_definitions(${full_test_name} PRIVATE TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/zkevm/data/")

Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/containers/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ macro(define_containers_example example)
${CMAKE_WORKSPACE_NAME}::algebra
${CMAKE_WORKSPACE_NAME}::hash
Boost::container)
set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${target_name} PROPERTIES CXX_STANDARD 23)
endmacro()

set(EXAMPLES_NAMES
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/containers/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
Boost::unit_test_framework
Boost::random
)
set_target_properties(_cm_internal_tests-crypto3-containers-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-containers-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-containers-test REUSE_FROM crypto3_precompiled_headers)

macro(define_storage_test test)
Expand All @@ -57,7 +57,7 @@ macro(define_storage_test test)
Boost::random
)

set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23)

if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647" "-ftemplate-backtrace-limit=0")
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/hash/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
${${CURRENT_PROJECT_NAME}_INTERFACE_LIBRARIES}
Boost::unit_test_framework)

set_target_properties(_cm_internal_tests-crypto3-hash-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-hash-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-hash-test REUSE_FROM crypto3_precompiled_headers)

macro(define_hash_test name)
Expand All @@ -27,7 +27,7 @@ macro(define_hash_test name)
${Boost_INCLUDE_DIRS})

set_target_properties(${test_name} PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/marshalling/algebra/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ macro(define_marshalling_test name)
${Boost_INCLUDE_DIRS})

set_target_properties(${test_name} PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/marshalling/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ if(CRYPTO3_MARSHALLING_THROWS)
endif()

if(NOT CMAKE_CXX_STANDARD)
set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23)
endif()

cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME})
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/marshalling/core/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ macro(define_marshalling_test name)
${Boost_INCLUDE_DIRS})

set_target_properties(marshalling_core_${name}_test PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)
endmacro()

Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/marshalling/multiprecision/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_
add_library(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} INTERFACE)
add_library(${CMAKE_WORKSPACE_NAME}::${CURRENT_PROJECT_NAME} ALIAS ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME})

set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES CXX_STANDARD 20)
set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES CXX_STANDARD 23)

set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES
EXPORT_NAME ${CURRENT_PROJECT_NAME})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ macro(define_marshalling_test name)
${Boost_INCLUDE_DIRS})

set_target_properties(marshalling_${name}_test PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/marshalling/zk/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
${CMAKE_WORKSPACE_NAME}::marshalling-algebra
${CMAKE_WORKSPACE_NAME}::marshalling-core)

set_target_properties(_cm_internal_tests-crypto3-marshalling-zk-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-marshalling-zk-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-marshalling-zk-test REUSE_FROM crypto3_precompiled_headers)

macro(define_marshalling_test test)
Expand All @@ -40,7 +40,7 @@ macro(define_marshalling_test test)
${Boost_INCLUDE_DIRS})

set_target_properties(marshalling_zk_${name}_test PROPERTIES
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down
2 changes: 1 addition & 1 deletion crypto3/libs/math/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ macro(define_math_test name)

${Boost_INCLUDE_DIRS})

set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23)

endmacro()

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#pragma once

//#if defined(__SIZEOF_INT128__)
//#define NIL_CO3_MP_HAS_INT128
//#endif
#if defined(__SIZEOF_INT128__) && !defined(GPU_PROVER)
#define NIL_CO3_MP_HAS_INT128
struct float128_type {};
#endif

// same again for __int128:
#if defined(NIL_CO3_MP_HAS_INT128) && defined(__cplusplus)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#include "nil/crypto3/multiprecision/detail/helper_macros.hpp"
#include "nil/crypto3/multiprecision/detail/int128.hpp"

/*#if __has_include(<immintrin.h>)
#if __has_include(<immintrin.h>) && !defined(GPU_PROVER)

#define NIL_CO3_MP_HAS_IMMINTRIN_H

Expand Down Expand Up @@ -53,4 +53,4 @@ namespace nil::crypto3::multiprecision::detail {

#endif

#endif*/
#endif
2 changes: 1 addition & 1 deletion crypto3/libs/random/example/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ macro(define_random_example name)
${CMAKE_WORKSPACE_NAME}::multiprecision

Boost::container)
set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 20)
set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 23)
endmacro()

set(EXAMPLES_NAMES
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/random/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ include(CMTest)
cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
${CMAKE_WORKSPACE_NAME}::multiprecision
Boost::unit_test_framework)
set_target_properties(_cm_internal_tests-crypto3-random-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-random-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-random-test REUSE_FROM crypto3_precompiled_headers)

macro(define_random_test test)
Expand All @@ -27,7 +27,7 @@ macro(define_random_test test)

${Boost_INCLUDE_DIRS})

set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647")
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/transpiler/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
crypto3::zk
Boost::unit_test_framework
)
set_target_properties(_cm_internal_tests-crypto3-transpiler-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-transpiler-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-transpiler-test REUSE_FROM crypto3_precompiled_headers)

add_custom_target(compile_and_run_transpiler_tests)
Expand All @@ -39,7 +39,7 @@ macro(define_transpiler_test name)

${Boost_INCLUDE_DIRS})

set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23)

get_target_property(target_type Boost::unit_test_framework TYPE)
if(target_type STREQUAL "SHARED_LIB")
Expand Down
4 changes: 2 additions & 2 deletions crypto3/libs/zk/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}
Boost::unit_test_framework
Boost::log
)
set_target_properties(_cm_internal_tests-crypto3-zk-test PROPERTIES CXX_STANDARD 20)
set_target_properties(_cm_internal_tests-crypto3-zk-test PROPERTIES CXX_STANDARD 23)
target_precompile_headers(_cm_internal_tests-crypto3-zk-test REUSE_FROM crypto3_precompiled_headers)

if(PROFILING_ENABLED)
Expand All @@ -38,7 +38,7 @@ macro(define_zk_test test)

${Boost_INCLUDE_DIRS})

set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20)
set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 23)

if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647")
Expand Down
2 changes: 1 addition & 1 deletion debug-tools/bin/circgen/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ add_executable(circgen
set_target_properties(circgen PROPERTIES
LINKER_LANGUAGE CXX
EXPORT_NAME circgen
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)


Expand Down
2 changes: 1 addition & 1 deletion debug-tools/bin/excalibur/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ add_executable(${C3_TARGET}
set_target_properties(${C3_TARGET} PROPERTIES
LINKER_LANGUAGE CXX
EXPORT_NAME ${CMAKE_PROJECT_NAME}
CXX_STANDARD 20
CXX_STANDARD 23
CXX_STANDARD_REQUIRED TRUE)

target_link_directories(
Expand Down
9 changes: 9 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
pkgs = import nixpkgs {
inherit system;
overlays = [ nix-3rdparty.overlays.${system}.default ];
config = {
allowUnfree = true;
};
};
in rec {
packages = rec {
Expand Down Expand Up @@ -58,27 +61,33 @@


parallel-crypto3 = (pkgs.callPackage ./parallel-crypto3.nix {
stdenv = pkgs.llvmPackages_19.stdenv;
runTests = false;
enableDebug = false;
enableGPU = true;
});
parallel-crypto3-tests = (pkgs.callPackage ./parallel-crypto3.nix {
stdenv = pkgs.llvmPackages_19.stdenv;
runTests = true;
enableDebug = false;
enableGPU = true;
});
parallel-crypto3-clang-bench = (pkgs.callPackage ./parallel-crypto3.nix {
runTests = true;
enableDebug = false;
benchmarkTests = true;
enableGPU = false;
});
parallel-crypto3-debug-tests = (pkgs.callPackage ./parallel-crypto3.nix {
enableDebug = true;
runTests = true;
enableGPU = false;
});
parallel-crypto3-clang-debug = (pkgs.callPackage ./parallel-crypto3.nix {
stdenv = pkgs.llvmPackages_19.stdenv;
enableDebug = true;
runTests = false;
enableGPU = false;
});

proof-producer = (pkgs.callPackage ./proof-producer.nix {
Expand Down
Loading

0 comments on commit 05cf529

Please sign in to comment.