FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Son of Status Log

 
Post new topic   Reply to topic     Forum Index -> DDL - D Dynamic Libraries
View previous topic :: View next topic  
Author Message
pragma



Joined: 28 May 2004
Posts: 607
Location: Washington, DC

PostPosted: Thu Jun 14, 2007 7:54 pm    Post subject: Son of Status Log Reply with quote

New log here for new efforts.

Today I finally got some time set aside to tackle the remaining issues for DDL's migration to Tango. So far things compile and look good from the utilities side of things - I still have yet to touch the test suite.

The biggest problem ATM is demangling. For some reason, things are not coming out right. As near as I can tell, Phobos' implementation of demangle is out of sync with DMD 1.x - Walter must have changed the compiler's behavior, but neglected demangle.d.

In general I've noticed a few new conventions:

- Various class meta-symbols like __init and __vtbl now end in 'Z'
- Member functions are now distinguished from free functions by 'MF'

Anyway, this stuff shouldn't be "rocket surgery" to fix...

Code for test3.d:

Code:

class Foobar{
   uint gorf(int a){
      return 0;
   }
}


A pass of ddlinfo, with tangobos demangle's best attempt at interpreting symbolic information:

Code:

>ddlinfo test3.obj
filename: 'test3.obj'
type: 'OMF'
attributes:
omf.filename - test3.obj

Modules (1):

test3.d

Symbols (13):
weak MFiZk test3.Foobar.gorf
unresolved Z ModuleInfo.__vtbl
unresolved MFC6ObjectZi object.Object.opEquals
unresolved MFC6ObjectZi object.Object.opCmp
unresolved MFZk object.Object.toHash
unresolved MFZAa object.Object.toUtf8
unresolved Z Object.__Class
unresolved Z ClassInfo.__vtbl
unresolved void invariant._d_invariant(class Object)
strong Z test3.Foobar.__init
strong Z test3.Foobar.__Class
strong Z test3.Foobar.__vtbl
strong Z test3.__ModuleInfo


Raw symbol dump:

Code:

>ddlinfo test3.obj -r
filename: 'test3.obj'
type: 'OMF'
attributes:
omf.filename - test3.obj

Modules (1):

test3.d

Symbols (13):
weak _D5test36Foobar4gorfMFiZk
unresolved _D10ModuleInfo6__vtblZ
unresolved _D6object6Object8opEqualsMFC6ObjectZi
unresolved _D6object6Object5opCmpMFC6ObjectZi
unresolved _D6object6Object6toHashMFZk
unresolved _D6object6Object6toUtf8MFZAa
unresolved _D6Object7__ClassZ
unresolved _D9ClassInfo6__vtblZ
unresolved _D9invariant12_d_invariantFC6ObjectZv
strong _D5test36Foobar6__initZ
strong _D5test36Foobar7__ClassZ
strong _D5test36Foobar6__vtblZ
strong _D5test312__ModuleInfoZ


Map file dump (for sanity's sake):

Code:

 0001:0080       _D5test312__ModuleInfoZ
 0000:0000       _D5test36Foobar4gorfMFiZk
 0001:0000       _D5test36Foobar6__initZ
 0001:0060       _D5test36Foobar6__vtblZ
 0001:0018       _D5test36Foobar7__ClassZ

_________________
-- !Eric.t.Anderton at gmail
Back to top
View user's profile Send private message Yahoo Messenger
pragma



Joined: 28 May 2004
Posts: 607
Location: Washington, DC

PostPosted: Sun Jun 17, 2007 8:42 pm    Post subject: Reply with quote

Okay, demangling has been improved and etc/demangle.d is now up to speed with what is needed by DDL. Since this marks a behavior change from the Phobos-style demangling, I'm considering folding it (once again) back into ddl.Demangle.

On the Insitu Lib front, the library is still dependent upon Phobos zip. Moreover, it was brought to my attention some time ago that this was the source of some memory problems. So I'm looking into rolling a dead-simple compression algorithm to compress the symbol information instead. That way, DDL won't need to pull in the entire zlib library.

The tutorials have also been touched, and the examples/ tree now includes the sources for all the published tutorials thus far. I think I'm going to move towards retiring the /test tree, and using the example code as more of a library test suite instead. The rest of the various tests will be moved into module unit-tests as well.
_________________
-- !Eric.t.Anderton at gmail
Back to top
View user's profile Send private message Yahoo Messenger
BLS



Joined: 28 Mar 2006
Posts: 44
Location: France

PostPosted: Tue Jul 17, 2007 6:29 am    Post subject: Reply with quote

pragma wrote:

On the Insitu Lib front, the library is still dependent upon Phobos zip. Moreover, it was brought to my attention some time ago that this was the source of some memory problems. So I'm looking into rolling a dead-simple compression algorithm to compress the symbol information instead. That way, DDL won't need to pull in the entire zlib library.


Hi Eric,
Why not using LZW compression ?
Bjoern
http://marknelson.us/attachments/lzw-data-compression/lzw.c
Back to top
View user's profile Send private message
pragma



Joined: 28 May 2004
Posts: 607
Location: Washington, DC

PostPosted: Tue Jul 17, 2007 7:58 am    Post subject: Reply with quote

BLS wrote:

Hi Eric,
Why not using LZW compression ?
Bjoern
http://marknelson.us/attachments/lzw-data-compression/lzw.c


Umm... because nobody had the heart to drop such a succinct compression format in my lap before. Wink

Thanks!
_________________
-- !Eric.t.Anderton at gmail
Back to top
View user's profile Send private message Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> DDL - D Dynamic Libraries All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group