diff --git a/gen_wrap.py b/gen_wrap.py
index 51bbbf43ad4f77d70ded0107f12b072c626a36d1..b3b4946d8485c84974beb4ce6ec2845ef1cdef8c 100644
--- a/gen_wrap.py
+++ b/gen_wrap.py
@@ -790,6 +790,10 @@ class FunctionData:
             elif name.startswith("equality_") or name.startswith("inequality_"):
                 found_class = True
                 cls = "constraint"
+            elif name == "ast_op_type_set_print_name":
+                found_class = True
+                cls = "printer"
+                name = "ast_op_type_set_print_name"
 
         if name.startswith("2"):
             name = "two_"+name[1:]
diff --git a/isl b/isl
index d7409dcb88f890b871f8dc5dd1fe01112588650b..660ac0ac9c02dac5cc80faa3fe136fd2ff3018cb 160000
--- a/isl
+++ b/isl
@@ -1 +1 @@
-Subproject commit d7409dcb88f890b871f8dc5dd1fe01112588650b
+Subproject commit 660ac0ac9c02dac5cc80faa3fe136fd2ff3018cb
diff --git a/setup.py b/setup.py
index 8672c37316b2e3051ffcd413b15e607845804f35..40753004f9d76c090c5bf7c88bf01b0e2bebad9f 100644
--- a/setup.py
+++ b/setup.py
@@ -126,11 +126,15 @@ def main():
                 "isl_multi_intersect.c",
                 "isl_multi_floor.c",
                 "isl_multi_apply_union_set.c",
+                "isl_multi_cmp.c",
+                "isl_multi_hash.c",
                 "isl_union_templ.c",
                 "isl_union_multi.c",
                 "isl_union_eval.c",
                 "isl_union_neg.c",
                 "isl_union_single.c",
+                "isl_pw_hash.c",
+                "isl_pw_union_opt.c",
                 ]
 
         for fn in glob("isl/*.c"):