std.boxer broken?

Kyle Furlong kylefurlong at gmail.com
Fri Apr 14 06:40:44 PDT 2006


David L. Davis wrote:
> In article <e1nc14$1gb5$1 at digitaldaemon.com>, Daniel Keep says...
>>
>> Oh, look--it's me and something's not working again :P
>>
>> Ok, I'm using dmd 0.153 and the included phobos.  When I try to compile
>> the following:
>>
>> import std.boxer;
>> import std.stdio;
>>
>> int main()
>> {
>>    Box x = box(42);
>>    writefln("The answer to life, the universe, "
>>            "and everything is: %d", unbox!(int)(x));
>>
>>    return 0;
>> }
>>
>> I get the following error message:
>>
>> e:\Bin\Bin\link.exe boxtest,,,user32+kernel32/noi;
>> OPTLINK (R) for Win32  Release 7.50B1
>> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>>
>> boxtest.obj(boxtest)
>> Error 42: Symbol Undefined _assert_3std5boxer
>> --- errorlevel 1
>>
>> Anyone have any idea what I stuffed up?  Other stuff, including
>> writefln, seems to work fine (well, apart from MinTL but we've already
>> covered that one), so I'm fairly sure it's linking in phobos.lib properly.
>>
>> Any advice would be greatly appreciated.
>>
>> 	-- Daniel.
> 
> Daniel, adding the "extern (C) void assert_3std5boxer() { }" line below which
> Burton shared with us many moons ago will also work (without the need for
> -release switch) and you can add unittests as well.
> 
> # // daniel1.d - tested with WinXP SP1 D v0.154
> # // Unittest: dmd daniel1.d -unittest
> # // Compile : dmd daniel1.d
> #
> # private import std.boxer;
> # private import std.stdio;
> #
> # // Burton Radons <burton-radons[at]smocky[dot]com>
> # // This entry allows -unittest for testing, and/or no need 
> # // for the -release switch
> # extern (C) void assert_3std5boxer() { }
> #
> # int main()
> # {
> #     Box x = box(42);
> #     writefln("The answer to life, the universe, "
> #             "and everything is: %d", unbox!(int)(x));
> #
> #     return 0;
> # }
> #
> # unittest
> # {
> #     Box x = box(42);
> #     assert(42 == unbox!(int)(x));
> #     writefln("unittest done.");	
> # }
> 
> Output:
> ------------
> C:\dmd>dmd daniel1.d
> C:\dmd\bin\..\..\dm\bin\link.exe daniel1,,,user32+kernel32/noi;
> 
> C:\dmd>daniel1
> The answer to life, the universe, and everything is: 42
> 
> C:\dmd>
> 
> 
> David L.
> 
> -------------------------------------------------------------------
> "Dare to reach for the Stars...Dare to Dream, Build, and Achieve!"
> -------------------------------------------------------------------
> 
> MKoD: http://spottedtiger.tripod.com/D_Language/D_Main_XP.html

Thats really not the right solution though. Thats a hack to replace the symbol with an empty function. What is needed is a debug 
build of phobos with the right function.



More information about the Digitalmars-d mailing list