www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - Pretty frustrating

reply David Medlock <noone nowhere.com> writes:
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
E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
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
May 17 2005
next sibling parent reply Russ Lewis <spamhole-2001-07-16 deming-os.org> writes:
David Medlock wrote:
 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
 E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined 
 __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 --- errorlevel 3

Are you importing certain modules without compiling those same modules and linking them with your code?
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Russ Lewis wrote:

 David Medlock wrote:
 
 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
 E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined 
 __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 --- errorlevel 3

Are you importing certain modules without compiling those same modules and linking them with your code?

I am using my DManager project tool so I am certain all files are compiled and on the link line. (posted below) dmd E:\proj\d\game\obj\actor.obj E:\proj\d\game\obj\bmp.obj E:\proj\d\game\obj\client.obj E:\proj\d\game\obj\editor.obj E:\proj\d\game\obj\gl.obj E:\proj\d\game\obj\gl2d.obj E:\proj\d\game\obj\glfw.obj E:\proj\d\game\obj\glist.obj E:\proj\d\game\obj\gltext.obj E:\proj\d\game\obj\input.obj E:\proj\d\game\obj\material.obj E:\proj\d\game\obj\menus.obj E:\proj\d\game\obj\particles.obj E:\proj\d\game\obj\pcx.obj E:\proj\d\game\obj\tasks.obj E:\proj\d\game\obj\texture.obj E:\proj\d\game\obj\world.obj E:\proj\d\game\obj\logging.obj E:\proj\d\game\obj\geom3d.obj E:\proj\d\game\obj\math3d.obj E:\proj\d\game\obj\array.obj E:\proj\d\game\obj\clist.obj E:\proj\d\game\lib\glfw25.lib -ofgame -g opengl32.lib Ive been lazy about learning Dereks Build, so I haven't attempted that yet :( but the command line version should work. Amazingly this happens when I attempt to use my CList (circular list) template class( posted ) with the SectorCache class. A constructor for CList uses TypeInfo arguments, but I don't see how it could result in missing symbols. -DavidM
May 17 2005
parent reply Thomas Kuehne <thomas-dloop kuehne.THISISSPAM.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Medlock wrote:
| Russ Lewis wrote:
|
|> David Medlock wrote:
|>
|>> 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
|>> E:\proj\d\game\obj\world.obj(world)
|>>  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
|>> E:\proj\d\game\obj\world.obj(world)
|>>  Error 42: Symbol Undefined
|>> __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
|>> --- errorlevel 3

<snip>

results on linux:

./dmd -version=Test a.d
gcc a.o -o a -lphobos -lpthread -lm -Xlinker -L/opt/digitalmars/122/dmd/lib
/usr/bin/ld: Warning: size of symbol
`_D3std6stdarg8va_arg_i6va_argFKPvZi' changed from 18 in a.o to 21 in
/opt/digitalmars/122/dmd/lib/libphobos.a(format.o)
/usr/bin/ld: Warning: size of symbol
`_D3std6stdarg9va_arg_Aa6va_argFKPvZAa' changed from 23 in a.o to 34 in
/opt/digitalmars/122/dmd/lib/libphobos.a(format.o)

./a
Count is 3
A Item= 300
A Item= 200
A Item= 100
B Item= 200
B Item= 300
B Item= 400
B Item= 500
B Item= 600
C Item= 300
C Item= 200
C Item= 100
C Item= 200
C Item= 300
C Item= 400
C Item= 500
found 200 in C, 200 = next
~ S : Hello
~ S : World
~ S : !
~ S2 : Hello
~ S2 : Cruel
~ S2 : World
~ S2 : !
~ S2 Reversed : !
~ S2 Reversed : World
~ S2 Reversed : Cruel
~ S2 Reversed : Hello

Thomas
-----BEGIN PGP SIGNATURE-----

