changeset 402:e67ce7c21758

gdc & 64 bit changes
author Eldar Insafutdinov
date Thu, 17 Mar 2011 19:45:42 +0000
parents d757b8b1ca75
children 8564ab82ea42
files CMakeLists.txt cmake/FindD.cmake d2/qt/core/QList.d d2/qt/core/QMetaObject.d d2/qtd/MOC.d d2/qtd/Marshal.d d2/qtd/Signal.d demos/interview/model.d generator/typesystem_core-java.java generator/typesystem_gui-java.java
diffstat 10 files changed, 50 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Wed Oct 20 09:45:59 2010 +0200
+++ b/CMakeLists.txt	Thu Mar 17 19:45:42 2011 +0000
@@ -1,9 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 PROJECT(qtd CXX C)
 
-# Everything is in 32-bit mode for now.
-set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -m32)
-
 # Debug and release flags.
 if (NOT CMAKE_BUILD_TYPE)
     set(CMAKE_BUILD_TYPE Release)
--- a/cmake/FindD.cmake	Wed Oct 20 09:45:59 2010 +0200
+++ b/cmake/FindD.cmake	Thu Mar 17 19:45:42 2011 +0000
@@ -3,20 +3,20 @@
 ##--------------------------------------------
 
 ## Find D compiler and parse its version.
-find_program(DC NAMES dmd ldc)
+find_program(DC NAMES dmd ldc gdmd)
 if (DC)
     get_filename_component(dc_path ${DC} PATH)
     if("${dc_path}" STREQUAL ${CMAKE_BINARY_DIR})
-	get_filename_component(DC ${DC} NAME)
+        get_filename_component(DC ${DC} NAME)
     endif("${dc_path}" STREQUAL ${CMAKE_BINARY_DIR})
     exec_program(${DC} ARGS "" OUTPUT_VARIABLE d_output)
     string(REGEX MATCH "Digital Mars D Compiler v[0-9]\\.[0-9]+" dmd_version "${d_output}")
     if (dmd_version)
-	set(D_IS_MARS true)
-	set(D_IS_DMD true)
-	set(D_COMPILER_NAME "Digital Mars D Compiler")
-	string(REGEX REPLACE "Digital Mars D Compiler v([0-9])\\.[0-9]+" "\\1" D_VERSION "${dmd_version}")
-	string(REGEX REPLACE "Digital Mars D Compiler v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${dmd_version}")
+        set(D_IS_MARS true)
+        set(D_IS_DMD true)
+        set(D_COMPILER_NAME "Digital Mars D Compiler")
+        string(REGEX REPLACE "Digital Mars D Compiler v([0-9])\\.[0-9]+" "\\1" D_VERSION "${dmd_version}")
+        string(REGEX REPLACE "Digital Mars D Compiler v[0-9]\\.([0-9]+)" "\\1" D_FRONTEND "${dmd_version}")
     else (dmd_version)
 	string(REGEX MATCH "LLVM-based D Compiler" is_ldc "${d_output}")
 	if (is_ldc)
@@ -33,8 +33,14 @@
 		message(FATAL_ERROR "LDC compiler found, but the version can not be processed")
 	    endif(ldc_version)
 	else (is_ldc)
-	    message(FATAL_ERROR "D compiler is not found")
-	endif(is_ldc)
+    string(REGEX MATCH "gdc" is_gdc "${d_output}")
+    if(is_gdc)
+        set(D_COMPILER_NAME "GDC-based D Compiler")
+        set(D_VERSION 2)
+    else(is_gdc)
+        message(FATAL_ERROR "D compiler is not found")
+    endif(is_gdc)
+    endif(is_ldc)
     endif(dmd_version)
     message(STATUS "D compiler found -- ${D_COMPILER_NAME} v${D_VERSION}.${D_FRONTEND}")
 else (DC)
--- a/d2/qt/core/QList.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/d2/qt/core/QList.d	Thu Mar 17 19:45:42 2011 +0000
@@ -85,7 +85,7 @@
 {
     // dear compiler: don't optimize me out.
 //    synchronized {
-        int x = qAllocMore(size * (void*).sizeof, QListData.DataHeaderSize) / (void*).sizeof;
+        int x = cast(int) (qAllocMore(cast(int)(size * (void*).sizeof), QListData.DataHeaderSize) / (void*).sizeof);
         return x;
 //    }
 }
@@ -303,7 +303,7 @@
     void **erase(void **xi)
     {
 //        Q_ASSERT(d.ref_ == 1);
-        int i = xi - (d.array.ptr + d.begin);
+        int i = cast(int)(xi - (d.array.ptr + d.begin));
         remove(i);
         return d.array.ptr + d.begin + i;
     }
--- a/d2/qt/core/QMetaObject.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/d2/qt/core/QMetaObject.d	Thu Mar 17 19:45:42 2011 +0000
@@ -34,13 +34,13 @@
         this.signature = signature;
         this.index = index;
 
