May 17, 2005
"David Medlock" <noone@nowhere.com> wrote in message news:d6cqao$1b7t$1@digitaldaemon.com...
> Walter, I _IMPLORE_ you to clean up the error messages.
>
> In the meantime can someone please help to decode what the following
> gibberish means?  I don't have an init() method for the class
> SectorCache (nor its TypeInfo???) so I am pretty stumped here.
>
> E:\proj\d\game\obj\bmp.obj(bmp)
>   Error 42: Symbol Undefined
> _D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File

It's looking for the constructor:

    std.stream.File.this(char[], enum std.stream.FileMode)

_D: prefix for all D functions
3std: std is 3 characters long
6stream: stream
4File: File
5_ctor: the 'this' constructor
F: function, next comes parameter types
A: array of
a: chars
E: enum
3std6stream8FileMode: std.stream.FileMode
Z: end of function parameter types, next comes return type
C: class
3std6stream4File: std.stream.File

> E:\proj\d\game\obj\world.obj(world)
>   Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache

__init_: initializer for class
30TypeInfo_PC5world11SectorCache: TypeInfo class generated for type:
   P: pointer
   C: class
   5world11SectorCache: world.SectorCache

> E:\proj\d\game\obj\world.obj(world)
>   Error 42: Symbol Undefined
> __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
> --- errorlevel 3
>
>
> I can post code, but its pretty long.
> -DavidM

P.S. These are not templates, so this isn't the template issue discussed earlier.



May 17, 2005
Walter wrote:
> "David Medlock" <noone@nowhere.com> wrote in message
> news:d6cqao$1b7t$1@digitaldaemon.com...
> 
>>Walter, I _IMPLORE_ you to clean up the error messages.
>>
>>In the meantime can someone please help to decode what the following
>>gibberish means?  I don't have an init() method for the class
>>SectorCache (nor its TypeInfo???) so I am pretty stumped here.
>>

<File errors snipped, were posted erroneously>

> 
>>E:\proj\d\game\obj\world.obj(world)
>>  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
> 
> 
> __init_: initializer for class
> 30TypeInfo_PC5world11SectorCache: TypeInfo class generated for type:
>    P: pointer
>    C: class
>    5world11SectorCache: world.SectorCache
> 
> 
>>E:\proj\d\game\obj\world.obj(world)
>>  Error 42: Symbol Undefined
>>__init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
>>--- errorlevel 3
>>
>>
>>I can post code, but its pretty long.
>>-DavidM
> 
> 
> P.S. These are not templates, so this isn't the template issue discussed
> earlier.
> 

Where is the initializer inserted?
I don't see how it could be missing since I can do this:

class SectorCache {}
class CacheList : CList!(SectorCache) {}

and it still gives the same error.

If I strip these classes down, however the error goes away.  I dropped it to the 6 most basic files and I got no error at all.  The CList class I posted is fairly simple; it doesnt seem to be missing anything.

-DavidM
May 17, 2005
David Medlock wrote:

> Walter wrote:
> 
>> "David Medlock" <noone@nowhere.com> wrote in message
>> news:d6cqao$1b7t$1@digitaldaemon.com...
>>
>>> Walter, I _IMPLORE_ you to clean up the error messages.
>>>
>>> In the meantime can someone please help to decode what the following
>>> gibberish means?  I don't have an init() method for the class
>>> SectorCache (nor its TypeInfo???) so I am pretty stumped here.
>>>
> 
> <File errors snipped, were posted erroneously>
> 
>>
>>> E:\proj\d\game\obj\world.obj(world)
>>>  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
>>
>>
>>
>> __init_: initializer for class
>> 30TypeInfo_PC5world11SectorCache: TypeInfo class generated for type:
>>    P: pointer
>>    C: class
>>    5world11SectorCache: world.SectorCache
>>
>>
>>> E:\proj\d\game\obj\world.obj(world)
>>>  Error 42: Symbol Undefined
>>> __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
>>> --- errorlevel 3
>>>
>>>
>>> I can post code, but its pretty long.
>>> -DavidM
>>
>>
>>
>> P.S. These are not templates, so this isn't the template issue discussed
>> earlier.
>>
> 
> Where is the initializer inserted?
> I don't see how it could be missing since I can do this:
> 
> class SectorCache {}
> class CacheList : CList!(SectorCache) {}
> 
> and it still gives the same error.
> 
> If I strip these classes down, however the error goes away.  I dropped it to the 6 most basic files and I got no error at all.  The CList class I posted is fairly simple; it doesnt seem to be missing anything.
> 
> -DavidM


I just dropped my CList implementation for Ben's CircularList and I still get:

>>> E:\proj\d\game\obj\world.obj(world)
>>>  Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache

this is with :

class SectorCache {}

