Tectu / malloy

A cross-platform C++20 library providing embeddable server & client components for HTTP and WebSocket.
BSD 3-Clause "New" or "Revised" License
68 stars 8 forks source link

Fix/Feat clang build #51

Closed 0x00002a closed 3 years ago

0x00002a commented 3 years ago

Alright, so this should have been a pretty basic fixup, but due to toolchain issues it ended up being a right pain. Sorry it took so long, got rather frustrated and didn't wanna get burned out :p.

Most of the problems are documented here: #46. The test stuff was added to try and chase down a segfault I think is due to incompatibilities between the libstdc++, shipped with msys, and clang, just a guess tho. I kept it in since I think it will be useful.

The CI will now build with clang on ubuntu, and the mingw CI will now only built with boost 1.76.0 due to #43 (which this was originally intended to address). Issues with msys aside, the code builds with clang now so clang-tidy should work and all that remains for #46 is for libc++ to catch up with their 20 support (coming in next release (13)).

Ref: #22 #46 #43

0x00002a commented 3 years ago

hmm, getting a link error locally on client::controller::run(), not sure why

Tectu commented 3 years ago

Good work - Thanks a lot!

Sorry it took so long, got rather frustrated and didn't wanna get burned out :p.

I don't think that any apologies are in order. This is an open source project and you're free to contribute - or not to :p There are no expectations from my side other than attitude. Contributions are highly appreciated & welcomed but certainly not expected. I do get your point about not burning yourself out - dealing with toolchain pain is... painful :p

0x00002a commented 3 years ago

Ah, a clean build fixed the link error 🤦‍♀️ whoops. On another note, clang did a clean build of the tests in a few seconds flat which, is impressive considering gcc almost two minutes. Not sure what thats about

Tectu commented 3 years ago

You don't want to know how long building the test suite on MinGW takes... man... it's a pain. Almost feels like an embarrassment.

Tectu commented 3 years ago

A question regarding the naming of the CI tests: Is LLVM the correct term here? Wouldn't clang be the way to go? As I understood LLVM is the backend (which can - and does - get user by other compilers too).

0x00002a commented 3 years ago

A question regarding the naming of the CI tests: Is LLVM the correct term here? Wouldn't clang be the way to go? As I understood LLVM is the backend (which can - and does - get user by other compilers too).

Good point. I'll change it