Import gringo_5.4.0-2.debian.tar.xz
authorThomas Krennwallner <tkren@kr.tuwien.ac.at>
Fri, 3 Apr 2020 10:56:49 +0000 (11:56 +0100)
committerThomas Krennwallner <tkren@kr.tuwien.ac.at>
Fri, 3 Apr 2020 10:56:49 +0000 (11:56 +0100)
[dgit import tarball gringo 5.4.0-2 gringo_5.4.0-2.debian.tar.xz]

30 files changed:
NEWS [new file with mode: 0644]
TODO [new file with mode: 0644]
changelog [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
docs [new file with mode: 0644]
gbp.conf [new file with mode: 0644]
gringo.links [new file with mode: 0644]
gringo.manpages [new file with mode: 0644]
install [new file with mode: 0644]
missing-sources/doc/py/js/highlight.js [new file with mode: 0644]
patches/gringo-manpages.patch [new file with mode: 0644]
patches/gringo-python3-utf8.patch [new file with mode: 0644]
patches/link-libatomic-check.patch [new file with mode: 0644]
patches/python3.8-compat.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
symbols [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/gringo0 [new file with mode: 0755]
tests/gringo1 [new file with mode: 0755]
tests/gringo2 [new file with mode: 0755]
tests/gringo3 [new file with mode: 0755]
tests/gringo4 [new file with mode: 0755]
tests/gringo5 [new file with mode: 0755]
tests/gringo6 [new file with mode: 0755]
tests/gringo7 [new file with mode: 0755]
upstream/metadata [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..f10a4de
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,12 @@
+gringo (5.1.0-1) unstable; urgency=medium
+
+    The gringo and reify programs drop direct support for smodels output
+    format and use the new asp intermediate format (aspif) instead.  The
+    clasp solver automatically supports aspif starting with version 3.2.0
+    and later.  If you need to ground a logic program to smodels format,
+    you can translate aspif to smodels format with the lpconvert tool,
+    which is part of this package.  See also
+    <https://www.cs.uni-potsdam.de/wv/publications/DBLP_conf/iclp/GebserKKOSW16x.pdf>
+    for a detailed description of the asp intermediate format.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 11 Dec 2016 09:51:56 +0100
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..1475306
--- /dev/null
+++ b/TODO
@@ -0,0 +1,9 @@
+* gringo TODO list
+
+** upstream renamed gringo to clingo
+
+** add clingo C api header files and library archive
+
+** add pyclingo python module
+
+** add luaclingo lua module
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..f7477b0
--- /dev/null
+++ b/changelog
@@ -0,0 +1,657 @@
+gringo (5.4.0-2) unstable; urgency=medium
+
+  * Upload to unstable
+  * debian/symbols: fix symbols for missing architectures
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 03 Apr 2020 06:56:49 -0400
+
+gringo (5.4.0-1) experimental; urgency=medium
+
+  * New upstream version 5.4.0
+  * install libclingo.so.3.0 instead of libclingo.so.2.0
+  * generate symbols for libclingo.so.3
+  * refresh gringo-python3-utf8.patch, python3.8-compat.patch, and
+    link-libatomic-check.patch
+  * drop gringo-python37-async.patch, already applied upstream
+  * add highlight.js 9.12.0 to missing-sources
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 30 Mar 2020 06:25:20 -0400
+
+gringo (5.3.0-13) unstable; urgency=medium
+
+  * Upload to unstable
+  * debian/symbols: fix symbols for g++-9 >= 9.2.0 on armel and powerpc
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 11 Mar 2020 20:57:01 -0400
+
+gringo (5.3.0-12) experimental; urgency=medium
+
+  * debian/symbols: fix symbols for g++-9 >= 9.2.0
+  * debian/{rules,install}: drop libatomic hacks, stop confusing build
+    target with build directory
+  * debian/patches: refresh python3.8-compat and gringo-python37-async
+  * link-libatomic-check.patch: add libatomic checks to CMakeLists.txt
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 11 Mar 2020 07:31:40 -0400
+
+gringo (5.3.0-11) experimental; urgency=medium
+
+  * add support for python3.8, thanks to Steve Langasek
+  * compile with gcc-9 and g++-9
+  * debian/control: bump Standards-Version to 4.5.0 (no changes required)
+  * renamed debian/{NEWS,TODO}.Debian to debian/{NEWS,TODO}
+    Lintian tag incorrect-packaging-filename
+  * setup debhelper-compat 12.
+    Lintian tag package-uses-old-debhelper-compat-version
+  * debian/control: set Rules-Requires-Root to no
+  * debian/symbols: fix symbols for g++-9 >= 9.2.0
+  * Bug fix: "gringo needs a new upstream, and fixes for python3.8",
+    thanks to Matthias Klose (Closes: #951842).
+  * Bug fix: "gringo ftbfs with Python 3.8", thanks to Matthias Klose
+    (Closes: #951707).
+  * Bug fix: "non-standard gcc/g++ used for build (gcc-8)", thanks to
+    Matthias Klose (Closes: #944178).
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 09 Mar 2020 13:31:25 +0100
+
+gringo (5.3.0-10) unstable; urgency=medium
+
+  * Fix FTBFS on buster.
+  * debian/control: add Build-Depends on g++-8 >= 8.2.0-21
+  * debian/symbols: add alpha and x32 symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 02 Mar 2019 08:49:10 +0100
+
+gringo (5.3.0-9) unstable; urgency=medium
+
+  * Upload to unstable.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 01 Mar 2019 06:27:37 +0100
+
+gringo (5.3.0-8) experimental; urgency=medium
+
+  * debian/symbols: fix symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 28 Feb 2019 05:25:47 +0100
+
+gringo (5.3.0-7) experimental; urgency=medium
+
+  * Bug fix: "new symbols", thanks to Sjoerd Simons (Closes: #923228).
+  * debian/control: bump Standards-Version to 4.3.0
+  * debian/symbols: fix FTBFS on powerpcspe
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 27 Feb 2019 05:24:41 +0100
+
+gringo (5.3.0-6) unstable; urgency=medium
+
+  * debian/symbols: fix symbols for g++-8 >= 8.2.0-10
+  * Upload to unstable.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 14 Dec 2018 08:09:08 +0100
+
+gringo (5.3.0-5) experimental; urgency=medium
+
+  * Bug fix: "gringo FTBFS: symbol differences", thanks to Adrian Bunk
+    (Closes: #916266).
+  * debian/symbols: fix FTBFS for g++-8 >= 8.2.0-10
+  * debian/control: Build-Depends on g++-8 >= 8.2.0-10
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 13 Dec 2018 08:22:24 +0100
+
+gringo (5.3.0-4) unstable; urgency=medium
+
+  * debian/tests/gringo{0,1,3,4}: fix integer atom mappings
+  * NEWS.Debian: fix link to aspif description
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 22 Nov 2018 07:26:25 +0100
+
+gringo (5.3.0-3) unstable; urgency=medium
+
+  * debian/upstream/metadata: add DEP-12 upstream metadata
+  * debian/symbols: fix symbols for version 5.3.0 of libclingo.so.2
+  * Upload to unstable.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 21 Nov 2018 04:54:38 +0100
+
+gringo (5.3.0-2) experimental; urgency=medium
+
+  * debian/symbols: fix symbols for version 5.3.0 of libclingo.so.2
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 15 Nov 2018 07:30:26 +0100
+
+gringo (5.3.0-1) experimental; urgency=medium
+
+  * New upstream version 5.3.0
+  * drop upstream applied gringo-makefile.patch
+  * refresh gringo-python37-async.patch with fcef335 from upstream
+  * install libclingo.so.2.0
+  * debian/symbols: update to libclingo.so.2.0
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 11 Nov 2018 08:56:35 +0100
+
+gringo (5.2.3-5) unstable; urgency=medium
+
+  * debian/symbols: batchpatch alpha, mips, mips64el symbols for g++-8
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 08 Nov 2018 04:35:55 +0100
+
+gringo (5.2.3-4) unstable; urgency=medium
+
+  * Bug fix: "Please update symbols for riscv64", thanks to Manuel
+    A. Fernandez Montecelo (Closes: #912269).
+  * debian/symbols: batchpatch symbols for g++-8
+  * Upload to unstable.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 07 Nov 2018 04:07:00 +0100
+
+gringo (5.2.3-3) experimental; urgency=medium
+
+  * debian/control: bump Standards-Version to 4.2.1
+  * Bug fix: "gringo build-depends on legacy compiler g++-7", thanks to
+    Matthias Klose (Closes: #912582).
+    - debian/control: Build-Depends on g++-8
+  * debian/symbols: update amd64 symbols for g++-8
+  * Bug fix: "gringo ftbfs with Python 3.7", thanks to Matthias Klose
+    (Closes: #912552).
+    - debian/control: Build-Depends on python3.7
+    - gringo-python37-async.patch: rename async keyword to async_
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 04 Nov 2018 08:34:30 +0100
+
+gringo (5.2.3-2) unstable; urgency=medium
+
+  * debian/symbols: batchpatch symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 03 Jul 2018 06:23:44 +0200
+
+gringo (5.2.3-1) unstable; urgency=medium
+
+  * New upstream version 5.2.3
+  * debian/watch: force three-digit version
+  * debian/control: bump Standards-Version to 4.1.4
+  * debian/TODO.Debian: refresh TODO list
+  * gringo-makefile.patch: drop Makefile
+  * debian/symbols: update amd64 symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 30 Jun 2018 13:27:28 +0200
+
+gringo (5.2.2-6) unstable; urgency=medium
+
+  * Team upload
+  * Added build-dependency python3-distutils in order to fix FTBFS. Thanks
+    to Adrian Bunk for the patch (closes: #896791)
+  * Added debian/gbp.conf with pristine-tar=True
+
+ -- Ralf Treinen <treinen@debian.org>  Thu, 03 May 2018 08:30:23 +0200
+
+gringo (5.2.2-5) unstable; urgency=medium
+
+  * fix FTBFS with gringo-python3-utf8.patch
+  * debian/rules: report ctest logs in case of error
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 05 Feb 2018 07:39:21 +0100
+
+gringo (5.2.2-4) unstable; urgency=medium
+
+  * setup build environment for python3
+    + debian/control: setup Build-Depends for python3
+    + debian/rules: force PYTHON_EXECUTABLE to /usr/bin/python3
+  * FTBFS: dh_auto_test needs LD_LIBRARY_PATH for libclingo
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 04 Feb 2018 21:35:05 +0100
+
+gringo (5.2.2-3) unstable; urgency=medium
+
+  * add dep8 testsuite
+    + debian/rules: build, run, and output upstream tests
+    + debian/tests: add dep8 tests
+  * debian/symbols: add ia64, update templinst archs
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 04 Feb 2018 09:22:41 +0100
+
+gringo (5.2.2-2) unstable; urgency=medium
+
+  * update debian/control and debian/compat
+    + update Vcs-Git and Vcs-Browser for salsa
+    + bump Standards-Version to 4.1.3
+    + bump debhelper compatibility version to 11
+  * debian/symbols: update amd64 symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 03 Feb 2018 15:17:29 +0100
+
+gringo (5.2.2-1) unstable; urgency=medium
+
+  * New upstream version 5.2.2
+  * drop upstream applied gringo-remove-wrong-assertion.patch
+  * debian/symbols: add arm64 kfreebsd-amd64 kfreebsd-i386 symbols
+    pkgkde-symbolshelper batchpatch -v 1
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 10 Nov 2017 08:08:58 +0100
+
+gringo (5.2.1-4) unstable; urgency=medium
+
+  * debian/symbols: fix FTBFS on armel
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 04 Nov 2017 14:55:24 +0100
+
+gringo (5.2.1-3) unstable; urgency=medium
+
+  * add patch from upstream commit 02c6d85 to fix wrong assertion
+  * debian/control: Build-Depends to cmake >= 3.1.0
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 04 Nov 2017 11:14:23 +0100
+
+gringo (5.2.1-2) unstable; urgency=medium
+
+  * Use pkgkde-symbolshelper to manage C++ symbols
+  * debian/rules: use pkgkde_symbolshelper dh addon
+  * debian/control: Build-Depends on pkg-kde-tools
+  * debian/symbols: use pkgkde-symbolshelper to create C++ symbols
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 03 Nov 2017 06:42:20 +0100
+
+gringo (5.2.1-1) unstable; urgency=medium
+
+  * New upstream version 5.2.1
+  * debian/TODO.Debian: list todo items
+  * debian/copyright: gringo switched to MIT, and so does the packaging
+  * debian/compat: bump debhelper compat level to 10
+  * debian/control: use cmake instead of scons
+    - force g++-7
+    - bump Standards-Version to 4.1.1
+    - fix Homepage URI
+  * debian/patches: drop various upstream applied patches
+    - gringo-alpha-fpu-getcw.patch
+    - gringo-broken-std-exception_ptr.patch
+    - gringo-fix-body-literals-as-auxiliary.patch
+    - reproducible-build.patch
+  * debian/install: add libclingo library
+  * debian/gringo.links: add ldconfig symlinks for libclingo.so.1.0
+  * debian/symbols: add libclingo.so.1 symbols
+  * debian/rules: use cmake without rpath and force g++-7
+  * Bug fix: "FTBFS: cat: build/release.log: No such file or directory",
+    thanks to Lucas Nussbaum (Closes: #880287).
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 01 Nov 2017 15:30:25 +0100
+
+gringo (5.1.0-5) unstable; urgency=medium
+
+  * Bug fix: "FTBFS: libgringo/src/python.cc:348:46: error:
+    &#39;*(Gringo::{anonymous}::Object (*)(Gringo::{anonymous}::Reference,
+    Gringo::{anonymous}::Reference))Gringo::{anonymous}::createId&#39; is
+    not a valid template argument for type
+    &#39;Gringo::{anonymous}::Object
+    (&amp;)(Gringo::{anonymous}::Reference,
+    Gringo::{anonymous}::Reference)&#39;", thanks to Lucas Nussbaum
+    (Closes: #871100).
+    - debian/control: Build-Depends on g++-6
+    - debian/rules: set CONFIGPARMS to CXX='g++-6'
+  * debian/copyright: use https instead of http
+  * debian/control: Bump Standards-Version to 4.0.1
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 17 Aug 2017 07:18:37 +0200
+
+gringo (5.1.0-4) unstable; urgency=medium
+
+  * fix FTBFS on alpha: do not define FPU_SWITCH_DOUBLE on alpha,
+    _FPU_GETCW and friends are undefined on this arch
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 20 Dec 2016 05:10:36 +0100
+
+gringo (5.1.0-3) unstable; urgency=medium
+
+  * debian/rules: fix FTBFS on architectures that require -latomic
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 16 Dec 2016 08:13:33 +0100
+
+gringo (5.1.0-2) unstable; urgency=medium
+
+  * debian/rules: fix C++11 threads
+    - link with libatomic on architectures that need it
+    - disable threads and define BROKEN_STD_EXCEPTION_PTR on armel
+  * gringo-broken-std-exception_ptr.patch: add support for armel
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 15 Dec 2016 06:49:16 +0100
+
+gringo (5.1.0-1) unstable; urgency=medium
+
+  * New upstream version 5.1.0
+  * debian/copyright: update copyright year and github source
+  * debian/control
+    - Build-Depends on g++ >= 4:6.1.1 replaces libtbb-dev
+    - point Homepage to https://www.potassco.org
+    - use https for Vcs-*
+    - add Breaks clasp (<< 3.2.1-1)
+  * debian/rules
+    - build lpconvert
+    - drop libtbb-dev and use c++11 multi-threading
+    - disable threads on powerpc,powerpcspe,m68k,mips,mipsel,sh4
+  * drop already applied upstream patches: gringo-include-math.patch,
+    gringo-solve-multi.patch, gringo-translate-minmax.patch
+  * gringo-fix-body-literals-as-auxiliary.patch: add upstream patch
+    cherry-picked from d6cfb89df6bbf138ca3e259d71ca7050b322b5d5
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 11 Dec 2016 13:12:35 +0100
+
+gringo (4.5.4-4) unstable; urgency=medium
+
+  * Bug fix: "please make the build reproducible", thanks to
+    Reiner Herrmann (Closes: #844096).
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 07 Dec 2016 08:27:20 +0100
+
+gringo (4.5.4-3) unstable; urgency=medium
+
+  * Fix gringo-multi-solver.patch: this fixes an FTBFS on architectures
+    that have WITH_THREAD=0, i.e., all architectures except amd64 and
+    ppc64.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 02 May 2016 07:18:34 +0200
+
+gringo (4.5.4-2) unstable; urgency=medium
+
+  * Bug fix: "FTBFS: error: 'pow' is not a member of 'std'", thanks to
+    Martin Michlmayr (Closes: #822383).
+  * Add patch to fix random python multithreading segfaults (upstream bug 117)
+  * Add patch to fix #min/#max translation bug (upstream bug 119)
+  * Build with liblua5.3
+  * Bump Standards-Version to 3.9.8
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 01 May 2016 08:47:29 +0200
+
+gringo (4.5.4-1) unstable; urgency=medium
+
+  * Imported Upstream version 4.5.4
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 19 Dec 2015 14:07:05 +0100
+
+gringo (4.5.3-1) unstable; urgency=medium
+
+  * Imported Upstream version 4.5.3
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 26 Sep 2015 09:31:03 +0200
+
+gringo (4.5.1-1) unstable; urgency=medium
+
+  * Imported Upstream version 4.5.1
+  * Add reify.1 manpage
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 13 Jul 2015 09:01:56 +0200
+
+gringo (4.5.0-1) unstable; urgency=medium
+
+  * Bump Standards-Version to 3.9.6.
+  * Imported Upstream version 4.5.0
+  * debian/control: Add Breaks: aspcud (<= 1.9.0-2). Add reify description.
+  * debian/copyright: Update copyright information, remove outdated files.
+  * debian/docs: Remove NOTES.
+  * debian/install: Install reify.
+  * debian/rules: Build reify.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 11 Jul 2015 09:36:10 +0200
+
+gringo (4.4.0-1) unstable; urgency=low
+
+  * New upstream release.
+  * debian/control: Remove Suggests on potassco-guide.
+  * debian/control: Fix Vcs fields to use anonscm.debian.org.
+  * Setup git repository to use git-buildpackage.
+  * Import upstream sources with git-import-orig --pristine-tar.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 18 Aug 2014 17:10:34 +0200
+
+gringo (4.3.0-2) unstable; urgency=low
+
+  * Bug fix: "non-standard gcc/g++ used for build (gcc-4.8)", thanks to
+    Matthias Klose (Closes: #751317).
+  * Build with system-wide liblua5.2-dev.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 12 Jun 2014 09:16:31 +0200
+
+gringo (4.3.0-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 26 Feb 2014 13:06:29 +0100
+
+gringo (4.2.1-4) unstable; urgency=low
+
+  * Bug fix: "add ppc64el to architecture list for libtbb-dev to fix
+    FTBFS", thanks to Logan Rosen (Closes: #735005).
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 12 Jan 2014 19:22:44 +0100
+
+gringo (4.2.1-3) unstable; urgency=low
+
+  * debian/control: Breaks aspcud <= 2012.10.24-6 after discussion with
+    upstream.
+    Remove spurious Build-Depends on libboost-filesystem-dev and
+    libboost-system-dev.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 18 Dec 2013 09:42:59 +0100
+
+gringo (4.2.1-2) unstable; urgency=low
+
+  * debian/control: FTBFS on ia64 sparc powerpc, Build-Depends is now
+    g++-4.8 >= 4.8.0.
+  * debian/rules: Set CXX to g++-4.8.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 17 Dec 2013 07:07:54 +0100
+
+gringo (4.2.1-1) unstable; urgency=low
+
+  gringo 4.2 adds support for {i,o,}clingo again.
+
+  * New upstream release.
+  * debian/watch: Back to watching all releases of gringo.
+  * debian/rules: Add scons, python, tbb, and hardening support.
+  * debian/install: Install gringo and clingo.
+  * debian/gringo.links: Symlink clingo binary and manpage to {i,o}clingo.
+  * debian/gringo.manpages: Remove iclingo manpage.
+  * debian/control: Build-Depends on bison, scons, g++ >= 4.8.0,
+    libpython2.7-dev, libtbb-dev.
+    Bump Standards-Version to 3.9.5.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 16 Dec 2013 16:28:42 +0100
+
+gringo (3.0.5-1) unstable; urgency=low
+
+  * New upstream release.
+  * debian/copyright: Update copyright years.
+  * debian/compat: Bump to version 9.
+  * debian/control:
+    - Remove DM-Upload-Allowed.
+    - Build-Depends on debhelper >= 9.
+  * debian/watch: Only watch upstream gringo >= 3.
+  * debian/patches/gringo-clang-gcc.patch debian/patches/gringo-cond.patch
+    debian/patches/gringo-domain-fwd-decl.patch
+    debian/patches/gringo-unpool-pred.patch debian/patches/series: Remove
+    already applied patches.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 21 May 2013 19:04:24 +0200
+
+gringo (3.0.4-4) unstable; urgency=low
+
+  * Apply upstream patches from subversion r6200 and r6237 for fixing
+    potassco bugs 75 and 76, resp.
+  * debian/patches/gringo-cond.patch: New file originally from
+    http://sourceforge.net/p/potassco/code/6291/tree/tags/gringo-3.0.4/patches/patch-cond.diff?format=raw.
+  * debian/patches/gringo-unpool-pred.patch: New file originally from
+    http://sourceforge.net/p/potassco/code/6291/tree/tags/gringo-3.0.4/patches/patch-unpool-pred.diff?format=raw.
+  * debian/control: Bump Standards-Version to 3.9.4.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 22 Nov 2012 10:40:56 +0100
+
+gringo (3.0.4-3) unstable; urgency=low
+
+  * Bug fix: "please build-depend on unversionend boost libraries", thanks
+    to Ralf Treinen (Closes: #672933).
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 23 May 2012 15:25:09 +0200
+
+gringo (3.0.4-2) unstable; urgency=low
+
+  * debian/patches/gringo-clang-gcc.patch: New file originally from
+    https://potassco.svn.sourceforge.net/svnroot/potassco/tags/gringo-3.0.4/patches/patch-clang.diff.
+  * Bug fix: "ftbfs with GCC-4.7", thanks to Matthias Klose (Closes:
+    #667193).
+  * debian/control: Bump Standards-Version to 3.9.3.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 10 Apr 2012 16:48:52 +0200
+
+gringo (3.0.4-1ubuntu1~oneiric1) oneiric; urgency=low
+
+  * Upload to ppa:~tkren/asp.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 27 Jan 2012 08:08:04 +0100
+
+gringo (3.0.4-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 26 Jan 2012 14:59:59 +0100
+
+gringo (3.0.3-7) unstable; urgency=low
+
+  * debian/copyright: Fix comma-separated-files-in-dep5-copyright,
+    obsolete-field-in-dep5-copyright and unversioned-copyright-format-uri
+    lintian warnings.
+  * Bug fix: "FTBFS: clone_allocator.hpp:34:27: error: invalid use of
+    incomplete type <struct Domain>", thanks to Lucas Nussbaum
+    (Closes: #652787).
+  * debian/patches/gringo-domain-fwd-decl.patch: New file.
+  * debian/control: Build-Depends on re2c to recreate parser.cpp from
+    parser.r2c, add boost version libboost-*N.MM-dev.
+  * debian/rules: Add override_dh_auto_configure and remove parser.cpp and
+    converter.cpp to force recreation of re2c lexer files.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 25 Dec 2011 18:44:20 +0100
+
+gringo (3.0.3-6) unstable; urgency=low
+
+  * debian/control: Setup as Debian Science project.
+    - Set Maintainer to Debian Science Maintainers and Uploaders to Thomas
+      Krennwallner.
+    - Set DM-Upload-Allowed to yes.
+    - Convert bzr repository to git and use Vcs-Git and Vcs-Browser
+      accordingly.
+    - Build-Depends on debhelper >= 8.0.0.
+  * debian/rules: Add override_dh_auto_build to get rid off
+    debian/patches/gringo-makefile.patch.
+  * debian/patches/gringo-makefile.patch debian/patches/series: Remove
+    debian/patches/gringo-makefile.patch.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 05 Sep 2011 13:21:51 +0200
+
+gringo (3.0.3-5~natty1) natty; urgency=low
+
+  * debian/watch: Fix lintian debian-watch-contains-dh_make-template.
+  * debian/control: Lower Priority to extra and bump Standards-Version to
+    3.9.2.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 29 Apr 2011 07:11:12 +0200
+
+gringo (3.0.3-4) unstable; urgency=low
+
+  * debian/control: Combine gringo, clingo, and iclingo binary packages
+    into gringo.
+   + Conflicts and Replaces clingo and iclingo.
+  * debian/copyright: Convert to DEP-5 format and add missing licenses.
+  * debian/rules: Add override_dh_installchangelogs for CHANGES file.
+  * debian/install: Install gringo, clingo and iclingo.
+  * Refresh debian/patches/gringo-makefile.patch; do not install anything
+    here.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 22 Feb 2011 09:38:26 +0100
+
+gringo (3.0.3-3) unstable; urgency=low
+
+  * Initial upload (Closes: #605879)
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 05 Dec 2010 18:01:28 +0100
+
+gringo (3.0.3-2) unstable; urgency=low
+
+  * Upload to mentors.debian.net.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sat, 20 Nov 2010 09:43:35 +0100
+
+gringo (3.0.3-1~maverick1) maverick; urgency=low
+
+  * New upstream release.
+
+  * Fix changelog entries.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 12 Nov 2010 05:53:36 +0100
+
+gringo (3.0.2-2~maverick1) maverick; urgency=low
+
+  * Tag distro-series.
+
+  * Fix Standards-Version and Priority.
+
+  * Suggest potassco-guide.
+
+  * Fix missing changelog.
+
+  * Add additional authors to copyright.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 10 Oct 2010 08:50:01 +0200
+
+gringo (3.0.2-1) lucid; urgency=low
+
+  * New upstream release.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Mon, 04 Oct 2010 22:03:12 +0200
+
+gringo (3.0.1-2) lucid; urgency=low
+
+  * Build with system-wide liblua5.1-dev.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 28 Jul 2010 06:15:10 +0200
+
+gringo (3.0.1-1) lucid; urgency=low
+
+  * New upstream release.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 27 Jul 2010 06:00:34 +0200
+
+gringo (2.0.5-6) lucid; urgency=low
+
+  * Switch to dpkg-source 3.0 (quilt) format.
+
+  * Fix lintian warning debhelper-but-no-misc-depends: add ${misc:Depends} to potassco-guide.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Sun, 06 Jun 2010 18:18:22 +0200
+
+gringo (2.0.5-5) lucid; urgency=low
+
+  * Added watch file.
+
+  * Added Vcs-Bzr to control.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Tue, 01 Jun 2010 14:47:13 +0200
+
+gringo (2.0.5-4) lucid; urgency=low
+
+  * Set Architecture of all binary packages to "any".
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 28 May 2010 09:21:58 +0200
+
+gringo (2.0.5-3) lucid; urgency=low
+
+  * Set Architecture of all binary packages to "all".
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Fri, 28 May 2010 07:04:46 +0200
+
+gringo (2.0.5-2) lucid; urgency=low
+
+  * Moved to Ubuntu PPA.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Wed, 26 May 2010 00:33:32 +0200
+
+gringo (2.0.5-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Thomas Krennwallner <tkren@kr.tuwien.ac.at>  Thu, 04 Mar 2010 19:47:14 +0100
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..5c6dde4
--- /dev/null
+++ b/control
@@ -0,0 +1,54 @@
+Source: gringo
+Section: interpreters
+Priority: optional
+Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
+Uploaders: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+Build-Depends: debhelper (>= 11),
+ debhelper-compat (= 12),
+ dpkg-dev (>= 1.16.1~),
+ pkg-kde-tools,
+ g++-9 (>= 9.2.1),
+ cmake (>= 3.1.0),
+ re2c,
+ bison,
+ liblua5.3-dev,
+ python3 (>= 3.8.2),
+ libpython3-dev (>= 3.8.2),
+ python3-distutils (>= 3.8.2)
+Rules-Requires-Root: no
+Standards-Version: 4.5.0
+Vcs-Git: https://salsa.debian.org/science-team/gringo.git
+Vcs-Browser: https://salsa.debian.org/science-team/gringo
+Homepage: https://www.potassco.org/clingo/
+
+Package: gringo
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: clasp
+Replaces: clingo, iclingo
+Conflicts: clingo, iclingo
+Breaks:
+ aspcud (<= 1.9.0-2),
+ clasp (<< 3.2.1-1)
+Description: grounding tools for (disjunctive) logic programs
+ Current answer set solvers work on variable-free programs. Hence, a
+ grounder is needed that, given an input program with first-order
+ variables, computes an equivalent ground (variable-free) program.
+ .
+ This package contains the following tools:
+ .
+  - gringo: a grounder that, given an input program with first-order
+    variables, computes an equivalent ground (variable-free) program in
+    aspif format. Its output can be processed further with answer set
+    solver clasp. Starting with gringo series 5, its output is no longer
+    directly compatible with solvers like smodels or cmodels reading
+    smodels format. Use lpconvert for translating aspif format to
+    smodels format.
+  - clingo: combines both gringo and clasp into a monolithic system.
+    This way it offers more control over the grounding and solving
+    process than gringo and clasp can offer individually: multi-shot
+    solving.
+  - lpconvert: converter between gringo's aspif and smodels format.
+  - reify: small utility that reifies logic programs given in aspif
+    format. It produces a set of facts, which can be processed further
+    with gringo.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..9c6d2c6
--- /dev/null
+++ b/copyright
@@ -0,0 +1,35 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: gringo
+Upstream-Contact: Roland Kaminski <kaminski@cs.uni-potsdam.de>
+Source: https://github.com/potassco/clingo/releases
+
+
+Files: *
+Copyright: 2017, Roland Kaminski
+License: MIT
+
+
+Files: debian/*
+Copyright: 2010-2017, Thomas Krennwallner
+License: MIT
+
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/docs b/docs
new file mode 100644 (file)
index 0000000..b9de7ba
--- /dev/null
+++ b/docs
@@ -0,0 +1,2 @@
+README.md
+examples
diff --git a/gbp.conf b/gbp.conf
new file mode 100644 (file)
index 0000000..cec628c
--- /dev/null
+++ b/gbp.conf
@@ -0,0 +1,2 @@
+[DEFAULT]
+pristine-tar = True
diff --git a/gringo.links b/gringo.links
new file mode 100644 (file)
index 0000000..b6bd93e
--- /dev/null
@@ -0,0 +1,6 @@
+usr/bin/clingo usr/bin/iclingo
+usr/bin/clingo usr/bin/oclingo
+usr/lib/libclingo.so.3.0 usr/lib/libclingo.so.3
+usr/lib/libclingo.so.3 usr/lib/libclingo.so
+usr/share/man/man1/clingo.1 usr/share/man/man1/iclingo.1
+usr/share/man/man1/clingo.1 usr/share/man/man1/oclingo.1
diff --git a/gringo.manpages b/gringo.manpages
new file mode 100644 (file)
index 0000000..8d0e373
--- /dev/null
@@ -0,0 +1,4 @@
+gringo.1
+clingo.1
+reify.1
+lpconvert.1
diff --git a/install b/install
new file mode 100644 (file)
index 0000000..66d3e5b
--- /dev/null
+++ b/install
@@ -0,0 +1,5 @@
+build.dir/hardening_mt/bin/gringo usr/bin/
+build.dir/hardening_mt/bin/clingo usr/bin/
+build.dir/hardening_mt/bin/reify usr/bin/
+build.dir/hardening_mt/bin/lpconvert usr/bin/
+build.dir/hardening_mt/bin/libclingo.so.3.0 usr/lib/
diff --git a/missing-sources/doc/py/js/highlight.js b/missing-sources/doc/py/js/highlight.js
new file mode 100644 (file)
index 0000000..795cc28
--- /dev/null
@@ -0,0 +1,816 @@
+/*
+Syntax highlighting with language autodetection.
+https://highlightjs.org/
+*/
+
+(function(factory) {
+
+  // Find the global object for export to both the browser and web workers.
+  var globalObject = typeof window === 'object' && window ||
+                     typeof self === 'object' && self;
+
+  // Setup highlight.js for different environments. First is Node.js or
+  // CommonJS.
+  if(typeof exports !== 'undefined') {
+    factory(exports);
+  } else if(globalObject) {
+    // Export hljs globally even when using AMD for cases when this script
+    // is loaded with others that may still expect a global hljs.
+    globalObject.hljs = factory({});
+
+    // Finally register the global hljs with AMD.
+    if(typeof define === 'function' && define.amd) {
+      define([], function() {
+        return globalObject.hljs;
+      });
+    }
+  }
+
+}(function(hljs) {
+  // Convenience variables for build-in objects
+  var ArrayProto = [],
+      objectKeys = Object.keys;
+
+  // Global internal variables used within the highlight.js library.
+  var languages = {},
+      aliases   = {};
+
+  // Regular expressions used throughout the highlight.js library.
+  var noHighlightRe    = /^(no-?highlight|plain|text)$/i,
+      languagePrefixRe = /\blang(?:uage)?-([\w-]+)\b/i,
+      fixMarkupRe      = /((^(<[^>]+>|\t|)+|(?:\n)))/gm;
+
+  var spanEndTag = '</span>';
+
+  // Global options used when within external APIs. This is modified when
+  // calling the `hljs.configure` function.
+  var options = {
+    classPrefix: 'hljs-',
+    tabReplace: null,
+    useBR: false,
+    languages: undefined
+  };
+
+
+  /* Utility functions */
+
+  function escape(value) {
+    return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+  }
+
+  function tag(node) {
+    return node.nodeName.toLowerCase();
+  }
+
+  function testRe(re, lexeme) {
+    var match = re && re.exec(lexeme);
+    return match && match.index === 0;
+  }
+
+  function isNotHighlighted(language) {
+    return noHighlightRe.test(language);
+  }
+
+  function blockLanguage(block) {
+    var i, match, length, _class;
+    var classes = block.className + ' ';
+
+    classes += block.parentNode ? block.parentNode.className : '';
+
+    // language-* takes precedence over non-prefixed class names.
+    match = languagePrefixRe.exec(classes);
+    if (match) {
+      return getLanguage(match[1]) ? match[1] : 'no-highlight';
+    }
+
+    classes = classes.split(/\s+/);
+
+    for (i = 0, length = classes.length; i < length; i++) {
+      _class = classes[i]
+
+      if (isNotHighlighted(_class) || getLanguage(_class)) {
+        return _class;
+      }
+    }
+  }
+
+  function inherit(parent) {  // inherit(parent, override_obj, override_obj, ...)
+    var key;
+    var result = {};
+    var objects = Array.prototype.slice.call(arguments, 1);
+
+    for (key in parent)
+      result[key] = parent[key];
+    objects.forEach(function(obj) {
+      for (key in obj)
+        result[key] = obj[key];
+    });
+    return result;
+  }
+
+  /* Stream merging */
+
+  function nodeStream(node) {
+    var result = [];
+    (function _nodeStream(node, offset) {
+      for (var child = node.firstChild; child; child = child.nextSibling) {
+        if (child.nodeType === 3)
+          offset += child.nodeValue.length;
+        else if (child.nodeType === 1) {
+          result.push({
+            event: 'start',
+            offset: offset,
+            node: child
+          });
+          offset = _nodeStream(child, offset);
+          // Prevent void elements from having an end tag that would actually
+          // double them in the output. There are more void elements in HTML
+          // but we list only those realistically expected in code display.
+          if (!tag(child).match(/br|hr|img|input/)) {
+            result.push({
+              event: 'stop',
+              offset: offset,
+              node: child
+            });
+          }
+        }
+      }
+      return offset;
+    })(node, 0);
+    return result;
+  }
+
+  function mergeStreams(original, highlighted, value) {
+    var processed = 0;
+    var result = '';
+    var nodeStack = [];
+
+    function selectStream() {
+      if (!original.length || !highlighted.length) {
+        return original.length ? original : highlighted;
+      }
+      if (original[0].offset !== highlighted[0].offset) {
+        return (original[0].offset < highlighted[0].offset) ? original : highlighted;
+      }
+
+      /*
+      To avoid starting the stream just before it should stop the order is
+      ensured that original always starts first and closes last:
+
+      if (event1 == 'start' && event2 == 'start')
+        return original;
+      if (event1 == 'start' && event2 == 'stop')
+        return highlighted;
+      if (event1 == 'stop' && event2 == 'start')
+        return original;
+      if (event1 == 'stop' && event2 == 'stop')
+        return highlighted;
+
+      ... which is collapsed to:
+      */
+      return highlighted[0].event === 'start' ? original : highlighted;
+    }
+
+    function open(node) {
+      function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value).replace('"', '&quot;') + '"';}
+      result += '<' + tag(node) + ArrayProto.map.call(node.attributes, attr_str).join('') + '>';
+    }
+
+    function close(node) {
+      result += '</' + tag(node) + '>';
+    }
+
+    function render(event) {
+      (event.event === 'start' ? open : close)(event.node);
+    }
+
+    while (original.length || highlighted.length) {
+      var stream = selectStream();
+      result += escape(value.substring(processed, stream[0].offset));
+      processed = stream[0].offset;
+      if (stream === original) {
+        /*
+        On any opening or closing tag of the original markup we first close
+        the entire highlighted node stack, then render the original tag along
+        with all the following original tags at the same offset and then
+        reopen all the tags on the highlighted stack.
+        */
+        nodeStack.reverse().forEach(close);
+        do {
+          render(stream.splice(0, 1)[0]);
+          stream = selectStream();
+        } while (stream === original && stream.length && stream[0].offset === processed);
+        nodeStack.reverse().forEach(open);
+      } else {
+        if (stream[0].event === 'start') {
+          nodeStack.push(stream[0].node);
+        } else {
+          nodeStack.pop();
+        }
+        render(stream.splice(0, 1)[0]);
+      }
+    }
+    return result + escape(value.substr(processed));
+  }
+
+  /* Initialization */
+
+  function expand_mode(mode) {
+    if (mode.variants && !mode.cached_variants) {
+      mode.cached_variants = mode.variants.map(function(variant) {
+        return inherit(mode, {variants: null}, variant);
+      });
+    }
+    return mode.cached_variants || (mode.endsWithParent && [inherit(mode)]) || [mode];
+  }
+
+  function compileLanguage(language) {
+
+    function reStr(re) {
+        return (re && re.source) || re;
+    }
+
+    function langRe(value, global) {
+      return new RegExp(
+        reStr(value),
+        'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
+      );
+    }
+
+    function compileMode(mode, parent) {
+      if (mode.compiled)
+        return;
+      mode.compiled = true;
+
+      mode.keywords = mode.keywords || mode.beginKeywords;
+      if (mode.keywords) {
+        var compiled_keywords = {};
+
+        var flatten = function(className, str) {
+          if (language.case_insensitive) {
+            str = str.toLowerCase();
+          }
+          str.split(' ').forEach(function(kw) {
+            var pair = kw.split('|');
+            compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
+          });
+        };
+
+        if (typeof mode.keywords === 'string') { // string
+          flatten('keyword', mode.keywords);
+        } else {
+          objectKeys(mode.keywords).forEach(function (className) {
+            flatten(className, mode.keywords[className]);
+          });
+        }
+        mode.keywords = compiled_keywords;
+      }
+      mode.lexemesRe = langRe(mode.lexemes || /\w+/, true);
+
+      if (parent) {
+        if (mode.beginKeywords) {
+          mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
+        }
+        if (!mode.begin)
+          mode.begin = /\B|\b/;
+        mode.beginRe = langRe(mode.begin);
+        if (!mode.end && !mode.endsWithParent)
+          mode.end = /\B|\b/;
+        if (mode.end)
+          mode.endRe = langRe(mode.end);
+        mode.terminator_end = reStr(mode.end) || '';
+        if (mode.endsWithParent && parent.terminator_end)
+          mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
+      }
+      if (mode.illegal)
+        mode.illegalRe = langRe(mode.illegal);
+      if (mode.relevance == null)
+        mode.relevance = 1;
+      if (!mode.contains) {
+        mode.contains = [];
+      }
+      mode.contains = Array.prototype.concat.apply([], mode.contains.map(function(c) {
+        return expand_mode(c === 'self' ? mode : c)
+      }));
+      mode.contains.forEach(function(c) {compileMode(c, mode);});
+
+      if (mode.starts) {
+        compileMode(mode.starts, parent);
+      }
+
+      var terminators =
+        mode.contains.map(function(c) {
+          return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
+        })
+        .concat([mode.terminator_end, mode.illegal])
+        .map(reStr)
+        .filter(Boolean);
+      mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
+    }
+
+    compileMode(language);
+  }
+
+  /*
+  Core highlighting function. Accepts a language name, or an alias, and a
+  string with the code to highlight. Returns an object with the following
+  properties:
+
+  - relevance (int)
+  - value (an HTML string with highlighting markup)
+
+  */
+  function highlight(name, value, ignore_illegals, continuation) {
+
+    function subMode(lexeme, mode) {
+      var i, length;
+
+      for (i = 0, length = mode.contains.length; i < length; i++) {
+        if (testRe(mode.contains[i].beginRe, lexeme)) {
+          return mode.contains[i];
+        }
+      }
+    }
+
+    function endOfMode(mode, lexeme) {
+      if (testRe(mode.endRe, lexeme)) {
+        while (mode.endsParent && mode.parent) {
+          mode = mode.parent;
+        }
+        return mode;
+      }
+      if (mode.endsWithParent) {
+        return endOfMode(mode.parent, lexeme);
+      }
+    }
+
+    function isIllegal(lexeme, mode) {
+      return !ignore_illegals && testRe(mode.illegalRe, lexeme);
+    }
+
+    function keywordMatch(mode, match) {
+      var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
+      return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
+    }
+
+    function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
+      var classPrefix = noPrefix ? '' : options.classPrefix,
+          openSpan    = '<span class="' + classPrefix,
+          closeSpan   = leaveOpen ? '' : spanEndTag
+
+      openSpan += classname + '">';
+
+      return openSpan + insideSpan + closeSpan;
+    }
+
+    function processKeywords() {
+      var keyword_match, last_index, match, result;
+
+      if (!top.keywords)
+        return escape(mode_buffer);
+
+      result = '';
+      last_index = 0;
+      top.lexemesRe.lastIndex = 0;
+      match = top.lexemesRe.exec(mode_buffer);
+
+      while (match) {
+        result += escape(mode_buffer.substring(last_index, match.index));
+        keyword_match = keywordMatch(top, match);
+        if (keyword_match) {
+          relevance += keyword_match[1];
+          result += buildSpan(keyword_match[0], escape(match[0]));
+        } else {
+          result += escape(match[0]);
+        }
+        last_index = top.lexemesRe.lastIndex;
+        match = top.lexemesRe.exec(mode_buffer);
+      }
+      return result + escape(mode_buffer.substr(last_index));
+    }
+
+    function processSubLanguage() {
+      var explicit = typeof top.subLanguage === 'string';
+      if (explicit && !languages[top.subLanguage]) {
+        return escape(mode_buffer);
+      }
+
+      var result = explicit ?
+                   highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
+                   highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
+
+      // Counting embedded language score towards the host language may be disabled
+      // with zeroing the containing mode relevance. Usecase in point is Markdown that
+      // allows XML everywhere and makes every XML snippet to have a much larger Markdown
+      // score.
+      if (top.relevance > 0) {
+        relevance += result.relevance;
+      }
+      if (explicit) {
+        continuations[top.subLanguage] = result.top;
+      }
+      return buildSpan(result.language, result.value, false, true);
+    }
+
+    function processBuffer() {
+      result += (top.subLanguage != null ? processSubLanguage() : processKeywords());
+      mode_buffer = '';
+    }
+
+    function startNewMode(mode) {
+      result += mode.className? buildSpan(mode.className, '', true): '';
+      top = Object.create(mode, {parent: {value: top}});
+    }
+
+    function processLexeme(buffer, lexeme) {
+
+      mode_buffer += buffer;
+
+      if (lexeme == null) {
+        processBuffer();
+        return 0;
+      }
+
+      var new_mode = subMode(lexeme, top);
+      if (new_mode) {
+        if (new_mode.skip) {
+          mode_buffer += lexeme;
+        } else {
+          if (new_mode.excludeBegin) {
+            mode_buffer += lexeme;
+          }
+          processBuffer();
+          if (!new_mode.returnBegin && !new_mode.excludeBegin) {
+            mode_buffer = lexeme;
+          }
+        }
+        startNewMode(new_mode, lexeme);
+        return new_mode.returnBegin ? 0 : lexeme.length;
+      }
+
+      var end_mode = endOfMode(top, lexeme);
+      if (end_mode) {
+        var origin = top;
+        if (origin.skip) {
+          mode_buffer += lexeme;
+        } else {
+          if (!(origin.returnEnd || origin.excludeEnd)) {
+            mode_buffer += lexeme;
+          }
+          processBuffer();
+          if (origin.excludeEnd) {
+            mode_buffer = lexeme;
+          }
+        }
+        do {
+          if (top.className) {
+            result += spanEndTag;
+          }
+          if (!top.skip) {
+            relevance += top.relevance;
+          }
+          top = top.parent;
+        } while (top !== end_mode.parent);
+        if (end_mode.starts) {
+          startNewMode(end_mode.starts, '');
+        }
+        return origin.returnEnd ? 0 : lexeme.length;
+      }
+
+      if (isIllegal(lexeme, top))
+        throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
+
+      /*
+      Parser should not reach this point as all types of lexemes should be caught
+      earlier, but if it does due to some bug make sure it advances at least one
+      character forward to prevent infinite looping.
+      */
+      mode_buffer += lexeme;
+      return lexeme.length || 1;
+    }
+
+    var language = getLanguage(name);
+    if (!language) {
+      throw new Error('Unknown language: "' + name + '"');
+    }
+
+    compileLanguage(language);
+    var top = continuation || language;
+    var continuations = {}; // keep continuations for sub-languages
+    var result = '', current;
+    for(current = top; current !== language; current = current.parent) {
+      if (current.className) {
+        result = buildSpan(current.className, '', true) + result;
+      }
+    }
+    var mode_buffer = '';
+    var relevance = 0;
+    try {
+      var match, count, index = 0;
+      while (true) {
+        top.terminators.lastIndex = index;
+        match = top.terminators.exec(value);
+        if (!match)
+          break;
+        count = processLexeme(value.substring(index, match.index), match[0]);
+        index = match.index + count;
+      }
+      processLexeme(value.substr(index));
+      for(current = top; current.parent; current = current.parent) { // close dangling modes
+        if (current.className) {
+          result += spanEndTag;
+        }
+      }
+      return {
+        relevance: relevance,
+        value: result,
+        language: name,
+        top: top
+      };
+    } catch (e) {
+      if (e.message && e.message.indexOf('Illegal') !== -1) {
+        return {
+          relevance: 0,
+          value: escape(value)
+        };
+      } else {
+        throw e;
+      }
+    }
+  }
+
+  /*
+  Highlighting with language detection. Accepts a string with the code to
+  highlight. Returns an object with the following properties:
+
+  - language (detected language)
+  - relevance (int)
+  - value (an HTML string with highlighting markup)
+  - second_best (object with the same structure for second-best heuristically
+    detected language, may be absent)
+
+  */
+  function highlightAuto(text, languageSubset) {
+    languageSubset = languageSubset || options.languages || objectKeys(languages);
+    var result = {
+      relevance: 0,
+      value: escape(text)
+    };
+    var second_best = result;
+    languageSubset.filter(getLanguage).forEach(function(name) {
+      var current = highlight(name, text, false);
+      current.language = name;
+      if (current.relevance > second_best.relevance) {
+        second_best = current;
+      }
+      if (current.relevance > result.relevance) {
+        second_best = result;
+        result = current;
+      }
+    });
+    if (second_best.language) {
+      result.second_best = second_best;
+    }
+    return result;
+  }
+
+  /*
+  Post-processing of the highlighted markup:
+
+  - replace TABs with something more useful
+  - replace real line-breaks with '<br>' for non-pre containers
+
+  */
+  function fixMarkup(value) {
+    return !(options.tabReplace || options.useBR)
+      ? value
+      : value.replace(fixMarkupRe, function(match, p1) {
+          if (options.useBR && match === '\n') {
+            return '<br>';
+          } else if (options.tabReplace) {
+            return p1.replace(/\t/g, options.tabReplace);
+          }
+          return '';
+      });
+  }
+
+  function buildClassName(prevClassName, currentLang, resultLang) {
+    var language = currentLang ? aliases[currentLang] : resultLang,
+        result   = [prevClassName.trim()];
+
+    if (!prevClassName.match(/\bhljs\b/)) {
+      result.push('hljs');
+    }
+
+    if (prevClassName.indexOf(language) === -1) {
+      result.push(language);
+    }
+
+    return result.join(' ').trim();
+  }
+
+  /*
+  Applies highlighting to a DOM node containing code. Accepts a DOM node and
+  two optional parameters for fixMarkup.
+  */
+  function highlightBlock(block) {
+    var node, originalStream, result, resultNode, text;
+    var language = blockLanguage(block);
+
+    if (isNotHighlighted(language))
+        return;
+
+    if (options.useBR) {
+      node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
+      node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
+    } else {
+      node = block;
+    }
+    text = node.textContent;
+    result = language ? highlight(language, text, true) : highlightAuto(text);
+
+    originalStream = nodeStream(node);
+    if (originalStream.length) {
+      resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
+      resultNode.innerHTML = result.value;
+      result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
+    }
+    result.value = fixMarkup(result.value);
+
+    block.innerHTML = result.value;
+    block.className = buildClassName(block.className, language, result.language);
+    block.result = {
+      language: result.language,
+      re: result.relevance
+    };
+    if (result.second_best) {
+      block.second_best = {
+        language: result.second_best.language,
+        re: result.second_best.relevance
+      };
+    }
+  }
+
+  /*
+  Updates highlight.js global options with values passed in the form of an object.
+  */
+  function configure(user_options) {
+    options = inherit(options, user_options);
+  }
+
+  /*
+  Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
+  */
+  function initHighlighting() {
+    if (initHighlighting.called)
+      return;
+    initHighlighting.called = true;
+
+    var blocks = document.querySelectorAll('pre code');
+    ArrayProto.forEach.call(blocks, highlightBlock);
+  }
+
+  /*
+  Attaches highlighting to the page load event.
+  */
+  function initHighlightingOnLoad() {
+    addEventListener('DOMContentLoaded', initHighlighting, false);
+    addEventListener('load', initHighlighting, false);
+  }
+
+  function registerLanguage(name, language) {
+    var lang = languages[name] = language(hljs);
+    if (lang.aliases) {
+      lang.aliases.forEach(function(alias) {aliases[alias] = name;});
+    }
+  }
+
+  function listLanguages() {
+    return objectKeys(languages);
+  }
+
+  function getLanguage(name) {
+    name = (name || '').toLowerCase();
+    return languages[name] || languages[aliases[name]];
+  }
+
+  /* Interface definition */
+
+  hljs.highlight = highlight;
+  hljs.highlightAuto = highlightAuto;
+  hljs.fixMarkup = fixMarkup;
+  hljs.highlightBlock = highlightBlock;
+  hljs.configure = configure;
+  hljs.initHighlighting = initHighlighting;
+  hljs.initHighlightingOnLoad = initHighlightingOnLoad;
+  hljs.registerLanguage = registerLanguage;
+  hljs.listLanguages = listLanguages;
+  hljs.getLanguage = getLanguage;
+  hljs.inherit = inherit;
+
+  // Common regexps
+  hljs.IDENT_RE = '[a-zA-Z]\\w*';
+  hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
+  hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
+  hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
+  hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
+  hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
+
+  // Common modes
+  hljs.BACKSLASH_ESCAPE = {
+    begin: '\\\\[\\s\\S]', relevance: 0
+  };
+  hljs.APOS_STRING_MODE = {
+    className: 'string',
+    begin: '\'', end: '\'',
+    illegal: '\\n',
+    contains: [hljs.BACKSLASH_ESCAPE]
+  };
+  hljs.QUOTE_STRING_MODE = {
+    className: 'string',
+    begin: '"', end: '"',
+    illegal: '\\n',
+    contains: [hljs.BACKSLASH_ESCAPE]
+  };
+  hljs.PHRASAL_WORDS_MODE = {
+    begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+  };
+  hljs.COMMENT = function (begin, end, inherits) {
+    var mode = hljs.inherit(
+      {
+        className: 'comment',
+        begin: begin, end: end,
+        contains: []
+      },
+      inherits || {}
+    );
+    mode.contains.push(hljs.PHRASAL_WORDS_MODE);
+    mode.contains.push({
+      className: 'doctag',
+      begin: '(?:TODO|FIXME|NOTE|BUG|XXX):',
+      relevance: 0
+    });
+    return mode;
+  };
+  hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
+  hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
+  hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
+  hljs.NUMBER_MODE = {
+    className: 'number',
+    begin: hljs.NUMBER_RE,
+    relevance: 0
+  };
+  hljs.C_NUMBER_MODE = {
+    className: 'number',
+    begin: hljs.C_NUMBER_RE,
+    relevance: 0
+  };
+  hljs.BINARY_NUMBER_MODE = {
+    className: 'number',
+    begin: hljs.BINARY_NUMBER_RE,
+    relevance: 0
+  };
+  hljs.CSS_NUMBER_MODE = {
+    className: 'number',
+    begin: hljs.NUMBER_RE + '(' +
+      '%|em|ex|ch|rem'  +
+      '|vw|vh|vmin|vmax' +
+      '|cm|mm|in|pt|pc|px' +
+      '|deg|grad|rad|turn' +
+      '|s|ms' +
+      '|Hz|kHz' +
+      '|dpi|dpcm|dppx' +
+      ')?',
+    relevance: 0
+  };
+  hljs.REGEXP_MODE = {
+    className: 'regexp',
+    begin: /\//, end: /\/[gimuy]*/,
+    illegal: /\n/,
+    contains: [
+      hljs.BACKSLASH_ESCAPE,
+      {
+        begin: /\[/, end: /\]/,
+        relevance: 0,
+        contains: [hljs.BACKSLASH_ESCAPE]
+      }
+    ]
+  };
+  hljs.TITLE_MODE = {
+    className: 'title',
+    begin: hljs.IDENT_RE,
+    relevance: 0
+  };
+  hljs.UNDERSCORE_TITLE_MODE = {
+    className: 'title',
+    begin: hljs.UNDERSCORE_IDENT_RE,
+    relevance: 0
+  };
+  hljs.METHOD_GUARD = {
+    // excludes method names from keyword processing
+    begin: '\\.\\s*' + hljs.UNDERSCORE_IDENT_RE,
+    relevance: 0
+  };
+
+  return hljs;
+}));
diff --git a/patches/gringo-manpages.patch b/patches/gringo-manpages.patch
new file mode 100644 (file)
index 0000000..034401a
--- /dev/null
@@ -0,0 +1,265 @@
+From: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+Date: Wed, 7 Dec 2016 07:50:31 +0100
+Subject: Add gringo.1, clingo.1, lpconvert.1, and reify.1 manpages
+
+===================================================================
+---
+ clingo.1    | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gringo.1    | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ lpconvert.1 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ reify.1     | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 225 insertions(+)
+ create mode 100644 clingo.1
+ create mode 100644 gringo.1
+ create mode 100644 lpconvert.1
+ create mode 100644 reify.1
+
+diff --git a/clingo.1 b/clingo.1
+new file mode 100644
+index 0000000..ba04b34
+--- /dev/null
++++ b/clingo.1
+@@ -0,0 +1,58 @@
++.\"                                      Hey, EMACS: -*- nroff -*-
++.\" First parameter, NAME, should be all caps
++.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
++.\" other parameters are allowed: see man(7), man(1)
++.TH CLINGO 1 "December 11, 2016"
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh        disable hyphenation
++.\" .hy        enable hyphenation
++.\" .ad l      left justify
++.\" .ad b      justify to both left and right margins
++.\" .nf        disable filling
++.\" .fi        enable filling
++.\" .br        insert line break
++.\" .sp <n>    insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++clingo \- a combination of clasp and gringo
++.SH SYNOPSIS
++.B clingo
++[\fIOPTION\fR]... \fR[\fIFILE\fR]...
++.SH DESCRIPTION
++This manual page documents briefly the
++.B clingo
++command.
++.PP
++.\" TeX users may be more comfortable with the \fB<whatever>\fP and
++.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
++.\" respectively.
++\fBclingo\fP stands for clasp on gringo and combines both systems in a
++monolithic way. Its input language is that of gringo and its output
++corresponds to that of clasp. This way it offers more control over the
++grounding and solving process than gringo and clasp can offer
++individually: multi-shot solving.
++.SH OPTIONS
++These programs follow the usual GNU command line syntax, with long
++options starting with two dashes (`-').
++A summary of options is included below.
++For a complete description, see the potassco-guide at
++https://sourceforge.net/projects/potassco/files/guide/.
++.TP
++.B \-h, \-\-help
++Show summary of options.
++.TP
++.B \-v, \-\-version
++Show version of program.
++.SH SEE ALSO
++.BR clasp (1),
++.BR gringo (1),
++.BR lpconvert (1),
++.BR reify (1)
++.br
++.SH AUTHOR
++clingo was written by Roland Kaminski <kaminski@cs.uni-potsdam.de>
++.PP
++This manual page was written by Thomas Krennwallner <tkren@kr.tuwien.ac.at>,
++for the Debian project (and may be used by others).
+diff --git a/gringo.1 b/gringo.1
+new file mode 100644
+index 0000000..7587e8e
+--- /dev/null
++++ b/gringo.1
+@@ -0,0 +1,60 @@
++.\"                                      Hey, EMACS: -*- nroff -*-
++.\" First parameter, NAME, should be all caps
++.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
++.\" other parameters are allowed: see man(7), man(1)
++.TH GRINGO 1 "December 11, 2016"
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh        disable hyphenation
++.\" .hy        enable hyphenation
++.\" .ad l      left justify
++.\" .ad b      justify to both left and right margins
++.\" .nf        disable filling
++.\" .fi        enable filling
++.\" .br        insert line break
++.\" .sp <n>    insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++gringo \- a grounder for non-ground logic programs
++.SH SYNOPSIS
++.B gringo
++[\fIOPTION\fR]... \fR[\fIFILE\fR]...
++.SH DESCRIPTION
++This manual page documents briefly the
++.B gringo
++command.
++.PP
++.\" TeX users may be more comfortable with the \fB<whatever>\fP and
++.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
++.\" respectively.
++\fBgringo\fP is a grounder that, given an input program with first-order
++variables, computes an equivalent ground (variable-free) program in
++aspif format. Its output can be processed further with answer set solver
++clasp. Starting with gringo series 5, its output is no longer directly
++compatible with solvers like smodels or cmodels reading smodels format.
++Use the \fBlpconvert\fP converter for translating aspif format to
++smodels format.
++.SH OPTIONS
++These programs follow the usual GNU command line syntax, with long
++options starting with two dashes (`-').
++A summary of options is included below.
++For a complete description, see the potassco-guide at
++https://sourceforge.net/projects/potassco/files/guide/.
++.TP
++.B \-h, \-\-help
++Show summary of options.
++.TP
++.B \-v, \-\-version
++Show version of program.
++.SH SEE ALSO
++.BR clasp (1),
++.BR clingo (1),
++.BR lpconvert (1),
++.BR reify (1)
++.br
++.SH AUTHOR
++gringo was written by Roland Kaminski <kaminski@cs.uni-potsdam.de>
++.PP
++This manual page was written by Thomas Krennwallner <tkren@kr.tuwien.ac.at>,
++for the Debian project (and may be used by others).
+diff --git a/lpconvert.1 b/lpconvert.1
+new file mode 100644
+index 0000000..f5d931e
+--- /dev/null
++++ b/lpconvert.1
+@@ -0,0 +1,53 @@
++.\"                                      Hey, EMACS: -*- nroff -*-
++.\" First parameter, NAME, should be all caps
++.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
++.\" other parameters are allowed: see man(7), man(1)
++.TH LPCONVERT 1 "December 11, 2016"
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh        disable hyphenation
++.\" .hy        enable hyphenation
++.\" .ad l      left justify
++.\" .ad b      justify to both left and right margins
++.\" .nf        disable filling
++.\" .fi        enable filling
++.\" .br        insert line break
++.\" .sp <n>    insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++lpconvert \- converter between gringo's aspif and smodels format
++.SH SYNOPSIS
++.B lpconvert
++\fR[\fIOPTION\fR]... \fR[\fIFILE\fR]...
++.SH DESCRIPTION
++This manual page documents briefly the
++.B lpconvert
++command.
++.PP
++.\" TeX users may be more comfortable with the \fB<whatever>\fP and
++.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
++.\" respectively.
++\fBlpconvert\fP is a converter between gringo's aspif and smodels
++format.
++.SH OPTIONS
++These programs follow the usual GNU command line syntax, with long
++options starting with two dashes (`-').  A summary of options is
++included below.  For a complete description, see the potassco-guide
++https://sourceforge.net/projects/potassco/files/guide/2.0/.
++.TP
++.B \-h, \-\-help
++Show summary of options.
++.TP
++.B \-v, \-\-version
++Show version of program.
++.SH SEE ALSO
++.BR clasp (1),
++.BR gringo (1),
++.BR reify (1)
++.br
++.SH AUTHOR
++lpconvert was written by Roland Kaminski <kaminski@cs.uni-potsdam.de>
++.PP
++This manual page was written by Thomas Krennwallner <tkren@kr.tuwien.ac.at>,
++for the Debian project (and may be used by others).
+diff --git a/reify.1 b/reify.1
+new file mode 100644
+index 0000000..aea2db7
+--- /dev/null
++++ b/reify.1
+@@ -0,0 +1,54 @@
++.\"                                      Hey, EMACS: -*- nroff -*-
++.\" First parameter, NAME, should be all caps
++.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
++.\" other parameters are allowed: see man(7), man(1)
++.TH REIFY 1 "December 11, 2016"
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh        disable hyphenation
++.\" .hy        enable hyphenation
++.\" .ad l      left justify
++.\" .ad b      justify to both left and right margins
++.\" .nf        disable filling
++.\" .fi        enable filling
++.\" .br        insert line break
++.\" .sp <n>    insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++reify \- a small utility that reifies logic programs
++.SH SYNOPSIS
++.B reify
++\fR[\fIOPTION\fR]...
++.SH DESCRIPTION
++This manual page documents briefly the
++.B reify
++command.
++.PP
++.\" TeX users may be more comfortable with the \fB<whatever>\fP and
++.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
++.\" respectively.
++\fBreify\fP is a small utility that reifies logic programs given in
++aspif format by reading standard input.  It produces a set of facts,
++which can be processed further with gringo.
++.SH OPTIONS
++These programs follow the usual GNU command line syntax, with long
++options starting with two dashes (`-').  A summary of options is
++included below.  For a complete description, see the potassco-guide
++https://sourceforge.net/projects/potassco/files/guide/2.0/.
++.TP
++.B \-h, \-\-help
++Show summary of options.
++.TP
++.B \-v, \-\-version
++Show version of program.
++.SH SEE ALSO
++.BR clasp (1),
++.BR gringo (1),
++.BR lpconvert (1)
++.br
++.SH AUTHOR
++reify was written by Roland Kaminski <kaminski@cs.uni-potsdam.de>
++.PP
++This manual page was written by Thomas Krennwallner <tkren@kr.tuwien.ac.at>,
++for the Debian project (and may be used by others).
diff --git a/patches/gringo-python3-utf8.patch b/patches/gringo-python3-utf8.patch
new file mode 100644 (file)
index 0000000..d5908cc
--- /dev/null
@@ -0,0 +1,28 @@
+From: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+Date: Mon, 5 Feb 2018 06:31:16 +0000
+Subject: Fix testsuite for python3 when reading utf-8 scripts
+
+===================================================================
+---
+ app/clingo/tests/run.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/app/clingo/tests/run.py b/app/clingo/tests/run.py
+index 640ae0f..687089d 100755
+--- a/app/clingo/tests/run.py
++++ b/app/clingo/tests/run.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ import re
+ import os
+@@ -134,7 +134,7 @@ if parse_ret.action == "run":
+         for f in sorted(files):
+             if f.endswith(".lp"):
+                 b = os.path.join(root, f[:-3])
+-                with open(b + ".lp", 'rU') as inst_file:
++                with open(b + ".lp", 'rU', encoding='utf-8') as inst_file:
+                     inst = inst_file.read()
+                     if (not with_python and re.search(r"#script[ ]*\(python\)", inst)) or \
+                        (not with_lua and re.search(r"#script[ ]*\(lua\)", inst)) or \
diff --git a/patches/link-libatomic-check.patch b/patches/link-libatomic-check.patch
new file mode 100644 (file)
index 0000000..ec832be
--- /dev/null
@@ -0,0 +1,59 @@
+From: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+Date: Wed, 11 Mar 2020 06:50:20 -0400
+Subject: link with libatomic on architectures that require it
+
+Last-Update: 2020-03-11
+Forwarded: no
+
+clingo requires c++11 threads with 64bit __atomic_exchange, we need to
+link with libatomic on armel, powerpc, powerpcspe, m68k, mips, mipsel,
+and sh4, see also https://gcc.gnu.org/wiki/Atomic and
+https://gcc.gnu.org/wiki/Atomic/GCCMM/LIbrary
+
+This patch was shamelessly adapted from
+https://github.com/potassco/clasp/blob/master/CMakeLists.txt
+https://github.com/potassco/clasp/commit/fe3e176e2813956000bb947479de2c3d80fe34be
+---
+ CMakeLists.txt | 29 +++++++++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 243469a..df92db8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,6 +17,35 @@ include(CMakeDependentOption)
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ include(clingo_functions)
++# Add libatomic if necessary
++include (CheckCXXSourceCompiles)
++set (OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
++set (OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
++find_package(Threads REQUIRED)
++list(APPEND CMAKE_REQUIRED_FLAGS "-std=c++11")
++list(APPEND CMAKE_REQUIRED_LIBRARIES Threads::Threads)
++check_cxx_source_compiles("
++#include <atomic>
++#include <cstdint>
++std::atomic<uint64_t> x (0);
++int main() {
++      uint64_t i = x.load(std::memory_order_relaxed);
++      return 0;
++}
++" CLINGO_HAS_WORKING_LIBATOMIC)
++set (CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
++set (CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES})
++if (NOT CLINGO_HAS_WORKING_LIBATOMIC)
++      # clingo requires c++11 threads with 64bit __atomic_exchange, we
++      # need to link with libatomic on armel, powerpc, powerpcspe, m68k,
++      # mips, mipsel, and sh4, see also https://gcc.gnu.org/wiki/Atomic
++      # https://gcc.gnu.org/wiki/Atomic/GCCMM/LIbrary
++      check_library_exists(atomic __atomic_fetch_add_4 "" CLINGO_HAS_LIBATOMIC)
++      if (CLINGO_HAS_LIBATOMIC)
++              set_property(TARGET Threads::Threads APPEND PROPERTY INTERFACE_LINK_LIBRARIES "atomic")
++      endif()
++endif()
++
+ # Enable folders in IDEs like Visual Studio
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
diff --git a/patches/python3.8-compat.patch b/patches/python3.8-compat.patch
new file mode 100644 (file)
index 0000000..460b983
--- /dev/null
@@ -0,0 +1,30 @@
+From: Steve Langasek <steve.langasek@ubuntu.com>
+Date: Wed, 11 Mar 2020 06:49:13 -0400
+Subject: fix compatibility with Python 3.8
+
+Last-Update: 2020-02-20
+Forwarded: no
+Bug-Debian: https://bugs.debian.org/951707
+
+Python 3.8 changes the type of an element of the PyTypeObject struct
+(https://www.python.org/dev/peps/pep-0590/) leading to compiler errors.
+---
+ libpyclingo/pyclingo.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libpyclingo/pyclingo.cc b/libpyclingo/pyclingo.cc
+index 9480203..31293da 100644
+--- a/libpyclingo/pyclingo.cc
++++ b/libpyclingo/pyclingo.cc
+@@ -1177,7 +1177,11 @@ PyTypeObject ObjectBase<T>::type = {
+     sizeof(T),                                  // tp_basicsize
+     0,                                          // tp_itemsize
+     PythonDetail::Get_tp_dealloc<T>::value,     // tp_dealloc
++#if PY_VERSION_HEX >= 0x03080000
++    0,                                          // tp_vectorcall_offset
++#else
+     nullptr,                                    // tp_print
++#endif
+     nullptr,                                    // tp_getattr
+     nullptr,                                    // tp_setattr
+     nullptr,                                    // tp_compare
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..926c9a8
--- /dev/null
@@ -0,0 +1,4 @@
+gringo-manpages.patch
+gringo-python3-utf8.patch
+python3.8-compat.patch
+link-libatomic-check.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..e3e004e
--- /dev/null
+++ b/rules
@@ -0,0 +1,60 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# use custom hardening config flags for compiling clasp
+CONFIG=hardening
+CONFIGPARMS = -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -LAH -DCMAKE_SKIP_RPATH=YES -DCLINGO_MANAGE_RPATH=OFF -DLIB_POTASSCO_BUILD_APP=ON -DLIB_POTASSCO_BUILD_TESTS=ON -DCLASP_BUILD_APP=OFF -DCLASP_BUILD_TESTS=OFF -DCLASP_BUILD_EXAMPLES=OFF -DCLINGO_BUILD_EXAMPLES=ON -DCLINGO_BUILD_TESTS=ON -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
+TOPBUILDDIR = build.dir/$(CONFIG)_mt
+ROOTDIR = $(shell pwd)
+
+#
+# export CXXFLAGS and LDFLAGS for cmake
+#
+# default to -O3 -Wall -DNDEBUG and enable all hardening flags
+#
+DEB_CXXFLAGS_MAINT_APPEND = -O3 -Wall
+DEB_CPPFLAGS_MAINT_APPEND = -DNDEBUG
+DEB_LDFLAGS_MAINT_APPEND =
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+# force g++-9
+export CXX = g++-9
+export CC = gcc-9
+# inject CPPFLAGS to CXXFLAGS
+CXXFLAGS += $(CPPFLAGS)
+
+%:
+       dh $@ --with pkgkde_symbolshelper
+
+# configure with cmake
+override_dh_auto_configure:
+       dh_auto_configure --builddirectory=$(TOPBUILDDIR) -- $(CONFIGPARMS)
+
+# build binaries in $(TOPBUILDDIR)
+override_dh_auto_build:
+       dh_auto_build --builddirectory=$(TOPBUILDDIR)
+
+override_dh_auto_clean:
+       dh_auto_clean --builddirectory=$(TOPBUILDDIR)
+
+# run and output test results
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+       dh_auto_test --builddirectory=$(TOPBUILDDIR) -- -e LD_LIBRARY_PATH="$(ROOTDIR)/$(TOPBUILDDIR)/bin:$(LD_LIBRARY_PATH)" &&\
+               { EXIT_CODE=$$? ; echo "Exit $$EXIT_CODE" ; test -d $(TOPBUILDDIR)/Testing/Temporary && tail -n +1 -v -- $(TOPBUILDDIR)/Testing/Temporary/* ; exit $$EXIT_CODE ; } ||\
+               { EXIT_CODE=$$? ; echo "Exit $$EXIT_CODE" ; test -d $(TOPBUILDDIR)/Testing/Temporary && tail -n +1 -v -- $(TOPBUILDDIR)/Testing/Temporary/* ; exit $$EXIT_CODE ; }
+endif
+
+# install CHANGES.md as changelog
+override_dh_installchangelogs:
+       dh_installchangelogs CHANGES.md
+
+override_dh_shlibdeps:
+       dh_shlibdeps -l$(shell pwd)/$(TOPBUILDDIR)/bin
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/symbols b/symbols
new file mode 100644 (file)
index 0000000..edef224
--- /dev/null
+++ b/symbols
@@ -0,0 +1,351 @@
+# SymbolsHelper-Confirmed: 5.4.0-1 amd64 arm64 armel armhf hppa hurd-i386 i386 m68k mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sh4 x32
+libclingo.so.3 gringo #MINVER#
+ (optional=templinst)_ZNKSt5ctypeIcE8do_widenEc@Base 5.4.0
+ (optional=templinst)_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE4findERKS5_@Base 5.4.0
+ (optional=templinst)_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE10_M_emplaceIJS8_EEES6_INSA_14_Node_iteratorIS8_Lb0ELb1EEEbESt17integral_constantIbLb1EEDpOT_@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE9_M_rehashE{size_t}RK{size_t}@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableIiSt4pairIKi{uint64_t}ESaIS2_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE5eraseENS4_20_Node_const_iteratorIS2_Lb0ELb0EEE@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableIiSt4pairIKi{uint64_t}ESaIS2_ENSt8__detail10_Select1stESt8equal_toIiESt4hashIiENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashE{size_t}RK{size_t}@Base 5.4.0
+ (optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64 !ppc64el !riscv64 !s390x)_ZNSt10_HashtableIjSt4pairIKjPKcESaIS4_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEjRS1_@Base 5.4.0-1
+ (optional=templinst|arch=amd64 arm64 mips64el ppc64 ppc64el riscv64 s390x)_ZNSt10_HashtableIjSt4pairIKjPKcESaIS4_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE9_M_rehashEmRKm@Base 5.4.0
+ (optional=templinst)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE11equal_rangeERS1_@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE13_M_rehash_auxE{size_t}St17integral_constantIbLb0EE@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE20_M_insert_multi_nodeEPNS4_10_Hash_nodeIS2_Lb0EEE{size_t}SI_@Base 5.4.0
+ (optional=templinst|arch=!arm64 !hurd-i386 !i386 !ppc64el !riscv64 !sh4)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEE5clearEv@Base 5.4.0
+ (optional=templinst)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt10_HashtableIjSt4pairIKjjESaIS2_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb0EEEED2Ev@Base 5.4.0
+ (optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64 !ppc64el !riscv64 !s390x)_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEjRKj@Base 5.4.0-1
+ (optional=templinst|arch=amd64 arm64 mips64el ppc64 ppc64el riscv64 s390x)_ZNSt10_HashtableIjjSaIjENSt8__detail9_IdentityESt8equal_toIjESt4hashIjENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmRKm@Base 5.4.0
+ (optional=templinst|arch=amd64 arm64 mips64el ppc64 ppc64el riscv64 s390x)_ZNSt10_HashtableImmSaImENSt8__detail9_IdentityESt8equal_toImESt4hashImENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEmRKm@Base 5.4.0
+ (optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64 !ppc64el !riscv64 !s390x)_ZNSt10_HashtableIyySaIyENSt8__detail9_IdentityESt8equal_toIyESt4hashIyENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE9_M_rehashEjRKj@Base 5.4.0-1
+ (optional=templinst|subst)_ZNSt10_HashtableI{uint64_t}{uint64_t}SaI{uint64_t}ENSt8__detail9_IdentityESt8equal_toI{uint64_t}ESt4hashI{uint64_t}ENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE21_M_insert_unique_nodeE{size_t}{size_t}PNS1_10_Hash_nodeI{uint64_t}Lb0EEE{size_t}@Base 5.4.0
+ (optional=templinst|subst)_ZNSt10_HashtableI{uint64_t}{uint64_t}SaI{uint64_t}ENSt8__detail9_IdentityESt8equal_toI{uint64_t}ESt4hashI{uint64_t}ENS1_18_Mod_range_hashingENS1_20_Default_ranged_hashENS1_20_Prime_rehash_policyENS1_17_Hashtable_traitsILb0ELb1ELb1EEEE5eraseENS1_20_Node_const_iteratorI{uint64_t}Lb1ELb0EEE@Base 5.4.0
+ (optional=templinst)_ZNSt14_Function_base13_Base_managerISt5_BindIFMN5Clasp3Cli12ClaspAppBaseEFbRNS2_11ClaspFacadeEEPN6Gringo9ClingoAppESt12_PlaceholderILi1EEEEE10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation@Base 5.4.0
+ (optional=templinst)_ZNSt14_Function_base13_Base_managerISt5_BindIFMN5Clasp3Cli12ClaspAppBaseEFbRNS2_14ProgramBuilderEEPN6Gringo9ClingoAppESt12_PlaceholderILi1EEEEE10_M_managerERSt9_Any_dataRKSH_St18_Manager_operation@Base 5.4.0
+ (optional=templinst)_ZNSt14_Function_base13_Base_managerISt5_BindIFMN6Gringo10IClingoAppEFvNS2_8WarningsEPKcEPS3_St12_PlaceholderILi1EESA_ILi2EEEEE10_M_managerERSt9_Any_dataRKSG_St18_Manager_operation@Base 5.4.0
+ (optional=templinst)_ZNSt14_Function_base13_Base_managerIZNK6Gringo11ClingoModel5atomsEjEUljE_E10_M_managerERSt9_Any_dataRKS5_St18_Manager_operation@Base 5.4.0
+ (optional=templinst)_ZNSt15__exception_ptr12__dest_thunkISt13runtime_errorEEvPv@Base 5.4.0
+ (optional=templinst|arch=armel riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE10_M_releaseEv@Base 5.4.0-1
+ (optional=templinst|arch=!armel !riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv@Base 5.4.0
+ (optional=templinst)_ZNSt20__uninitialized_copyILb0EE13__uninit_copyISt13move_iteratorIPN6Gringo5Input10CheckLevelEES6_EET0_T_S9_S8_@Base 5.4.0
+ (optional=templinst)_ZNSt20__uninitialized_copyILb0EE13__uninit_copyISt13move_iteratorIPN6Gringo5Input7CSPElemEES6_EET0_T_S9_S8_@Base 5.4.0
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 5.4.0-1
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 5.4.0-1
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 5.4.0-1
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 5.4.0-1
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 5.4.0-1
+ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 5.4.0-1
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 5.4.0
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 5.4.0
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 5.4.0
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 5.4.0
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 5.4.0
+ (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt3_V28__rotateIPjEET_S2_S2_S2_St26random_access_iterator_tag@Base 5.4.0
+ (optional=templinst)_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEE6_M_runEv@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEED0Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEE6_M_runEv@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEED0Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input10TermVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input11BdLitVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input11BoundVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13CSPAddTermUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13CSPElemVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13CSPMulTermUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13CondLitVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13TermVecVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13TheoryAtomUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input13TheoryTermUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input14TheoryOpDefUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input14TheoryOpVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input15TheoryDefVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input15TheoryOptermUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input16BdAggrElemVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input16HdAggrElemVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input16TheoryAtomDefUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input16TheoryElemVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input16TheoryTermDefUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input17TheoryOpDefVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input18TheoryOptermVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input6LitUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input7TermUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input8HdLitUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input8IdVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input9CSPLitUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIN6Gringo5Input9LitVecUidESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0
+ (optional=templinst|subst)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_default_appendE{size_t}@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIPcSaIS0_EE17_M_realloc_insertIJS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIPvSaIS0_EE12emplace_backIJS0_EEEvDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIPvSaIS0_EE17_M_realloc_insertIJS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIS_IPKcSaIS1_EESaIS3_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_@Base 5.4.0
+ _ZNSt6vectorISt10unique_ptrIA_cSt14default_deleteIS1_EESaIS4_EE17_M_realloc_insertIJDnEEEvN9__gnu_cxx17__normal_iteratorIPS4_S6_EEDpOT_@Base 5.4.0
+ _ZNSt6vectorISt10unique_ptrIA_cSt14default_deleteIS1_EESaIS4_EE17_M_realloc_insertIJPcEEEvN9__gnu_cxx17__normal_iteratorIPS4_S6_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorISt4pairIPKciESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_@Base 5.4.0
+ (optional=templinst|arch=!amd64 !arm64 !ppc64 !ppc64el !s390x !sh4 !x32)_ZNSt6vectorISt4pairIS0_IjjEjESaIS2_EE17_M_realloc_insertIJS1_RjEEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_@Base 5.4.0-1
+ (optional=templinst|arch=!hppa !mips64el !riscv64)_ZNSt6vectorISt4pairIiiESaIS1_EE17_M_realloc_insertIJRKiS6_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst|arch=!hppa !mips64el !riscv64)_ZNSt6vectorISt4pairIiiESaIS1_EE17_M_realloc_insertIJiiEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorISt4pairIijESaIS1_EE12emplace_backIJRS1_EEEvDpOT_@Base 5.4.0
+ (optional=templinst|arch=!hppa !mips64el !riscv64)_ZNSt6vectorISt4pairIijESaIS1_EE17_M_realloc_insertIJRiiEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst|arch=!hppa !mips64el !riscv64)_ZNSt6vectorISt4pairIijESaIS1_EE17_M_realloc_insertIJRijEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst|arch=hppa mips64el riscv64)_ZNSt6vectorISt4pairIjjESaIS1_EE12emplace_backIJRjjEEEvDpOT_@Base 5.4.0-1
+ (optional=templinst)_ZNSt6vectorISt4pairIjjESaIS1_EE12emplace_backIJS1_EEEvDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJRjjEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorISt4pairIjjESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIbSaIbEE13_M_insert_auxESt13_Bit_iteratorb@Base 5.4.0
+ (optional=templinst|subst)_ZNSt6vectorIbSaIbEE14_M_fill_insertESt13_Bit_iterator{size_t}b@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIcSaIcEE12emplace_backIJcEEEvDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIcSaIcEE15_M_range_insertIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcES0_EEEEEEvNS4_IPcS1_EET_SF_St20forward_iterator_tag@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIcSaIcEE15_M_range_insertIPKcEEvN9__gnu_cxx17__normal_iteratorIPcS1_EET_S9_St20forward_iterator_tag@Base 5.4.0
+ (optional=templinst|subst)_ZNSt6vectorIcSaIcEE17_M_default_appendE{size_t}@Base 5.4.0
+ (optional=templinst|subst)_ZNSt6vectorIcSaIcEE7reserveE{size_t}@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE12emplace_backIJRjEEEvDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE12emplace_backIJjEEEvDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE15_M_range_insertIN9__gnu_cxx17__normal_iteratorIPjS1_EEEEvS6_T_S7_St20forward_iterator_tag@Base 5.4.0
+ (optional=templinst|subst)_ZNSt6vectorIjSaIjEE17_M_default_appendE{size_t}@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRN6Gringo6Output22BodyAggregateElements_12ClauseOffsetEEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJiEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED0Ev@Base 5.4.0
+ (optional=templinst)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED1Ev@Base 5.4.0
+ (optional=templinst)_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEED2Ev@Base 5.4.0
+ (optional=templinst)_ZNSt7__cxx114listIjSaIjEE4sortIN5Clasp9ClaspVmtf9LessLevelEEEvT_@Base 5.4.0
+ (optional=templinst|arch=!mips64el !ppc64 !ppc64el !riscv64 !s390x)_ZNSt7__cxx114listIjSaIjEE5mergeIN5Clasp9ClaspVmtf9LessLevelEEEvOS2_T_@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE16_M_insert_uniqueIRKS5_EESt4pairISt17_Rb_tree_iteratorIS5_EbEOT_@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE24_M_get_insert_unique_posERKS5_@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE7_M_copyINSB_20_Reuse_or_alloc_nodeEEEPSt13_Rb_tree_nodeIS5_EPKSF_PSt18_Rb_tree_node_baseRT_@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EEaSERKSB_@Base 5.4.0
+ (optional=templinst|subst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_{size_t}ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE16_M_insert_uniqueIS8_EES6_ISt17_Rb_tree_iteratorIS8_EbEOT_@Base 5.4.0
+ (optional=templinst|subst)_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_{size_t}ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E@Base 5.4.0
+ (optional=templinst|arch=armel armhf hurd-i386 i386 mipsel powerpc)_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE16_M_insert_uniqueIiEESt4pairISt17_Rb_tree_iteratorIiEbEOT_@Base 5.4.0-1
+ (optional=templinst|arch=!m68k)_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE17_M_emplace_uniqueIJiEEESt4pairISt17_Rb_tree_iteratorIiEbEDpOT_@Base 5.4.0
+ (optional=templinst)_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE8_M_eraseEPSt13_Rb_tree_nodeIiE@Base 5.4.0
+ (optional=templinst)_ZNSt8functionIFbjEEC1ERKS1_@Base 5.4.0
+ (optional=templinst)_ZNSt8functionIFbjEEC2ERKS1_@Base 5.4.0
+ (optional=templinst|subst)_ZSt17__rotate_adaptiveIPjS0_{ssize_t}ET_S1_S1_S1_T1_S2_T0_S2_@Base 5.4.0
+ (arch=armel riscv64)_ZTIN9__gnu_cxx7__mutexE@Base 5.4.0-1
+ _ZTINSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEEE@Base 5.4.0
+ _ZTINSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEEE@Base 5.4.0
+ (arch=armel riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ (arch=armel riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ (arch=armel armhf)_ZTISt19_Sp_make_shared_tag@Base 5.4.0-1
+ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ (arch=armel riscv64)_ZTSN9__gnu_cxx7__mutexE@Base 5.4.0-1
+ _ZTSNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEEE@Base 5.4.0
+ _ZTSNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEEE@Base 5.4.0
+ (arch=armel riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ (arch=armel riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ _ZTSSt19_Sp_make_shared_tag@Base 5.4.0
+ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ _ZTVNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp11ClaspFacade13SolveStrategyENS4_11SolveMode_tEEPNS6_5AsyncENS7_1EEEEEEEE@Base 5.4.0
+ _ZTVNSt6thread11_State_implINS_8_InvokerISt5tupleIJSt10mem_fun1_tIvN5Clasp2mt13ParallelSolveEjEPS6_jEEEEEE@Base 5.4.0
+ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE1EE@Base 5.4.0-1
+ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIjSaIjELN9__gnu_cxx12_Lock_policyE2EE@Base 5.4.0-1
+ _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@Base 5.4.0
+ clingo_add_string@Base 5.4.0
+ clingo_assignment_decision@Base 5.4.0
+ clingo_assignment_decision_level@Base 5.4.0
+ clingo_assignment_has_conflict@Base 5.4.0
+ clingo_assignment_has_literal@Base 5.4.0
+ clingo_assignment_is_false@Base 5.4.0
+ clingo_assignment_is_fixed@Base 5.4.0
+ clingo_assignment_is_total@Base 5.4.0
+ clingo_assignment_is_true@Base 5.4.0
+ clingo_assignment_level@Base 5.4.0
+ clingo_assignment_max_size@Base 5.4.0
+ clingo_assignment_root_level@Base 5.4.0
+ clingo_assignment_size@Base 5.4.0
+ clingo_assignment_truth_value@Base 5.4.0
+ clingo_backend_acyc_edge@Base 5.4.0
+ clingo_backend_add_atom@Base 5.4.0
+ clingo_backend_assume@Base 5.4.0
+ clingo_backend_begin@Base 5.4.0
+ clingo_backend_end@Base 5.4.0
+ clingo_backend_external@Base 5.4.0
+ clingo_backend_heuristic@Base 5.4.0
+ clingo_backend_minimize@Base 5.4.0
+ clingo_backend_project@Base 5.4.0
+ clingo_backend_rule@Base 5.4.0
+ clingo_backend_weight_rule@Base 5.4.0
+ clingo_configuration_array_at@Base 5.4.0
+ clingo_configuration_array_size@Base 5.4.0
+ clingo_configuration_description@Base 5.4.0
+ clingo_configuration_map_at@Base 5.4.0
+ clingo_configuration_map_has_subkey@Base 5.4.0
+ clingo_configuration_map_size@Base 5.4.0
+ clingo_configuration_map_subkey_name@Base 5.4.0
+ clingo_configuration_root@Base 5.4.0
+ clingo_configuration_type@Base 5.4.0
+ clingo_configuration_value_get@Base 5.4.0
+ clingo_configuration_value_get_size@Base 5.4.0
+ clingo_configuration_value_is_assigned@Base 5.4.0
+ clingo_configuration_value_set@Base 5.4.0
+ clingo_control_add@Base 5.4.0
+ clingo_control_assign_external@Base 5.4.0
+ clingo_control_backend@Base 5.4.0
+ clingo_control_clasp_facade@Base 5.4.0
+ clingo_control_cleanup@Base 5.4.0
+ clingo_control_configuration@Base 5.4.0
+ clingo_control_free@Base 5.4.0
+ clingo_control_get_const@Base 5.4.0
+ clingo_control_ground@Base 5.4.0
+ clingo_control_has_const@Base 5.4.0
+ clingo_control_interrupt@Base 5.4.0
+ clingo_control_is_conflicting@Base 5.4.0
+ clingo_control_load@Base 5.4.0
+ clingo_control_new@Base 5.4.0
+ clingo_control_program_builder@Base 5.4.0
+ clingo_control_register_observer@Base 5.4.0
+ clingo_control_register_propagator@Base 5.4.0
+ clingo_control_release_external@Base 5.4.0
+ clingo_control_solve@Base 5.4.0
+ clingo_control_statistics@Base 5.4.0
+ clingo_control_symbolic_atoms@Base 5.4.0
+ clingo_control_theory_atoms@Base 5.4.0
+ clingo_control_use_enumeration_assumption@Base 5.4.0
+ clingo_error_code@Base 5.4.0
+ clingo_error_message@Base 5.4.0
+ clingo_error_string@Base 5.4.0
+ clingo_main@Base 5.4.0
+ clingo_main_@Base 5.4.0
+ clingo_model_contains@Base 5.4.0
+ clingo_model_context@Base 5.4.0
+ clingo_model_cost@Base 5.4.0
+ clingo_model_cost_size@Base 5.4.0
+ clingo_model_extend@Base 5.4.0
+ clingo_model_is_true@Base 5.4.0
+ clingo_model_number@Base 5.4.0
+ clingo_model_optimality_proven@Base 5.4.0
+ clingo_model_symbols@Base 5.4.0
+ clingo_model_symbols_size@Base 5.4.0
+ clingo_model_thread_id@Base 5.4.0
+ clingo_model_type@Base 5.4.0
+ clingo_options_add@Base 5.4.0
+ clingo_options_add_flag@Base 5.4.0
+ clingo_parse_program@Base 5.4.0
+ clingo_parse_term@Base 5.4.0
+ clingo_program_builder_add@Base 5.4.0
+ clingo_program_builder_begin@Base 5.4.0
+ clingo_program_builder_end@Base 5.4.0
+ clingo_propagate_control_add_clause@Base 5.4.0
+ clingo_propagate_control_add_literal@Base 5.4.0
+ clingo_propagate_control_add_watch@Base 5.4.0
+ clingo_propagate_control_assignment@Base 5.4.0
+ clingo_propagate_control_has_watch@Base 5.4.0
+ clingo_propagate_control_propagate@Base 5.4.0
+ clingo_propagate_control_remove_watch@Base 5.4.0
+ clingo_propagate_control_thread_id@Base 5.4.0
+ clingo_propagate_init_add_clause@Base 5.4.0
+ clingo_propagate_init_add_watch@Base 5.4.0
+ clingo_propagate_init_add_watch_to_thread@Base 5.4.0
+ clingo_propagate_init_assignment@Base 5.4.0
+ clingo_propagate_init_get_check_mode@Base 5.4.0
+ clingo_propagate_init_number_of_threads@Base 5.4.0
+ clingo_propagate_init_set_check_mode@Base 5.4.0
+ clingo_propagate_init_solver_literal@Base 5.4.0
+ clingo_propagate_init_symbolic_atoms@Base 5.4.0
+ clingo_propagate_init_theory_atoms@Base 5.4.0
+ clingo_register_script_@Base 5.4.0
+ clingo_script_version_@Base 5.4.0
+ clingo_set_error@Base 5.4.0
+ clingo_signature_arity@Base 5.4.0
+ clingo_signature_create@Base 5.4.0
+ clingo_signature_hash@Base 5.4.0
+ clingo_signature_is_equal_to@Base 5.4.0
+ clingo_signature_is_less_than@Base 5.4.0
+ clingo_signature_is_negative@Base 5.4.0
+ clingo_signature_is_positive@Base 5.4.0
+ clingo_signature_name@Base 5.4.0
+ clingo_solve_control_add_clause@Base 5.4.0
+ clingo_solve_control_symbolic_atoms@Base 5.4.0
+ clingo_solve_handle_cancel@Base 5.4.0
+ clingo_solve_handle_close@Base 5.4.0
+ clingo_solve_handle_get@Base 5.4.0
+ clingo_solve_handle_model@Base 5.4.0
+ clingo_solve_handle_resume@Base 5.4.0
+ clingo_solve_handle_wait@Base 5.4.0
+ clingo_statistics_array_at@Base 5.4.0
+ clingo_statistics_array_push@Base 5.4.0
+ clingo_statistics_array_size@Base 5.4.0
+ clingo_statistics_map_add_subkey@Base 5.4.0
+ clingo_statistics_map_at@Base 5.4.0
+ clingo_statistics_map_has_subkey@Base 5.4.0
+ clingo_statistics_map_size@Base 5.4.0
+ clingo_statistics_map_subkey_name@Base 5.4.0
+ clingo_statistics_root@Base 5.4.0
+ clingo_statistics_type@Base 5.4.0
+ clingo_statistics_value_get@Base 5.4.0
+ clingo_statistics_value_set@Base 5.4.0
+ clingo_symbol_arguments@Base 5.4.0
+ clingo_symbol_create_function@Base 5.4.0
+ clingo_symbol_create_id@Base 5.4.0
+ clingo_symbol_create_infimum@Base 5.4.0
+ clingo_symbol_create_number@Base 5.4.0
+ clingo_symbol_create_string@Base 5.4.0
+ clingo_symbol_create_supremum@Base 5.4.0
+ clingo_symbol_hash@Base 5.4.0
+ clingo_symbol_is_equal_to@Base 5.4.0
+ clingo_symbol_is_less_than@Base 5.4.0
+ clingo_symbol_is_negative@Base 5.4.0
+ clingo_symbol_is_positive@Base 5.4.0
+ clingo_symbol_name@Base 5.4.0
+ clingo_symbol_number@Base 5.4.0
+ clingo_symbol_string@Base 5.4.0
+ clingo_symbol_to_string@Base 5.4.0
+ clingo_symbol_to_string_size@Base 5.4.0
+ clingo_symbol_type@Base 5.4.0
+ clingo_symbolic_atoms_begin@Base 5.4.0
+ clingo_symbolic_atoms_end@Base 5.4.0
+ clingo_symbolic_atoms_find@Base 5.4.0
+ clingo_symbolic_atoms_is_external@Base 5.4.0
+ clingo_symbolic_atoms_is_fact@Base 5.4.0
+ clingo_symbolic_atoms_is_valid@Base 5.4.0
+ clingo_symbolic_atoms_iterator_is_equal_to@Base 5.4.0
+ clingo_symbolic_atoms_literal@Base 5.4.0
+ clingo_symbolic_atoms_next@Base 5.4.0
+ clingo_symbolic_atoms_signatures@Base 5.4.0
+ clingo_symbolic_atoms_signatures_size@Base 5.4.0
+ clingo_symbolic_atoms_size@Base 5.4.0
+ clingo_symbolic_atoms_symbol@Base 5.4.0
+ clingo_theory_atoms_atom_elements@Base 5.4.0
+ clingo_theory_atoms_atom_guard@Base 5.4.0
+ clingo_theory_atoms_atom_has_guard@Base 5.4.0
+ clingo_theory_atoms_atom_literal@Base 5.4.0
+ clingo_theory_atoms_atom_term@Base 5.4.0
+ clingo_theory_atoms_atom_to_string@Base 5.4.0
+ clingo_theory_atoms_atom_to_string_size@Base 5.4.0
+ clingo_theory_atoms_element_condition@Base 5.4.0
+ clingo_theory_atoms_element_condition_id@Base 5.4.0
+ clingo_theory_atoms_element_to_string@Base 5.4.0
+ clingo_theory_atoms_element_to_string_size@Base 5.4.0
+ clingo_theory_atoms_element_tuple@Base 5.4.0
+ clingo_theory_atoms_size@Base 5.4.0
+ clingo_theory_atoms_term_arguments@Base 5.4.0
+ clingo_theory_atoms_term_name@Base 5.4.0
+ clingo_theory_atoms_term_number@Base 5.4.0
+ clingo_theory_atoms_term_to_string@Base 5.4.0
+ clingo_theory_atoms_term_to_string_size@Base 5.4.0
+ clingo_theory_atoms_term_type@Base 5.4.0
+ clingo_version@Base 5.4.0
+ clingo_warning_string@Base 5.4.0
+ gringo_main_@Base 5.4.0
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..dd164fd
--- /dev/null
@@ -0,0 +1,2 @@
+Tests: gringo0, gringo1, gringo2, gringo3, gringo4, gringo5, gringo6, gringo7
+Depends: @
diff --git a/tests/gringo0 b/tests/gringo0
new file mode 100755 (executable)
index 0000000..bc3875b
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+# gringo: ground and exit in 0
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+diff -y <(gringo <<<'a :- not b. b :- not a.') - <<EOF
+asp 1 0 0
+1 0 1 1 0 1 -2
+1 0 1 2 0 1 -1
+4 1 b 1 1
+4 1 a 1 2
+0
+EOF
+
+result=$?
+test $result -eq 0
diff --git a/tests/gringo1 b/tests/gringo1
new file mode 100755 (executable)
index 0000000..683823d
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+# gringo: ground and exit in 0
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+diff -y <(gringo <<<'a|b:-not c. c|d:-not a.') - <<EOF
+asp 1 0 0
+1 0 2 1 2 0 1 -3
+1 0 2 4 3 0 1 -2
+4 1 c 1 2
+4 1 b 1 4
+4 1 a 1 3
+4 1 d 1 1
+0
+EOF
+
+result=$?
+test $result -eq 0
diff --git a/tests/gringo2 b/tests/gringo2
new file mode 100755 (executable)
index 0000000..afdb819
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+# clingo: gbie1.lp unsat_01.lp is unsatisfiable
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+clingo /usr/share/doc/gringo/examples/gringo/gbie/{gbie1.lp,instances/unsat_01.lp}
+
+result=$?
+test $result -eq 20
diff --git a/tests/gringo3 b/tests/gringo3
new file mode 100755 (executable)
index 0000000..6143a83
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/bash
+# gringo+lpconvert: ground and exit in 0
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+diff -y <(gringo <<<'a :- not b. b :- not a.' | lpconvert) - <<EOF
+1 2 1 1 3
+1 3 1 1 2
+0
+2 b
+3 a
+0
+B+
+0
+B-
+1
+0
+1
+EOF
+
+result=$?
+test $result -eq 0
diff --git a/tests/gringo4 b/tests/gringo4
new file mode 100755 (executable)
index 0000000..bb3fd05
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+# gringo+reify: ground and exit in 0
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+diff -y <(gringo <<<'a|b. a :- b. b :- a.' | reify | sort) - <<EOF
+atom_tuple(0).
+atom_tuple(0,1).
+atom_tuple(0,2).
+atom_tuple(1).
+atom_tuple(1,2).
+atom_tuple(2).
+atom_tuple(2,1).
+literal_tuple(0).
+literal_tuple(1).
+literal_tuple(1,1).
+literal_tuple(2).
+literal_tuple(2,2).
+output(a,2).
+output(b,1).
+rule(disjunction(0),normal(0)).
+rule(disjunction(1),normal(1)).
+rule(disjunction(2),normal(2)).
+EOF
+
+result=$?
+test $result -eq 0
diff --git a/tests/gringo5 b/tests/gringo5
new file mode 100755 (executable)
index 0000000..6e9d061
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+# clingo+lua: cannot example
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+clingo /usr/share/doc/gringo/examples/clingo/cannot/{cannot-lua,example}.lp
+
+result=$?
+test $result -eq 30
diff --git a/tests/gringo6 b/tests/gringo6
new file mode 100755 (executable)
index 0000000..cd9d5fd
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+# clingo+py: cannot example
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+clingo /usr/share/doc/gringo/examples/clingo/cannot/{cannot-py,example}.lp
+
+result=$?
+test $result -eq 30
diff --git a/tests/gringo7 b/tests/gringo7
new file mode 100755 (executable)
index 0000000..78d0440
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash
+# clingo+py: solve-async example
+# Author: Thomas Krennwallner <tkren@kr.tuwien.ac.at>
+# Date: 2018-02-04
+
+set -o pipefail
+
+clingo /usr/share/doc/gringo/examples/clingo/solve-async/{solve-async-py,program}.lp
+
+result=$?
+test $result -eq 20
diff --git a/upstream/metadata b/upstream/metadata
new file mode 100644 (file)
index 0000000..bed9b23
--- /dev/null
@@ -0,0 +1,33 @@
+Bug-Database: https://github.com/potassco/clingo/issues
+Bug-Submit: https://github.com/potassco/clingo/issues/new
+Changelog: https://github.com/potassco/clingo/blob/master/CHANGES.md
+Contact: https://sourceforge.net/p/potassco/mailman/potassco-users/
+FAQ: https://potassco.org/doc/faq/
+Name: clingo
+Other-References: https://potassco.org/doc/
+Reference:
+  - Author: Martin Gebser and Roland Kaminski and Benjamin Kaufmann and Torsten Schaub
+    Title: Multi-shot ASP solving with clingo
+    Journal: Theory and Practice of Logic Programming
+    Year: 2018
+    Pages: 1–56
+    DOI: 10.1017/S1471068418000054
+    URL: https://arxiv.org/abs/1705.09811
+  - Author: Martin Gebser and Roland Kaminski and Benjamin Kaufmann and Torsten Schaub
+    Title: 'Clingo = ASP + Control: Preliminary Report'
+    Journal: CoRR
+    Year: 2014
+    Number: abs/1405.3694
+    Pages: 9
+    URL: https://arxiv.org/abs/1405.3694
+  - Author: Martin Gebser and Roland Kaminski and Benjamin Kaufmann and Arne König and Torsten Schaub
+    Title: Advances in gringo Series 3
+    Booktitle: Logic Programming and Nonmonotonic Reasoning. International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2011)
+    Editor: James P. Delgrande and Wolfgang Faber
+    Year: 2011
+    Number: 6645
+    Pages: 345–351
+    Type: inproceedings
+    URL: https://arxiv.org/abs/1405.3694
+Repository: https://github.com/potassco/clingo.git
+Repository-Browse: https://github.com/potassco/clingo
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..74d1f5a
--- /dev/null
+++ b/watch
@@ -0,0 +1,7 @@
+# watch control file for uscan
+
+# Compulsory line, this is a version 4 file
+version=4
+
+opts=filenamemangle=s/.+\/v(\d\.\d\.\d)\.tar\.gz/gringo-$1\.tar\.gz/ \
+  https://github.com/potassco/gringo/tags .*/v(\d\.\d\.\d)\.tar\.gz