#tcmalloc всем хорош, кроме одного - он требует для сборки bazel, то есть java, а это практически сразу "нахуй".
Раньше я его собирал вручную перечислив все нужные файлы и флаги компиляции, работало это плохо, и часто ломалось.
Но, надо заметить, что язык описания сборки bazel, он же starlark, это подмножество python, поэтому его очень легко распарсить и обработать через питонячий eval().
Вот, bazel lite, построенный на этой идее (eval() + несколько predefined функций + обработчики стандартный сборочных правил + ninja generator), достаточный, чтобы собрать tcmalloc as is - https://github.com/pg83/ix/blob/main/pkgs/bld/bazel/lite/bazel_lite.py, спасибо #LLM.
Думаю, за пару итераций скрипт можно довести до состояния "собирает любой гугловый опенсорс", а больше и не нужно.
Post #4529
1.18K