[Issue 9896] New: Implement -rb switch for recursive build and -rx switch for exclusion lists

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Apr 7 06:15:58 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=9896

           Summary: Implement -rb switch for recursive build and -rx
                    switch for exclusion lists
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD
        AssignedTo: andrej.mitrovich at gmail.com
        ReportedBy: andrej.mitrovich at gmail.com


--- Comment #0 from Andrej Mitrovic <andrej.mitrovich at gmail.com> 2013-04-07 06:15:57 PDT ---
DMD automatically tracks imports and loads all dependent modules that a source
module needs. By taking advantage of this we can speed up the build time of a
project and simplify the build script. See the discussion[1] in the forums.

-rb will be used to make DMD build all modules which it loads.

-rx will be used to exclude modules or packages which DMD should not build when
the -rb switch is present. This will enable fast incremental builds via an
external tool such as RDMD, as such a tool will be able to exclude prebuilt
modules from being built again by passing the module names via the -rx switch,
and passing the object files instead to enable proper linking.

-rx can take a fully-qualified module declaration, or a wildcard, via:

$ dmd -rxfoo.bar

This excludes the module foo.bar

$ dmd -rxfoo.*

This excludes all modules from the package foo.

>From a few tests we saw build times improve by 30%. Adding incremental support
to RDMD (which needs these new flags) will significantly improve the build
times.

[1] :
http://forum.dlang.org/thread/qgezuphvnabvwfvfyhdx@forum.dlang.org?page=4#post-kjqe9a:242fdl:241:40digitalmars.com

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list