There's a 10+ years old libclang issue that I'm trying to figure out: "libclang does not get the header search correct"

I'm still hitting the issue on multiple distros. Debian carries a local fix for it.

What options should I pass to libclang to work around it? The key is automation; I need to be able to figure out the options programmatically, without a build system. (I'm using this from Python bindings.)

@nathanchance any ideas?

https://github.com/llvm/llvm-project/issues/18150

#libclang #clang #llvm

libclang does not get the header search correct · Issue #18150 · llvm/llvm-project

Bugzilla Link 17776 Version trunk OS Linux Reporter LLVM Bugzilla Contributor Extended Description For instance, if we run one of the included python tests using the raw build directory from cmake+...

GitHub
Currently working on a new FFI binding generator based on libclang. The goal is to streamline the process of generating bindings for foreign libraries. Progress is steady, and I’ll share more updates as things develop. #FFI #libclang #Lean4

This is now kind of a dev microblog concerning #Xmoji. I'm kind of stalled, now that version 0.7 seems reasonably stable and portable (I see there's a #nix pkg, unfortunately outdated, and a #NetBSD #pkgsrc port, I will deliver #FreeBSD *soon*).

It misses a few convenience features my previous #qXmoji had: save/restore the window size, optionally enforce a single instance, offer a #tray icon. I'll add all of that, seems straight-forward, for the tray icon I'll only implement the old #X11 spec based on #Xembed and if some desktop environment insists on only supporting the newer standard based on #dbus, well, screw that. Too much complexity, sorry.

The real issue is #localization (#l10n), specifically "just" translations. I still have no good concept for that. With #Qt, it was a no-brainer to also use Qt's mechanism. Without a toolkit, obvious choices would be either #POSIX message catalogs, or #GNU #gettext. The latter is much more convenient, but pulls in extra deps (with #GPL/#LGPL foo). Both have in common that they only operate on char* ... 8bit encodings. I have many of my texts stored as char32_t (#Unicode UCS-4 or #UTF32, difference doesn't matter much here). I could redesign that to base everything on #UTF8, but I'm a bit reluctant ... why add more runtime conversions?

I seriously think about coming up with my own tooling. But then, how far should I jump? Should I really try to parse my own source (using LLVM's #libclang for example)? Or should I hardcode tables with identifiers for all translatable texts?

I'll sleep on that a few more nights I guess....

#X11 #emoji #keyboard

It only took me more than a year, but I finally understand how to use #libclang. Life-changing moment!

Atíla Neves ponders about
#UnitTesting. The #D programming language is too closely coupled to #libclang, and Neves is working on separating it. In the process Neves found the unit tests to be #integrationTests rather than individual tests. Neves held many tech talks telling us to avoid that. So Neves feels ashamed, and will be correcting the tests.

https://atilanevesoncode.wordpress.com/2018/11/20/unit-testing-do-as-i-say-dont-do-as-i-do/

Unit Testing? Do As I Say, Don’t Do As I Do

Átila on Code