Jai compiles 80,000 lines of code in under a second

aliak something at something.com
Thu Sep 20 23:13:38 UTC 2018


Alo!

I just watched this talk from Jonathan Blow [0] about his 
programming language called Jai, and he can now compile an 80,000 
line game in about 1.5 seconds on a laptop (of course I have no 
idea what laptop he's using), under 1 second on a desktop.

And he claims it's he wants to eventually hit compilation of 
1,000,000 lines per second and that he thinks that's a realistic 
goal.

I just tried compiling an optional utility library that has a 
grand total of 1794 lines in .d files and:

time dmd -c -debug -g -unittest -w -Isource/ -Itests  
-I../../.dub/packages/bolts-0.7.1/bolts/source/ 
source/optional/dispatch.d source/optional/internal.d 
source/optional/notnull.d source/optional/optional.d 
source/optional/package.d source/optional/traits.d 
tests/dispatch.d tests/match.d tests/notnull.d tests/optional.d 
tests/orelse.d tests/unwrap.d

1.92s user 0.23s system 99% cpu 2.157 total (2.6ghz, 4 cores, 
plenty ram)

Have compile times gotten worse in D over the years or better or 
just stayed the same? And is there anyway to get even near the 
performance of Jai when it comes to compilations (parallelize 
stuff here and there maybe)? Or is DMD in a state where that is 
just not feasible?

On a related note: He also mentions some really cool compilation 
features like having compiler hooks that tell you when 
compilation is done, when executable and where it will be written 
so you can create your build recipe inside the program itself. 
Also allows you do do things like:

whenCompilationFinishes(exeLocation) => 
loadExecutableIcon(myIcon, exeLocation)

During the build!

Your source knows how to build itself as a concept is awesome! 
There's actually a D runner [1] that kind of allows for source 
files to set stuff up.

[0] https://www.youtube.com/watch?v=uZgbKrDEzAs
[1] https://github.com/marler8997/rund


More information about the Digitalmars-d mailing list