Thread overview
bug with std.boxer
Jan 27, 2006
Carlos Santander
Jan 30, 2006
J C Calvarese
Jan 31, 2006
Carlos Santander
Feb 01, 2006
Carlos Santander
January 27, 2006
I'm posting here because I don't know if this also occurs with DMD. I'm using GDC 0.17 on Mac OS X 10.4.

Take these two modules:

//////////////////////////////////////
module uno;

private import std.boxer;

version(err)
        private import dos;
else
        Box foo()
        {
                return box(0);
        }

void main()
{
        auto i = unbox!(int)(foo());
}
//////////////////////////////////////
module dos;
private import std.boxer;

Box foo()
{
        return box(0);
}
//////////////////////////////////////

If I just compile uno.d, it works. But if I do:

$ gdmd uno.d dos.d -version=err

I get:

/usr/bin/ld: Undefined symbols:
__D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi
collect2: ld returned 1 exit status

I also have problems trying to use MinTL wtih std.boxer.Box.

-- 
Carlos Santander Bernal
January 30, 2006
In article <drc62e$4ri$1@digitaldaemon.com>, Carlos Santander says...
>
>I'm posting here because I don't know if this also occurs with DMD. I'm using GDC 0.17 on Mac OS X 10.4.
>
>Take these two modules:
>
>//////////////////////////////////////
>module uno;
>
>private import std.boxer;
>
>version(err)
>         private import dos;
>else
>         Box foo()
>         {
>                 return box(0);
>         }
>
>void main()
>{
>         auto i = unbox!(int)(foo());
>}
>//////////////////////////////////////
>module dos;
>private import std.boxer;
>
>Box foo()
>{
>         return box(0);
>}
>//////////////////////////////////////
>
>If I just compile uno.d, it works. But if I do:
>
>$ gdmd uno.d dos.d -version=err
>
>I get:
>
>/usr/bin/ld: Undefined symbols: __D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi collect2: ld returned 1 exit status
>
>I also have problems trying to use MinTL wtih std.boxer.Box.
>
>-- 
>Carlos Santander Bernal

dmd uno.d dos.d -version=err

FYI, I tried this on Windows (DMD 0.145), and I got a different compile error:

dos.obj(dos)
Error 42: Symbol Undefined _assert_3std5boxer

jcc7
January 31, 2006
J C Calvarese escribió:
> In article <drc62e$4ri$1@digitaldaemon.com>, Carlos Santander says...
>> I'm posting here because I don't know if this also occurs with DMD. I'm using GDC 0.17 on Mac OS X 10.4.
>>
>> Take these two modules:
>>
>> //////////////////////////////////////
>> module uno;
>>
>> private import std.boxer;
>>
>> version(err)
>>         private import dos;
>> else
>>         Box foo()
>>         {
>>                 return box(0);
>>         }
>>
>> void main()
>> {
>>         auto i = unbox!(int)(foo());
>> }
>> //////////////////////////////////////
>> module dos;
>> private import std.boxer;
>>
>> Box foo()
>> {
>>         return box(0);
>> }
>> //////////////////////////////////////
>>
>> If I just compile uno.d, it works. But if I do:
>>
>> $ gdmd uno.d dos.d -version=err
>>
>> I get:
>>
>> /usr/bin/ld: Undefined symbols:
>> __D3std5boxer24__T16unboxCastIntegerTiZ16unboxCastIntegerFS3std5boxer3BoxZi
>> collect2: ld returned 1 exit status
>>
>> I also have problems trying to use MinTL wtih std.boxer.Box.
>>
>> -- 
>> Carlos Santander Bernal
> 
> dmd uno.d dos.d -version=err
> 
> FYI, I tried this on Windows (DMD 0.145), and I got a different compile error:
> 
> dos.obj(dos)
> Error 42: Symbol Undefined _assert_3std5boxer
> 
> jcc7

So it seems the problem is with GDC. That error is fixed with the "Burton fix"  ;)

extern (C) void assert_3std5boxer () {}

Thanks for trying that.

-- 
Carlos Santander Bernal
February 01, 2006
Carlos Santander escribió:
> 
> I also have problems trying to use MinTL wtih std.boxer.Box.
> 

As promised, here's the minimal test case:

module test;

import std.boxer;
import mintl.all;

void main()
{
        Stack!(Box) stack;
}

In my case, compiling with:

gdmd test.d -I../.. libmintl.a

I get:

__Class_5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate
__Class_5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate
__D5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate5_ctorFDFDFKS3std5boxer3BoxZiZiZC5mintl3seq33__T11SeqDelegateTS3std5boxer3BoxZ11SeqDelegate
__D5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate5_ctorFDFDFKS3std5boxer3BoxZiZiDFDFKiKS3std5boxer3BoxZiZiZC5mintl3seq43__T19SeqWithKeysDelegateTiTS3std5boxer3BoxZ19SeqWithKeysDelegate
__init_24TypeInfo_S3std5boxer3Box
collect2: ld returned 1 exit status

I had to update MinTL to get it to compile.

-- 
Carlos Santander Bernal