iD8DBQFCihes3w+/yD4P9tIRAh9hAJwJnFIuhU+ybEomWlWvobLd37lmKACgyxu6
tkrnnZ+GxpZ4FKV6t3Hq6NQ=
=eCtJ
-----END PGP SIGNATURE-----
May 17 2005
next sibling parent reply John Reimer <brk_6502 yahoo.com> writes:
Thomas Kuehne wrote:
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 David Medlock wrote:
 | Russ Lewis wrote:
 |
 |> David Medlock wrote:
 |>
 |>> 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
 |>> E:\proj\d\game\obj\world.obj(world)
 |>>  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 |>> E:\proj\d\game\obj\world.obj(world)
 |>>  Error 42: Symbol Undefined
 |>> __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 |>> --- errorlevel 3
 
 <snip>
 
 results on linux:
 
 ../dmd -version=Test a.d
 gcc a.o -o a -lphobos -lpthread -lm -Xlinker -L/opt/digitalmars/122/dmd/lib
 /usr/bin/ld: Warning: size of symbol
 `_D3std6stdarg8va_arg_i6va_argFKPvZi' changed from 18 in a.o to 21 in
 /opt/digitalmars/122/dmd/lib/libphobos.a(format.o)
 /usr/bin/ld: Warning: size of symbol
 `_D3std6stdarg9va_arg_Aa6va_argFKPvZAa' changed from 23 in a.o to 34 in
 /opt/digitalmars/122/dmd/lib/libphobos.a(format.o)
 
 ../a
 Count is 3
 A Item= 300
 A Item= 200
 A Item= 100
 B Item= 200
 B Item= 300
 B Item= 400
 B Item= 500
 B Item= 600
 C Item= 300
 C Item= 200
 C Item= 100
 C Item= 200
 C Item= 300
 C Item= 400
 C Item= 500
 found 200 in C, 200 = next
 ~ S : Hello
 ~ S : World
 ~ S : !
 ~ S2 : Hello
 ~ S2 : Cruel
 ~ S2 : World
 ~ S2 : !
 ~ S2 Reversed : !
 ~ S2 Reversed : World
 ~ S2 Reversed : Cruel
 ~ S2 Reversed : Hello
 
 Thomas
 -----BEGIN PGP SIGNATURE-----
 
 iD8DBQFCihes3w+/yD4P9tIRAh9hAJwJnFIuhU+ybEomWlWvobLd37lmKACgyxu6
 tkrnnZ+GxpZ4FKV6t3Hq6NQ=
 =eCtJ
 -----END PGP SIGNATURE-----

This even more proof of the similarity to the problem I was having with optlink. My linux version worked the same way despite the failure of the windows version. I'm pretty sure this is very similar to the "template-in-library" problem that I had. It's been diagnosed and it is windows specific. It's due to the OMF format short-comings. There is a workaround. Look at "Hair-pulling, D, and Optlink" on the d.newsgroup. Walter explains it. -JJR
May 17 2005
parent John Reimer <brk_6502 yahoo.com> writes:
...And yes the problem was very frustrating.  It had me occupied almost 
all night trying to figure out what was going on...

