Initial version

This commit is contained in:
zhiyi 2020-10-10 15:59:22 +08:00
parent a5220e1279
commit 3fc2654edc
4 changed files with 326 additions and 0 deletions

BIN
isl-0.14.tar.xz Normal file

Binary file not shown.

BIN
isl-0.16.1.tar.xz Normal file

Binary file not shown.

116
isl.spec Normal file
View File

@ -0,0 +1,116 @@
Summary: Integer point manipulation library
Name: isl
Version: 0.16.1
License: MIT
URL: http://isl.gforge.inria.fr/
%global libmajor 15
%global libversion %{libmajor}.1.1
%global oldversion 0.14
%global oldlibmajor 13
%global oldlibversion %{oldlibmajor}.1.0
# Please set buildid below when building a private version of this rpm to
# differentiate it from the stock rpm.
#
# % global buildid .local
Release: 10%{?buildid}%{?dist}
BuildRequires: gcc
BuildRequires: gmp-devel
BuildRequires: pkgconfig
Provides: isl = %{oldversion}
Source0: http://isl.gforge.inria.fr/isl-%{version}.tar.xz
# Current gcc requires exactly 0.14
Source1: http://isl.gforge.inria.fr/isl-%{oldversion}.tar.xz
# update python2 src file to python3
Patch0: python3.patch
%description
isl is a library for manipulating sets and relations of integer points
bounded by linear constraints. Supported operations on sets include
intersection, union, set difference, emptiness check, convex hull,
(integer) affine hull, integer projection, computing the lexicographic
minimum using parametric integer programming, coalescing and parametric
vertex enumeration. It also includes an ILP solver based on generalized
basis reduction, transitive closures on maps (which may encode infinite
graphs), dependence analysis and bounds on piecewise step-polynomials.
%package devel
Summary: Development for building integer point manipulation library
Requires: isl%{?_isa} == %{version}-%{release}
Requires: gmp-devel%{?_isa}
%description devel
isl is a library for manipulating sets and relations of integer points
bounded by linear constraints. Supported operations on sets include
intersection, union, set difference, emptiness check, convex hull,
(integer) affine hull, integer projection, computing the lexicographic
minimum using parametric integer programming, coalescing and parametric
vertex enumeration. It also includes an ILP solver based on generalized
basis reduction, transitive closures on maps (which may encode infinite
graphs), dependence analysis and bounds on piecewise step-polynomials.
%prep
%global docdir isl-%{version}
%setup -a 1 -q -n isl -c
%patch0 -p1
%build
cd isl-%{oldversion}
%configure
make %{?_smp_mflags} V=1
cd ..
cd isl-%{version}
%configure
make %{?_smp_mflags} V=1
%install
cd isl-%{oldversion}
%make_install INSTALL="install -p" install-libLTLIBRARIES
cd ..
cd isl-%{version}
%make_install INSTALL="install -p"
rm -f %{buildroot}/%{_libdir}/libisl.a
rm -f %{buildroot}/%{_libdir}/libisl.la
mkdir -p %{buildroot}/%{_datadir}
%global gdbprettydir %{_datadir}/gdb/auto-load/%{_libdir}
mkdir -p %{buildroot}/%{gdbprettydir}
mv %{buildroot}/%{_libdir}/*-gdb.py* %{buildroot}/%{gdbprettydir}
%check
cd isl-%{oldversion}
#make check
cd ..
cd isl-%{version}
#make check
%ldconfig_scriptlets
%files
%{_libdir}/libisl.so.%{libmajor}
%{_libdir}/libisl.so.%{libversion}
%{_libdir}/libisl.so.%{oldlibmajor}
%{_libdir}/libisl.so.%{oldlibversion}
%{gdbprettydir}/*
%license %{docdir}/LICENSE
%doc %{docdir}/AUTHORS %{docdir}/ChangeLog %{docdir}/README
%files devel
%{_includedir}/*
%{_libdir}/libisl.so
%{_libdir}/pkgconfig/isl.pc
%doc %{docdir}/doc/manual.pdf
%changelog
* Sat Oct 10 2020 Zhiyi Weng <zhiyi@iscas.ac.cn> - 0.16.1-10
- Initial version.

210
python3.patch Normal file
View File

@ -0,0 +1,210 @@
diff --git a/isl-0.14/isl.py b/isl-0.14/isl.py
index 6382f63..9b76f42 100644
--- a/isl-0.14/isl.py
+++ b/isl-0.14/isl.py
@@ -64,10 +64,10 @@ class IslPrintCommand (gdb.Command):
printer = str_lookup_function(arg)
if printer == None:
- print "No isl printer for this type"
+ print("No isl printer for this type")
return
- print printer.to_string()
+ print(printer.to_string())
IslPrintCommand()
diff --git a/isl-0.16.1/isl.py b/isl-0.16.1/isl.py
index 6382f63..9b76f42 100644
--- a/isl-0.16.1/isl.py
+++ b/isl-0.16.1/isl.py
@@ -64,10 +64,10 @@ class IslPrintCommand (gdb.Command):
printer = str_lookup_function(arg)
if printer == None:
- print "No isl printer for this type"
+ print("No isl printer for this type")
return
- print printer.to_string()
+ print(printer.to_string())
IslPrintCommand()
diff --git a/isl-0.14/isl.py b/isl-0.14/isl.py
index 9b76f42..06236ef 100644
--- a/isl-0.14/isl.py
+++ b/isl-0.14/isl.py
@@ -3,19 +3,19 @@ import re
# GDB Pretty Printers for most isl objects
class IslObjectPrinter:
- """Print an isl object"""
- def __init__ (self, val, type):
+ """Print an isl object"""
+ def __init__ (self, val, type):
self.val = val
self.type = type
- def to_string (self):
+ def to_string (self):
# Cast val to a void pointer to stop gdb using this pretty
# printer for the pointer which would lead to an infinite loop.
void_ptr = gdb.lookup_type('void').pointer()
value = str(self.val.cast(void_ptr))
printer = gdb.parse_and_eval("isl_printer_to_str(isl_"
+ str(self.type)
- + "_get_ctx(" + value + "))")
+ + "_get_ctx(" + value + "))")
printer = gdb.parse_and_eval("isl_printer_print_"
+ str(self.type) + "("
+ str(printer) + ", "
@@ -25,15 +25,15 @@ class IslObjectPrinter:
gdb.parse_and_eval("isl_printer_free(" + str(printer) + ")")
return string
- def display_hint (self):
+ def display_hint (self):
return 'string'
class IslIntPrinter:
- """Print an isl_int """
- def __init__ (self, val):
+ """Print an isl_int """
+ def __init__ (self, val):
self.val = val
- def to_string (self):
+ def to_string (self):
# Cast val to a void pointer to stop gdb using this pretty
# printer for the pointer which would lead to an infinite loop.
void_ptr = gdb.lookup_type('void').pointer()
@@ -51,7 +51,7 @@ class IslIntPrinter:
gdb.parse_and_eval("isl_ctx_free(" + str(context) + ")")
return string
- def display_hint (self):
+ def display_hint (self):
return 'string'
class IslPrintCommand (gdb.Command):
@@ -72,21 +72,21 @@ class IslPrintCommand (gdb.Command):
IslPrintCommand()
def str_lookup_function (val):
- if val.type.code != gdb.TYPE_CODE_PTR:
- if str(val.type) == "isl_int":
- return IslIntPrinter(val)
+ if val.type.code != gdb.TYPE_CODE_PTR:
+ if str(val.type) == "isl_int":
+ return IslIntPrinter(val)
else:
return None
- lookup_tag = val.type.target()
- regex = re.compile ("^isl_(.*)$")
+ lookup_tag = val.type.target()
+ regex = re.compile ("^isl_(.*)$")
- if lookup_tag == None:
- return None
+ if lookup_tag == None:
+ return None
- m = regex.match (str(lookup_tag))
+ m = regex.match (str(lookup_tag))
- if m:
+ if m:
# Those types of printers defined in isl.
if m.group(1) in ["basic_set", "set", "union_set", "basic_map",
"map", "union_map", "qpolynomial",
diff --git a/isl-0.16.1/isl.py b/isl-0.16.1/isl.py
index 9b76f42..06236ef 100644
--- a/isl-0.16.1/isl.py
+++ b/isl-0.16.1/isl.py
@@ -3,19 +3,19 @@ import re
# GDB Pretty Printers for most isl objects
class IslObjectPrinter:
- """Print an isl object"""
- def __init__ (self, val, type):
+ """Print an isl object"""
+ def __init__ (self, val, type):
self.val = val
self.type = type
- def to_string (self):
+ def to_string (self):
# Cast val to a void pointer to stop gdb using this pretty
# printer for the pointer which would lead to an infinite loop.
void_ptr = gdb.lookup_type('void').pointer()
value = str(self.val.cast(void_ptr))
printer = gdb.parse_and_eval("isl_printer_to_str(isl_"
+ str(self.type)
- + "_get_ctx(" + value + "))")
+ + "_get_ctx(" + value + "))")
printer = gdb.parse_and_eval("isl_printer_print_"
+ str(self.type) + "("
+ str(printer) + ", "
@@ -25,15 +25,15 @@ class IslObjectPrinter:
gdb.parse_and_eval("isl_printer_free(" + str(printer) + ")")
return string
- def display_hint (self):
+ def display_hint (self):
return 'string'
class IslIntPrinter:
- """Print an isl_int """
- def __init__ (self, val):
+ """Print an isl_int """
+ def __init__ (self, val):
self.val = val
- def to_string (self):
+ def to_string (self):
# Cast val to a void pointer to stop gdb using this pretty
# printer for the pointer which would lead to an infinite loop.
void_ptr = gdb.lookup_type('void').pointer()
@@ -51,7 +51,7 @@ class IslIntPrinter:
gdb.parse_and_eval("isl_ctx_free(" + str(context) + ")")
return string
- def display_hint (self):
+ def display_hint (self):
return 'string'
class IslPrintCommand (gdb.Command):
@@ -72,21 +72,21 @@ class IslPrintCommand (gdb.Command):
IslPrintCommand()
def str_lookup_function (val):
- if val.type.code != gdb.TYPE_CODE_PTR:
- if str(val.type) == "isl_int":
- return IslIntPrinter(val)
+ if val.type.code != gdb.TYPE_CODE_PTR:
+ if str(val.type) == "isl_int":
+ return IslIntPrinter(val)
else:
return None
- lookup_tag = val.type.target()
- regex = re.compile ("^isl_(.*)$")
+ lookup_tag = val.type.target()
+ regex = re.compile ("^isl_(.*)$")
- if lookup_tag == None:
- return None
+ if lookup_tag == None:
+ return None
- m = regex.match (str(lookup_tag))
+ m = regex.match (str(lookup_tag))
- if m:
+ if m:
# Those types of printers defined in isl.
if m.group(1) in ["basic_set", "set", "union_set", "basic_map",
"map", "union_map", "qpolynomial",