digitalmars.D.learn - [dub] Size of executable
- Chris (13/13) Nov 27 2014 [Maybe this has been asked before.]
- Gary Willoughby (4/9) Nov 27 2014 dub compiles and links every file in the source folder whether
- Chris (6/15) Nov 27 2014 I compiled the exact same files. I excluded those I didn't need
- CraigDillabaugh (5/21) Nov 27 2014 When you build with dub it should print out (if I remember
- Chris (9/33) Nov 27 2014 dub says:
- CraigDillabaugh (8/42) Nov 27 2014 I am sure there is some way to get it to print out exactly what
- Chris (19/66) Nov 28 2014 Nope, --verbose doesn't tell me anything useful in this regard.
- Mike Wey (4/11) Nov 27 2014 dub builds with --debug by default.
- Kapps (3/18) Nov 28 2014 Dub builds with debug symbols by default. Using dub build -v will
[Maybe this has been asked before.] I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that? Another thing, I've spotted a typo in dub's[2] command line help: clean [<package>] Removes intermetiate build files and cached build results It should read "intermediate" (with "d"), else it sounds like the Goths in Asterix :-) [1] dmd 2.066.0 [2] DUB version 0.9.22, built on Sep 16 2014
Nov 27 2014
On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 27 2014
On Thursday, 27 November 2014 at 12:29:03 UTC, Gary Willoughby wrote:On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I compiled the exact same files. I excluded those I didn't need in the dub configuration like so: "excludedSourceFiles": [...] But dub's executable is bigger.I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 27 2014
On Thursday, 27 November 2014 at 13:56:19 UTC, Chris wrote:On Thursday, 27 November 2014 at 12:29:03 UTC, Gary Willoughby wrote:When you build with dub it should print out (if I remember correctly, its been a little while) the command it uses to build your code. Is there any difference between that command and your 'by hand' version?On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I compiled the exact same files. I excluded those I didn't need in the dub configuration like so: "excludedSourceFiles": [...] But dub's executable is bigger.I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 27 2014
On Thursday, 27 November 2014 at 13:59:23 UTC, CraigDillabaugh wrote:On Thursday, 27 November 2014 at 13:56:19 UTC, Chris wrote:dub says: Compiling using dmd... Linking... I have the exact same setting, I think. I don't build for release with either method. dmd file1.d file2.d file3.d ... (dub compiles the same files, no release build)On Thursday, 27 November 2014 at 12:29:03 UTC, Gary Willoughby wrote:When you build with dub it should print out (if I remember correctly, its been a little while) the command it uses to build your code. Is there any difference between that command and your 'by hand' version?On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I compiled the exact same files. I excluded those I didn't need in the dub configuration like so: "excludedSourceFiles": [...] But dub's executable is bigger.I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 27 2014
On Thursday, 27 November 2014 at 14:14:50 UTC, Chris wrote:On Thursday, 27 November 2014 at 13:59:23 UTC, CraigDillabaugh wrote:I am sure there is some way to get it to print out exactly what it is doing. I've done it before when trying to figure out some compilation issues ... unfortunately it was a while ago and the machine I am at now doesn't have dub (or D for that matter) installed. Maybe you need to give the the dub -v (--verbose) option. Type 'dub help' to check - again I can't do that right here.On Thursday, 27 November 2014 at 13:56:19 UTC, Chris wrote:dub says: Compiling using dmd... Linking... I have the exact same setting, I think. I don't build for release with either method. dmd file1.d file2.d file3.d ... (dub compiles the same files, no release build)On Thursday, 27 November 2014 at 12:29:03 UTC, Gary Willoughby wrote:When you build with dub it should print out (if I remember correctly, its been a little while) the command it uses to build your code. Is there any difference between that command and your 'by hand' version?On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I compiled the exact same files. I excluded those I didn't need in the dub configuration like so: "excludedSourceFiles": [...] But dub's executable is bigger.I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 27 2014
On Thursday, 27 November 2014 at 17:08:00 UTC, CraigDillabaugh wrote:On Thursday, 27 November 2014 at 14:14:50 UTC, Chris wrote:Nope, --verbose doesn't tell me anything useful in this regard. Only stuff like Refreshing local packages (refresh existing: true)... Looking for local package map at /var/lib/dub/packages/local-packages.json ... I added a lot to the project yesterday, and still, the "pure" dmd-compiled version is 1.9 MB whereas the dub-compiled version is 3.5 MB. There is absolutely nothing in dub.json that links to anything else. Now, I've just created an empty test project with $ dub init size The executable is 940.5 kB Then $ dmd source/app.d -ofother The executable is 548.0 kB Try it yourself.On Thursday, 27 November 2014 at 13:59:23 UTC, CraigDillabaugh wrote:I am sure there is some way to get it to print out exactly what it is doing. I've done it before when trying to figure out some compilation issues ... unfortunately it was a while ago and the machine I am at now doesn't have dub (or D for that matter) installed. Maybe you need to give the the dub -v (--verbose) option. Type 'dub help' to check - again I can't do that right here.On Thursday, 27 November 2014 at 13:56:19 UTC, Chris wrote:dub says: Compiling using dmd... Linking... I have the exact same setting, I think. I don't build for release with either method. dmd file1.d file2.d file3.d ... (dub compiles the same files, no release build)On Thursday, 27 November 2014 at 12:29:03 UTC, Gary Willoughby wrote:When you build with dub it should print out (if I remember correctly, its been a little while) the command it uses to build your code. Is there any difference between that command and your 'by hand' version?On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:I compiled the exact same files. I excluded those I didn't need in the dub configuration like so: "excludedSourceFiles": [...] But dub's executable is bigger.I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that?dub compiles and links every file in the source folder whether it's used or not. Whereas with dmd or rdmd you only compile and link the files you actually use.
Nov 28 2014
On 11/27/2014 03:14 PM, Chris wrote:dub says: Compiling using dmd... Linking... I have the exact same setting, I think. I don't build for release with either method. dmd file1.d file2.d file3.d ... (dub compiles the same files, no release build)dub builds with --debug by default. -- Mike Wey
Nov 27 2014
On Thursday, 27 November 2014 at 09:33:49 UTC, Chris wrote:[Maybe this has been asked before.] I usually use dub to create and build projects. I built one of the projects with dub and then by hand with dmd[1] passing all the files etc. Turned out that the executable built with dub was 1.4 MB whereas the one built by hand was only 807 kB. Why is that? Another thing, I've spotted a typo in dub's[2] command line help: clean [<package>] Removes intermetiate build files and cached build results It should read "intermediate" (with "d"), else it sounds like the Goths in Asterix :-) [1] dmd 2.066.0 [2] DUB version 0.9.22, built on Sep 16 2014Dub builds with debug symbols by default. Using dub build -v will tell you how it invokes DMD.
Nov 28 2014