Commit Graph

16 Commits

Author SHA1 Message Date
Christian Kamm
265cbea170 Make == for associative arrays test for equality, not identity.
_aaEq was added to runtime/internal/aaA.d which forwards to
TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals
was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp.

I assume that the frontend will produce an error if == is used on associative
arrays of different type.

This fixes DMD bug 1429.
2009-06-21 19:05:24 +02:00
Frits van Bommel
46cd6504fa Adjust some more code that was depending on the function and delegate calling
conventions being equal.
There's also an instance in `tango.text.convert.Layout` that should be adjusted:
{{{
Index: tango/text/convert/Layout.d
===================================================================
--- tango/text/convert/Layout.d	(revision 4578)
+++ tango/text/convert/Layout.d	(working copy)
 -660,8 +660,12 @@

                        case TypeCode.STRUCT:
                             auto s = cast(TypeInfo_Struct) type;
-                            if (s.xtoString)
-                                return Utf.fromString8 (s.xtoString(p), result);
+                            if (s.xtoString) {
+                                char[] delegate() toString;
+                                toString.ptr = p;
+                                toString.funcptr = cast(char[] function()) s.xtoString;
+                                return Utf.fromString8 (toString(), result);
+                            }
                             goto default;

                        case TypeCode.INTERFACE:
}}}
2009-05-31 15:27:01 +02:00
Frits van Bommel
a517adb426 Adjust runtime for recent ABI change on x86-64, since member functions are no
longer equivalent to regular functions with `this` as their first argument.
(They weren't anyway, but it happened to work as long as there was no `sret`
parameter)
2009-05-31 14:27:01 +02:00
Tomas Lindquist Olsen
e8780d50e8 Merged DMD 1.045 !!! 2009-05-16 22:21:31 +02:00
Tomas Lindquist Olsen
0ab77de246 Increased a buffer size in TypeInfo_StaticArray from 10 to 20 to avoid assertion failures! Thanks LeoD. 2009-05-10 17:25:47 +02:00
Tomas Lindquist Olsen
ea2279b11a Updated the interal runtime's ClassInfo type to match the one in object.di .
Runtime now compiles and runminitest is back to normal except for typeinfo10.d .
2009-04-17 02:54:16 +02:00
Christian Kamm
253e743d05 Apply fawzi's stacktracing update from #254. 2009-04-05 15:02:44 +02:00
Christian Kamm
ef62f7965c Bring FrameInfo definition up to date with recent Tango developments. Thanks fawzi! 2009-03-22 14:51:03 +01:00
Frits van Bommel
d1911d40d6 Fix some issues with fawzi's patch.
- It now actually compiles:
   - import stdc.stdio for string formatting functions)
   - remove extra '{'
 - Use snprintf() instead of sprintf().
 - Use return value from snprintf instead of strlen().
 - Don't print the filename in Exception.writeOut() if it has zero length and
   the line number is 0
   (It would previously only skip these if the filename was null, but not if it
   was a different empty string)
 - Ignore empty filename + line number 0 in FrameInfo.writeOut() as well.
2009-03-18 15:33:19 +01:00
Frits van Bommel
e847f60fb1 Apply fawzi's patch from #235.
This has some issues which are addressed in my next commit.
2009-03-18 15:20:07 +01:00
Tomas Lindquist Olsen
b6781a8eae Added proper "need 'this' to access member foo" errors instead of "variable foo not resolved" for some cases, added FIXME for the old error!
Added a bit more information to the runtime's cyclic dependency detection exception.
2008-12-09 01:56:39 +01:00
Christian Kamm
b3b98c3284 Fix broken indentation from last commit. 2008-10-26 21:18:24 +01:00
Christian Kamm
d3bb0b74bd Enable arg reversal on x86 by default. Make change to TypeInfo_Struct.compare to accomodate for it. 2008-10-26 21:16:21 +01:00
Christian Kamm
cfcda83291 Change _d_newclass into _d_allocclass. Add initialization to ClassInfo.create. 2008-10-26 14:12:03 +01:00
Christian Kamm
a3a418150e Some missed LLVMDC -> LDC. 2008-10-06 22:54:08 +02:00
Tomas Lindquist Olsen
07cfb67178 Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Reworked the LLVMDC specific pragmas.
2008-08-01 00:32:06 +02:00