-JJR
May 17 2005
prev sibling parent reply David Medlock <noone nowhere.com> writes:
Thomas Kuehne wrote:

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 David Medlock wrote:
 | Russ Lewis wrote:
 |
 |> David Medlock wrote:
 |>
 |>> 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
 |>> E:\proj\d\game\obj\world.obj(world)
 |>>  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 |>> E:\proj\d\game\obj\world.obj(world)
 |>>  Error 42: Symbol Undefined
 |>> __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 |>> --- errorlevel 3
 
 <snip>
 
 results on linux:
 
 ./dmd -version=Test a.d
 gcc a.o -o a -lphobos -lpthread -lm -Xlinker -L/opt/digitalmars/122/dmd/lib
 /usr/bin/ld: Warning: size of symbol
 `_D3std6stdarg8va_arg_i6va_argFKPvZi' changed from 18 in a.o to 21 in
 /opt/digitalmars/122/dmd/lib/libphobos.a(format.o)
 /usr/bin/ld: Warning: size of symbol
 `_D3std6stdarg9va_arg_Aa6va_argFKPvZAa' changed from 23 in a.o to 34 in
 /opt/digitalmars/122/dmd/lib/libphobos.a(format.o)
 
 ./a
 Count is 3
 A Item= 300
 A Item= 200
 A Item= 100
 B Item= 200
 B Item= 300
 B Item= 400
 B Item= 500
 B Item= 600
 C Item= 300
 C Item= 200
 C Item= 100
 C Item= 200
 C Item= 300
 C Item= 400
 C Item= 500
 found 200 in C, 200 = next
 ~ S : Hello
 ~ S : World
 ~ S : !
 ~ S2 : Hello
 ~ S2 : Cruel
 ~ S2 : World
 ~ S2 : !
 ~ S2 Reversed : !
 ~ S2 Reversed : World
 ~ S2 Reversed : Cruel
 ~ S2 Reversed : Hello
 
 Thomas
 -----BEGIN PGP SIGNATURE-----
 
 iD8DBQFCihes3w+/yD4P9tIRAh9hAJwJnFIuhU+ybEomWlWvobLd37lmKACgyxu6
 tkrnnZ+GxpZ4FKV6t3Hq6NQ=
 =eCtJ
 -----END PGP SIGNATURE-----

CList in and of itself isnt the problem. Its using CList with another class(SectorCache). Like I said I commented out all of SectorCache class members and the error persists. Of course putting CList and SectorCache in a simple file alone does not generate the error. I can send you the project if you want to peruse it but the bottom line is the error message makes no sense whatsoever. I could probably fix this on my own if I had some clue what was happening. -DavidM
May 17 2005
parent Thomas Kuehne <thomas-dloop kuehne.thisisspam.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Medlock schrieb am Tue, 17 May 2005 10:50:44 -0400:
 Like I said I commented out all of SectorCache class members and the 
 error persists.  Of course putting CList and SectorCache in a simple 
 file alone does not generate the error.

 I can send you the project if you want to peruse it but the bottom line 
 is the error message makes no sense whatsoever.  I could probably fix 
 this on my own if I had some clue what was happening.

Please try to reduce the test case before sending it. I'd be surprised if this requires more than 3 source files. Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCijGn3w+/yD4P9tIRAkqqAKCMXfEwpLzYSDcpkDOFuAGl/X0RdwCgpBaZ zgfepK8oHP95krCnQ5L7+MY= =ADcW -----END PGP SIGNATURE-----
May 17 2005
prev sibling next sibling parent reply "Ben Hinkle" <bhinkle mathworks.com> writes:
"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
 E:\proj\d\game\obj\world.obj(world)
  Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 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

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
Ben Hinkle 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.

E:\proj\d\game\obj\bmp.obj(bmp)
 Error 42: Symbol Undefined 
_D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File
E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
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

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.

Dmanager has a full build option, so I had tried that. I just deleted them by hand and retried with the same results. -DavidM
May 17 2005
parent reply Thomas Kuehne <thomas-dloop kuehne.thisisspam.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Medlock schrieb am Tue, 17 May 2005 09:51:03 -0400:
 Ben Hinkle 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.

E:\proj\d\game\obj\bmp.obj(bmp)
 Error 42: Symbol Undefined 
_D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File
E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined 
__init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
--- errorlevel 3

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.

them by hand and retried with the same results.

Can you wipe up a simple file that uses std.stream.File and std.stream.FileMode ? Note: Those messages aren't produced by dmd but by the linker. Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFCihT/3w+/yD4P9tIRAmYtAKC+Q1uOaj+eoXJdByOZ5UQfugOePACaA4ni k24WCqTOAcWK8KlMEN15WVs= =CPpI -----END PGP SIGNATURE-----
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
Thomas Kuehne wrote:

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 David Medlock schrieb am Tue, 17 May 2005 09:51:03 -0400:
 
