C++ Weekly – Ep 147 – C++ And Python Tooling

Python

Video is ready, Click Here to View ×


Come to my `constexpr` class at C++ On Sea: https://cpponsea.uk/sessions/applied-constexpr.html
My Training Classes: http://emptycrate.com/training.html
Support these videos: https://www.patreon.com/lefticus
Follow me on twitter: https://twitter.com/lefticus
ChaiScript: http://chaiscript.com

8 thoughts on “C++ Weekly – Ep 147 – C++ And Python Tooling

  1. To everyone pointing out that CMake and Ninja are easily available by other means: where the pip installer versions of them really save a lot of effort is with CI environments, like Travis. You can easily install the latest CMake with a simple `pip install cmake` and not have to worry about what version the CI provides.

  2. Awesome. I was recently forced at my job to fix a flask webservice and I analized the posibility of writing a c++ extension for python which turns out it's pretty easy to do. I never really liked python but I got the feeling it can be great for prototyping.

  3. The cmake project provides installers on their website. This includes the linux platform. That's also why there aren't any ppa's for newer cmake versions around anymore.

    Another extremely powerful tool I use is antlr. It's a lexer/parser generator. I use it to parse thrift rpc files and generate the parser in python3. At work we also use it to parse C api header files.

    Another tool (or rather variation of said tool) I use is pycparser/oclminify to work with our OpenCL code. Although the tool is quite buggy and I recommend to use an updated/modified version of it.

    Edit: and of course we should not forget about conan, which is also written in python!

  4. Ninja is actually written in C++. They pride themselves on extremely fast execution so it makes sense. I'd guess the python version is a different implementation (?) focusing on portability for systems that can't use the binary ninja? Can't find the answers in the docs.

Leave a Reply

Your email address will not be published. Required fields are marked *