<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">While multiprocessing.Pool offers an
alluring API and promises of faster performance, it has many
gotchas and can blow up in many ways. I suggest getting your tool
to work right without multiprocessing.Pool. Only then should you
attempt to use multiprocessing.Pool.<br>
<br>
On 2/11/2013 7:53 AM, Laszlo Nagy wrote:<br>
</div>
<blockquote
cite="mid:CAN=tS+EjRtXfO7k-jiGMgqi8a0c_a80AC4zQpDKqdMvmxM6uxA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div style="">Hi,</div>
<div style=""><br>
</div>
<div style="">I'm trying to use python binding to libclang to
generate include graphs. I took the example program
(bindings/python/examples/cindex/cindex-includes.py) and add
support to read a JSON compilation database, therefore I can
have include graph for a whole project.</div>
<div style=""><br>
</div>
<div style="">Now, I'm running against the Clang project. And it
fails... I compiled Clang with itself. Without any problem...
My tool read the `compile_commands.json` generated by cmake
and pass all arguments (except the compiler and the module).
So it supposes to run the same as it was by clang... And this
is not happen with any modules, it compiles all LLVM code and
the majority of Clang.</div>
<div style=""><br>
</div>
<div style="">Any hints how can I fix it? Or make
it reproducible for a bug report?</div>
<div style=""><br>
</div>
<div style="">Regards,</div>
<div style="">Laszlo</div>
<div style=""><br>
</div>
<div style=""><br>
</div>
<div style="">
The related JSON file entry looks like this:</div>
<div style=""><br>
</div>
<div style="">
<div>{</div>
<div> "directory":
"/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization",</div>
<div>
"command":
"/home/laszlona/Programming/llvm-svn/usr/local/bin/clang++
-D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_GNU_SOURCE
-DCLANG_ENABLE_ARCMT -DCLANG_ENABLE_REWRITER
-DCLANG_ENABLE_STATIC_ANALYZER -fPIC
-fvisibility-inlines-hidden -Wno-nested-anon-types
-Wcovered-switch-default -fno-common -Woverloaded-virtual
-Wcast-qual -fno-strict-aliasing -pedantic -Wno-long-long
-Wall -W -Wno-unused-parameter -Wwrite-strings -fno-rtti -O2
-g
-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization
-I/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization
-I/home/laszlona/Programming/llvm-svn.src/tools/clang/include
-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/include
-I/home/laszlona/Programming/llvm-svn.src/build/include
-I/home/laszlona/Programming/llvm-svn.src/include -Wall
-W -Wno-unused-parameter -Wwrite-strings
-Wmissing-field-initializers -pedantic -Wno-long-long
-fno-exceptions -o
CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o -c
/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp",</div>
<div> "file":
"/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp"</div>
<div>},</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div style="">The error report looks like this:</div>
<div><br>
</div>
<div>python:
/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Sema/SemaInit.cpp:3153:
clang::OverloadingResult
TryRefInitWithConversionFunction(clang::Sema&, const
clang::InitializedEntity&, const
clang::InitializationKind&, clang::Expr*, bool,
clang::InitializationSequence&): Assertion
`!S.CompareReferenceRelationship(Initializer->getLocStart(),
T1, T2, DerivedToBase, ObjCConversion, ObjCLifetimeConversion)
&& "Must have incompatible references when binding via
conversion"' failed.</div>
<div>libclang: crash detected during parsing: {</div>
<div> 'source_filename' :
'/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization/ASTWriterStmt.cpp'</div>
<div> 'command_line_args' : ['-D_GNU_SOURCE', '-D_DEBUG',
'-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
'-D__STDC_LIMIT_MACROS', '-D_GNU_SOURCE',
'-DCLANG_ENABLE_ARCMT', '-DCLANG_ENABLE_REWRITER',
'-DCLANG_ENABLE_STATIC_ANALYZER', '-fPIC',
'-fvisibility-inlines-hidden', '-Wno-nested-anon-types',
'-Wcovered-switch-default', '-fno-common',
'-Woverloaded-virtual', '-Wcast-qual', '-fno-strict-aliasing',
'-pedantic', '-Wno-long-long', '-Wall', '-W',
'-Wno-unused-parameter', '-Wwrite-strings', '-fno-rtti',
'-O2', '-g',
'-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/lib/Serialization',
'-I/home/laszlona/Programming/llvm-svn.src/tools/clang/lib/Serialization',
'-I/home/laszlona/Programming/llvm-svn.src/tools/clang/include',
'-I/home/laszlona/Programming/llvm-svn.src/build/tools/clang/include',
'-I/home/laszlona/Programming/llvm-svn.src/build/include',
'-I/home/laszlona/Programming/llvm-svn.src/include', '-Wall',
'-W', '-Wno-unused-parameter', '-Wwrite-strings',
'-Wmissing-field-initializers', '-pedantic', '-Wno-long-long',
'-fno-exceptions', '-o',
'CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o',
'-c'],</div>
<div> 'unsaved_files' : [],</div>
<div> 'options' : 0,</div>
<div>}</div>
<div>Traceback (most recent call last):</div>
<div> File "./bin/include_graph_to_gexf.py", line 107, in
<module></div>
<div> pool.apply(compile_module_to_queue, args=(q, m))</div>
<div> File "/usr/lib64/python2.7/multiprocessing/pool.py", line
220, in apply</div>
<div> return self.apply_async(func, args, kwds).get()</div>
<div>
File "/usr/lib64/python2.7/multiprocessing/pool.py", line
528, in get</div>
<div> raise self._value</div>
<div>AssertionError</div>
<div>Exception ctypes.ArgumentError: "argument 1: <type
'exceptions.AttributeError'>: 'TranslationUnit' object has
noProcess Process-2:</div>
<div>Traceback (most recent call last):</div>
<div> File "/usr/lib64/python2.7/multiprocessing/process.py",
line 258, in _bootstrap</div>
<div> self.run()</div>
<div> File "/usr/lib64/python2.7/multiprocessing/process.py",
line 114, in run</div>
<div> self._target(*self._args, **self._kwargs)</div>
<div> File "./bin/include_graph_to_gexf.py", line 76, in
build_graph_from_queue</div>
<div> for e in iter(queue.get, 'STOP'):</div>
<div> File "<string>", line 2, in get</div>
<div> File "/usr/lib64/python2.7/multiprocessing/managers.py",
line 759, in _callmethod</div>
<div> kind, result = conn.recv()</div>
<div>EOFError</div>
<div><br>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>