Ben Hinkle 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.

E:\proj\d\game\obj\bmp.obj(bmp)
Error 42: Symbol Undefined 
_D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File
E:\proj\d\game\obj\world.obj(world)
Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
E:\proj\d\game\obj\world.obj(world)
Error 42: Symbol Undefined 
__init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
--- errorlevel 3

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.

Dmanager has a full build option, so I had tried that. I just deleted them by hand and retried with the same results.

Can you wipe up a simple file that uses std.stream.File and std.stream.FileMode ? Note: Those messages aren't produced by dmd but by the linker. Thomas

Actually the file stream issue was due to a mis-copy of the link command into a command window. Only the following two errors are the issue: E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList --- errorlevel 2 I went ahead and commented out all the members and methods of SectorCache, did a full build, and still the error remains. The only line I can remove from my project to eliminate the error is alias CList!(SectorCache) CacheList; -DavidM
May 17 2005
parent reply John Reimer <brk_6502 yahoo.com> writes:
David Medlock wrote:
 Thomas Kuehne wrote:
 
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1

 David Medlock schrieb am Tue, 17 May 2005 09:51:03 -0400:

 Ben Hinkle 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.

 E:\proj\d\game\obj\bmp.obj(bmp)
 Error 42: Symbol Undefined 
 _D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File
 E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined 
 __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 --- errorlevel 3

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.

Dmanager has a full build option, so I had tried that. I just deleted them by hand and retried with the same results.

Can you wipe up a simple file that uses std.stream.File and std.stream.FileMode ? Note: Those messages aren't produced by dmd but by the linker. Thomas

Actually the file stream issue was due to a mis-copy of the link command into a command window. Only the following two errors are the issue: E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList --- errorlevel 2 I went ahead and commented out all the members and methods of SectorCache, did a full build, and still the error remains. The only line I can remove from my project to eliminate the error is alias CList!(SectorCache) CacheList; -DavidM

Heh... This looks like a similar error to the one I just finished experiencing. I noted it in the digitalmars.d newsgroup. See "Hair-pulling, D, and Optlink" Walter explains the problem of having a template-only-containing object file inserted into a library. You don't appear to be using a lib file here... but perhaps the problem is related? -JJR
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
John Reimer wrote:

 David Medlock wrote:
 
 Thomas Kuehne wrote:

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1

 David Medlock schrieb am Tue, 17 May 2005 09:51:03 -0400:

 Ben Hinkle 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.

 E:\proj\d\game\obj\bmp.obj(bmp)
 Error 42: Symbol Undefined 
 _D3std6stream4File5_ctorFAaE3std6stream8FileModeZC3std6stream4File
 E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined __init_30TypeInfo_PC5world11SectorCache
 E:\proj\d\game\obj\world.obj(world)
 Error 42: Symbol Undefined 
 __init_51TypeInfo_C5clist27CList_PC5world11SectorCache5CList
 --- errorlevel 3

Try deleting all the obj files and recompiling cleanly. Also it seems odd that std.stream symbols can't be found so I'd check your phobos version or path to phobos or something. But first I'd to a clean rebuild to see if the problem is crufty obj files.

Dmanager has a full build option, so I had tried that. I just deleted them by hand and retried with the same results.

Can you wipe up a simple file that uses std.stream.File and std.stream.FileMode ? Note: Those messages aren't produced by dmd but by the linker. Thomas

Actually the file stream issue was due to a mis-copy of the link command into a command window. Only the following two errors are the issue: E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_29TypeInfo_C5world11SectorCache E:\proj\d\game\obj\world.obj(world) Error 42: Symbol Undefined __init_50TypeInfo_C5clist26CList_C5world11SectorCache5CList --- errorlevel 2 I went ahead and commented out all the members and methods of SectorCache, did a full build, and still the error remains. The only line I can remove from my project to eliminate the error is alias CList!(SectorCache) CacheList; -DavidM

