Hello community,

here is the log from the commit of package dmd for openSUSE:Factory checked in 
at 2018-02-12 10:15:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dmd (Old)
 and      /work/SRC/openSUSE:Factory/.dmd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dmd"

Mon Feb 12 10:15:55 2018 rev:8 rq:575415 version:2.078.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/dmd/dmd.changes  2018-01-25 12:41:26.632133318 
+0100
+++ /work/SRC/openSUSE:Factory/.dmd.new/dmd.changes     2018-02-12 
10:15:56.731925683 +0100
@@ -1,0 +2,12 @@
+Sun Feb 11 15:03:55 UTC 2018 - matthias.elias...@gmail.com
+
+- Update to 2.078.2
+  - DMD Compiler regressions
+    * [REG 2.078] dmd can't generate 64-bit binaries on Windows 10 with VS 2015
+    * [Reg 2.078] Building fails with VC 2015 Build Tools
+  - DMD Compiler bugs
+    * wrong code for int.min > 0
+  - Druntime regressions
+    * [Reg 2.078] comparison of arrays of associative arrays no longer compiles
+    
+-------------------------------------------------------------------

Old:
----
  dmd-2.078.1.tar.gz
  druntime-2.078.1.tar.gz
  phobos-2.078.1.tar.gz

New:
----
  dmd-2.078.2.tar.gz
  druntime-2.078.2.tar.gz
  phobos-2.078.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dmd.spec ++++++
--- /var/tmp/diff_new_pack.tUpVJi/_old  2018-02-12 10:15:58.651856497 +0100
+++ /var/tmp/diff_new_pack.tUpVJi/_new  2018-02-12 10:15:58.651856497 +0100
@@ -20,7 +20,7 @@
 %define bootstrap_version 2.078.0
 %define sover  0_78
 Name:           dmd
-Version:        2.078.1
+Version:        2.078.2
 Release:        0
 Summary:        D Programming Language 2.0
 License:        BSL-1.0

++++++ dmd-2.078.1.tar.gz -> dmd-2.078.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dmd-2.078.1/VERSION new/dmd-2.078.2/VERSION
--- old/dmd-2.078.1/VERSION     2018-01-21 23:30:35.000000000 +0100
+++ new/dmd-2.078.2/VERSION     2018-02-07 11:17:05.000000000 +0100
@@ -1 +1 @@
-v2.078.1
+v2.078.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dmd-2.078.1/src/dmd/backend/cod4.c 
new/dmd-2.078.2/src/dmd/backend/cod4.c
--- old/dmd-2.078.1/src/dmd/backend/cod4.c      2018-01-21 23:30:35.000000000 
+0100
+++ new/dmd-2.078.2/src/dmd/backend/cod4.c      2018-02-07 11:17:05.000000000 
+0100
@@ -2064,16 +2064,20 @@
                     goto oplt;
                 case OPgt:
                     cdb.gen2(0xF7,grex | modregrmx(3,3,reg));         // NEG 
reg
-#if TARGET_WINDOS
-                    // What does the Windows platform do?
-                    //  lower INT_MIN by 1?   See test exe9.c
-                    // BUG: fix later
+                        /* Flips the sign bit unless the value is 0 or int.min.
+                        Also sets the carry bit when the value is not 0. */
                     code_orflag(cdb.last(), CFpsw);
                     cdb.genc2(0x81,grex | modregrmx(3,3,reg),0);  // SBB reg,0
-#endif
+                        /* Subtracts the carry bit. This turns int.min into
+                        int.max, flipping the sign bit.
+                        For other negative and positive values, subtracting 1
+                        doesn't affect the sign bit.
+                        For 0, the carry bit is not set, so this does nothing
+                        and the sign bit is not affected. */
                     goto oplt;
                 case OPlt:
                 oplt:
+                    // Get the sign bit, i.e. 1 if the value is negative.
                     if (!I16)
                         cdb.genc2(0xC1,grex | modregrmx(3,5,reg),sz * 8 - 1); 
// SHR reg,31
                     else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dmd-2.078.1/src/dmd/link.d 
