diff --git a/changelog/2.074.0_pre.dd b/changelog/2.074.0_pre.dd index fa0e70c15a..2c9c7099e2 100644 --- a/changelog/2.074.0_pre.dd +++ b/changelog/2.074.0_pre.dd @@ -155,16 +155,15 @@ orphaned specifiers/arguments will cause a compile-time error: ) ------- -import std.format; +import std.format, std.stdio; -void main() { - auto s = format!"%s is %s"("Pi", 3.14); - assert(s == "Pi is 3.14"); +auto s = format!"%s is %s"("Pi", 3.14); +assert(s == "Pi is 3.14"); +writefln!"%c is %s"('e', 1.61); - static assert(!__traits(compiles, {s = format!"%l"();})); // missing arg - static assert(!__traits(compiles, {s = format!""(404);})); // surplus arg - static assert(!__traits(compiles, {s = format!"%d"(4.03);})); // incompatible arg -} +static assert(!__traits(compiles, {s = format!"%l"();})); // missing arg +static assert(!__traits(compiles, {s = format!""(404);})); // surplus arg +static assert(!__traits(compiles, {s = format!"%d"(4.03);})); // incompatible arg ------- ) @@ -213,9 +212,35 @@ assert(!hasStaticMember!(S, "nonstaticVar")); $(LI $(LNAME2 std-expertimental-ndslice-removed,`std.experimental.ndslice` has been removed) $(P -The synchronization between Phobos and Mir turned out to be a high amount of work with litte gain. +The synchronization between Phobos and Mir turned out to be a high amount of work with little gain. Users of `std.experimental.ndslice` are advised to switch to the upstream -$(LINK2 https://github.com/libmir/mir-algorithm, mir package). +$(LINK2 https://github.com/libmir/mir-algorithm, mir-algorithm package). +) + +$(P +It comes with a lot of new features +$(UL + $(LI $(LINK2 http://docs.algorithm.dlang.io/latest/mir_ndslice_topology.html, `mir.ndslice.topology`) + - Multidimensional `std.range` analog. Includes `bitwise`, `bitpack`, `zip`, `unzip`, `map`, `indexed` and many other features.) + $(LI $(LINK2 http://docs.algorithm.dlang.io/latest/mir_ndslice_concatenation.html, `mir.ndslice.concatenation`) + - Concatenation and padding) + $(LI $(LINK2 http://docs.algorithm.dlang.io/latest/mir_ndslice_algorithm.html, `mir.ndslice.algorithm`) + - Slim multidimensional `std.algorithm` analog) + $(LI $(LINK2 http://docs.algorithm.dlang.io/latest/mir_ndslice_sorting.html, `mir.ndslice.sorting`) + - Multidimensional sorting utilities) +) +) + +$(P +`ndslice` design was changed. New ndslices can be created on top of random access iterators including pointers. There are three kinds of ndslice: +) + +$(P +$(UL + $(LI `Contiguous` - Contiguous in memory representation. It does not store strides and can be always flattened to 1 dimensional ndslice on top of the same iterator type. ) + $(LI `Canonical` - BLAS like. Stride for row dimension assumed to be equal to 1.) + $(LI `Universal` - Numpy like. Each dimension has strides. All dimensions can be exchanged without reallocation. The old ndslice ABI corresponds to to the `Universal` ndslice.) +) ) ) @@ -277,7 +302,7 @@ anyone using the `MersenneTwisterEngine` template directly. $(P The internal implementation has been reworked to use Ilya Yaroshenko's -highly optimized algorithm from `mir.random`. This should have a very +highly optimized algorithm from $(LINK2 https://github.com/libmir/mir-random, mir-random). This should have a very noticeable positive effect for anyone who cares about generating a lot of random numbers quickly. ) @@ -299,6 +324,7 @@ $(BUGSTITLE DMD Compiler regressions, $(LI $(BUGZILLA 16680): dmd doesn't use druntime optimized versions of subtraction array operations) $(LI $(BUGZILLA 17117): [REG2.073] erroneous "escaping reference to local variable") $(LI $(BUGZILLA 17123): [REG 2.073] Issues with return @safe inference) +$(LI $(BUGZILLA 17291): [REG 2.074-b1] windows: invalid relocation entries) ) $(BUGSTITLE DMD Compiler bugs, diff --git a/download.dd b/download.dd index 95345acec2..02afcfb624 100644 --- a/download.dd +++ b/download.dd @@ -170,7 +170,7 @@ Macros: _=BETA=$(COMMENT $0) BETA=$0 B_DMDV2=2.074.0 - B_SUFFIX=b1 + B_SUFFIX=b2 DEB32=$(DLSITE dmd_$(DMDV2)-0_i386.deb) DEB64=$(DLSITE dmd_$(DMDV2)-0_amd64.deb) diff --git a/errorpage.ddoc b/errorpage.ddoc index 528e27e824..331fe1e674 100644 --- a/errorpage.ddoc +++ b/errorpage.ddoc @@ -1,2 +1,3 @@ ROOT_DIR=/ -ROOT= +_=ROOT is only used for top left dlang.org logo and cannot be empty ``, so use / even though it breaks when served under /subpath/. +ROOT=/ diff --git a/posix.mak b/posix.mak index 4a81ef36e7..1414c1c660 100644 --- a/posix.mak +++ b/posix.mak @@ -207,10 +207,10 @@ $(DOC_OUTPUT_DIR)/404.html : 404.dd $(DDOC) $(DMD) $(DOC_OUTPUT_DIR)/%.html : %.dd $(DDOC) $(DMD) $(DMD) -conf= -c -o- -Df$@ $(DDOC) $< -$(DOC_OUTPUT_DIR)/%.verbatim : %.dd verbatim.ddoc $(DMD) +$(DOC_OUTPUT_DIR)/%.verbatim : %_pre.dd verbatim.ddoc $(DMD) $(DMD) -c -o- -Df$@ verbatim.ddoc $< -$(DOC_OUTPUT_DIR)/%.verbatim : %_pre.dd verbatim.ddoc $(DMD) +$(DOC_OUTPUT_DIR)/%.verbatim : %.dd verbatim.ddoc $(DMD) $(DMD) -c -o- -Df$@ verbatim.ddoc $< $(DOC_OUTPUT_DIR)/%.php : %.php.dd $(DDOC) $(DMD) @@ -365,19 +365,19 @@ ${DMD_DIR} ${DRUNTIME_DIR} ${PHOBOS_DIR} ${TOOLS_DIR} ${INSTALLER_DIR}: ################################################################################ $(DMD) : ${DMD_DIR} - ${MAKE} --directory=${DMD_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1 -j 4 + ${MAKE} --directory=${DMD_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1 $(DMD_REL) : ${DMD_STABLE_DIR} - ${MAKE} --directory=${DMD_STABLE_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1 -j 4 + ${MAKE} --directory=${DMD_STABLE_DIR}/src -f posix.mak AUTO_BOOTSTRAP=1 dmd-release : $(STD_DDOC) $(DMD_DIR) $(DMD) - $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak -j4 html \ + $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak html \ STDDOC="$(addprefix `pwd`/, $(STD_DDOC))" \ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos" \ DOCSRC="$(realpath .)" dmd-prerelease : $(STD_DDOC_PRE) $(DMD_DIR) $(DMD) - $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak -j4 html \ + $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak html \ STDDOC="$(addprefix `pwd`/, $(STD_DDOC_PRE))" \ DOCSRC="$(realpath .)" \ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos-prerelease" @@ -386,7 +386,7 @@ dmd-prerelease-verbatim : $(STD_DDOC_PRE) $(DMD_DIR) \ ${DOC_OUTPUT_DIR}/phobos-prerelease/mars.verbatim ${DOC_OUTPUT_DIR}/phobos-prerelease/mars.verbatim: verbatim.ddoc mkdir -p $(dir $@) - $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak -j4 html \ + $(MAKE) AUTO_BOOTSTRAP=1 --directory=$(DMD_DIR) -f posix.mak html \ DOC_OUTPUT_DIR="${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim" \ STDDOC="`pwd`/verbatim.ddoc" \ DOCSRC="$(realpath .)" @@ -399,7 +399,7 @@ ${DOC_OUTPUT_DIR}/phobos-prerelease/mars.verbatim: verbatim.ddoc ################################################################################ druntime-prerelease : ${DRUNTIME_DIR} $(DMD) $(STD_DDOC_PRE) - ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak -j 4 target doc \ + ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc \ DOCDIR=${DOC_OUTPUT_DIR}/phobos-prerelease \ DOCFMT="$(addprefix `pwd`/, $(STD_DDOC_PRE))" @@ -412,7 +412,7 @@ druntime-release : ${DRUNTIME_STABLE_DIR} $(DMD_REL) $(STD_DDOC) druntime-prerelease-verbatim : ${DRUNTIME_DIR} \ ${DOC_OUTPUT_DIR}/phobos-prerelease/object.verbatim ${DOC_OUTPUT_DIR}/phobos-prerelease/object.verbatim : $(DMD) - ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak -j 4 target doc \ + ${MAKE} --directory=${DRUNTIME_DIR} -f posix.mak target doc \ DOCDIR=${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim \ DOCFMT="`pwd`/verbatim.ddoc" mkdir -p $(dir $@) @@ -433,7 +433,7 @@ phobos-prerelease : ${PHOBOS_FILES_GENERATED} $(STD_DDOC_PRE) druntime-prereleas DMD="$(realpath ${DMD})" \ DOCSRC="$(realpath .)" \ VERSION="$(realpath ${DMD_DIR}/VERSION)" \ - html -j4 + html phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_REL) $(STD_DDOC) \ druntime-release @@ -446,7 +446,7 @@ phobos-release : ${PHOBOS_STABLE_FILES_GENERATED} $(DMD_REL) $(STD_DDOC) \ DMD="$(realpath ${DMD})" \ DOCSRC="$(realpath .)" \ VERSION="$(realpath ${DMD_DIR}/VERSION)" \ - html -j4 + html phobos-prerelease-verbatim : ${PHOBOS_FILES_GENERATED} ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim : verbatim.ddoc \ @@ -459,7 +459,7 @@ ${DOC_OUTPUT_DIR}/phobos-prerelease/index.verbatim : verbatim.ddoc \ DMD="$(realpath ${DMD})" \ DOCSRC="$(realpath .)" \ VERSION="$(realpath ${DMD_DIR}/VERSION)" \ - html -j4 + html $(call CHANGE_SUFFIX,html,verbatim,${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim) mv ${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim/* $(dir $@) rm -r ${DOC_OUTPUT_DIR}/phobos-prerelease-verbatim @@ -615,11 +615,11 @@ test: # Changelog generation ################################################################################ -changelog/${NEXT_VERSION}_pre.dd: ${STABLE_DMD} ../tools ../installer +changelog/${NEXT_VERSION}_pre.dd: | ${STABLE_DMD} ../tools ../installer $(STABLE_RDMD) $(TOOLS_DIR)/changed.d $(CHANGELOG_VERSION_MASTER) -o $@ \ --version "${NEXT_VERSION} (upcoming)" --date "To be released" --nightly -changelog/${NEXT_VERSION}.dd: ${STABLE_DMD} ../tools ../installer +changelog/${NEXT_VERSION}.dd: | ${STABLE_DMD} ../tools ../installer $(STABLE_RDMD) $(TOOLS_DIR)/changed.d $(CHANGELOG_VERSION_STABLE) -o $@ \ --version "${NEXT_VERSION}"