Heh... This looks like a similar error to the one I just finished experiencing. I noted it in the digitalmars.d newsgroup. See "Hair-pulling, D, and Optlink" Walter explains the problem of having a template-only-containing object file inserted into a library. You don't appear to be using a lib file here... but perhaps the problem is related? -JJR

I just read Walter's reply in that thread, and I am not sure I fully understand. If I use: alias CList!(SectorCache) CacheList; Then explicitly link in 'clist.obj' it should be linked in with the exe no matter what. Why would the _type_ above be removed? There are no duplicates of it anywhere. Even if I replace the line with class CacheList : CList!(SectorCache) {} it still does not link! Walter, little gotchas like this can really doom D. Whether or not its fast, simple, garbage collected, etc doesn't matter if legal constructs within the language will not compile or link. I am not trying to trivialize the technical issue, but I am emphasizing the usability issue here. -DavidM
May 17 2005
next sibling parent John Reimer <brk_6502 yahoo.com> writes:
David Medlock wrote:
 John Reimer wrote:

 Heh... This looks like a similar error to the one I just finished 
 experiencing.  I noted it in the digitalmars.d newsgroup.

 See "Hair-pulling, D, and Optlink"

 Walter explains the problem of having a template-only-containing 
 object file inserted into a library.  You don't appear to be using a 
 lib file here... but perhaps the problem is related?

 -JJR

I just read Walter's reply in that thread, and I am not sure I fully understand. If I use: alias CList!(SectorCache) CacheList; Then explicitly link in 'clist.obj' it should be linked in with the exe no matter what. Why would the _type_ above be removed? There are no duplicates of it anywhere. Even if I replace the line with class CacheList : CList!(SectorCache) {} it still does not link! Walter, little gotchas like this can really doom D. Whether or not its fast, simple, garbage collected, etc doesn't matter if legal constructs within the language will not compile or link. I am not trying to trivialize the technical issue, but I am emphasizing the usability issue here. -DavidM

Well... true. It may not be the same issue then. This problem should not surface with a single object file. I wasn't sure how you were linking things in or where that particular object was. It's only likely to happen if this object file resides in a library. I'm afraid I don't understand what's going on here. -JJR
May 17 2005
prev sibling parent reply John Reimer <brk_6502 yahoo.com> writes:
David Medlock wrote:

 
 I just read Walter's reply in that thread, and I am not sure I fully 
 understand.
 
 If I use:
 
 alias  CList!(SectorCache)    CacheList;
 
 Then explicitly link in 'clist.obj' it should be linked in with the exe 
 no matter what.  Why would the _type_ above be removed? There are no 
 duplicates of it anywhere.  Even if I replace the line with
 
 class CacheList : CList!(SectorCache) {}
 
 it still does not link!
 
 Walter, little gotchas like this can really doom D.  Whether or not its 
 fast, simple, garbage collected, etc doesn't matter if legal constructs 
 within the language will not compile or link.  I am not trying to 
 trivialize the technical issue, but I am emphasizing the usability issue 
 here.
 
 -DavidM
 

Just out of curiosity, maybe you can try Walter's trick... it can't hurt trying. 1) add "int foo;" to the bottom of the clist.d file. 2) add "int* pfoo = &clist.foo" to one of the files that uses the CList template (any one that imports it). See if you can link again. -JJR
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
John Reimer wrote:
 David Medlock wrote:
 
 I just read Walter's reply in that thread, and I am not sure I fully 
 understand.

 If I use:

 alias  CList!(SectorCache)    CacheList;

 Then explicitly link in 'clist.obj' it should be linked in with the 
 exe no matter what.  Why would the _type_ above be removed? There are 
 no duplicates of it anywhere.  Even if I replace the line with

 class CacheList : CList!(SectorCache) {}

 it still does not link!

 Walter, little gotchas like this can really doom D.  Whether or not 
 its fast, simple, garbage collected, etc doesn't matter if legal 
 constructs within the language will not compile or link.  I am not 
 trying to trivialize the technical issue, but I am emphasizing the 
 usability issue here.

 -DavidM

