libera/#clasp - IRC Chatlog
Search
12:15:24
borodust
drmeister: libtorch is now officially the most crazy c++ library i ever tried to wrap xD
15:43:11
drmeister
borodust: Interesting - it's bizarre that it can crash libclang when it must be compiled by clang.
15:48:37
borodust
it's not too weird - too many variables around manually processing stuff through libclang
15:49:51
borodust
i'll try compilation database thing - maybe that will simplify process and get rid of most errors
16:09:44
drmeister
Oh - I thought you were using the compilation database. I always use the compilation database - I used to run into trouble when I didn't.
16:17:21
borodust
it works without it for most project, but huge and complex projects like libtorch is kinda tricky to get parsed correctly while manually feeding things into libclang
16:18:12
borodust
gonna try using compilation db approach later today and see if it makes a difference
16:41:25
drmeister
This has instructions to tell cmake to generate a compilation database... https://clang.llvm.org/docs/JSONCompilationDatabase.html
17:31:15
drmeister
::notify Bike I think the problem with llvm.dbg.value/addr is that inlined functions are getting the wrong dbg scope information when they are inlined. They are keeping the scope of their original function - not the scope of the function that they are ending up in. I've been updating the issue as I dig deeper... https://github.com/clasp-developers/clasp/issues/1172
17:33:56
drmeister
borodust: How do you deal with libraries that require subclassing of C++ classes?
17:37:22
drmeister
For example in the clang ASTMatcher library to use it I need to subclass this class: clang::ast_matchers::MatchFinder::MatchCallback Class
17:37:23
borodust
i don't have any special machinery in place for that, the only way it can be done for now is for a user of :claw to write a header where they can do any C++
17:38:47
drmeister
dump-match-callback is a subclass of the C++ class ast-tooling:match-callback. The defvirtual function essentially adds a virtual method that gets called from C++.
19:16:32
borodust
hmm, looks like there's nothing special in libclang to work with compilation databases, but, i guess, i can just directly extract required information for specific translation units from it
19:19:48
drmeister
I don't use libclang - but I occasionally look at the source code to see how they do things.
19:44:19
borodust
e.g. it would be cool if i could just feed it into libclang's parser or at least i could extract arguments w/o the need to know which are key/values and which are switches
19:45:42
borodust
i think it's possible just pass args as is into parser and it would likely work, but another thing is that this database is basically for implementation files (.cpp/.cc/.c etc) while i only use headers
19:48:34
borodust
maybe i'll add a parser to :claw that will extract only required info - includes/defines/arch/instructions - stuff that affects interface