At the front of the library is all the libraries to include which the optimiser gathers dependencies from.
Also there are the start points which are function transfer ops that the HTML can use to enhance it basic point code functionality or pipe some other functionality through an extension.
So first you compile to flat asm per start point and then when you've put all your functionality into organised containment then you compile your full program and you get an exe or linux executable plus whatever other files need to be included. so in the compiled output it is slightly interpreted which you can focus as much as you want away from closer to bare metal performance.