How to compile and link simple application?

Julian julian.fondren at gmail.com
Mon Apr 8 19:43:11 UTC 2019


On Monday, 8 April 2019 at 19:29:33 UTC, 4544fa8d wrote:
> It's really not possible to call functions in modules like in 
> any other languages? :S

What some other languages do is collect all of those calls into an
implicit function that's called before main(). What D does is run
that code at compile-time. Silly example:

   import std.stdio;

   T twice(T)(T n) { return 2 * n; }

   auto x = twice(5);

   void main() {
       writeln(x);
   }

Take a look at the compiled result: https://godbolt.org/z/8vLsv9

There's a twice() that's compiled in, but if you look at x it's
already the result of a call to twice():

   int example.x:
           .long   10

and the (unoptimized) main just fetches that number to print.



More information about the Digitalmars-d-learn mailing list