D is supposed to compile fast.

Chris Katko ckatko at gmail.com
Sat Nov 24 09:20:08 UTC 2018


On Friday, 23 November 2018 at 10:00:17 UTC, Nicholas Wilson 
wrote:
>
> If you pass all the files on the command line then they all get 
> (re)compiled.

How are you supposed include files if not passing them to the 
compiler?

I'm only using std.regex in one file, IIRC, so whatever the 
"proper" way to only compile changed files should improve it 
drastically.

Almost all of my templates are incredibly simple like using 
generic arguments for taking float and doubles, instead of 
hardcoded float.

I am using both Allegro and DAllegro (a D binding for Allegro5). 
But until recently, the compile times have been very fast. So 
it's definitely been D features cutting things down.

And as for "compile-time doesn't matter" arguments, that's plain 
silly. I'm not a junior programmer. I've had builds that took 
over 30 minutes to compile and as we all (should!) know, the 
longer the build time (especially over 10 seconds), the quicker 
the mind loses its train-of-thought and the more difficulty the 
brain has with establishing cause-and-effect relationships 
between code and bugs. When our builds hit 30 minutes, we ended 
up so disconnected from the project we'd end up playing a short 
game of Duke Nukem 3-D inbetween builds. (Ha! Builds. Build 
engine = the Duke Nukem 3D engine. A super-niche pun.) We were 
incredibly unproductive until I re-wrote the entire thing in a 
different language. It ran in less than 10 seconds and suddenly 
we were powering through new problem after new problem. (A huge 
data conversion project between a discontinued, no-documentation 
product and a new product by a different company.)

Anyhow, if you REALLY want to look at some very WIP code with 
poor documentation and possibly lots of random swearing (hobby 
project for trying out D in a game), I'll make the repo public 
for now:

https://bitbucket.org/katasticvoyage/ss14/src/master/

  extra.d is a main code unit for this application.

  ini.d has regex. (and no, it's not a proper lexer. I'm probably 
swapping it out with JSON.)


More information about the Digitalmars-d-learn mailing list