I am coming back to D fun after a year. I am playing on osx 10.6 and just built native gdc last weekend using github gdc-4.7.
Sorry if this has been discussed before, but my searches could not find it. I discovered that dmd and gdmd -lib behave different. I really like the way dmd -lib option works. Is this known, expected, or something that should be fixed? dmd -lib breaks up a d module (file) into separate compilation units so, for example, if a d module has 5 funtions, the library will have 5 or more .o (one for each function). If you link to only one of those functions, you only get it in your final executable. gdmd does not. It produces a single .o per d module The beauty of the dmd approach is that I can call D code from an objc program, and only the parts of the dmain2.d needed are linked in (rt_init/rt_term). With gdc, I can't get rt_init() and rt_term() without also getting the dmain2's extern(C) main(). So I am forced to have D be main. Or I must go in and break up dmain2.d into smaller code pieces if I want to have D libs callable by objc. I am switching to gdc because "I have a Dream" that one day D can be used to write ios apps. And gdc has the arm ISA so I can cross-compile. So it is closer than dmd. I know eventually it will need a rewritten druntime, but my baby step is to just compile a D function and call it from an ios app. But even tinier step I am on now is to call a D function from iphone sim (which uses i386). Thanks and many adventures, Dan