inducer/islpy

'user' of isl Id object

VinayVasista opened this issue · 1 comments

Hi,

I get this error when I try to call

Id.alloc(ctx, name, user)

where user != None :

File "/usr/lib64/python3.3/site-packages/islpy/_isl.py", line 35073, in alloc
raise Error("passing non-None arguments for 'user' "
islpy._isl.Error: passing non-None arguments for 'user' is not yet supported

So I use my own id -> user map to keep track of Id users and I call -

Id.alloc(ctx, name, None)

This used to work fine with v2016.1.1, however it fails in v2016.1.2 with this error message :

Exception AttributeError: "'NoneType' object has no attribute 'isl_id_free'" in Exception AttributeError: "'NoneType' object has no attribute 'isl_basic_map_free'" in Exception AttributeError: "'NoneType' object has no attribute 'isl_id_free'" in Exception AttributeError: "'NoneType' object has no attribute 'isl_basic_map_free'" in Exception AttributeError: "'NoneType' object has no attribute 'isl_id_free'" in Exception AttributeError: "'NoneType' object has no attribute 'isl_basic_set_free'" in Exception Attr ... (like a hundred times)

I see that its trying to free the Id objects, and users are of NoneType, hence not able to get attributes 'isl_basic_map_free' or 'isl_basic_set_free'. Am I doing something wrong or is this an issue to be fixed in islpy? Please let me know how to resolve this.

Thanks in advance,
Vinay

Can you help me reproduce this? This works fine on my machine:

def test_id_alloc():
    ctx = isl.Context()
    isl.Id.alloc(ctx, "yoink", None)

Ideally, I'd like a short snippet of code that misbehaves every time.