-DavidM
May 17, 2005
"David Medlock" <noone@nowhere.com> wrote in message news:d6deh2$fh9$1@digitaldaemon.com...
> I just dropped my CList implementation for Ben's CircularList and I still get:
>
>  >>> E:\proj\d\game\obj\world.obj(world)
>  >>>  Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache
>
> this is with :
>
> class SectorCache {}

I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across all your .obj and .lib files.


May 17, 2005
Walter wrote:
> "David Medlock" <noone@nowhere.com> wrote in message
> news:d6deh2$fh9$1@digitaldaemon.com...
> 
>>I just dropped my CList implementation for Ben's CircularList and I
>>still get:
>>
>> >>> E:\proj\d\game\obj\world.obj(world)
>> >>>  Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache
>>
>>this is with :
>>
>>class SectorCache {}
> 
> 
> I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across all
> your .obj and .lib files.
> 
> 

I reverted back to my original list class and did a grep for the missing symbol:
"__init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList"

which was found in world.obj.

I also double checked that this file is included in the link command.

-DavidM
May 17, 2005
"David Medlock" <noone@nowhere.com> wrote in message news:d6dqq4$qr4$1@digitaldaemon.com...
> > I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across
all
> > your .obj and .lib files.
> >
> >
>
> I reverted back to my original list class and did a grep for the missing
> symbol:
> "__init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList"
>
> which was found in world.obj.
>
> I also double checked that this file is included in the link command.

You can use obj2asm.exe to see if it is a definition or an extern reference.

But anyhow, there's not much anyone can do without being able to reproduce the problem you're seeing.


May 18, 2005
Walter wrote:
> "David Medlock" <noone@nowhere.com> wrote in message
> news:d6dqq4$qr4$1@digitaldaemon.com...
> 
>>>I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across
> 
> all
> 
>>>your .obj and .lib files.
>>>
>>>
>>
>>I reverted back to my original list class and did a grep for the missing
>>symbol:
>>"__init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList"
>>
>>which was found in world.obj.
>>
>>I also double checked that this file is included in the link command.
> 
> 
> You can use obj2asm.exe to see if it is a definition or an extern reference.
> 
> But anyhow, there's not much anyone can do without being able to reproduce
> the problem you're seeing.
> 
> 

Its an extern reference when i disassemble.

extrn   __init_29TypeInfo_C5world11SectorCache

I still do not understand the _why_ of this problem, Walter.
Is the TypeInfo a pseudo class and just isnt instantiated?
If I have violated some rules within D then its my fault, but all I see is plain, vanilla D code which fails under these circumstances.

I would much like to find this problem on my own, I simply do not understand what is happening nor how to proceed.

I can send anyone the project (a 3d game editor, or the beginnings of one ) who wishes to try( although it isnt what I would call 'ready for the public').

-DavidM
May 18, 2005
David Medlock wrote:
> Walter wrote:
> 
>> "David Medlock" <noone@nowhere.com> wrote in message
>> news:d6dqq4$qr4$1@digitaldaemon.com...
>>
>>>> I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across
>>
>>
>> all
>>
>>>> your .obj and .lib files.
>>>>
>>>>
>>>
>>> I reverted back to my original list class and did a grep for the missing
>>> symbol:
>>> "__init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList"
>>>
>>> which was found in world.obj.
>>>
>>> I also double checked that this file is included in the link command.
>>
>>
>>
>> You can use obj2asm.exe to see if it is a definition or an extern reference.
>>
>> But anyhow, there's not much anyone can do without being able to reproduce
>> the problem you're seeing.
>>
>>
> 
> Its an extern reference when i disassemble.
> 
> extrn   __init_29TypeInfo_C5world11SectorCache
> 

PS. The other reference is also an extrn

extrn	__init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList
May 18, 2005
On Tue, 17 May 2005 21:07:28 -0400, David Medlock wrote:

> Walter wrote:

> Its an extern reference when i disassemble.
> 
> extrn   __init_29TypeInfo_C5world11SectorCache
> 
> I still do not understand the _why_ of this problem, Walter.
> Is the TypeInfo a pseudo class and just isnt instantiated?
> If I have violated some rules within D then its my fault, but all I see
> is plain, vanilla D code which fails under these circumstances.
> 
> I would much like to find this problem on my own, I simply do not understand what is happening nor how to proceed.
> 
> I can send anyone the project (a 3d game editor, or the beginnings of one ) who wishes to try( although it isnt what I would call 'ready for the public').
> 
> -DavidM

I wouldn't mind giving it a try troubleshooting.  brk_6502@yahoo.com
May 18, 2005
"David Medlock" <noone@nowhere.com> wrote in message news:d6e4g9$12ah$1@digitaldaemon.com...
> I still do not understand the _why_ of this problem, Walter.

I don't know either, but these problems become understandable when everything else gets stripped away. They nearly always boil down to 10 lines of code or less. Then they become understandable, and fixable.