push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c2ce37bf2..ee15e47f7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -448,7 +448,7 @@ set(SOUFFLE_COMPILED_RELEASE_CXX_FLAGS ${CMAKE_CXX_FLAGS_RELEASE})
set(SOUFFLE_COMPILED_DEBUG_CXX_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
get_target_property(SOUFFLE_COMPILED_DEFS compiled COMPILE_DEFINITIONS)
get_target_property(SOUFFLE_COMPILED_OPTS compiled COMPILE_OPTIONS)
-get_target_property(SOUFFLE_COMPILED_INCS compiled INCLUDE_DIRECTORIES)
+set(SOUFFLE_COMPILED_INCS PLACEHOLDER_FOR_INCLUDES_THAT_ARE_SET_BY_NIXPKGS)
get_property(SOUFFLE_COMPILED_LINK_OPTS TARGET compiled PROPERTY LINK_OPTIONS)
set(SOUFFLE_COMPILED_LIBS "")

View File

@@ -0,0 +1,111 @@
{
lib,
stdenv,
fetchFromGitHub,
bash-completion,
perl,
ncurses,
zlib,
sqlite,
libffi,
mcpp,
cmake,
bison,
flex,
doxygen,
graphviz,
makeWrapper,
python3,
callPackage,
fetchpatch,
}:
let
toolsPath = lib.makeBinPath [
mcpp
python3
];
in
stdenv.mkDerivation rec {
pname = "souffle";
version = "2.5";
src = fetchFromGitHub {
owner = "souffle-lang";
repo = "souffle";
rev = version;
sha256 = "sha256-Umfeb1pGAeK5K3QDRD/labC6IJLsPPJ73ycsAV4yPNM=";
};
patches = [
./threads.patch
./includes.patch
(fetchpatch {
name = "replace-copy-assignment.patch";
url = "https://github.com/souffle-lang/souffle/commit/73ebe789ec21772a0c5558639606354bfc3bcbd1.patch";
hash = "sha256-L9SK3Dh2cRwxKfEckUSiGGTDsWIZ5B8hoYYcslJpZl4=";
})
];
hardeningDisable = lib.optionals stdenv.hostPlatform.isDarwin [ "strictoverflow" ];
nativeBuildInputs = [
bison
cmake
flex
mcpp
doxygen
graphviz
makeWrapper
perl
];
buildInputs = [
bash-completion
ncurses
zlib
sqlite
libffi
python3
];
# these propagated inputs are needed for the compiled Souffle mode to work,
# since generated compiler code uses them. TODO: maybe write a g++ wrapper
# that adds these so we can keep the propagated inputs clean?
propagatedBuildInputs = [
ncurses
zlib
sqlite
libffi
];
cmakeFlags = [ "-DSOUFFLE_GIT=OFF" ];
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = "-Wno-error=unused-but-set-variable";
};
postInstall = ''
wrapProgram "$out/bin/souffle" --prefix PATH : "${toolsPath}"
'';
postFixup = ''
substituteInPlace "$out/bin/souffle-compile.py" \
--replace "-IPLACEHOLDER_FOR_INCLUDES_THAT_ARE_SET_BY_NIXPKGS" \
"-I${ncurses.dev}/include -I${zlib.dev}/include -I${sqlite.dev}/include -I${libffi.dev}/include -I$out/include"
'';
outputs = [ "out" ];
passthru.tests = callPackage ./tests.nix { };
meta = with lib; {
description = "Translator of declarative Datalog programs into the C++ language";
homepage = "https://souffle-lang.github.io/";
platforms = platforms.unix;
maintainers = with maintainers; [
thoughtpolice
wchresta
markusscherer
];
license = licenses.upl;
};
}

View File

@@ -0,0 +1,43 @@
{
stdenv,
lib,
souffle,
runCommand,
}:
let
simpleTest =
{ name, commands }:
stdenv.mkDerivation {
inherit name;
meta.timeout = 60;
buildCommand = ''
echo -e '.decl A(X: number)\n.output A\nA(1).' > A.dl
${commands}
[ "$(cat A.csv)" = "1" ]
touch $out
'';
};
in
{
interpret = simpleTest {
name = "souffle-test-interpret";
commands = "${souffle}/bin/souffle A.dl";
};
compile-in-one-step = simpleTest {
name = "souffle-test-compile-in-one-step";
commands = ''
${souffle}/bin/souffle -o A A.dl
./A
'';
};
compile-in-two-steps = simpleTest {
name = "souffle-test-compile-in-two-steps";
commands = ''
${souffle}/bin/souffle -g A.cpp A.dl
${souffle}/bin/souffle-compile.py A.cpp -o A
./A
'';
};
}

View File

@@ -0,0 +1,31 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73d5c3c84..e4b0dbfd1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -104,13 +104,6 @@ option(SOUFFLE_CUSTOM_GETOPTLONG "Enable/Disable custom getopt_long implementati
cmake_dependent_option(SOUFFLE_USE_LIBCPP "Link to libc++ instead of libstdc++" ON
"CMAKE_CXX_COMPILER_ID STREQUAL Clang" OFF)
-# Using Clang? Likely want to use `lld` too.
-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
-endif()
-
# Add aditional modules to CMake
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
@@ -247,7 +240,11 @@ endif()
# pthreads
# --------------------------------------------------
set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(Threads REQUIRED)
+set(CMAKE_THREAD_LIBS_INIT "-lpthread")
+set(CMAKE_HAVE_THREADS_LIBRARY 1)
+set(CMAKE_USE_WIN32_THREADS_INIT 0)
+set(CMAKE_USE_PTHREADS_INIT 1)
+set(THREADS_PREFER_PTHREAD_FLAG ON)
# --------------------------------------------------
# OpenMP