new/dmd-2.078.2/src/dmd/link.d
--- old/dmd-2.078.1/src/dmd/link.d      2018-01-21 23:30:35.000000000 +0100
+++ new/dmd-2.078.2/src/dmd/link.d      2018-02-07 11:17:05.000000000 +0100
@@ -960,21 +960,23 @@
         const(char)* linkOptions(bool x64)
         {
             OutBuffer cmdbuf;
-            if (auto p = getVCDir(VCDir.Lib, x64))
+            if (auto vclibdir = getVCDir(VCDir.Lib, x64))
             {
                 cmdbuf.writestring(" /LIBPATH:\"");
-                cmdbuf.writestring(p);
+                cmdbuf.writestring(vclibdir);
                 cmdbuf.writeByte('\"');
-            }
-            if (VisualStudioVersion && strcmp(VisualStudioVersion, "14") >= 0)
-            {
-                if (auto p = getUCRTLibPath(x64))
+
+                if (FileName.exists(FileName.combine(vclibdir, 
"legacy_stdio_definitions.lib")))
                 {
-                    cmdbuf.writestring(" /LIBPATH:\"");
-                    cmdbuf.writestring(p);
-                    cmdbuf.writeByte('\"');
+                    // VS2015 or later use UCRT
+                    cmdbuf.writestring(" legacy_stdio_definitions.lib");
+                    if (auto p = getUCRTLibPath(x64))
+                    {
+                        cmdbuf.writestring(" /LIBPATH:\"");
+                        cmdbuf.writestring(p);
+                        cmdbuf.writeByte('\"');
+                    }
                 }
-                cmdbuf.writestring(" legacy_stdio_definitions.lib");
             }
             const(char)* windowssdkdir = getenv("WindowsSdkDir");
             if (auto p = getSDKLibPath(x64))
@@ -1046,7 +1048,7 @@
             if (WindowsSdkDir is null)
             {
                 WindowsSdkDir = GetRegistryString(r"Microsoft\Windows 
Kits\Installed Roots", "KitsRoot10");
-                if (WindowsSdkDir && 
!FileName.exists(FileName.combine(WindowsSdkDir, "Lib")))
+                if (WindowsSdkDir && 
!findLatestSDKDir(FileName.combine(WindowsSdkDir, "Include"), r"um\windows.h"))
                     WindowsSdkDir = null;
             }
             if (WindowsSdkDir is null)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dmd-2.078.1/test/runnable/mars1.d 
new/dmd-2.078.2/test/runnable/mars1.d
--- old/dmd-2.078.1/test/runnable/mars1.d       2018-01-21 23:30:35.000000000 
+0100
+++ new/dmd-2.078.2/test/runnable/mars1.d       2018-02-07 11:17:05.000000000 
+0100
@@ -1725,6 +1725,17 @@
 
 ////////////////////////////////////////////////////////////////////////
 
+void test18315() // https://issues.dlang.org/show_bug.cgi?id=18315
+{
+    int i = int.min;
+    bool b = i > 0;
+    assert(!b);
+    b = 0 < i;
+    assert(!b);
+}
+
+////////////////////////////////////////////////////////////////////////
+
 int main()
 {
     testgoto();
@@ -1785,6 +1796,7 @@
     testeqeqranges();
     testdivcmp();
     test16997();
+    test18315();
     printf("Success\n");
     return 0;
 }

++++++ druntime-2.078.1.tar.gz -> druntime-2.078.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/druntime-2.078.1/src/object.d 
new/druntime-2.078.2/src/object.d
--- old/druntime-2.078.1/src/object.d   2018-01-12 18:35:35.000000000 +0100
+++ new/druntime-2.078.2/src/object.d   2018-01-24 22:41:10.000000000 +0100
@@ -3456,6 +3456,11 @@
                 if (at(lhs, u) != at(rhs, u))
                     return false;
             }
+            else static if (__traits(isAssociativeArray, U1))
+            {
+                if (at(lhs, u) != at(rhs, u))
+                    return false;
+            }
             else
             {
                 if (at(lhs, u).tupleof != at(rhs, u).tupleof)
@@ -3508,6 +3513,21 @@
     assert(arr2 == arr3);
 }
 
+// https://issues.dlang.org/show_bug.cgi?id=18252
+unittest
+{
+    string[int][] a1, a2;
+    assert(__equals(a1, a2));
+    assert(a1 == a2);
+    a1 ~= [0: "zero"];
+    a2 ~= [0: "zero"];
+    assert(__equals(a1, a2));
+    assert(a1 == a2);
+    a2[0][1] = "one";
+    assert(!__equals(a1, a2));
+    assert(a1 != a2);
+}
+
 // Compare class and interface objects for ordering.
 private int __cmp(Obj)(Obj lhs, Obj rhs)
 if (is(Obj : Object))

++++++ phobos-2.078.1.tar.gz -> phobos-2.078.2.tar.gz ++++++


Reply via email to