digitalmars.D.bugs - [Issue 447] New: frontend: writeable
- d-bugmail puremagic.com (18/18) Oct 24 2006 http://d.puremagic.com/issues/show_bug.cgi?id=447
- d-bugmail puremagic.com (6/6) Oct 24 2006 http://d.puremagic.com/issues/show_bug.cgi?id=447
- d-bugmail puremagic.com (11/11) Oct 25 2006 http://d.puremagic.com/issues/show_bug.cgi?id=447
- Thomas Kuehne (20/27) Oct 26 2006 -----BEGIN PGP SIGNED MESSAGE-----
- Walter Bright (10/22) Oct 26 2006 I've fixed a lot of bugs in dmd over the years (you know that as well as...
- Walter Bright (10/12) Oct 26 2006 I want to add that, in my experience, the single most important
- Sean Kelly (5/19) Oct 27 2006 The most obvious offender in Phobos is internal/gc/gc.d, where arrays
- d-bugmail puremagic.com (15/15) Apr 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=447
http://d.puremagic.com/issues/show_bug.cgi?id=447 Summary: frontend: writeable Product: D Version: 0.170 Platform: PC OS/Version: Linux Status: NEW Keywords: patch Severity: enhancement Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: thomas-dloop kuehne.cn DMD's frontend code assumes that string constants are implicitly convertible to "char *". The attached sources treat string constants as "const char *". Were the changes would require extensive modification the const_cast kludge was used. --
Oct 24 2006
http://d.puremagic.com/issues/show_bug.cgi?id=447 Created an attachment (id=39) --> (http://d.puremagic.com/issues/attachment.cgi?id=39&action=view) dmd-0.170.string_constants --
Oct 24 2006
http://d.puremagic.com/issues/show_bug.cgi?id=447 The C++ standard allows implicit conversion from string literals to char*, so DMD's usage of it is compliant code. What this would be a move towards is making the DMD source const-correct. Going halfway towards it is where the const_cast thing comes in, and that's not any better than relying on the literal => char* being allowed. Const correctness needs to be done either full bore or not at all. I'm not willing to convert it all to be const-correct, because it's ugly, a lot of work, and I'm pretty sure would not find a single problem. --
Oct 25 2006
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 d-bugmail puremagic.com schrieb am 2006-10-26:http://d.puremagic.com/issues/show_bug.cgi?id=447What this would be a move towards is making the DMD source const-correct. Going halfway towards it is where the const_cast thing comes in, and that's not any better than relying on the literal => char* being allowed. Const correctness needs to be done either full bore or not at all. I'm not willing to convert it all to be const-correct, because it's ugly, a lot of work, and I'm pretty sure would not find a single problem.Sure, it is a lot of work and the current solution is only a start. (for the time beeing you could replace "const_cast<char *>" with "mem.strdup") "Pritty sure" is nice but having as much as possible automatic detections is more important to me in the long run. <rant> Trying to clean up the frontend for 64bit proved surpisingly hard. 64bit builds with gcc and icc show different behaviours. Seemingly simple test cases like http://dstress.kuehne.cn/run/l/large_id_01_D.d and http://dstress.kuehne.cn/compile/template_class_08.d fail for 64bit but pass for 32bit builds. etc. </rant> -----BEGIN PGP SIGNATURE----- iD8DBQFFQVC5LK5blCcjpWoRAkCgAJ48YFkIuYDNrFNlH0acacLA6HTO6wCeLH5Y rU0gq/zrcnvzd2lO+FE42eI= =PQ5G -----END PGP SIGNATURE-----
Oct 26 2006
Thomas Kuehne wrote:Sure, it is a lot of work and the current solution is only a start. (for the time beeing you could replace "const_cast<char *>" with "mem.strdup") "Pritty sure" is nice but having as much as possible automatic detections is more important to me in the long run.I've fixed a lot of bugs in dmd over the years (you know that as well as anyone!). Not one of them would have been found by const-correctness. I've used const-correctness in the past, and it never found any bugs then, either. My bugs tend to be cases I hadn't thought of, i.e. unexpected interactions between features.<rant> Trying to clean up the frontend for 64bit proved surpisingly hard. 64bit builds with gcc and icc show different behaviours. Seemingly simple test cases like http://dstress.kuehne.cn/run/l/large_id_01_D.d and http://dstress.kuehne.cn/compile/template_class_08.d fail for 64bit but pass for 32bit builds. etc. </rant>I'm very interested in folding in the changes necessary to fix this. I've already folded in the ones listed in the bug reports here (they'll be in the next update).
Oct 26 2006
Walter Bright wrote:My bugs tend to be cases I hadn't thought of, i.e. unexpected interactions between features.I want to add that, in my experience, the single most important contributor to producing a bug-free product is a thorough test suite. Yours has proven its worth over and over, and is doing so again in helping proof the 64 bit GDC. The best tool to help create a test suite is a coverage analyzer, like -cov for DMD and -gcov for gcc. I'm guilty of not using them enough, but their worth is beyond dispute. The other way to create a test suite is to put every bug report into it after it's fixed. That one I do do diligently, and you do too.
Oct 26 2006
Walter Bright wrote:Thomas Kuehne wrote:The most obvious offender in Phobos is internal/gc/gc.d, where arrays are cast to long before being returned from functions. GPhobos may be a useful comparison for 64-bit changes needed in Phobos. Sean<rant> Trying to clean up the frontend for 64bit proved surpisingly hard. 64bit builds with gcc and icc show different behaviours. Seemingly simple test cases like http://dstress.kuehne.cn/run/l/large_id_01_D.d and http://dstress.kuehne.cn/compile/template_class_08.d fail for 64bit but pass for 32bit builds. etc. </rant>I'm very interested in folding in the changes necessary to fix this. I've already folded in the ones listed in the bug reports here (they'll be in the next update).
Oct 27 2006
http://d.puremagic.com/issues/show_bug.cgi?id=447 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |clugdbug yahoo.com.au Resolution| |FIXED I'm closing this because: (1) the 64-bit bugs were fixed in dmd 0.171; (2) The DMD source will not become const-correct; (3) everything else in this bug report is obsolete. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 15 2010