-        int openBracket = indexOf(signature, '(');
+        auto openBracket = indexOf(signature, '(');
         name = signature[0..openBracket];
     }
 
     string args() const
     {
-        int openBracket = indexOf(signature, '(');
+        auto openBracket = indexOf(signature, '(');
         if(signature.length - openBracket - 2 > 0)
             return signature[openBracket + 1 .. $-1];
         else
--- a/d2/qtd/MOC.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/d2/qtd/MOC.d	Thu Mar 17 19:45:42 2011 +0000
@@ -20,11 +20,11 @@
 /**
    Utils.
  */
-int lastIndexOf(T)(T[] haystack, T[] needle, int from = -1)
+sizediff_t lastIndexOf(T)(T[] haystack, T[] needle, sizediff_t from = -1)
 {
     auto l = haystack.length;
     auto ol = needle.length;
-    int delta = l - ol;
+    auto delta = l - ol;
     if (from < 0)
         from = delta;
     if (from < 0 || from > l)
@@ -41,7 +41,7 @@
     return -1;
 }
 
-string replicate(int n, char value)
+string replicate(size_t n, char value)
 {
     char[] ret = "".dup;
     if (n > 0)
@@ -144,11 +144,11 @@
 
 
 
-int lengthOfEscapeSequence(string s, uint i)
+int lengthOfEscapeSequence(string s, size_t i)
 {
     if (s[i] != '\\' || i >= s.length - 1)
         return 1;
-    const int startPos = i;
+    const startPos = i;
     ++i;
     auto ch = s[i];
     if (ch == 'x') {
@@ -164,7 +164,7 @@
     } else { // single character escape sequence
         i = qMin(i + 1, s.length);
     }
-    return i - startPos;
+    return cast(int)(i - startPos);
 }
 
 int strreg(ref Generator gen, string s)
@@ -274,7 +274,7 @@
     gen.output ~= format_ctfe("    ${}, ${}, // classinfo\n", gen.cdef.classInfoList.length, gen.cdef.classInfoList.length ? index : 0);
     index += gen.cdef.classInfoList.length * 2;
 
-    int methodCount = gen.cdef.signalList.length + gen.cdef.slotList.length;// + cdef->methodList.count();
+    auto methodCount = gen.cdef.signalList.length + gen.cdef.slotList.length;// + cdef->methodList.count();
     gen.output ~= format_ctfe("    ${}, ${}, // methods\n", methodCount, methodCount ? index : 0);
     index += methodCount * 5;
     gen.output ~= format_ctfe("    ${}, ${}, // properties\n", propertyList.length, propertyList.length ? index : 0);
@@ -337,7 +337,7 @@
     gen.output ~= "private static immutable char[] qt_meta_stringdata = \n";
     gen.output ~= format_ctfe("    \"");
     int col = 0;
-    int len = 0;
+    sizediff_t len = 0;
     foreach (i, s; gen.strings) {
         len = s.length;
         if (col && col + len >= 72) {
@@ -353,12 +353,12 @@
                 col = 0;
                 gen.output ~= format_ctfe("\"\n    \"");
             }
-            int spanLen = qMin(cast(uint)70, s.length - idx);
+            sizediff_t spanLen = qMin(cast(size_t)70, s.length - idx);
             // don't cut escape sequences at the end of a line
-            int backSlashPos = s.lastIndexOf("\\", idx + spanLen - 1);
+            auto backSlashPos = s.lastIndexOf("\\", idx + spanLen - 1);
             if (backSlashPos >= idx) {
-                int escapeLen = lengthOfEscapeSequence(s, backSlashPos);
-                spanLen = qBound(spanLen, backSlashPos + escapeLen - idx, cast(int)(s.length - idx));
+                auto escapeLen = lengthOfEscapeSequence(s, backSlashPos);
+                spanLen = qBound(spanLen, backSlashPos + escapeLen - idx, cast(sizediff_t)(s.length - idx));
             }
             gen.output ~= s[idx..idx+spanLen];
             idx += spanLen;
--- a/d2/qtd/Marshal.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/d2/qtd/Marshal.d	Thu Mar 17 19:45:42 2011 +0000
@@ -91,7 +91,7 @@
     Generates C++-to-D conversion code for the
     argument argIndex.
  */
-string generateConvToD(uint argIndex)
+string generateConvToD(size_t argIndex)
 {
     string res = format_ctfe(q{
 
--- a/d2/qtd/Signal.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/d2/qtd/Signal.d	Thu Mar 17 19:45:42 2011 +0000
@@ -40,7 +40,7 @@
     bool inDefaultValue = false;
     bool inStringLiteral = false;
     string[] res;
-    int startValue = 0;
+    sizediff_t startValue = 0;
 
     if(strip(signature).length == 0)
         return res;
--- a/demos/interview/model.d	Wed Oct 20 09:45:59 2010 +0200
+++ b/demos/interview/model.d	Thu Mar 17 19:45:42 2011 +0000
@@ -178,7 +178,7 @@
     int row(Node node) const
     {
         auto v = node.parent !is null ? node.parent.children : tree;
-        return find(v, node);
+        return cast(int)find(v, node);
     }
 
 
--- a/generator/typesystem_core-java.java	Wed Oct 20 09:45:59 2010 +0200
+++ b/generator/typesystem_core-java.java	Thu Mar 17 19:45:42 2011 +0000
@@ -209,7 +209,7 @@
 //        if (m_instance != null)
 //            throw new RuntimeException("QCoreApplication can only be initialized once");
 
-		argc = args.length;
+		argc = cast(int) args.length;
 		argv = toStringzArray(args);
 		this(&argc, argv);
 
@@ -235,7 +235,7 @@
 
 class QTranslator___ extends QTranslator {
    	public final bool load(ubyte[] data) {
-        return load(data.ptr, data.length);
+        return load(data.ptr, cast(int)data.length);
     }
 }// class
 
@@ -590,7 +590,7 @@
     }
 
     public final void setData(byte data[]) {
-        setData(cast(char*)data.ptr, data.length);
+        setData(cast(char*)data.ptr, cast(int)data.length);
     }
 
 }// class
--- a/generator/typesystem_gui-java.java	Wed Oct 20 09:45:59 2010 +0200
+++ b/generator/typesystem_gui-java.java	Thu Mar 17 19:45:42 2011 +0000
@@ -1010,51 +1010,51 @@
     }
 
     public final void drawConvexPolygon(in QPoint[] points) {
-        qtd_QPainter_drawConvexPolygon_nativepointerQPoint_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawConvexPolygon_nativepointerQPoint_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawConvexPolygon(in QPointF[] points) {
-        qtd_QPainter_drawConvexPolygon_nativepointerQPointF_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawConvexPolygon_nativepointerQPointF_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawLines(in QLine[] lines) {
-        qtd_QPainter_drawLines_nativepointerQLine_int(qtdNativeId, lines.ptr, lines.length);
+        qtd_QPainter_drawLines_nativepointerQLine_int(qtdNativeId, lines.ptr, cast(int)lines.length);
     }
 
     public final void drawLines(in QLineF[] lines) {
-        qtd_QPainter_drawLines_nativepointerQLineF_int(qtdNativeId, lines.ptr, lines.length);
+        qtd_QPainter_drawLines_nativepointerQLineF_int(qtdNativeId, lines.ptr, cast(int)lines.length);
     }
 
     public final void drawPolygon(in QPoint[] points, Qt.FillRule fillRule = Qt.FillRule.OddEvenFill) {
-        qtd_QPainter_drawPolygon_nativepointerQPoint_int_FillRule(qtdNativeId, points.ptr, points.length, fillRule);
+        qtd_QPainter_drawPolygon_nativepointerQPoint_int_FillRule(qtdNativeId, points.ptr, cast(int)points.length, fillRule);
     }
 
     public final void drawPolygon(in QPointF[] points, Qt.FillRule fillRule = Qt.FillRule.OddEvenFill) {
-        qtd_QPainter_drawPolygon_nativepointerQPointF_int_FillRule(qtdNativeId, points.ptr, points.length, fillRule);
+        qtd_QPainter_drawPolygon_nativepointerQPointF_int_FillRule(qtdNativeId, points.ptr, cast(int)points.length, fillRule);
     }
 
     public final void drawPolyline(in QPoint[] points) {
-        qtd_QPainter_drawPolyline_nativepointerQPoint_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawPolyline_nativepointerQPoint_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawPolyline(in QPointF[] points) {
-        qtd_QPainter_drawPolyline_nativepointerQPointF_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawPolyline_nativepointerQPointF_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawPoints(in QPoint[] points) {
-        qtd_QPainter_drawPoints_nativepointerQPoint_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawPoints_nativepointerQPoint_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawPoints(in QPointF[] points) {
-        qtd_QPainter_drawPoints_nativepointerQPointF_int(qtdNativeId, points.ptr, points.length);
+        qtd_QPainter_drawPoints_nativepointerQPointF_int(qtdNativeId, points.ptr, cast(int)points.length);
     }
 
     public final void drawRects(in QRect[] rects) {
-        qtd_QPainter_drawRects_nativepointerQRect_int(qtdNativeId, rects.ptr, rects.length);
+        qtd_QPainter_drawRects_nativepointerQRect_int(qtdNativeId, rects.ptr, cast(int)rects.length);
     }
 
     public final void drawRects(in QRectF[] rects) {
-        qtd_QPainter_drawRects_nativepointerQRectF_int(qtdNativeId, rects.ptr, rects.length);
+        qtd_QPainter_drawRects_nativepointerQRectF_int(qtdNativeId, rects.ptr, cast(int)rects.length);
     }
 /*
     public static QPaintDeviceInterface redirected(QPaintDeviceInterface device, qt.core.QPoint offset) {
@@ -1081,7 +1081,7 @@
 //        if (m_instance != null)
 //            throw new RuntimeException("QCoreApplication can only be initialized once");
 
-		argc = args.length;
+		argc = cast(int)args.length;
 		argv = toStringzArray(args);
 		this(&argc, argv);