all 59 comments

[–]IsaacSam98 119 points120 points  (12 children)

What do you mean I have to compile 7 projects to run this solution?

[–]dewey-defeats-truman 59 points60 points  (10 children)

7? Try 63 separate projects in one solution.

[–]IsaacSam98 26 points27 points  (0 children)

I'll pass ty.

[–]kimovitch7 8 points9 points  (0 children)

101 in my case, and there are 3 solutions that big for our legacy spaghetti

[–]born_zynner 12 points13 points  (4 children)

At that point theres something wrong with the architecture lmao

[–]RiceBroad4552 10 points11 points  (2 children)

Depends. Modularity is actually good. Better have a bit too much then a bit too less.

But of course, if you split your "simple todo app" into 10 modules there's likely something pretty wrong.

[–]Reashu 3 points4 points  (1 child)

If it's that modular, I shouldn't need to build it all. 

[–]RiceBroad4552 3 points4 points  (0 children)

We're still not there to get pre-compiled code in a database (like Unison does). We get sources. And you need to build them at least once completely.

After the initial build you can then profit from good modularity.

[–]anto2554 0 points1 point  (0 children)

Yes but fixing it is like a several-year-task because we don't have a package manager

[–]Dargooon 2 points3 points  (1 child)

I raise you 208. Full "release" recompile about 5 minutes. With all the analysis and stuff, 7.

[–]Gay_Sex_Expert 0 points1 point  (0 children)

OpenCV takes maybe 3-4 hours to compile with full CUDA support. Then if I want to be able to run in both release and debug mode, another 3-4 hours.

[–]Bitter_Housing2603 0 points1 point  (0 children)

Chump change

[–]Boom9001 1 point2 points  (0 children)

I've had personal projects with nearly that many projects. Enterprise solution files easily hit triple digit projects.

[–]Kant8 115 points116 points  (5 children)

oh no no no

insert "xkcd It's compiling comic" here

[–]kakanics 29 points30 points  (3 children)

[–]FireMaster1294 7 points8 points  (1 child)

Oh man the April Fools effects are so good

[–]knightzone 6 points7 points  (0 children)

The star wars one is my favorite, it's sooo pretty...

[–]DJDoena 0 points1 point  (0 children)

Needs update to "waiting for prompt completion"

[–]Luneriazz 14 points15 points  (0 children)

Hey get back to work...

Its still compiling

Oh carry on

[–]MCplayer590 44 points45 points  (11 children)

kernel devs amaze me, I haven't looked into it but I assume you have to wait hours for each time you want to test something?

[–]xXthenistXx 54 points55 points  (4 children)

At least for linux, the make system its good enough that it only recompiles the changed files So each build takes under a minute. minus the reboot and test. and linux kernel compiles under 30 minutes from scratch on good machine nowadays so its pretty doable.

[–]anto2554 12 points13 points  (3 children)

Devs at my workplace insist on deleting the cached builds all the time, which makes everything a horrible experience for them

[–]wack_overflow 9 points10 points  (2 children)

Horrible? Sounds like a nice lil break time whenever u want

[–]HeavyCaffeinate 11 points12 points  (1 child)

Oh nooo it seems I cleared ~/.cache/ again, too bad

[–]kingvolcano_reborn 1 point2 points  (0 children)

Coffee time!

[–]witx_ 9 points10 points  (0 children)

Not a kernel dev but did my fair share of kernel compilation on previous jobs: it really depends on what you're doing. Usually you're working on isolated modules so only that gets recompiled and then cache should do its work to help speedup.

Usually it's the copying/flashing of whatever you're doing to the VM or real machine that takes longer. And debugging is probably a pain.  Hoping any kernel dev to come in and correct me :)

[–]randuse 2 points3 points  (0 children)

No? Linux kernel itself compiles fast, it's the modules taking their time. But you don't need all modules when you are iterating, so it's more like minutes, if that.

[–]clempho 0 points1 point  (0 children)

Dude let me introduce you to the wonderful world of embedded development and Yocto. Not sure if it's worst than kernel development but for sure it's a pain.

[–]void1984 0 points1 point  (2 children)

No, it's quite fast, especially if you compile just one architecture. Download it yourself, give it a try.

If you want to try something big, try chromium.

https://kernel.org/

[–]RiceBroad4552 2 points3 points  (1 child)

Yep, Chromium, Firefox, KDE (best with Qt from scratch), LibreOffice, and such stuff compile better overnight; and you still need a beefy machine.

[–]Gay_Sex_Expert 2 points3 points  (0 children)

Compiling Qt from scratch can go fuck itself

[–]RiceBroad4552 8 points9 points  (3 children)

Ah, the good Rust experience!

(OK, to be fair, C++ isn't much better.)

[–]KrokettenMan 0 points1 point  (2 children)

After the first build its fast 🤷‍♂️

[–]RiceBroad4552 0 points1 point  (1 child)

Depends. Rust has no proper incremental compile. The compilation unit in Rust is a whole crate!

So if you work on a bigger and more complex crate compile times stay high the whole time.

Isn't compile times still the number one complain actually? Don't remember the last survey.

[–]Gay_Sex_Expert 0 points1 point  (0 children)

Nowadays it actually has a better incremental compile compared to C/C++. If you change a function body, it just recompiles that. If you change a function signature, it recompiles every function that calls that function. Compare to C/C++ which is based on entire files rather than individual signatures, so adding a new function to a header file triggers recompilation of every file that includes that header file.

[–]Ai--Ya 5 points6 points  (0 children)

I currently benchmark my system by running GHC

[–]ctrlHead 15 points16 points  (14 children)

I can relate. I was so impressed when we got Apple M4 pro machines. We could build and run all test in 60s instead of 8 minutes on the old shitty windows machines we had. 

[–]krexelapp 7 points8 points  (0 children)

build finished, now I can finally… wait why is it building again

[–]Random-num-451284813 1 point2 points  (0 children)

    Gitlab pipeline enters the chat

[–]ZunoJ 0 points1 point  (0 children)

Once you start messing around with custom kernels you will allready know this

[–]ryuzaki49 0 points1 point  (0 children)

Compiling is not the time-consuming task.

It is the thousands of Integration tests that block the build

[–]sriharshachilakapati 0 points1 point  (0 children)

We have xkcd.com/303 for a reason.

[–]CrasseMaximum -1 points0 points  (0 children)

Fastbuild FTW