From f1405f8dde7bf96fdd7382e41cb7031dd0a35d8a Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Wed, 16 Aug 2017 15:47:08 +0200 Subject: [PATCH] update download and changelog for v2.076.0-b1 --- changelog/2.076.0_pre.dd | 374 +++++++++++++++++++++++++++++++++++++++ changelog/changelog.ddoc | 3 +- download.dd | 6 +- 3 files changed, 379 insertions(+), 4 deletions(-) create mode 100644 changelog/2.076.0_pre.dd diff --git a/changelog/2.076.0_pre.dd b/changelog/2.076.0_pre.dd new file mode 100644 index 0000000000..ab987a2841 --- /dev/null +++ b/changelog/2.076.0_pre.dd @@ -0,0 +1,374 @@ +Ddoc + +$(CHANGELOG_NAV_LAST 2.075.1) + +$(VERSION Aug 16, 2017, =================================================, + +$(BUGSTITLE Compiler changes, + +$(LI $(RELATIVE_LINK2 avx2,AVX2 was added as $(TT -mcpu=avx2) architecture.)) +$(LI $(RELATIVE_LINK2 fix17697,Fix Issue 17697 - Ddoc: automatically highlight URLs outside of macro arguments)) + +) + +$(BUGSTITLE Runtime changes, + +$(LI $(RELATIVE_LINK2 unhandled,Print unhandled exception's trace and abort if rt_trapExceptions is false)) + +) + +$(BUGSTITLE Library changes, + +$(LI $(RELATIVE_LINK2 std-base64-base64urlnopadding,`Base64URLNoPadding` (URL-safe Base64 without padding) was added)) +$(LI $(RELATIVE_LINK2 std-digest-package,`std.digest.digest` was renamed to `std.digest`.)) +$(LI $(RELATIVE_LINK2 std-meta-stride,`std.meta.Stride` was added)) +$(LI $(RELATIVE_LINK2 std-process-config-detached,`Config.detached` flag for `spawnProcess` has been added)) +$(LI $(RELATIVE_LINK2 std-range-input-chunks,`std.range.chunks` was extended to support non-forward input ranges.)) +$(LI $(RELATIVE_LINK2 std-socket-abstract,`std.socket.UnixAddress` now supports abstract addresses.)) +$(LI $(RELATIVE_LINK2 std-typecons-AutoImplement,Added possibility to use a baseclass when auto-implementing an interface)) + +) + +$(BUGSTITLE Tools changes, + +$(LI $(RELATIVE_LINK2 b11997,rdmd now checks for a D compiler binary in the directory it's in first)) + +) + +$(BR)$(BIG $(RELATIVE_LINK2 bugfix-list, List of all bug fixes and enhancements in D $(VER).)) + +$(HR) + +$(BUGSTITLE Compiler changes, + +$(LI $(LNAME2 avx2,AVX2 was added as $(TT -mcpu=avx2) architecture.) +$(P +This allows the backend to emit AVX2 instructions. The compiler will +add the predefined version $(LINK2 $(ROOT_DIR)spec/version.html#predefined-versions, `D_AVX2`). +AVX2 support is automatically detected with -mcpu=native. +) +) + +$(LI $(LNAME2 fix17697,Fix Issue 17697 - Ddoc: automatically highlight URLs outside of macro arguments) +$(P +URLs which appear in Ddoc text: +) + +--- +/**** + * http://www.fooa.com/test1 + */ +--- + +$(P +will be treated as if they were written: +) + +--- +/**** + * $(LINK http://www.fooa.com/test1) + */ +--- + +$(P +and a clickable hyperlink will be emitted to the resulting .html file. +) + +$(P +This detection does not happen if the URL is part of a macro argument: +) + +--- +/**** + * $(DOLLAR)$(LPAREN)ABC http://www.fooa.com/test1$(RPAREN) + */ +--- + +$(P +The behavior of that is unchanged. URLs can start with `http://` or `https://` +) + +$(P +`http:` and `https:` at the beginning of the line are no longer treated +as section headings. +) +) + + +) + +$(BUGSTITLE Runtime changes, + +$(LI $(LNAME2 unhandled,Print unhandled exception's trace and abort if rt_trapExceptions is false) +$(P +D exception handling was assuming the top level exception handler, +so all exceptions would be handled somewhere. In case rt_trapExceptions +is cleared, this handler would not be enabled, and this assertion +would fail, aborting the program, but without any information +about the exception. This is now changed, so the exception information +will be printed to the stderr, followed by abort. +) +) + + +) + +$(BUGSTITLE Library changes, + +$(LI $(LNAME2 std-base64-base64urlnopadding,`Base64URLNoPadding` (URL-safe Base64 without padding) was added) +$(P +$(REF Base64URLNoPadding, std, base64) allows encoding/decoding without padding: +) + +--- +import std.base64 : Base64URLNoPadding; + +ubyte[] data = [0x83, 0xd7, 0x30, 0x7b, 0xef]; +assert(Base64URLNoPadding.encode(data) == "g9cwe-8"); +assert(Base64URLNoPadding.decode("g9cwe-8") == data); +--- +) + +$(LI $(LNAME2 std-digest-package,`std.digest.digest` was renamed to `std.digest`.) +$(P +$(B Motivation): +) + +$(P +The fully qualified name of the digest function template was `std.digest.digest.digest`. +This is because `std.digest` is a package, with a module named `digest` in it, and the function `digest` inside that. +) + +$(P +$(MREF std, digest) contains the former `std.digest.digest` package. +) +) + +$(LI $(LNAME2 std-meta-stride,`std.meta.Stride` was added) +$(P +$(REF Stride, std,meta) allows selecting a subset of template by a step size and offset: +) + +--- +alias attribs = AliasSeq!(short, int, long, ushort, uint, ulong); +static assert(is(Stride!(3, attribs) == AliasSeq!(short, ushort))); +static assert(is(Stride!(3, attribs[1 .. $]) == AliasSeq!(int, uint))); +--- +) + +$(LI $(LNAME2 std-process-config-detached,`Config.detached` flag for `spawnProcess` has been added) +$(P +`Config.detached` allows $(REF_ALTTEXT spawning processes, spawnProcess, std, process) which run independently from the current process. There is no need to wait on the processes created with this flag, and no $(HTTPS en.wikipedia.org/wiki/Zombie_process, zombie process) will be left after they exit. +Attempts to call $(REF wait, std, process) or $(REF kill, std, process) on detached processes will throw. +) +) + +$(LI $(LNAME2 std-range-input-chunks,`std.range.chunks` was extended to support non-forward input ranges.) +$(P +Now `std.range.chunks` can be used with input ranges that are not forward +ranges, albeit with limited semantics as imposed by the underlying range. +) + +--- +import std.algorithm.comparison : equal; + +int i; + +// The generator doesn't save state, so it cannot be a forward range. +auto inputRange = generate!(() => ++i).take(10); + +// We can still process it in chunks, but it will be single-pass only. +auto chunked = inputRange.chunks(2); + +assert(chunked.front.equal([1, 2])); +assert(chunked.front.empty); // Iterating the chunk has consumed it +chunked.popFront; +assert(chunked.front.equal([3, 4])); +--- +) + +$(LI $(LNAME2 std-socket-abstract,`std.socket.UnixAddress` now supports abstract addresses.) +$(P +UNIX domain sockets are usually identified by pathnames. Linux offers a +non-portable extension to this scheme, known as abstract socket addresses, +which are independent of the filesystem. An abstract socket address starts with +a null byte (`'\0'`), e.g.: +) + +--- +auto addr = new UnixAddress("\0/tmp/dbus-OtHLWmCLPR"); +--- +) + +$(LI $(LNAME2 std-typecons-AutoImplement,Added possibility to use a baseclass when auto-implementing an interface) +$(P +A second $(REF AutoImplement, std, typecons) template has been added, which +differs from the existing one in accepting an extra type parameter. The extra +parameter specifies a class to derive from while auto-implementing an interface. +) + +$(P +The base class used may contain non-default constructors. Matching constructors +will be created in the auto-implemented class and be implemented as just a call +to super with all arguments. +) +) + + +) + +$(BUGSTITLE Tools changes, + +$(LI $(LNAME2 b11997,rdmd now checks for a D compiler binary in the directory it's in first) +$(P +If you downloaded a zip/tar file with the compiler before +and ran `rdmd`, it would invoke the D compiler from the system +`PATH` rather than the compiler right next to it, failing if +there wasn't one in the `PATH`. `rdmd` will now try to use +the D compiler next to it first, and only fall back to the +`PATH` if there isn't one adjacent. If you want rdmd to run a +specific compiler, add the `--compiler` flag to force it, as +always. +) + +$(P +To restore the old behaviour of only using the compiler from +your `PATH`, add `--compiler=dmd` (or `ldmd2` or `gdmd`). +) +) + + +) + +$(BR)$(BIG $(LNAME2 bugfix-list, List of all bug fixes and enhancements in D $(VER):)) + +$(BUGSTITLE DMD Compiler regressions, + +$(LI $(BUGZILLA 16680): dmd doesn't use druntime optimized versions of subtraction array operations) +$(LI $(BUGZILLA 17522): win64.mak broken) +$(LI $(BUGZILLA 17582): [REG2.059] Applying const to struct declaration should make the struct type const) +$(LI $(BUGZILLA 17612): [REG2.063] Segmentation fault with bad object.d) +$(LI $(BUGZILLA 17690): [REG2.066.0] scope guards leak declarations) +$(LI $(BUGZILLA 17695): [Reg 2.076] ICE with vector negation) +) +$(BUGSTITLE DMD Compiler bugs, + +$(LI $(BUGZILLA 4014): CodeView debug type info not linked in from library) +$(LI $(BUGZILLA 11881): -betterC switch suffers from bit rot) +$(LI $(BUGZILLA 11997): rdmd should search its binary path for the compiler) +$(LI $(BUGZILLA 13512): Allow non-UTF-8 encoding in shebang line) +$(LI $(BUGZILLA 15432): Win64: bad code offset in debug line number info) +$(LI $(BUGZILLA 16640): void fun$(LPAREN)string file=__FILE_FULL_PATH__$(RPAREN) returns relative path) +$(LI $(BUGZILLA 17380): Compiler segfaults on undefined symbol) +$(LI $(BUGZILLA 17388): [scope] e[] should be treated like &e as far as scope goes) +$(LI $(BUGZILLA 17430): [scope] delegate can escape context ptr) +$(LI $(BUGZILLA 17484): high penalty for vbroadcastsd with -mcpu=avx) +$(LI $(BUGZILLA 17489): ICE in ddmd/argtypes.d) +$(LI $(BUGZILLA 17551): VC build: bad mangling of real template argument) +$(LI $(BUGZILLA 17629): package.di files cannot be used) +$(LI $(BUGZILLA 17660): ICE with `static foreach`: AssertError@ddmd/visitor.d$(LPAREN)39$(RPAREN)) +$(LI $(BUGZILLA 17688): ICE with static foreach directly inside switch) +$(LI $(BUGZILLA 17689): finally clause leaks declarations) +$(LI $(BUGZILLA 17721): Wrong expression type using vector extensions with shift operands) +$(LI $(BUGZILLA 17722): Wrong diagnostic using __traits$(LPAREN)compiles, e1 && e2$(RPAREN) expressions.) +$(LI $(BUGZILLA 17735): AssertError@ddmd/target.d$(LPAREN)357$(RPAREN): unhandled op using fish operators) +) +$(BUGSTITLE DMD Compiler enhancements, + +$(LI $(BUGZILLA 9287): DMD should read from stdin when an input file is "-") +$(LI $(BUGZILLA 9731): Ddoc should output per-paragraph macro instead of $$(LPAREN)DDOC_BLANKLINE$(RPAREN)) +$(LI $(BUGZILLA 17392): Add Dub file for the lexer and parser) +$(LI $(BUGZILLA 17428): [scope] class field assignment allows to escape scope parameters) +$(LI $(BUGZILLA 17499): with -betterC switch, call C's assert failure function rather than druntime's) +$(LI $(BUGZILLA 17521): -betterC programs should not link in Phobos runtime library by default) +$(LI $(BUGZILLA 17590): Unnecessary GC alloc on returning static local struct) +$(LI $(BUGZILLA 17697): Ddoc: automatically highlight URLs outside of macro arguments) +) +$(BUGSTITLE Phobos regressions, + +$(LI $(BUGZILLA 17650): [REG v2.075.0 b1-b4] std.getopt range violation) +$(LI $(BUGZILLA 17661): New isInputRange rejects valid input range) +$(LI $(BUGZILLA 17724): digest is not a template declaration, it is a module) +) +$(BUGSTITLE Phobos bugs, + +$(LI $(BUGZILLA 6718): "nWayUnion" => "nWayMerge", plus true nWayUnion) +$(LI $(BUGZILLA 12260): Improve error of std.stdio.readf when involving whitespace) +$(LI $(BUGZILLA 12866): Append to std.container.Array of fixed size arrays) +$(LI $(BUGZILLA 16079): memoize should cache objects too) +$(LI $(BUGZILLA 16191): std/digest/digest.d should be renamed to package.d) +$(LI $(BUGZILLA 17389): std.traits.hasNested fails for class with member of same type) +$(LI $(BUGZILLA 17458): [std.regex] Assertion failure in package.d) +$(LI $(BUGZILLA 17539): std.parallellism.parallel triggers 'statement not reachable' warnings in the rdmd_test suite) +$(LI $(BUGZILLA 17562): Tangent function returns NaN for abs$(LPAREN)input$(RPAREN) >= 2^63) +$(LI $(BUGZILLA 17574): Range violation in std.getopt:getopt AA parsing) +$(LI $(BUGZILLA 17616): makeIndex cannot fully use range of index type) +$(LI $(BUGZILLA 17640): std.concurrenct writeln conflicts with std.stdio writeln in unittests) +$(LI $(BUGZILLA 17711): std.array.byPair should be usable with const AA) +) +$(BUGSTITLE Phobos enhancements, + +$(LI $(BUGZILLA 2137): Data not compressed on fly when adding to zip archive) +$(LI $(BUGZILLA 6384): std.traits.isComparable) +$(LI $(BUGZILLA 15759): chunks should work with only an input range) +$(LI $(BUGZILLA 15771): FileLogger should create the output directory if it does not exist) +$(LI $(BUGZILLA 16062): Add 'clear' method to OutBuffer $(LPAREN)std.outbuffer$(RPAREN)) +$(LI $(BUGZILLA 16744): We should have a TypeOf template so that typeof can be used with templates like staticMap) +$(LI $(BUGZILLA 16993): Documentation for toSimpleString and toString does not explain how they differ) +$(LI $(BUGZILLA 17250): ProcessPipes $(LPAREN)std.process$(RPAREN) should provide a test for a null pid) +$(LI $(BUGZILLA 17365): https://dlang.org/phobos/std_experimental_checkedint.html is missing the Throw hook description) +$(LI $(BUGZILLA 17369): [Module std.traits] Documentation lists ditto in table) +$(LI $(BUGZILLA 17525): std.algorithm.searching.skipOver should have a single argument with pred version) +$(LI $(BUGZILLA 17540): std.net.curl: HTTP no possibillity to set CURLOPT_NOPROXY) +$(LI $(BUGZILLA 17587): JSONOptions: No forward slash encoding) +) +$(BUGSTITLE Druntime regressions, + +$(LI $(BUGZILLA 15619): [REG 2.066] Floating-point x86_64 codegen regression, when involving array ops) +) +$(BUGSTITLE Druntime bugs, + +$(LI $(BUGZILLA 11594): synchronized causing segfault instead of Error.) +$(LI $(BUGZILLA 14319): core.demangle does not support member function attributes) +$(LI $(BUGZILLA 14563): core.demangle: Does not demangle type modifers) +$(LI $(BUGZILLA 14576): [ddemangle] core.demangle unable to handle ambiguity in symbols) +$(LI $(BUGZILLA 16856): D does not work on FreeBSD current $(LPAREN)what will eventually be 12$(RPAREN) due to libunwind) +$(LI $(BUGZILLA 17609): core.demangle demangles delegate variables as functions) +$(LI $(BUGZILLA 17610): core.demangle shows return type of template alias parameter) +$(LI $(BUGZILLA 17611): core.demangle cannot demangle delegates with function attributes) +$(LI $(BUGZILLA 17624): typo in Fields documentation section of https://dlang.org/library/object/exception.html) +$(LI $(BUGZILLA 17665): Win64 atomicLoad for T[] cannot be cast from size_t[2]) +) +$(BUGSTITLE Druntime enhancements, + +$(LI $(BUGZILLA 16664): core.demangle functions are not callable from @safe or pure code) +) +$(BUGSTITLE dlang.org bugs, + +$(LI $(BUGZILLA 17159): Behavior of unions at compile time is not documented) +$(LI $(BUGZILLA 17224): Foreach documentation still refers to TypeTuples, rather than AliasSequences) +$(LI $(BUGZILLA 17305): [SPEC] ABI page still has references to D1 Phobos) +$(LI $(BUGZILLA 17509): [typo] "refered to" $(LPAREN)"referred to"$(RPAREN)) +$(LI $(BUGZILLA 17510): How could 509 be a byte value?) +$(LI $(BUGZILLA 17513): [english] "a enum" -> "an enum") +$(LI $(BUGZILLA 17702): codemirror hangs firefox for several seconds) +) +$(BUGSTITLE dlang.org enhancements, + +$(LI $(BUGZILLA 13153): dlang.org: provide version-specific documentation of the language and stdlib) +$(LI $(BUGZILLA 17262): Better docs for rdmd) +$(LI $(BUGZILLA 17322): Add Magikcraft to organizations using D) +$(LI $(BUGZILLA 17480): [Downloads]) +$(LI $(BUGZILLA 17524): [The C Preprocessor vs D] "need to worry about"?) +$(LI $(BUGZILLA 17560): Enhancement: view and copy full code example for offline compile/play) +$(LI $(BUGZILLA 17594): Define DDOC_BLANKLINE as an empty HTML paragraph, thus obviating the need to wrap text in $$(LPAREN)P ...$(RPAREN)) +) +$(BUGSTITLE Tools bugs, + +$(LI $(BUGZILLA 17731): dman fails to build due to more than 32767 symbols) +) +) +$(CHANGELOG_NAV_LAST 2.075.1) +Macros: + VER=2.076.0 + TITLE=Change Log: $(VER) diff --git a/changelog/changelog.ddoc b/changelog/changelog.ddoc index 8ce163f99a..334f813cf2 100644 --- a/changelog/changelog.ddoc +++ b/changelog/changelog.ddoc @@ -66,7 +66,8 @@ CHANGELOG_VERSION = $(LI $1$1 ($+)) _=BEGIN_GENERATED_CHANGELOG_VERSIONS CHANGELOG_VERSIONS = - $(CHANGELOG_VERSION 2.075.1, Aug 10, 2017) + $(CHANGELOG_VERSION_PRE 2.076.0, not yet released) + $(CHANGELOG_VERSION 2.075.1, Aug 11, 2017) $(CHANGELOG_VERSION 2.075.0, Jul 19, 2017) $(CHANGELOG_VERSION 2.074.1, May 30, 2017) $(CHANGELOG_VERSION 2.074.0, Apr 10, 2017) diff --git a/download.dd b/download.dd index cc9bee1eda..4507a1cab4 100644 --- a/download.dd +++ b/download.dd @@ -167,9 +167,9 @@ Macros: DMDV2=$(LATEST) - BETA=$(COMMENT $0) - _=BETA=$0 - B_DMDV2=2.075.1 + _=BETA=$(COMMENT $0) + BETA=$0 + B_DMDV2=2.076.0 B_SUFFIX=b1 DEB32=$(DLSITE dmd_$(DMDV2)-0_i386.deb)