A gentle critque..

Hasan Aljudy hasan.aljudy at gmail.com
Mon May 15 11:26:40 PDT 2006


Ben Cooley wrote:
> In article <e49b0t$11f0$1 at digitaldaemon.com>, Walter Bright says...
> 
>>Derek Parnell wrote:
>>
>>>May I repeat a portion of my post please ...
>>>
>>>    "a new utility that can **help** us automate
>>>     translation of C/C++ headers into D source code"
>>>
>>>I know that 100% automated translation is not practical. However, as
>>>DigitalMars already has a C/C++ parser that works, I was thinking that a
>>>tool based on that parser to created a best-effort translation and
>>>highlighted that which needs human effort might be a useful addition to the
>>>D tool set. Whatever you have now as a C/C++ parser has got to be better
>>>than writing a new one from scratch. I'm not asking for the source code for
>>>that parser, just a tool that would output something that could be tweaked
>>>into D code by either (or both) another tool or person.
>>
>>One of my concerns about me writing such a tool is that people will have 
>>too high expectations of it, and when it fails to deliver 100% automated 
>>conversion, it'll give the rest of D a bad image.
>>
>>The first thing someone new to D will do is try to run the converter 
>>across all their C header files. The converter will fail miserably. 
>>They'll just dismiss D as a buggy piece of ****.
> 
> 
> Hi Walter,
> 
> Great work on D, by the way!  I guess this post is just frustration that I will
> never actually be able to use it except in some smaller projects.
> 
> About parsing headers.. I'm sure people would feel the same way about any C or C
> plus plus compiler. If it couldn't parse headers, it wouldn't be particularly
> useful.  It's a tough row to hoe.. but well there you are when you decide to
> write an alternative to C and C plus plus.  The ability to  integrate easily
> with all the existing code out there is crtitically important.

please note, one of the original motivations and explicit goals of D is 
to break the never ending backwards compatibility issue.
D is intentionally not compatible with C++. It's not a side effect of 
developing a new language, it's an explicitly stated goal!!

Tough ..

Don't try to convert millions of lines of C++ code to D, that's just not 
practical.



> 
> Speaking from personal scenario, the requirement that I wrap several hundred
> thousands of lines of existing code is a non-starter.  It was difficult enough
> the first time I did it.. having to place extern "C" { } around all my C headers
> transitioning over to C plus plus in the 80's and 90's and fix various
> ideosyncracies between the C and C plus plus parsers.  It's just completely
> impossible now.
> 
> I would suggest that a standard C and C plus plus compiler and parser be
> integrated into D, and that it not "convert" files, but just parse them directly
> without modification.  If the equivalent C or C plus plus construct is not
> available in D, D should provide a way of accessing that construct as a foreign
> object.  
> 
> If this were possible, I could simply begin to add D modules to my code base and
> start the gradual transition.. as I once did long ago with my C plus plus code.
> 
> I would also like to add that the ability to clearly define certain regions of
> code as pointer or type safe is very nice in languages like C#.  Programmers
> discretion and code policies help in large projects.
> 
> 



More information about the Digitalmars-d mailing list