Just out of curiosity, maybe you can try Walter's trick... it can't hurt trying. 1) add "int foo;" to the bottom of the clist.d file. 2) add "int* pfoo = &clist.foo" to one of the files that uses the CList template (any one that imports it). See if you can link again. -JJR

Sadly that does not fix it...same results. :| -DavidM
May 17 2005
parent John Reimer <brk_6502 yahoo.com> writes:
David Medlock wrote:

 Sadly that does not fix it...same results.
 
 :|
 
 -DavidM

Okay... thanks for trying. I was curious. I don't know what else could be wrong. Hopefully Walter can eventually point you in the right direction. -JJR
May 17 2005
prev sibling next sibling parent reply "Ben Hinkle" <bhinkle mathworks.com> writes:
"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.

Note the __init_ isn't for an init() method but is the initial values of the class instance. Right after allocating the instance the __init values are copied to the allocated space and then the ctor is called. Do you have any variables of type CacheList declared in the same module where the CacheList alias is declared? -Ben
May 17 2005
parent David Medlock <noone nowhere.com> writes:
Ben Hinkle 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.

Note the __init_ isn't for an init() method but is the initial values of the class instance. Right after allocating the instance the __init values are copied to the allocated space and then the ctor is called. Do you have any variables of type CacheList declared in the same module where the CacheList alias is declared? -Ben

Yes. The type CList is still not making its way into the object file. See my other thread in response to John.
May 17 2005
prev sibling parent reply "Walter" <newshound digitalmars.com> writes:
"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
parent reply David Medlock <noone nowhere.com> writes:
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
parent reply David Medlock <noone nowhere.com> writes:
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
parent reply "Walter" <newshound digitalmars.com> writes:
"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
parent reply David Medlock <noone nowhere.com> writes:
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
parent reply "Walter" <newshound digitalmars.com> writes:
"David Medlock" <noone nowhere.com> wrote in message
news:d6dqq4$qr4$1 digitaldaemon.com...
 I suggest doing a grep for __init_29TypeInfo_C5world11SectorCache across


 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 17 2005
parent reply David Medlock <noone nowhere.com> writes:
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 17 2005
next sibling parent David Medlock <noone nowhere.com> writes:
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 17 2005
prev sibling next sibling parent John Reimer <brk_6502 yahoo.com> writes:
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 17 2005
prev sibling parent reply "Walter" <newshound digitalmars.com> writes:
"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.
May 17 2005
parent reply David Medlock <noone nowhere.com> writes:
Walter wrote:
 "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.

Hehe, a new twist to my dilemma. Currently my project pulls files from about 5 different directories. When I put everything into one directory(to send to John)...it links fine. Sigh. In each case all the obj files are dumped into a single directory, so I don't see how where they are relative to each other could affect the link process. Thanks to everyone who responded. -DavidM
May 18 2005
next sibling parent John Reimer <brk_6502 yahoo.com> writes:
David Medlock wrote:

 Hehe, a new twist to my dilemma.
 
 Currently my project pulls files from about 5 different directories.
 
 When I put everything into one directory(to send to John)...it links fine.
 
 Sigh.
 
 In each case all the obj files are dumped into a single directory, so I 
 don't see how where they are relative to each other could affect the 
 link process.
 
 Thanks to everyone who responded.
 -DavidM

Ha ha... see? I fixed it! lol :-D -JJR
May 18 2005
prev sibling parent "Walter" <newshound digitalmars.com> writes:
"David Medlock" <noone nowhere.com> wrote in message
news:d6fc7b$24ha$1 digitaldaemon.com...
 Walter wrote:
 "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


 of code or less. Then they become understandable, and fixable.

Hehe, a new twist to my dilemma. Currently my project pulls files from about 5 different directories. When I put everything into one directory(to send to John)...it links fine. Sigh.

Make a duplicate of your directory structure. Then start whacking away at it.
May 20 2005