Skip to content
48 changes: 37 additions & 11 deletions changelog/2.074.0_pre.dd
Original file line number Diff line number Diff line change
Expand Up @@ -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
-------
)

Expand Down Expand Up @@ -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.)
)
)
)

Expand Down Expand Up @@ -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.
)
Expand All @@ -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,

Expand Down
2 changes: 1 addition & 1 deletion download.dd
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion errorpage.ddoc
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
ROOT_DIR=/
ROOT=
_=ROOT is only used for top left dlang.org logo and cannot be empty `<a href="$(ROOT)">`, so use / even though it breaks when served under /subpath/.
ROOT=/
28 changes: 14 additions & 14 deletions posix.mak
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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"
Expand All @@ -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 .)"
Expand All @@ -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))"

Expand All @@ -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 $@)
Expand All @@ -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
Expand All @@ -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 \
Expand All @@ -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
Expand Down Expand Up @@ -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}"

Expand Down