Earlier quoted context omitted.
I worked on exactly this problem for Chrome! I agree with all your major points -- in particular, optimizing incremental builds is the most important thing for developer sanity. Here's a post about what I did: http://neugierig.org/software/chromium/notes/2011/02/ninja.h...
Doom 3 actually used Scons across all the OSes (~2004). At the time, it was so nice to have a python build system. I sort of hoped it was the future, but it sort of died as it failed to scale. I've seen a few home-brewed python build systems work well, but typically we're back to CMake/Make
24-core CPU and I can’t move my mouse
411–420 of 509 posts
Re: 24-core CPU and I can’t move my mouse
#412Earlier quoted context omitted.
> Damn, are we doing this wrong? Give me a tool that's: (i) as fast, (ii) as mature and well supported, (iii) as powerful as C++ and I will switch in a heartbeat. But until there is such an alternative it's futile to complain about the shortcomings of C++, because if you want the powerful, zero-cost abstractions, the mountains of support, and access to billions of existing lines of code, you pretty much have nowhere…
> But until there is such an alternative it's futile to complain about the shortcomings of C++ Then how does C++ improve?
It keeps adopting D features.
Re: 24-core CPU and I can’t move my mouse
#413Earlier quoted context omitted.
False dilemma. You can have both. It's okay if a fully optimized release mode binary takes a bit longer to compile, but compiling a few million lines of code for a debug build shouldn't take more than a second or two. Also consider the leverage factor. Improvements to the compiler benefit all users of the programming language, so it's worthwhile to invest in high quality compilers.
> You can have both. It's okay if a fully optimized release mode binary takes a bit longer to compile, but compiling a few million lines of code for a debug build shouldn't take more than a second or two. > You can have both. Pretty bold claim, without proof.
Re: 24-core CPU and I can’t move my mouse
#414Full disclosure: I work for Google on Chrome. A Chrome build is truly a computational load to be reckoned with. Without the distributed build, a from-scratch build of Chrome will take at least 30 minutes on a Macbook Pro--maybe an hour(!). TBH I don't remember toughing out a full build without resorting to goma. Even on a hefty workstation, a full build is a go-for-lunch kind of interruption. It will absolutely own a…
Wasn't this one of the reasons why the Go project started at Google, not necessarily for Chrome, but because C++ project compile speeds were horrendous for some internal projects. Not saying Chrome could and should just switch to Go, it definitely would not be the right fit! But it's interesting that these sorts of builds still occur and consume a lot of developer's time.
https://talks.golang.org/2012/splash.article
He covers all the same points about header files and how Go addresses those issues.
Re: 24-core CPU and I can’t move my mouse
#415Earlier quoted context omitted.
Why not fast browser and fast compilation at the same time?
This might be theoretically possible, but I don't think it's been done yet. All the fast browsers so far take a while to build.
Re: 24-core CPU and I can’t move my mouse
#416Earlier quoted context omitted.
False dilemma. You can have both. It's okay if a fully optimized release mode binary takes a bit longer to compile, but compiling a few million lines of code for a debug build shouldn't take more than a second or two. Also consider the leverage factor. Improvements to the compiler benefit all users of the programming language, so it's worthwhile to invest in high quality compilers.
In what language can we have both? Yes, we can use caching compilers ( https://wiki.archlinux.org/index.php/ccache ) to speed up builds with few changes. We can lower optimization levels (although that barely gives you an increase in compile speed compared to the runtime speed you lose and the fact that it makes your program do slightly different things). There's no slider from "pessimum" to "optimum". You need to do…
Re: 24-core CPU and I can’t move my mouse
#417Earlier quoted context omitted.
The nice thing about GNU/Linux is that the you can almost completely avoid all of the "desktop applications." I only ever start X when I need Firefox or mupdf. Everything else is a nice lightweight TTY app that I run in tmux. My 1.3 GHz celleron netbook is incredibly responsive set up this way.
Similar but with XFCE, it rarely feels sluggish and I nearly always know why.
Re: 24-core CPU and I can’t move my mouse
#418This is great work. I hope MS can improve Windows 10 by fixing this. I just added a new Win10 laptop with much better specs than my 3 year old rMBP, and I'm shocked by how much apparently random latency I experience with the UI in Windows 10 compared to the Mac. That's not to mention the issues of sloppier track pad (which constantly detects my left hand while I type) or the ungodly slow unzip (via 7z). If only Apple…
Re: 24-core CPU and I can’t move my mouse
#419I grew up on the Commodore 64 (1 Core, 1 hyper-thread :-), almost 1 MHz clock freq, almost 64 K usable RAM). The machine was usually pretty responsive, but when I typed too quickly in my word processor it sometimes got stuck and ate a few characters. I used to think: "If computers were only fast enough so I could type without interruption...". If you'd asked me back then for a top ten list what I wished computers cou…
Why i refuse to indulge the latest eyecandy and bling from the desktop world if possible. If i didn't need a GPU to do window switching back then, why do i need it now?
Re: 24-core CPU and I can’t move my mouse
#420Earlier quoted context omitted.
That is a disk scheduler and mostly for spinning disks. I haven't seen a stuck mouse cursor for a long time in linux.
I always found this peculiar about linux; even when the system is swapping hard and application windows/window managers completely freeze, the cursor always remains responsive and movement rendered without so much as a hitch. I wonder if xorg has some sort of kernel support to enable this.