LoungeCPP / loungesome-cpp

A list of a list of actually decent, actually used AND appreciated in the industry C++ libraries
http://loungecpp.github.io/loungesome-cpp
Creative Commons Zero v1.0 Universal
30 stars 0 forks source link

Discuss tools #10

Open milleniumbug opened 8 years ago

milleniumbug commented 8 years ago

This issue is to discuss tools - formatters, build systems and others.

I nominate clang-format

nabijaczleweli commented 8 years ago

:+1: for clang-format

nabijaczleweli commented 8 years ago

I also suggest ninja (build system) and CMake

ghost commented 8 years ago

The build system thing is hairy. CMake sucks a lot imo. make/autoconf, scons, waf, gyp, msbuild/devenv, nmake, qmake, they all suck. Ninja is cool, but it's incomplete - you need a generator. I :+1: ninja only right now.

ghost commented 8 years ago

I tried astyle, it looked decent, but I heard clang-format is better. Someone to second millenium here?

ghost commented 8 years ago

lol I just missed your nab. Okay, add it guys.

nabijaczleweli commented 8 years ago

ninja isn't incomplete in that regard - it's specifically designed to be generated, rather than written by hand, as indicated on the project page:

it is designed to have its input files generated by a higher-level build system

ghost commented 8 years ago

It's specifically designed to be incomplete. You want a build system, you pick ninja, you have to walk the extra mile to actually have something working. I know it's not very hard to do it yourself, but you still have to do it.

nabijaczleweli commented 8 years ago

Any idea on what description to add for clang-format? There doesn't seem to be an "official" one.

Morwenn commented 8 years ago

The static analyzer Cppcheck is really simple to use and helped me to catch subtle things from time to time; I think it's worth mentioning. Also, valgrind catches some bugs too from time to time.

milleniumbug commented 8 years ago

+1 for valgrind

Morwenn commented 8 years ago

I have heard that the sanitizers available in Clang and GCC are great too (undefined behaviour, address and thread sanitizers). Some of them do what valgrind does but with a lower overhead. Too bad they do not work with MinGW. I wish I could test them.

nabijaczleweli commented 8 years ago

But those are compiler built-ins (-fsanitize=address), so they don't qualify as "tools" per se.

Morwenn commented 8 years ago

It's more like they are branded as additional tools that just happen to be directly incorporated in the compiler. And it seems that not enough people know about them.

nabijaczleweli commented 8 years ago

I also propose @rightfold

rightfold commented 8 years ago

"Compilers" should be a level-2 heading under "Tools"

rightfold commented 8 years ago

Also add the clang modernization tools, LLDB, GDB, and SWIG.

ghost commented 8 years ago

SWIG sucks in many ways. It's not awesome at all

rightfold commented 8 years ago

ok

Morwenn commented 8 years ago

Agreed that compilers could appear in tools.

nabijaczleweli commented 8 years ago

kk, moving

milleniumbug commented 8 years ago

I nominate MSYS2, as it's awesome, it has a package manager, and mostly fresh packages.

nabijaczleweli commented 8 years ago

:+1: MSYS2

Morwenn commented 8 years ago

Concerning MSYS2, shall we mention Git Bash, which uses MSYS2 if I'm not mistaken and has this nice feature that allows to see the branch we're currently working on?

nabijaczleweli commented 8 years ago

So much fuss about adding git rev-parse --abbrev-ref HEAD to $PS1

Morwenn commented 8 years ago

Good thing to know (yeah, I don't know my tools) :D

nabijaczleweli commented 8 years ago

Google is your firand

milleniumbug commented 8 years ago

Haven't used Git Bash, but I'd say meh, it doesn't seem that it adds anything substantial, and the other problem is the introduction: MSYS2 provides an ecosystem, which Git is one of the possible ingredients, Git Bash screams "hey, I'm the shell which you can give commands to Git", which is less impressive.