digitalmars.D.bugs - [Issue 4067] New: [CTFE] Maybe ignored code in CTFE
- d-bugmail puremagic.com (78/78) Apr 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4067
- d-bugmail puremagic.com (14/14) Apr 06 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4067
- d-bugmail puremagic.com (10/10) Apr 28 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4067
- d-bugmail puremagic.com (11/11) May 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4067
http://d.puremagic.com/issues/show_bug.cgi?id=4067 Summary: [CTFE] Maybe ignored code in CTFE Product: D Version: future Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: bearophile_hugs eml.cc Usually I show here minimal programs that contain the bug, but this time I show a bigger small program. This is a small benchmark I've adapted from the old Shootout code, it tests the performance of exceptions (on dmd they are very slow). I use this code both at compile time and run time. It contains a printf and exceptions that can't be used in CTFE, but this program compiles with dmd v.2.042 and prints 0/0 at ctfe. import std.c.stdio: printf; class LoException : Exception { this() { super(null); } } class HiException : Exception { this() { super(null); } } struct HiLo { int hi, lo; } struct App { int hi, lo, count; void someFunction() { try { hiFunction(); } catch (Exception e) { printf("We shouldn't get here\n"); } } void hiFunction() { try { loFunction(); } catch (HiException) { hi++; } } void loFunction() { try { blowUp(); } catch (LoException) { lo++; } } void blowUp() { if (count & 1) throw new HiException(); else throw new LoException(); } auto go(int n) { for (count = 0; count < n; count++) someFunction(); return HiLo(hi, lo); } } void main() { enum int n = 1000; App app; HiLo result1 = app.go(n); // OK printf("excepts(%d) hi|lo = %d | %d\n", n, result1.hi, result1.lo); enum HiLo result2 = app.go(n); // Err printf("excepts(%d) hi|lo = %d | %d\n", n, result2.hi, result2.lo); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 05 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4067 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code CC| |clugdbug yahoo.com.au Summary|[CTFE] Maybe ignored code |[CTFE] Code inside |in CTFE |try-catch blocks is | |silently ignored This should generate an error, until exceptions are supported in CTFE. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 06 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4067 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bugzilla digitalmars.com 08:31:02 PDT --- changeset 457 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 28 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4067 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed DMD2.044 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 05 2010