October 21, 2008
Bill Baxter wrote:
> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.

You're right. sc.ini should be:

> [Version]
> version=7.51 Build 020
> 
> [Environment]
> LIB="%@P%\..\lib";\dm\lib
> DFLAGS="-I%@P%\..\src\phobos -I%@P%\..\src\druntime\import"
> LINKCMD=%@P%\..\..\dm\bin\link.exe

and dmd.conf should be:

> 
> [Environment]
> 
> DFLAGS=-I%@P%/../src/phobos -I%@P%/../src/runtime/import -L-L%@P%/../lib
October 21, 2008
On Tue, Oct 21, 2008 at 9:39 AM, dsimcha <dsimcha@yahoo.com> wrote:
> == Quote from Bill Baxter (wbaxter@gmail.com)'s article
>> On Tue, Oct 21, 2008 at 9:16 AM, dsimcha <dsimcha@yahoo.com> wrote:
>> > I'd love to try these releases, but on a stock setup trying to compile a Hello World, I get:
>> >
>> > E:\dmd\bin\..\src\phobos\std\stdio.d(27): module memory cannot read file
>> > 'core\memory.d'
>> >
>> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
>> Should be:
>> DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"
>> That fixes things for me.
>> --bb
>
> Works.  Thanks.  Now I just get weird, inscrutable linker errors.  This one might be a little too bleeding edge even for me.
>

Even with Hello World?  That one linked and ran fine for me after adding the druntime include.

--bb
October 21, 2008
== Quote from Bill Baxter (wbaxter@gmail.com)'s article
> On Tue, Oct 21, 2008 at 9:39 AM, dsimcha <dsimcha@yahoo.com> wrote:
> > == Quote from Bill Baxter (wbaxter@gmail.com)'s article
> >> On Tue, Oct 21, 2008 at 9:16 AM, dsimcha <dsimcha@yahoo.com> wrote:
> >> > I'd love to try these releases, but on a stock setup trying to compile a Hello World, I get:
> >> >
> >> > E:\dmd\bin\..\src\phobos\std\stdio.d(27): module memory cannot read file
> >> > 'core\memory.d'
> >> >
> >> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
> >> Should be:
> >> DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"
> >> That fixes things for me.
> >> --bb
> >
> > Works.  Thanks.  Now I just get weird, inscrutable linker errors.  This one might be a little too bleeding edge even for me.
> >
> Even with Hello World?  That one linked and ran fine for me after
> adding the druntime include.
> --bb

No, but with anything much more complex, like a small home-brew statistics lib I'm trying to port.  I'm sure it's just some silly thing.  I'll figure it out eventually.
October 21, 2008
On Tue, Oct 21, 2008 at 9:45 AM, Walter Bright <newshound1@digitalmars.com> wrote:
> Bill Baxter wrote:
>>
>> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
>
> You're right. sc.ini should be:
>
>> [Version]
>> version=7.51 Build 020
>>
>> [Environment]
>> LIB="%@P%\..\lib";\dm\lib
>> DFLAGS="-I%@P%\..\src\phobos -I%@P%\..\src\druntime\import"

Actually it doesn't work for me with the whole string as one big quote.  I had to split it into two quotes like I posted it before:

    DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"

--bb
October 21, 2008
You're right again.
October 21, 2008
Hello Walter,

> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.036.zip
> The 2.0 version splits phobos into druntime and phobos libraries
> (thanks to Sean Kelly). This will enable both Tango and Phobos to
> share a common core library.
> 
> http://www.digitalmars.com/d/2.0/changelog.html
> http://ftp.digitalmars.com/dmd.2.020.zip
> There are a lot of structural changes that go along with this, so
> expect some rough patches with this release. It may take a followup
> release to file them down. There's also some renaming of imports and
> function names, as a compromise with Tango names.
> 


Thank you! :)

-JJR


October 21, 2008
== Quote from Bill Baxter (wbaxter@gmail.com)'s article
> On Tue, Oct 21, 2008 at 9:39 AM, dsimcha <dsimcha@yahoo.com> wrote:
> > == Quote from Bill Baxter (wbaxter@gmail.com)'s article
> >> On Tue, Oct 21, 2008 at 9:16 AM, dsimcha <dsimcha@yahoo.com> wrote:
> >> > I'd love to try these releases, but on a stock setup trying to compile a Hello World, I get:
> >> >
> >> > E:\dmd\bin\..\src\phobos\std\stdio.d(27): module memory cannot read file
> >> > 'core\memory.d'
> >> >
> >> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
> >> Should be:
> >> DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"
> >> That fixes things for me.
> >> --bb
> >
> > Works.  Thanks.  Now I just get weird, inscrutable linker errors.  This one might be a little too bleeding edge even for me.
> >
> Even with Hello World?  That one linked and ran fine for me after
> adding the druntime include.
> --bb

Ok, looks like DMD isn't finding Object properly, using stock config except for Bill Baxter's change to sc.ini.

class Foo {}

void main() {
    auto foo = new Foo;
}

 Error 42: Symbol Undefined _D6object6Object5printMFZv

