On Friday, 5 April 2013 at 11:29:20 UTC, Andrej Mitrovic wrote:
On 4/5/13, Vladimir Panteleev <vladi...@thecybershadow.net>
wrote:
I think -r is redundant, and should be the default action if
only
one module is given on DMD's command line. I can't think of
plausible situations where this could be a problem.
$ dmd main.d foo.obj
If main has imports to 'foo', how will DMD know whether or not
to
compile foo.d or just link with foo.obj?
-r should be disabled for such cases - thus, enabled only when
there's one .d file and no .obj / .lib files. Although specifying
library files on the compiler's command line is a valid use case,
compatible with recursive compilation, I think we should promote
the use of pragma(lib) instead.
You could pass -rxfoo, but you'd still be breaking all existing
build
scripts which rely on non-recursive building.
Yes, the goal is to not affect existing scripts.
Considering that you can't have a module with the same name as
a
package, the same syntax for excluding both can be used, e.g.
"-rxcrc32 -rxstd".
I guess it could work. But I'm hoping one day we'll be able to
lift
that restriction, it's quite a pain in the ass when porting C++
code
that uses namespaces to D. So for future-compatibility I thought
separating module and package switches might be nice. It's not
a big
deal though.
Another option is wildcards (std.*).