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 <matthias.elias...@gmail.com> + +- 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.h.auto.html, 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.h.auto.html, 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) {