summaryrefslogtreecommitdiff
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)
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"))