guberti opened a new issue, #13360:
URL: https://github.com/apache/tvm/issues/13360

   While fixing #13330, I discovered that I could not get 
`tests/python/unittest/test_tir_te_extern_primfunc.py` to pass on `main`. When 
I ran it using Python 3.8.10, it would give the error:
   ```
   ==================================== ERRORS 
====================================
   ____ ERROR collecting tests/python/unittest/test_tir_te_extern_primfunc.py 
_____
   tests/python/unittest/test_tir_te_extern_primfunc.py:36: in <module>
       def func_1(A: T.Buffer[(16,), "float32"], C: T.Buffer[(1,), "float32"]):
   python/tvm/script/tir/prim_func.py:40: in prim_func
       result = from_source(input_func)
   python/tvm/script/parser.py:1368: in from_source
       result = to_ast(input_func, TVMDiagnosticCtx(), parser)
   ../.local/lib/python3.8/site-packages/synr/compiler.py:731: in to_ast
       prog = compiler.compile_module(program_ast)
   ../.local/lib/python3.8/site-packages/synr/compiler.py:100: in compile_module
       new_func = self.compile_def(stmt)
   ../.local/lib/python3.8/site-packages/synr/compiler.py:174: in compile_def
       params = self.compile_args_to_params(args)
   ../.local/lib/python3.8/site-packages/synr/compiler.py:164: in 
compile_args_to_params
       ty = self.compile_type(arg.annotation)
   ../.local/lib/python3.8/site-packages/synr/compiler.py:622: in compile_type
       return self._expr2type(self.compile_expr(ty))
   ../.local/lib/python3.8/site-packages/synr/compiler.py:605: in _expr2type
       assert isinstance(
   E   AssertionError: Expected subscript call to have lhs of Var, but it is 
<class 'synr.ast.Attr'>
   =========================== short test summary info 
============================
   ERROR tests/python/unittest/test_tir_te_extern_primfunc.py - AssertionError: 
...
   !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection 
!!!!!!!!!!!!!!!!!!!!
   =============================== 1 error in 0.22s 
===============================
   ```
   As the error says, Python does not like the type declarations here:
   ```python
   @T.prim_func
   def func_1(A: T.Buffer[(16,), "float32"], C: T.Buffer[(1,), "float32"]):
       # Do stuff
   ```
   
   ### Solution
   
   After some debugging, I realized the test ran correctly with Python 
`3.7.15`. It seems like this is an issue with Python 3.8 (and possibly future 
versions too), but I haven't looked closely enough to be sure. In the meantime, 
I'll work around it by using Python 3.7.
   
   * tir:parser
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to