Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Boris Staletic
    @bstaletic
    And we didn't have to worry about the index.
    Daan De Meyer
    @DaanDeMeyer
    I can imagine it was, props for adding support for something like that
    If only a bit more thought was put into the compile_commands.json format when it was invented
    It could have been more flexible to support these use cases
    Boris Staletic
    @bstaletic
    It's basically the only way to get support for unity builds. I.e.
    // A.cpp
    int x;
    // B.cpp
    x++;
    // only_compile_this.cpp
    #include <A.cpp>
    #include <B.cpp>
    x--;
    Now you open B.cpp and get errors, because x was never declared.
    Daan De Meyer
    @DaanDeMeyer
    A comment in the CMake release thread mentioned unity builds breaking compile_commands.json
    Boris Staletic
    @bstaletic
    With clangd/clangd#45 you can say "when I open B.cpp, parse it as if TU main file was only_compile_this.cpp".
    Daan De Meyer
    @DaanDeMeyer
    That actually seems feasible to add to compile_commands.json without thinking it through in detail
    Boris Staletic
    @bstaletic
    It should be. Add an optional field called override_filename.
    Daan De Meyer
    @DaanDeMeyer
    Yup, and it's optional so most tools should keep working
    Boris Staletic
    @bstaletic
    That would leave only some obscure uses for the YCM's extra confs. Like executing make flags $FILEPATH to get the flags.
    Yes, I've seen that done.
    Daan De Meyer
    @DaanDeMeyer
    Anything is justified to get compilation errors (and warnings) in my editor
    Any idea on this one?
    Boris Staletic
    @bstaletic
    No, but I'd suggest not doing stupid things and having more than one standard library in your include path.
    Daan De Meyer
    @DaanDeMeyer
    The thing is, clang finds everything without even having an include path available. I'm wondering how it's doing that
    Boris Staletic
    @bstaletic
    Daan De Meyer
    @DaanDeMeyer
    I supposed they could use vswhere if the MSVC version is recent enough but failing that I don't think there's another option besides heuristics
    Boris Staletic
    @bstaletic
    Luckily for ycmd, macOS tends to break our heuristics with each release, though we were spared with the latest release.
    Daan De Meyer
    @DaanDeMeyer
    macOS support in reproc did require fixing some interesting issues
    For example, having to use kqueue instead of sigtimedwait because the latter one isn't implemented.
    Boris Staletic
    @bstaletic
    I'm currently having troubles getting python library "watchdog" to work on mac.
    Daan De Meyer
    @DaanDeMeyer
    Watching fs changes seems like something that can go wrong in many ways
    Boris Staletic
    @bstaletic
    It works. All my tests pass. The watchdog thread just never joins.
    Only on mac...
    I came upon this yesterday which isn't very positive either
    Boris Staletic
    @bstaletic
    That sounds just wonderful.
    Someone dug up the clang logic on Windows
    Alvaro Moran
    @dirac3000
    Hi, I have a question on how to use reproc++ and read a child process output while the child is waiting for an input
    for example, I want to launch a python REPL and execute some commands in it
    I tried to create the process and set nonblocking option, but that is not enough: the drain and the read methods get stuck
    any hint?
    Daan De Meyer
    @DaanDeMeyer
    So drain will try and read all the output of the process so that's supposed to get stuck. If you set the nonblocking option though, read shouldn't be blocking. If you make an issue on Github with a minimal amount of code to reproduce the problem, I can look into it when I have some free time.
    Alvaro Moran
    @dirac3000
    sure thank a lot! See DaanDeMeyer/reproc#41
    Wolf Vollprecht
    @wolfv
    Hi, thanks for this useful project! I am planning to use it in micromamba, a package manager for all languages & operating systems (based on the conda package manager)
    For this, I am adding a recipe for reproc to the conda-forge distribution: conda-forge/staged-recipes#13113
    once this would be merged we'd have automated builds for Windows, Linux and OS X (as well as Linux-ARM64 and PPC64LE :)
    I've got two questions: What is the ABI compatibility range with reproc approximately? Does a program linked to 14.0 work with 14.X?
    and do you want to be a co-maintainer @DaanDeMeyer ? I am happy to add you. It's not a lot of work, just merging a PR by the bots here and there, whenever a new version comes out
    Wolf Vollprecht
    @wolfv
    also, clock_gettime is only available from osx 10.12 upwards. I am going to patch this, using a polyfill for versions before that (we support 10.9 on conda-forge)
    are you interested in a PR for that?
    Daan De Meyer
    @DaanDeMeyer
    I haven't been considering ABI compatibility for now. Whether it's ABI compatible will depend on what exactly changed in a release.
    I don't really have any spare cycles to be a co-maintainer. You can add me but I can't promise I'll get to any PRs in a timely fashion.
    Daan De Meyer
    @DaanDeMeyer
    Problem with the backport is that I have no way to test it. I prefer only having code that I can test one way or another either with CI or locally. Keep it in conda-forge for now.
    The rt fix in cmake that you do is interesting though. Can you expand on that one? That may be something to include in reproc. I'm curious why it's only necessary for the tests
    Wolf Vollprecht
    @wolfv

    thanks for the replies! I am going to add you just so you get notifications. There won't be any work until you make a release, and even then hopefully everything will work smoothly :)

    The rt fix is something I had to do a couple of times already for conda-recipes. I am not sure exactly why it's needed when compiling with the conda-compilers, vs. the regular OS compilers. Maybe the add -lrt implicitly?

    I just added it to the tests, which means that people who want to use the timeout functionality will have to link themselves with rt.