Open ravil-mobile opened 2 months ago
@llvm/issue-subscribers-mlir-python
Author: None (ravil-mobile)
You're trying to print outside of the with context
- just indent entry(module._CAPIPtr)
.
You're trying to print outside of the
with context
- just indententry(module._CAPIPtr)
.
Indenting entry(module._CAPIPtr)
to the right results in the same error.
Actually, I create a context outside of the with
statement. So, context
is a local variable of main
. It is supposed to be destroyed at the end of the function
This kind of stuff
m.def("entry", [](pybind11::object capsule){
MlirModule mlirModule = mlirPythonCapsuleToModule(capsule.ptr());
...
auto module = unwrap(mlirModule);
module->dump();
is "sharp edges". It can be done but takes some careful coordination. I can help you debug further but I'm gonna need to see more of the source. Feel free to ping me on the discord (same handle).
This kind of stuff
m.def("entry", [](pybind11::object capsule){ MlirModule mlirModule = mlirPythonCapsuleToModule(capsule.ptr()); ... auto module = unwrap(mlirModule); module->dump();
is "sharp edges". It can be done but takes some careful coordination. I can help you debug further but I'm gonna need to see more of the source. Feel free to ping me on the discord (same handle).
Thanks @makslevental,
You can find the source code here: https://github.com/ravil-mobile/edsl-mlir/tree/main
Well for starters, dialect_libs
and extension_libs
in
target_link_libraries(edsl_cpp PUBLIC
${dialect_libs}
${extension_libs}
MLIREdslEntry
)
in your CMakeLists txt aren't actually defined/set to anything (so you're not actually linking your C extension to anything).
But overall I would advise you to not diverge from using upstream CMake targets/functions/helpers - I realize they're complex and verbose but it's damn near impossible to get things to build/work without them (and you'd probably end up re-rolling most of them even if you did do it "lone wolf" style).
Well for starters,
dialect_libs
andextension_libs
intarget_link_libraries(edsl_cpp PUBLIC ${dialect_libs} ${extension_libs} MLIREdslEntry )
in your CMakeLists txt aren't actually defined/set to anything (so you're not actually linking your C extension to anything).
But overall I would advise you to not diverge from using upstream CMake targets/functions/helpers - I realize they're complex and verbose but it's damn near impossible to get things to build/work without them (and you'd probably end up re-rolling most of them even if you did do it "lone wolf" style).
@makslevental, yes. You are correct.
Library, in this particular case, is handled here
https://github.com/ravil-mobile/edsl-mlir/blob/main/edsl/compiler/lib/CMakeLists.txt
It doesn't seem to be a problem.
I did try to explicitly link all the stuff which I am using - e.g.,
target_link_libraries(edsl_cpp PUBLIC
MLIRSupport
MLIRAsmParser
MLIRExecutionEngine
MLIRDialect
MLIRDialectUtils
MLIRArithDialect
MLIREdslEntry
)
But the problem remains.
Hi all,
I would like to build a small EDSL. The idea is to have the dsl frontend in python and handle lowering in c++. Here is a very small example which I wrote to reproduce the error:
If necessary, I can share the whole source code. Anyway, when I am executing the python script I get the following error:
Does anybody have an idea what is missing in my example? I can dump a module in python without any problem by something is wrong in the cpp-part.
I am using
461274b81d8641eab64d494accddc81d7db8a09e
commit but I bet it is going to be the same with themain
branch.