summary refs log tree commit diff
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2023-11-23 10:23:58 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-11-30 09:08:05 +0100
commitc34c3b1c2b1006ebeede016cca578d5f571fc7a8 (patch)
tree7139bca3a7060e334e2100dae97b6bf8b4e334ec
parent9408fa3754a6a445fb54cddb03368b6685a24d5a (diff)
downloadguix-c34c3b1c2b1006ebeede016cca578d5f571fc7a8.tar.gz
gnu: Add plasp.
* gnu/packages/patches/plasp-fix-normalization.patch: New file.
* gnu/packages/patches/plasp-include-iostream.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register them here.
* gnu/packages/potassoc.scm (plasp): New variable.

Change-Id: I0d8d64153b180a7d1d8d81888f843458efdf5e51
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/patches/plasp-fix-normalization.patch51
-rw-r--r--gnu/packages/patches/plasp-include-iostream.patch26
-rw-r--r--gnu/packages/potassco.scm32
4 files changed, 111 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a8142bb0f2..a82372527e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1751,6 +1751,8 @@ dist_patch_DATA =						\
   %D%/packages/patches/password-store-tree-compat.patch		\
   %D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch			\
   %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
+  %D%/packages/patches/plasp-fix-normalization.patch \
+  %D%/packages/patches/plasp-include-iostream.patch \
   %D%/packages/patches/pocketfft-cpp-prefer-preprocessor-if.patch			\
   %D%/packages/patches/pokerth-boost.patch			\
   %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch		\
diff --git a/gnu/packages/patches/plasp-fix-normalization.patch b/gnu/packages/patches/plasp-fix-normalization.patch
new file mode 100644
index 0000000000..dc2d3e4b98
--- /dev/null
+++ b/gnu/packages/patches/plasp-fix-normalization.patch
@@ -0,0 +1,51 @@
+From cddbfa3ade23695dd9996f6e208615702a3a42e1 Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>
+Date: Thu, 23 Nov 2023 09:53:38 +0100
+Subject: [PATCH 1/2] normalization: No longer work around compiler bugs in
+ Precondition.
+To: Patrick Lühne <patrick-github@luehne.de>
+Cc: Martin Gebser <martin.gebser@aau.at>
+
+Newer versions of GCC (such as GCC 11) point out that std::move is meaningless
+in this position, so remove it.
+---
+ lib/pddl/src/pddl/detail/normalization/Precondition.cpp | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/lib/pddl/src/pddl/detail/normalization/Precondition.cpp b/lib/pddl/src/pddl/detail/normalization/Precondition.cpp
+index 4eebfee..4297e52 100644
+--- a/lib/pddl/src/pddl/detail/normalization/Precondition.cpp
++++ b/lib/pddl/src/pddl/detail/normalization/Precondition.cpp
+@@ -83,8 +83,7 @@ normalizedAST::Literal normalizeNested(ast::AndPointer<ast::Precondition> &and_,
+ 
+ 	derivedPredicate->declaration->precondition = std::make_unique<normalizedAST::And<normalizedAST::Literal>>(std::move(normalizedArguments));
+ 
+-	// TODO: investigate, could be a compiler bug
+-	return std::move(derivedPredicate);
++	return derivedPredicate;
+ }
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+@@ -112,8 +111,7 @@ normalizedAST::Literal normalizeNested(ast::ExistsPointer<ast::Precondition> &ex
+ 			return normalizeTopLevel(x, normalizationContext);
+ 		});
+ 
+-	// TODO: investigate, could be a compiler bug
+-	return std::move(derivedPredicate);
++	return derivedPredicate;
+ }
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+@@ -174,8 +172,7 @@ normalizedAST::Literal normalizeNested(ast::OrPointer<ast::Precondition> &or_, d
+ 
+ 	derivedPredicate->declaration->precondition = std::make_unique<normalizedAST::Or<normalizedAST::Literal>>(std::move(normalizedArguments));
+ 
+-	// TODO: investigate, could be a compiler bug
+-	return std::move(derivedPredicate);
++	return derivedPredicate;
+ }
+ 
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+-- 
+2.41.0
+
diff --git a/gnu/packages/patches/plasp-include-iostream.patch b/gnu/packages/patches/plasp-include-iostream.patch
new file mode 100644
index 0000000000..9722e6fc03
--- /dev/null
+++ b/gnu/packages/patches/plasp-include-iostream.patch
@@ -0,0 +1,26 @@
+From 95c6a506e14cf248e2a3cae2ed3f41ed1eedf278 Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>
+Date: Thu, 23 Nov 2023 09:53:38 +0100
+Subject: [PATCH 2/2] app: Add missing #include <iostream>.
+To: Patrick Lühne <patrick-github@luehne.de>
+Cc: Martin Gebser <martin.gebser@aau.at>
+
+---
+ app/include/plasp-app/Command.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/app/include/plasp-app/Command.h b/app/include/plasp-app/Command.h
+index 5755ee3..671804b 100644
+--- a/app/include/plasp-app/Command.h
++++ b/app/include/plasp-app/Command.h
+@@ -1,6 +1,7 @@
+ #ifndef __PLASP_APP__COMMAND_H
+ #define __PLASP_APP__COMMAND_H
+ 
++#include <iostream> // std::cout, std::endl
+ #include <tuple>
+ 
+ #include <cxxopts.hpp>
+-- 
+2.41.0
+
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index 887c220ccf..884da3c99f 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -243,6 +243,38 @@ satisfiability checking (SAT).")
 over difference logic.")
     (license license:expat)))
 
+(define-public plasp
+  (package
+    (name "plasp")
+    (version "3.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/potassco/plasp")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "123v1bjzh7yjwgcc5k55rkfz0lfl8ish5p3z8x3pn8k1svd50xal"))
+              (patches (search-patches
+                        "plasp-fix-normalization.patch"
+                        "plasp-include-iostream.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:tests? #f        ; No ‘test’ target
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'install
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (copy-recursively "bin"
+                                     (string-append (assoc-ref outputs "out")
+                                                    "/bin")))))))
+    (inputs (list cxxopts mapbox-variant))
+    (home-page "https://potassco.org/")
+    (synopsis "ASP planning tools for PDDL")
+    (description "@command{plasp} is a tool collection for planning in
+answer set programming.  It supports a subset of PDDL 3.1 and SAS 3.")
+    (license license:expat)))
+
 (define-public emacs-pasp-mode
   (let ((commit "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92")
         (revision "1"))