ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

@jarvisschultz, we found and solved the problem, The analyze() function in /opt/ros/melodic/lib/python2.7/dist-packages/rosmake/gcc_output_parse.py file causes the problem. It uses the { } in the return expression to unhash tuples, but the tuples should contain only strings, numbers, or tuples. In some cases, the tuples contain empty lists that are unhashable and therefore cause the problem.

    def analyze(self):
    """Get dictionary of classified warnings.

    @return A dictionary of lists of warning messages indexed by the warning type
    @rtype {str:[str]}
    """
    return {(t, self.byType(t)) for t, p in self._warning_pattern_map.items()}

We fixed it by updating the last line as:

  return dict((t, self.byType(t)) for t, p in self._warning_pattern_map.items())

all packages compiled without problems. should we mention this point somewhere to be corrected in the next update of melodic?

Thanks, Hamidreza