hiactor icon indicating copy to clipboard operation
hiactor copied to clipboard

Hiactor codegen lack diagnostic info

Open zhanglei1949 opened this issue 1 year ago • 0 comments

The Hiactor code generator fails to output essential debug and diagnostic information when code generation from actor.h encounters issues.

Traceback (most recent call last):
  File "/usr/local/bin/hiactor_codegen/actor_codegen.py", line 188, in <module>
    process_actors(act_process_args)
  File "/usr/local/bin/hiactor_codegen/actor_codegen.py", line 72, in process_actors
    p.map(process_one_actor, process_args)
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 367, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 774, in get
    raise self._value
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 48, in mapstar
    return list(map(*args))
  File "/usr/local/bin/hiactor_codegen/actor_codegen.py", line 86, in process_one_actor
    traverse_actor_types(unit.cursor, arg.filepath, act_list, ns_list)
  File "/usr/local/bin/hiactor_codegen/traverse.py", line 171, in traverse_actor_types
    traverse_actor_types(child, filepath, act_list, ns_list)
  File "/usr/local/bin/hiactor_codegen/traverse.py", line 171, in traverse_actor_types
    traverse_actor_types(child, filepath, act_list, ns_list)
  File "/usr/local/bin/hiactor_codegen/traverse.py", line 164, in traverse_actor_types
    methods, base_info = traverse_actor_components(node)
  File "/usr/local/bin/hiactor_codegen/traverse.py", line 144, in traverse_actor_components
    methods.append(check_and_parse_actor_method(node.spelling, child))
  File "/usr/local/bin/hiactor_codegen/traverse.py", line 107, in check_and_parse_actor_method
    raise RuntimeError("The return type {} of method {} in actor class {} should be void or seastar::future!"
RuntimeError: The return type int of method do_codegen in actor class codegen_actor should be void or seastar::future!

zhanglei1949 avatar Jun 14 '24 07:06 zhanglei1949