On 01/18/11 03:11, Vladimir Panteleev wrote: > On Tue, 18 Jan 2011 11:05:34 +0200, Walter Bright > <newshou...@digitalmars.com> wrote: > >> Vladimir Panteleev wrote: >>> On Tue, 18 Jan 2011 07:20:56 +0200, Walter Bright >>> <newshou...@digitalmars.com> wrote: >>> >>>> http://urbanhonking.com/ideasfordozens/2011/01/18/what-makes-a-programming-language-good/ >>>> >>> So, why do users still get a scary linker error when they try to >>> compile a program with more than 1 module? >> >> What is that message? > > C:\Temp\D\Build> dmd test1.d > OPTLINK (R) for Win32 Release 8.00.8 > Copyright (C) Digital Mars 1989-2010 All rights reserved. > http://www.digitalmars.com/ctg/optlink.html > test1.obj(test1) > Error 42: Symbol Undefined _D5test21fFZv > --- errorlevel 1 > > 1) The error message is very technical: > a) does not indicate what exactly is wrong (module not passed to > linker, not that the linker knows that) > b) does not give any indication of what the user has to do to fix it > 2) OPTLINK doesn't demangle D mangled names, when it could, and it would > improve the readability of its error messages considerably. > (I know not all mangled names are demangleable, but it'd be a great > improvement regardless) > >> dmd can build entire programs with one command: >> >> dmd file1.d file2.d file3.d ...etc... > > That doesn't scale anywhere. What if you want to use a 3rd-party library > with a few dozen modules? >
Then I would expect the library vendor provides either a pre-compiled binary library, or the means to readily generate same -- whether that means a Makefile, a script, or what have you. At that time, there is no need to provide DMD with anything -- unless you are one-lining it a la 'dmd file1 file2 file3 third_party_stuff.lib'. Forgive me if I misunderstand, but I really don't want a language/compiler that goes too far into hand-holding. Let me screw up if I want to. -- Chris N-S