Seriously, though, Walter, thank you very much for this release.  You have done a tremendous job bringing us a better language.  Merging the Phobos and Tango runtime is a monumental task (Sean, thank you, too) and a few bumps along the road are definitely understandable.
October 21, 2008
On Tue, Oct 21, 2008 at 10:59 AM, dsimcha <dsimcha@yahoo.com> wrote:
> == Quote from Bill Baxter (wbaxter@gmail.com)'s article
>> On Tue, Oct 21, 2008 at 9:39 AM, dsimcha <dsimcha@yahoo.com> wrote:
>> > == Quote from Bill Baxter (wbaxter@gmail.com)'s article
>> >> On Tue, Oct 21, 2008 at 9:16 AM, dsimcha <dsimcha@yahoo.com> wrote:
>> >> > I'd love to try these releases, but on a stock setup trying to compile a Hello World, I get:
>> >> >
>> >> > E:\dmd\bin\..\src\phobos\std\stdio.d(27): module memory cannot read file
>> >> > 'core\memory.d'
>> >> >
>> >> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
>> >> Should be:
>> >> DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"
>> >> That fixes things for me.
>> >> --bb
>> >
>> > Works.  Thanks.  Now I just get weird, inscrutable linker errors.  This one might be a little too bleeding edge even for me.
>> >
>> Even with Hello World?  That one linked and ran fine for me after
>> adding the druntime include.
>> --bb
>
> Ok, looks like DMD isn't finding Object properly, using stock config except for Bill Baxter's change to sc.ini.
>
> class Foo {}
>
> void main() {
>    auto foo = new Foo;
> }
>
>  Error 42: Symbol Undefined _D6object6Object5printMFZv
>
> Seriously, though, Walter, thank you very much for this release.  You have done a tremendous job bringing us a better language.  Merging the Phobos and Tango runtime is a monumental task (Sean, thank you, too) and a few bumps along the road are definitely understandable.

Hmm, first off it looks like druntime.lib doesn't exist in the D2 download. I was able to build it by running build-dmd.bat in one of the druntime subdirectories.

But there's more to it than that.

There's an object.d in src/phobos with a prototype for a print() function.
But the object.di in src/druntime/import does not have a print() function.

So maybe the phobos.lib included was built using the old object.d instead of the new one from druntime?

--bb
October 21, 2008
Thank you Walter, this step improves D2 significantly :-)

I have seen that's there's an improvement in the AAs in D1 too, I'll do few benchmarks.

I have also seen this nasty bug fixed in D2:
http://d.puremagic.com/issues/show_bug.cgi?id=2333
Can't it be fixed in D1 too?

Bye,
bearophile
October 21, 2008
Tue, 21 Oct 2008 11:19:22 +0900,
Bill Baxter wrote:
> On Tue, Oct 21, 2008 at 10:59 AM, dsimcha <dsimcha@yahoo.com> wrote:
> > == Quote from Bill Baxter (wbaxter@gmail.com)'s article
> >> On Tue, Oct 21, 2008 at 9:39 AM, dsimcha <dsimcha@yahoo.com> wrote:
> >> > == Quote from Bill Baxter (wbaxter@gmail.com)'s article
> >> >> On Tue, Oct 21, 2008 at 9:16 AM, dsimcha <dsimcha@yahoo.com> wrote:
> >> >> > I'd love to try these releases, but on a stock setup trying to compile a Hello World, I get:
> >> >> >
> >> >> > E:\dmd\bin\..\src\phobos\std\stdio.d(27): module memory cannot read file
> >> >> > 'core\memory.d'
> >> >> >
> >> >> Assuming Windows, looks like DFLAGS aren't set right in dmd\bin\sc.ini.
> >> >> Should be:
> >> >> DFLAGS="-I%@P%\..\src\phobos"  "-I%@P%\..\src\druntime\import"
> >> >> That fixes things for me.
> >> >> --bb
> >> >
> >> > Works.  Thanks.  Now I just get weird, inscrutable linker errors.  This one might be a little too bleeding edge even for me.
> >> >
> >> Even with Hello World?  That one linked and ran fine for me after
> >> adding the druntime include.
> >> --bb
> >
> > Ok, looks like DMD isn't finding Object properly, using stock config except for Bill Baxter's change to sc.ini.
> >
> > class Foo {}
> >
> > void main() {
> >    auto foo = new Foo;
> > }
> >
> >  Error 42: Symbol Undefined _D6object6Object5printMFZv
> >
> > Seriously, though, Walter, thank you very much for this release.  You have done a tremendous job bringing us a better language.  Merging the Phobos and Tango runtime is a monumental task (Sean, thank you, too) and a few bumps along the road are definitely understandable.
> 
> Hmm, first off it looks like druntime.lib doesn't exist in the D2 download. I was able to build it by running build-dmd.bat in one of the druntime subdirectories.
> 
> But there's more to it than that.
> 
> There's an object.d in src/phobos with a prototype for a print() function.
> But the object.di in src/druntime/import does not have a print() function.
> 
> So maybe the phobos.lib included was built using the old object.d instead of the new one from druntime?

You need to delete the src/phobos/object.d.  Then src/druntime/import/object.di is included instead and everything starts to work (for some simple projects at least).  Building druntime.lib doesn't seem to be required.

I think it's also a good idea to delete src/phobos/std/gc.d because it's not in the libs.  You have to use core.memory instead.