A question about modules

Ary Manzana ary at esperanto.org.ar
Tue Jun 12 16:23:05 PDT 2007


Nice idea!

I also had this idea some weeks ago (but, I never told it)... And, of 
course, the name was also "dar". It would realy be cool. Especially 
since in Descent I could replace all ocurrences of the word "jar" with 
"dar" and voilà! :-P

Myron Alexander escribió:
> Lutger wrote:
>> Myron Alexander wrote:
>>> I am aware of the .di files (although I did not see that dmd can 
>>> generate them for you so thanks for the info) but what I want to do 
>>> is eliminate the need for a separate .lib and .di files. The way Java 
>>> works  is that you do not have to include a textual header with the 
>>> .class files, the .class files act as the header and obj in one file.
>>
>> Perhaps this is a stupid question, but what is the benefit of this? 
>> Templates are handled ok with .lib and .di files. If the problem is 
>> ease of use of packaging, then this is taken care of by tools like dsss.
> 
> The problem is having to manage separate header and obj files. This was 
> always a pain in C and it is a pain in D, less of a pain but one none 
> the less (especially with bug 1133). The other problem with .di files is 
> that the template code is in plain sight - not so good for closed source 
> / commercial libraries.
> 
> Imagine this scenario with the binary modules:
> 
> Starting with sources, you compile the library and generate a .dar file 
> (D archive).
> 
> The .dar file is very much like an uber jar file (with all the meta-data 
> issues sorted out).  The .dar file is an archive that contains .dm files 
> or D module files.
> 
> The D module file acts like the .di file when sources are compiled 
> against it, and it acts like the .obj file in the link phase. Although 
> it acts like the .di, it is not source, it is some syntax tree or 
> optimized representation so it actually speeds up compilation time. The 
> .dm file contains templates and other compile time goodies but without 
> showing them in plain text. Because of how it works, with the right 
> tools, you could convert the .di portion back into readable code, ala 
> java jad, but it would not be as readable as the .di, just like jad.
> 
> This is not an attempt to lock away the interface code, just not make it 
> so obvious. The main benefit to .dar files is that you have a one file 
> library that you drop into a directory and compile/link against 
> simplifying distribution. Unlike jar files, these are not class loaded 
> modules, they are linked into the binary just like .libs.
> 
> I hope I made sense, my brain is shutting down and I am having some 
> difficulty concentrating.
> 
> If you have worked with jar files you will understand the convenience of 
> not having to maintain separate include directories and a lib dir.
> 
> Best Regards,
> 
> Myron.



More information about the Digitalmars-d mailing list