Hello community,
here is the log from the commit of package dmd for openSUSE:Factory checked in at 2019-02-17 12:21:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dmd (Old)
and /work/SRC/openSUSE:Factory/.dmd.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dmd"
Sun Feb 17 12:21:55 2019 rev:23 rq:676700 version:2.084.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/dmd/dmd.changes 2019-01-08 12:30:59.636107667 +0100
+++ /work/SRC/openSUSE:Factory/.dmd.new.28833/dmd.changes 2019-02-17 12:21:56.796190560 +0100
@@ -1,0 +2,10 @@
+Sat Feb 16 19:19:18 UTC 2019 - Matthias Eliasson
+
+- Update to version 2.084.1
+ - Compiler bugs
+ * -check=in=off doesn't work
+ * corrupt ELF library when using pragma(crt_constructor)
+ - Compiler enhancements
+ * Shared object "libstdc++.so.6" not found, required by "dmd"
+
+----- --------------------------------------------------------------
Old:
----
dmd-2.084.0.tar.gz
druntime-2.084.0.tar.gz
phobos-2.084.0.tar.gz
New:
----
dmd-2.084.1.tar.gz
druntime-2.084.1.tar.gz
phobos-2.084.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dmd.spec ++++++
--- /var/tmp/diff_new_pack.HYVmlI/_old 2019-02-17 12:21:58.148190188 +0100
+++ /var/tmp/diff_new_pack.HYVmlI/_new 2019-02-17 12:21:58.152190187 +0100
@@ -20,7 +20,7 @@
%define sover 0_84
%define auto_bootstrap 1
Name: dmd
-Version: 2.084.0
+Version: 2.084.1
Release: 0
Summary: D Programming Language 2.0
License: BSL-1.0
++++++ dmd-2.084.0.tar.gz -> dmd-2.084.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/VERSION new/dmd-2.084.1/VERSION
--- old/dmd-2.084.0/VERSION 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/VERSION 2019-02-09 21:52:02.000000000 +0100
@@ -1 +1 @@
-v2.084.0
+v2.084.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/alias_from_trait.dd new/dmd-2.084.1/changelog/alias_from_trait.dd
--- old/dmd-2.084.0/changelog/alias_from_trait.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/alias_from_trait.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-Aliases can be created directly from a `__trait`.
-
-Aliases can be created directly from the traits that return symbol(s) or tuples.
-This includes `getMember`, `allMembers`, `derivedMembers`, `parent`, `getOverloads`,
-`getVirtualFunctions`, `getVirtualMethods`, `getUnitTests`, `getAttributes` and finally `getAliasThis`.
-Previously an `AliasSeq` was necessary in order to alias their return.
-Now the grammar allows to write shorter declarations:
-
----
-struct Foo
-{
- static int a;
-}
-
-alias oldWay = AliasSeq!(__traits(getMember, Foo, "a"))[0];
-alias newWay = __traits(getMember, Foo, "a");
----
-
-To permit this it was more interesting to include `__trait` in the basic types
-rather than just changing the alias syntax. So additionally, wherever a type appears
-a `__trait` can be used, for example in a variable declaration:
-
----
-struct Foo { static struct Bar {} }
-const(__traits(getMember, Foo, "Bar")) fooBar;
-static assert(is(typeof(fooBar) == const(Foo.Bar)));
----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/check-switch.dd new/dmd-2.084.1/changelog/check-switch.dd
--- old/dmd-2.084.0/changelog/check-switch.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/check-switch.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-Added -check switch to turn on and off each category of runtime checks.
-
- Option("check=[assert|bounds|in|invariant|out|switch][=[on|off]]",
- `Overrides default, -boundscheck, -release and -unittest options to enable or disable specific checks.
- $(UL
- $(LI $(B assert): assertion checking)
- $(LI $(B bounds): array bounds)
- $(LI $(B in): in contracts)
- $(LI $(B invariant): class/struct invariants)
- $(LI $(B out): out contracts)
- $(LI $(B switch): switch default)
- )
- $(UL
- $(LI $(B on) or not specified: specified check is enabled.)
- $(LI $(B off): specified check is disabled.)
- )`
- )
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/checkaction.dd new/dmd-2.084.1/changelog/checkaction.dd
--- old/dmd-2.084.0/changelog/checkaction.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/checkaction.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-Add `-checkaction=D|C|halt` compiler switch.
-
-It covers action taken when an assert fails, a bounds check fails,
-or a final switch error happens. D means the usual D behavior of
-throwing an `Error`, C means call the C runtime library assert failure
-function, and halt means halt the program execution.
-
-The halt is the main addition here, it enables very lightweight assert's.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/color.dd new/dmd-2.084.1/changelog/color.dd
--- old/dmd-2.084.0/changelog/color.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/color.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-`-color` and `-color=on` will now always output colorized console output
-
-Before this release `-color` wouldn't output colorized console output if
-the terminal detection failed.
-With this release, a new option `auto` is introduced for `-color=<value>`
-which will continue to be the default:
-
-$(UL
- $(LI `auto`: enable colorized output if a tty is detected (default))
- $(LI `on`: always use colored output.)
- $(LI `off`: never use colored output.)
-)
-
-Hence, it is now possible to use `-color` (a shortcut for `-color=on`) to
-force DMD to emit colorized console output.
-For example, this will now use colorized console output:
-
-$(CONSOLE
-> echo $(DOLLAR)(echo "test" | dmd -color - 2>&1)
-__stdin.d(2): $(RED Error): no identifier for declarator $(B test)
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/debugmixins.dd new/dmd-2.084.1/changelog/debugmixins.dd
--- old/dmd-2.084.0/changelog/debugmixins.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/debugmixins.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-The code generated by `mixin` statements can now be saved with -mixin
-
-This is useful to debug errors in compilation and provides source for debuggers to show when requested.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/deprecated_binary_literals.dd new/dmd-2.084.1/changelog/deprecated_binary_literals.dd
--- old/dmd-2.084.0/changelog/deprecated_binary_literals.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/deprecated_binary_literals.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-Deprecate invalid binary literals
-
-Prior to this release, binary literals without any digits after the prefix `0b`
-were considered valid. This has now been deprecated.
----
-auto foo = 0b; // deprecated
-auto bar = 0b_; // deprecated
-auto baz = 0b0; // conforming equivalent
----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/deprecated_extern_pascal.dd new/dmd-2.084.1/changelog/deprecated_extern_pascal.dd
--- old/dmd-2.084.0/changelog/deprecated_extern_pascal.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/deprecated_extern_pascal.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-Deprecated `extern(Pascal)` linkage
-
-This linkage is completely unused, being an heritage from a few decades ago.
-Additionally, it's only supported by DMD and cause mangling ambiguity.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/fqn_imports_bypass_private_imports_error.dd new/dmd-2.084.1/changelog/fqn_imports_bypass_private_imports_error.dd
--- old/dmd-2.084.0/changelog/fqn_imports_bypass_private_imports_error.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/fqn_imports_bypass_private_imports_error.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-The deprecation phase for fully qualified names that bypassed private imports is finished
-
----
-// a.d
-import std.stdio;
----
-
----
-// b.d
-import a;
-
-void main()
-{
- std.stdio.writefln("foo"); // deprecation before patch, now errors
-}
----
-
-In order to compile the example successfully, `public` needs to be added
-to the import located in `a.d` : `public import std.stdio;` or `import std.stdio;`
-needs to be added to `b.d`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/posix_cpp_template_mangling.dd new/dmd-2.084.1/changelog/posix_cpp_template_mangling.dd
--- old/dmd-2.084.0/changelog/posix_cpp_template_mangling.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/posix_cpp_template_mangling.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-Templates are now mangled correctly on POSIX
-
-Before this version, anything including `extern(C++)` templates
-was not correctly mangled on OSX, Linux, and FreeBSD, leading to linker errors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/changelog/wchar_t.dd new/dmd-2.084.1/changelog/wchar_t.dd
--- old/dmd-2.084.0/changelog/wchar_t.dd 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/changelog/wchar_t.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-Added `__c_wchar_t` as a correct mangling type for C's `wchar_t`
-
-This allows code interfacing with C++ that uses `wchar_t` to link correctly.
-It replaces `wchar` (Windows) and `dchar` (Posix) as the memory type for the
-DRuntime alias `wchar_t`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/src/dmd/backend/elfobj.d new/dmd-2.084.1/src/dmd/backend/elfobj.d
--- old/dmd-2.084.0/src/dmd/backend/elfobj.d 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/src/dmd/backend/elfobj.d 2019-02-09 21:52:02.000000000 +0100
@@ -1959,9 +1959,12 @@
}
assert(seg_count < seg_max);
if (!SegData[seg])
- { SegData[seg] = cast(seg_data *)mem_calloc((seg_data).sizeof);
+ {
+ SegData[seg] = cast(seg_data *)mem_calloc(seg_data.sizeof);
//printf("test2: SegData[%d] = %p\n", seg, SegData[seg]);
}
+ else
+ memset(SegData[seg], 0, seg_data.sizeof);
seg_data *pseg = SegData[seg];
pseg.SDseg = seg;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/src/dmd/parse.d new/dmd-2.084.1/src/dmd/parse.d
--- old/dmd-2.084.0/src/dmd/parse.d 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/src/dmd/parse.d 2019-02-09 21:52:02.000000000 +0100
@@ -239,15 +239,18 @@
// write by line to create consistent line endings
size_t lastpos = 0;
- foreach (i,c; s)
+ for (size_t i = 0; i < s.length; ++i)
{
// detect LF and CRLF
+ const c = s[i];
if (c == '\n' || (c == '\r' && i+1 < s.length && s[i+1] == '\n'))
{
ob.writestring(s[lastpos .. i]);
ob.writenl();
global.params.mixinLines++;
- lastpos = i + (c == '\r' ? 2 : 1);
+ if (c == '\r')
+ ++i;
+ lastpos = i + 1;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/src/dmd/semantic3.d new/dmd-2.084.1/src/dmd/semantic3.d
--- old/dmd-2.084.0/src/dmd/semantic3.d 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/src/dmd/semantic3.d 2019-02-09 21:52:02.000000000 +0100
@@ -529,7 +529,7 @@
if (auto s = funcdecl.fensure.isScopeStatement())
fensure_endlin = s.endloc.linnum;
- if ((needEnsure && global.params.useOut) || fpostinv)
+ if ((needEnsure && global.params.useOut == CHECKENABLE.on) || fpostinv)
{
funcdecl.returnLabel = new LabelDsymbol(Id.returnLabel);
}
@@ -903,7 +903,7 @@
sc2 = sc2.pop();
- if (!global.params.useIn)
+ if (global.params.useIn == CHECKENABLE.off)
freq = null;
}
if (fens)
@@ -937,7 +937,7 @@
sc2 = sc2.pop();
- if (!global.params.useOut)
+ if (global.params.useOut == CHECKENABLE.off)
fens = null;
}
if (funcdecl.fbody && funcdecl.fbody.isErrorStatement())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/src/posix.mak new/dmd-2.084.1/src/posix.mak
--- old/dmd-2.084.0/src/posix.mak 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/src/posix.mak 2019-02-09 21:52:02.000000000 +0100
@@ -457,21 +457,21 @@
$(AR) rcs $@ $(G_OBJS) $(G_DOBJS)
$G/lexer.a: $(LEXER_SRCS) $(LEXER_ROOT) $(HOST_DMD_PATH) $(SRC_MAKE) $(STRING_IMPORT_FILES)
- CC="$(HOST_CXX)" $(HOST_DMD_RUN) -lib -of$@ $(MODEL_FLAG) -J$G -L-lstdc++ $(DFLAGS) $(LEXER_SRCS) $(LEXER_ROOT)
+ $(HOST_DMD_RUN) -lib -of$@ $(MODEL_FLAG) -J$G $(DFLAGS) $(LEXER_SRCS) $(LEXER_ROOT)
$G/dmd_frontend: $(FRONT_SRCS) $D/gluelayer.d $(ROOT_SRCS) $G/lexer.a $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
- CC="$(HOST_CXX)" $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) -L-lstdc++ $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^) -version=NoBackend
+ $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^) -version=NoBackend
ifdef ENABLE_LTO
$G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/lexer.a $(G_OBJS) $(G_DOBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $G/dmd.conf
- CC="$(HOST_CXX)" $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) -L-lstdc++ $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $G/dmd.conf,$^)
+ $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $G/dmd.conf,$^)
else
$G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/backend.a $G/lexer.a $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $G/dmd.conf
- CC="$(HOST_CXX)" $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) -L-lstdc++ $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $(LEXER_ROOT) $G/dmd.conf,$^)
+ $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $(LEXER_ROOT) $G/dmd.conf,$^)
endif
$G/dmd-unittest: $(DMD_SRCS) $(ROOT_SRCS) $(LEXER_SRCS) $(G_OBJS) $(G_DOBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
- CC=$(HOST_CXX) $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) -L-lstdc++ $(DFLAGS) -g -unittest -main -version=NoMain $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^)
+ $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) -g -unittest -main -version=NoMain $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^)
unittest: $G/dmd-unittest
$<
@@ -482,10 +482,10 @@
PARSER_SRCS=$(addsuffix .d, $(addprefix $D/,parse astbase parsetimevisitor transitivevisitor permissivevisitor strictvisitor utils))
$G/parser.a: $(PARSER_SRCS) $(LEXER_SRCS) $(ROOT_SRCS) $G/dmd $G/dmd.conf $(SRC_MAKE)
- CC="$(HOST_CXX)" $G/dmd -lib -of$@ $(MODEL_FLAG) -L-lstdc++ -J$G $(DFLAGS) $(PARSER_SRCS) $(LEXER_SRCS) $(ROOT_SRCS)
+ $G/dmd -lib -of$@ $(MODEL_FLAG) -J$G $(DFLAGS) $(PARSER_SRCS) $(LEXER_SRCS) $(ROOT_SRCS)
$G/examples/%: $(EX)/%.d $G/parser.a $G/dmd
- CC="$(HOST_CXX)" $G/dmd -of$@ $(MODEL_FLAG) $(DFLAGS) $G/parser.a $<
+ $G/dmd -of$@ $(MODEL_FLAG) $(DFLAGS) $G/parser.a $<
build-examples: $(EXAMPLES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/compilable/extra-files/ddocYear.html new/dmd-2.084.1/test/compilable/extra-files/ddocYear.html
--- old/dmd-2.084.0/test/compilable/extra-files/ddocYear.html 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/test/compilable/extra-files/ddocYear.html 2019-02-09 21:52:02.000000000 +0100
@@ -523,7 +523,7 @@
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
- 2018
+ __YEAR__
</p>
</div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/extra-files/lib18456b.d new/dmd-2.084.1/test/runnable/extra-files/lib18456b.d
--- old/dmd-2.084.0/test/runnable/extra-files/lib18456b.d 1970-01-01 01:00:00.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/extra-files/lib18456b.d 2019-02-09 21:52:02.000000000 +0100
@@ -0,0 +1,12 @@
+module manual;
+
+class ManualGC {
+ void enable()
+ {
+ }
+
+ void disable()
+ {
+ }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/extra-files/mixin.d new/dmd-2.084.1/test/runnable/extra-files/mixin.d
--- old/dmd-2.084.0/test/runnable/extra-files/mixin.d 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/extra-files/mixin.d 2019-02-09 21:52:02.000000000 +0100
@@ -2,8 +2,8 @@
// https://issues.dlang.org/show_bug.cgi?id=12790
string get()
{
- return
- q{int x;
+ return "int x =\n 123;\r\n" ~
+ q{
int y;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/extra-files/mixin.mixin new/dmd-2.084.1/test/runnable/extra-files/mixin.mixin
--- old/dmd-2.084.0/test/runnable/extra-files/mixin.mixin 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/extra-files/mixin.mixin 2019-02-09 21:52:02.000000000 +0100
@@ -1,5 +1,7 @@
// expansion at runnable/extra-files/mixin.d(16)
-int x;
+int x =
+ 123;
+
int y;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/test16096.sh new/dmd-2.084.1/test/runnable/test16096.sh
--- old/dmd-2.084.0/test/runnable/test16096.sh 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/test16096.sh 2019-02-09 21:52:02.000000000 +0100
@@ -6,7 +6,7 @@
fi
$DMD -I${EXTRA_FILES} -of${OUTPUT_BASE}${LIBEXT} -lib ${EXTRA_FILES}/test16096a.d
-$DMD -I${EXTRA_FILES} -of${OUTPUT_BASE}${EXT} ${EXTRA_FILES}/test16096.d ${OUTPUT_BASE}${LIBEXT} -L-framework -LFoundation
+$DMD -I${EXTRA_FILES} -of${OUTPUT_BASE}${EXE} ${EXTRA_FILES}/test16096.d ${OUTPUT_BASE}${LIBEXT} -L-framework -LFoundation
${OUTPUT_BASE}${EXE}
rm ${OUTPUT_BASE}{${LIBEXT},${EXE}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/test18456.sh new/dmd-2.084.1/test/runnable/test18456.sh
--- old/dmd-2.084.0/test/runnable/test18456.sh 2019-01-02 00:48:03.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/test18456.sh 2019-02-09 21:52:02.000000000 +0100
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
-$DMD -m${MODEL} -I${EXTRA_FILES} -of${OUTPUT_BASE}${LIBEXT} -lib ${EXTRA_FILES}/lib18456.d
+# source file order is important
+$DMD -m${MODEL} -I${EXTRA_FILES} -of${OUTPUT_BASE}${LIBEXT} -lib ${EXTRA_FILES}/lib18456b.d ${EXTRA_FILES}/lib18456.d
$DMD -m${MODEL} -I${EXTRA_FILES} -of${OUTPUT_BASE}${EXE} ${EXTRA_FILES}/test18456.d ${OUTPUT_BASE}${LIBEXT}
${OUTPUT_BASE}${EXE}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/test_dip1006.d new/dmd-2.084.1/test/runnable/test_dip1006.d
--- old/dmd-2.084.0/test/runnable/test_dip1006.d 1970-01-01 01:00:00.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/test_dip1006.d 2019-02-09 21:52:02.000000000 +0100
@@ -0,0 +1,38 @@
+// REQUIRED_ARGS: -check=in=off -check=out=off -check=invariant=off
+// PERMUTE_ARGS:
+class C
+{
+ int foo(int a)
+ in { assert(a != 0); } // skipped
+ out(res) { assert(res != 0); } // skipped
+ body
+ {
+ return a;
+ }
+
+ invariant // skipped
+ {
+ assert(false);
+ }
+
+ void bar(int a)
+ {
+ assert(a != 0); // triggered
+ }
+}
+
+void main()
+{
+ import core.exception : AssertError;
+
+ auto c = new C;
+ c.foo(0);
+
+ bool catched;
+ try
+ c.bar(0);
+ catch (AssertError e)
+ catched = true;
+ if (!catched)
+ assert(0);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dmd-2.084.0/test/runnable/test_dip1006b.d new/dmd-2.084.1/test/runnable/test_dip1006b.d
--- old/dmd-2.084.0/test/runnable/test_dip1006b.d 1970-01-01 01:00:00.000000000 +0100
+++ new/dmd-2.084.1/test/runnable/test_dip1006b.d 2019-02-09 21:52:02.000000000 +0100
@@ -0,0 +1,35 @@
+// REQUIRED_ARGS: -check=in=off -check=invariant=off
+// PERMUTE_ARGS:
+class C
+{
+ int foo(int a)
+ in { assert(a != 0); } // skipped
+ out(res) { assert(res != 0, "out"); } // triggered
+ body
+ {
+ return a;
+ }
+
+ invariant // skipped
+ {
+ assert(false);
+ }
+}
+
+void main()
+{
+ import core.exception : AssertError;
+
+ auto c = new C;
+ bool catched;
+ try
+ c.foo(0);
+ catch (AssertError e)
+ {
+ assert(e.msg == "out");
+ catched = e.msg == "out";
+ }
+
+ if (!catched)
+ assert(0);
+}
++++++ druntime-2.084.0.tar.gz -> druntime-2.084.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/druntime-2.084.0/changelog/array.dd new/druntime-2.084.1/changelog/array.dd
--- old/druntime-2.084.0/changelog/array.dd 2018-12-30 03:42:50.000000000 +0100
+++ new/druntime-2.084.1/changelog/array.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-Added `core.stdcpp.array`.
-
-Added `core.stdcpp.array`, which links against C++ `std::array`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/druntime-2.084.0/changelog/crt_externs.dd new/druntime-2.084.1/changelog/crt_externs.dd
--- old/druntime-2.084.0/changelog/crt_externs.dd 2018-12-30 03:42:50.000000000 +0100
+++ new/druntime-2.084.1/changelog/crt_externs.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-Add D header file $(REF_ALTTEXT `core.sys.darwin.crt_externs`, crt_externs, core, sys, darwin) for $(LINK2 https://opensource.apple.com/source/Libc/Libc-1244.30.3/include/crt_externs...., libc/crt_externs.h) on Darwin.
-
-Add D header file $(REF_ALTTEXT `core.sys.darwin.crt_externs`, crt_externs, core, sys, darwin) for $(LINK2 https://opensource.apple.com/source/Libc/Libc-1244.30.3/include/crt_externs...., libc/crt_externs.h) on Darwin.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/druntime-2.084.0/changelog/destroy_noinit.dd new/druntime-2.084.1/changelog/destroy_noinit.dd
--- old/druntime-2.084.0/changelog/destroy_noinit.dd 2018-12-30 03:42:50.000000000 +0100
+++ new/druntime-2.084.1/changelog/destroy_noinit.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-Added `initialize` template argument to `object.destroy()`.
-
-`object.destroy()` now receives an `initialize` argument to specify whether to re-initialize the object after destruction.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/druntime-2.084.0/changelog/string_view.dd new/druntime-2.084.1/changelog/string_view.dd
--- old/druntime-2.084.0/changelog/string_view.dd 2018-12-30 03:42:50.000000000 +0100
+++ new/druntime-2.084.1/changelog/string_view.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-Added `core.stdcpp.string_view`.
-
-Added `core.stdcpp.string_view`, which links against C++ `std::string_view`
++++++ phobos-2.084.0.tar.gz -> phobos-2.084.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phobos-2.084.0/changelog/pr6580.dd new/phobos-2.084.1/changelog/pr6580.dd
--- old/phobos-2.084.0/changelog/pr6580.dd 2018-12-31 12:53:01.000000000 +0100
+++ new/phobos-2.084.1/changelog/pr6580.dd 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-Add overload `std.random.unpredictableSeed!UIntType`
-
-$(REF unpredictableSeed, std,random) now has an overloaded version
-`std.random.unpredictableSeed!UIntType` that can be used to produce
-seeds of any unsigned type `UIntType`.
-
--------
-import std.random : unpredictableSeed;
-
-auto a = unpredictableSeed!uint;
-static assert(is(typeof(a) == uint));
-
-auto b = unpredictableSeed!ulong;
-static assert(is(typeof(b) == ulong));
-
-// The old syntax still works.
-uint c = unpredictableSeed;
--------
-
-Additionally the implementation quality of `unpredictableSeed` has been
-improved, speeding it up and eliminating an obvious pattern in the high
-bit. (Bear in mind that `unpredictableSeed` is still not
-cryptographically secure.)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/phobos-2.084.0/std/file.d new/phobos-2.084.1/std/file.d
--- old/phobos-2.084.0/std/file.d 2018-12-31 12:53:01.000000000 +0100
+++ new/phobos-2.084.1/std/file.d 2019-02-06 04:22:56.000000000 +0100
@@ -348,7 +348,6 @@
{
import core.memory : GC;
import std.algorithm.comparison : min;
- import std.array : uninitializedArray;
import std.conv : to;
import std.experimental.checkedint : checked;
@@ -371,7 +370,7 @@
immutable initialAlloc = min(upTo, to!size_t(statbuf.st_size
? min(statbuf.st_size + 1, maxInitialAlloc)
: minInitialAlloc));
- void[] result = uninitializedArray!(ubyte[])(initialAlloc);
+ void[] result = GC.malloc(initialAlloc, GC.BlkAttr.NO_SCAN)[0 .. initialAlloc];
scope(failure) GC.free(result.ptr);
auto size = checked(size_t(0));
@@ -400,7 +399,6 @@
{
import core.memory : GC;
import std.algorithm.comparison : min;
- import std.array : uninitializedArray;
static trustedCreateFileW(scope const(wchar)* namez, DWORD dwDesiredAccess, DWORD dwShareMode,
SECURITY_ATTRIBUTES *lpSecurityAttributes, DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) @trusted
@@ -451,7 +449,7 @@
ulong fileSize = void;
cenforce(trustedGetFileSize(h, fileSize), name, namez);
size_t size = min(upTo, fileSize);
- auto buf = uninitializedArray!(ubyte[])(size);
+ auto buf = () @trusted { return GC.malloc(size, GC.BlkAttr.NO_SCAN)[0 .. size]; } ();
scope(failure)
{