From: Marco Leise Date: Fri, 22 Feb 2013 03:57:42 +0000 (+0100) Subject: dev-lang/dmd: Bump to 2.062. Keeping some older versions in case of regressions. X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=99171fcdb355ae3308125f290e31feacbd9a3247;p=~andy%2Fsunrise dev-lang/dmd: Bump to 2.062. Keeping some older versions in case of regressions. --- diff --git a/dev-lang/dmd/ChangeLog b/dev-lang/dmd/ChangeLog index 40681472d..f71f0f4db 100644 --- a/dev-lang/dmd/ChangeLog +++ b/dev-lang/dmd/ChangeLog @@ -2,6 +2,16 @@ # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*dmd-2.062 (22 Feb 2013) + + 22 Feb 2013; Marco Leise (mleise) -dmd-2.059.ebuild, + -files/2.059-issue-7911.patch, + -files/2.059-outOfMemoryError-undeprecation.patch, + -files/2.059-std-path-sep-deprecation.patch, -files/dmd-2.059-makefile.patch, + +dmd-2.062.ebuild, +files/dmd-2.062-makefile.patch, + -files/2.059-issue-7907.patch, -files/2.059-issue-7922.patch: + Bump to 2.062. Keeping some older versions in case of regressions. + *dmd-2.061 (23 Jan 2013) 23 Jan 2013; Marco Leise (mleise) -dmd-2.058.ebuild, diff --git a/dev-lang/dmd/Manifest b/dev-lang/dmd/Manifest index 4ba8511a1..c4588e1ac 100644 --- a/dev-lang/dmd/Manifest +++ b/dev-lang/dmd/Manifest @@ -1,22 +1,17 @@ -AUX 2.059-issue-7907.patch 9542 SHA256 515861e0fd4e79b7cf1e3b401f2e32235d2bb4d3d7e7855e46da85925fe234ea SHA512 41348b0bde6e62fcc4c0283a477901253c69f8b2c90c62b92a1c137cd36423867d3f2fb5445afb694429928e9b8342417f068e70e9d739dfb01564f055ac6353 WHIRLPOOL dd4347e1e793671c41ff324cd5e1a0bf1647371f3e7a59a8e581971d2fed0636dfc0d9727a2bfd13d1160a3e8beb07581e1aeeb304d6a6554d7e8c73be763050 -AUX 2.059-issue-7911.patch 820 SHA256 ab15b4d821c902ff529ab97245ff954e66779b65ccfefcf6a638ae568ff66ffa SHA512 4bfc35be86c61c2ea8868d5dd99ba1a54ed6164be961a6b47ab72ce91d50efafbf23020a7bda9e69855c7f700f59c209e872db67e7954317509817ad93b51955 WHIRLPOOL e32e40423b2ce7b3416b6ef040ead609c9d3284af65312a285a1df2a74d15edfe0b0413793159a24ec5470a66850e3a13dd430260d515ed6b087aea0c6fb8a32 -AUX 2.059-issue-7922.patch 6229 SHA256 82c387f6321329a4763c689114d32e09ee9d0f4e92ed38c32f06f7948079d0fb SHA512 ef921d5ad643a54a670be2da3e7b4f5cbadcabfcfce74551d2731a4361acbf1bfe319ae17e3dc92d5230cdc8ddd8db4ef55081a6911db7d63233c7af8af991bc WHIRLPOOL 08ec13ac37f48e263e9a33640fb7cc56b9b7a99fa275ae79da50b4a2c65d7dd1c51283a1f693bd015dc32c65db1823432161f6aec4e986e2699088af8765f5fb -AUX 2.059-outOfMemoryError-undeprecation.patch 553 SHA256 6b36b490cce2a9bc72a28adaf85887f30cb26999189e1c84e32d68820e72713a SHA512 5d538f1dc1da0a3f3919f9dc7f5f02465cd0cd38f2b1339a53cea8f882c7041e4ef37b08ffb14563ab2e20cae0fabd8b76dd59434a8acf105ce3c752db7f0405 WHIRLPOOL 30c7425274b813d76886e0c343be40fc7721807089f76f3ce56c512d1a3cde1b50f28bb8642688c18d9e6d18b9b1592fe07e957c67577bab220f40cd74268aac -AUX 2.059-std-path-sep-deprecation.patch 1378 SHA256 b196c8a274bb5bd9268311fa6bdd14ecf3c42cd711ef12f016d3addff4ab980b SHA512 1239ffc0aca873eb20fb094a34cc47237f6702c9daf6955dd47df0b7920270b4460ab96c499e653a1244394385a9231fd86b74d5362d75546e0250083783991f WHIRLPOOL f7ef554f74f6e5d51be6a51405e8ef5f26c50fc6f3f84270c7e3d7f39217916d72666b6307fa605417920e1b148ec94ac321e465e89662ba92577e9ed8a7c12e AUX dmd-1.066-makefile.patch 16530 SHA256 df0c6db1578747b9cc5bbc9ccb14ab53599d7e2456d68f60d40ee98daa61dbb6 SHA512 4426b2acd6861418617d513d1809b6c79d2cba0c899b6bd5d233ea3a54894af8851fa06bb52607823ca4f7dcbb958e14057ff8e20d9eb686b99eff582e85fe63 WHIRLPOOL 29a6e32f13545e4aa6219462467327d980a63a0921288d4bdc45e3af7cd8c7875b10cc388a8f6dedb207fbd27ec3569bddc6402d4cf5acf3bd176021a670c732 -AUX dmd-2.059-makefile.patch 1843 SHA256 e8cb107bd1943950f077c696275e01920b1f0351ebcf1734f7dc862eb3392a9c SHA512 17b56c3d44d0a7c91105d2ea496f798b78ab1361ba790fbf7e64af0993a6906e7497719d8a9ef905fe2bc20904922eca17cb52443b75faab5a5f8050d3c3c0e2 WHIRLPOOL 4cd92627a92d6df2fdb9ebd39c711a1e49214c3a1a3ebd73811584a54e200afc0868fb25b8cbfb71d6fdb21dd95ec15bb7ed6d3953e2d5117aa52aab71795310 AUX dmd-2.060-makefile.patch 782 SHA256 973b43d90be6d801254c7c07fb1cf57f790214d2bfab37e159e0026d21d0ff4e SHA512 d91c3c6856cf59cf1e930d153ee91ff5c6c680497a04d1ef169ffb28137b58ef721aaed1f9913c0f455716797e4e93f17f7b8ac3fb69658f8e0b1026ccf539e2 WHIRLPOOL d05c628261d95f08ec36cffd0af82d00f8422f58eb7dc67a5e37402c7834daa40cda82d3376cc181480caf14f47bcee1dd840d082e6856c58b6879f7492d5422 AUX dmd-2.061-makefile.patch 767 SHA256 2f6f2743dc3665e27d90b1f5c0f347fa55b8a4b7f9d6c17de701f48c549a4b62 SHA512 980b43e8ff60f8849a5aa0f0429331336820d6b45c5864ffd0f09db341c4016b984121e082d32c59a5979d36acaaf563bc4f763330a0335a8b3bd321a54b698f WHIRLPOOL 3e3ed997eabb89414b739f55f7b8b24aa6b89d3aa0fc7475d8490c10edbfc1a61f13a01d4a9269addc5b08fa1bba8589c02180f8c5c45c6ab3ddf937f7d5bc78 +AUX dmd-2.062-makefile.patch 767 SHA256 2f6f2743dc3665e27d90b1f5c0f347fa55b8a4b7f9d6c17de701f48c549a4b62 SHA512 980b43e8ff60f8849a5aa0f0429331336820d6b45c5864ffd0f09db341c4016b984121e082d32c59a5979d36acaaf563bc4f763330a0335a8b3bd321a54b698f WHIRLPOOL 3e3ed997eabb89414b739f55f7b8b24aa6b89d3aa0fc7475d8490c10edbfc1a61f13a01d4a9269addc5b08fa1bba8589c02180f8c5c45c6ab3ddf937f7d5bc78 AUX dmd.bashcomp 4486 SHA256 b679b0c676035eda48948eeb6c2a8184c6effdc97d8c98d1ca4b071f345e4ac6 SHA512 b54fd8b457be79d923bd7eacd4c98a5e5840a11b71a562c426bf60814ae0438123693e3295e35c1dbf1585b2568125209368fd0bf590b19addd963c5fde25f22 WHIRLPOOL 1fc1e2776813156798c298c28a7d5c6c0d46dd39bdce0fce00573a8f42ff2d99b3eeaea0eff28f9dc3663c61d67fe6b43b5550021093afd8b7d49ffc705ac815 AUX slot-compat.patch 376 SHA256 d9f1f19b158c3cc52e133751e834460b12a0fa003192d50ba40421bf9ff56763 SHA512 d49c8768fc9c5169086e495c7fc93678747059e84ec6a6d105b11426f1d3b05ce0bc9a372d41960dd878274ce2ebf22b6ba6066be276b98ed728b5e46b1ed099 WHIRLPOOL d431e306e66e53fdf089d933ed9d42337e12805927b6e56641037d29d5566f6ce15f6d8439edd76b43b4158974d8bd96f35cd5ad1a254b7ce8e87863ca52c208 AUX stackelf.patch 3527 SHA256 56835f1bb5b5f33edbb2bdf650bdb9e459f3670db205b2aeb0a367a868517a96 SHA512 62de8d7427bd05b77eaea14769dfa94621365b3b62e8126341d50c7fef89fd7552946c0bfb4c9fcccdb26f66deb2787b68fe56849b0d694b45007a84bec84a76 WHIRLPOOL 40925f60883ad2f736b6398da6253cd674590c9ef3cd7bce2d510e8f3e795db48ffa64b5ef0fe85562716dd633136eab55ec59f3fdc2f2aad76c3f702a94c8f3 DIST dmd.1.066.zip 8958349 SHA256 26c421fdeaa3f81397cb9be858b8829eb01ebe11d6874c133b2ba2de249775fb -DIST dmd.2.059.zip 26217241 SHA256 47c712f9c47e0ac156362dfbd5e90f6ed63eb6ffbd0cc96c7db3f9d48ccd9a50 DIST dmd.2.060.zip 26819944 SHA256 8da5b46e34e476c29155eff8507aa7a6a82545b1e236f27bad2b6613d2165498 SHA512 fa92ca034d37f753c8cf9ffe281108bbd5df0a4385a2d2bf1a7f191d7fc2ca4de442d6d71f760fcbc949510dc6b82b198c4516db10315ad62ffe22056f8a4af2 WHIRLPOOL af485b084b32806ddf7528dc6e74dbd211bca78f05d91c548fe912fdf6be11467c49b5b21304438d12636ef2502d9d7db7d0733d60c13a3dd748a6ac569cfbd2 DIST dmd.2.061.zip 31601020 SHA256 13b546b69d628280f245ab19bf4ed27ab66a0085afdaf950e075e68acc7f4c93 SHA512 e1b68c1c73158a0ff792624f5e1dbb7e40c70a149071a5649965125239ab12b3da8a90cf3ccd618a8ef5554a9bbeb1a848246004e1f17cf7f81fd229f44b190b WHIRLPOOL b9a663501176de646414df443e173404d40de2c75080e57ea1b0fb224cc8b14673dd91f11e4046867b309070d169eed9a7002ec55265e10fb5487fd4f72a098a +DIST dmd.2.062.zip 31993170 SHA256 cd2e1f719713ad3c24637b253b39ebf7baa28eb24d991c7e0fb2de21da41c18a SHA512 9278278777a87aafee5d0aaf41420280cd37d359770e5768d90929a27f7f77d3e83182128fef756b2ddc9bd5e006a28cb9a208b371db3bdbdc0629682514a41c WHIRLPOOL 73b1ddff3308f27c95aa5d3ee399461d51c568491fd8a5bd825e1df345e4c919e42614ca4cd3233b0c960229646c8769bd06e653b1390c80c464d9ddfc682045 EBUILD dmd-1.066.ebuild 2252 SHA256 bc8776c7523f3b513b5879939d47261585b9af73271aa9fc3af1adeb8c5cd42f SHA512 a8c494be8f03828e6894fbd1bb6c34b5e9943e0ec7d818de9a1dd3a68e28d911296a4877d2801bed3d688f5275e7c4d6f1be8f3dc9c12dd1a1b5cc20197468de WHIRLPOOL c5fcaa96b2355884d39285524ecf6820ff44c114f66c38b1e2533ce7762653eda72400056bced547c3f8f1ca08e471d8cda1138f1623c2a44eb634266be3a65c -EBUILD dmd-2.059.ebuild 4626 SHA256 1229163a4e578785566412214396637a68b00bc42e44f5d92b59db39ec56b0c7 SHA512 449f1c8769a3b7d5b97b245d92bca3fabaf03975d8ba710a8821fbacb8e7872a7de01c5225a255427b8d32b519bd6d7b9363789063dedea77ee38dfa114f477d WHIRLPOOL c1b4ddf0db5744fab4143dcaac0ff79f538a809f26df8d0e44705cbd7093ac8c8c2a07b9437496658da2bb7097ed28c0de6ee40254e8b9a747b32a6e4ece7d12 EBUILD dmd-2.060.ebuild 4371 SHA256 573d7a07e233f1085c0967077cf4e674cff9c87fc3049111aae9723b1b73e5ce SHA512 9a7b743d5ca7e3d9ac2986b69f7ab80baee9a3b761bbd9e60566a63d189a6330eafd9eadfe6b15305bb13137ce5d4748d43ab53346400dcb02ecf7e8e09b4282 WHIRLPOOL 5d3899ac8cedd78eed124b9e39b8d6454465c1674dcde3626e17e4d6ed75cc9734ec1da122685bf4081eae7a91298aef53b01ab53c3852765c3f3956e3c4a7f4 EBUILD dmd-2.061.ebuild 4409 SHA256 990e51c0d857dac36118012730ca4b7b0af214656c090002f73fea06434a8c6c SHA512 89e47ae30477d3ae386ccb7baf3610f375dbe653782d20de264da53bd28441c5f42f6d939d616eb1631ec28b506f4da7088d44040012d697f61c56c9172621cf WHIRLPOOL 71513c3966ce9885e6ddec0179790f79120916e5ffd8b27b7533f657ec20cf9cb04980407b063f35daa4000d0143e7785fd2a9747176c8572eb3b2d957cf7dee -MISC ChangeLog 3096 SHA256 006c973278c44206e4836f4d3cc28ff2a9c979f68fe054ff16bf6e9564d044f7 SHA512 d8986f6dfe85d076c08bfe4b78dd785cc22d54b44ae7608d92bdd567de9be70b6a1996f319dd1aede9d57784be4558b5337a708101370f3e1ee0dceedc857a39 WHIRLPOOL 4e1e697a9c1973d544ddfa15b1aa74b5de1ec3a1d478695446a1da0f928f505142fef642e268ab812f912f039a6d02ebb76c8538072737cb6afe73e7f9d64d78 +EBUILD dmd-2.062.ebuild 4483 SHA256 73ed974b03fb6d6176b352fabaf69b55085ad0e8f57ecba5302ac9226f212eb2 SHA512 d552491b299e90fe5b3aaf5bc158597f8ae37c60205c4c867d2113141ee0448e56542a323d680c5e22da09564a87bda1598887da04c31ddae33ec0429ac02e01 WHIRLPOOL df22c9fa4adbe39683a50d981f942d7172453e521c0373c7ee6c0e0c105611f9ef621d562c430765bf8bd9dab85f18ac6b484b17f082e0f036081b724832639d +MISC ChangeLog 3552 SHA256 f6d4380d31764b4170f7097c84b0aa633d0c2874fc41b1d21b83852f99223325 SHA512 8e5a37c31ecb1e35f64976398aab810930713d0c8bb84b35b389f2164793e808b7e390369dd3b8dbfb03ad11405c44e645c19f2d5e77449808f2c3f92548d6fb WHIRLPOOL c8fbfb078219addef7b45698ed59582fa19a66048a2d9506cdbc4d65414879cfd38514c37e51669f2e4102c6636c0bfdc70bddd0f776f6fffb8ce1c0c655ec66 MISC metadata.xml 377 SHA256 5edc28143917c389d89a0af6623313c5f7ef81bf55dba92b39c611014fa6ed9e SHA512 c859bd7805b4a42bfbc5418e151638b63fe08e74e76722f2f95f20702549ded7b06058ce893ae22bd490d8c591e0c41e5dea3c24f46cb3f85463bb75096accba WHIRLPOOL 39e25417c4b28c27d16380faf4ac1d037e3576e6966715ef0dbc3737bc8a7f4c84c1234544fcab3e325766475df63594c7d09c10ec351e47c7559bee85aaa4be diff --git a/dev-lang/dmd/dmd-2.059.ebuild b/dev-lang/dmd/dmd-2.062.ebuild similarity index 85% rename from dev-lang/dmd/dmd-2.059.ebuild rename to dev-lang/dmd/dmd-2.062.ebuild index a0a7dcaaa..5c42ed2b0 100644 --- a/dev-lang/dmd/dmd-2.059.ebuild +++ b/dev-lang/dmd/dmd-2.062.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ @@ -7,8 +7,8 @@ EAPI="4" inherit eutils multilib bash-completion-r1 DESCRIPTION="Reference compiler for the D programming language" -HOMEPAGE="http://www.digitalmars.com/d/" -SRC_URI="http://ftp.digitalmars.com/${PN}.${PV}.zip" +HOMEPAGE="http://dlang.org/" +SRC_URI="http://downloads.dlang.org.s3.amazonaws.com/releases/2013/${PN}.${PV}.zip" # DMD supports amd64/x86 exclusively KEYWORDS="-* ~amd64 ~x86" @@ -45,22 +45,18 @@ src_prepare() { # misc patches for the build process epatch "${FILESDIR}/${P}-makefile.patch" - epatch "${FILESDIR}/${PV}-issue-7907.patch" - epatch "${FILESDIR}/${PV}-issue-7911.patch" - epatch "${FILESDIR}/${PV}-issue-7922.patch" - epatch "${FILESDIR}/${PV}-std-path-sep-deprecation.patch" - epatch "${FILESDIR}/${PV}-outOfMemoryError-undeprecation.patch" } src_compile() { # DMD - ln -s . "dmd/mars" || die "Failed to add recursive symbolic link to DMD sources." + # Temporary fix, for missing VERSION file in source distribution. + echo "${PV}" > VERSION || die "Failed to set DMD version." if use x86; then einfo 'Building DMD for x86 ...' - emake -C dmd -f posix.mak MODEL=32 + emake -C dmd -f posix.mak TARGET_CPU=X86 MODEL=32 elif use amd64; then einfo 'Building DMD for amd64 ...' - emake -C dmd -f posix.mak MODEL=64 + emake -C dmd -f posix.mak TARGET_CPU=X86 MODEL=64 fi # druntime & Phobos @@ -97,7 +93,7 @@ src_install() { cd "dmd" || die cat > dmd.conf << EOF [Environment] -DFLAGS=-I/usr/include/phobos2 -I/usr/include/druntime -L--no-warn-search-mismatch -L--export-dynamic -L-lrt +DFLAGS=-I/usr/include/phobos2 -I/usr/include/druntime -L--no-warn-search-mismatch -L--export-dynamic EOF insinto /etc doins dmd.conf @@ -120,10 +116,10 @@ EOF # Bundled pre-compiled tools if use amd64; then - dobin ../linux/bin64/{dumpobj,obj2asm,rdmd} + dobin ../linux/bin64/{ddemangle,dman,dumpobj,obj2asm,rdmd} fi if use x86; then - dobin ../linux/bin32/{dumpobj,obj2asm,rdmd} + dobin ../linux/bin32/{ddemangle,dman,dumpobj,obj2asm,rdmd} fi fi diff --git a/dev-lang/dmd/files/2.059-issue-7907.patch b/dev-lang/dmd/files/2.059-issue-7907.patch deleted file mode 100644 index e04d226e1..000000000 --- a/dev-lang/dmd/files/2.059-issue-7907.patch +++ /dev/null @@ -1,346 +0,0 @@ -diff -Nurp a/src/phobos/std/conv.d b/src/phobos/std/conv.d ---- a/src/phobos/std/conv.d 2012-04-17 12:02:10.824875716 +0200 -+++ b/src/phobos/std/conv.d 2012-04-17 12:15:10.654126508 +0200 -@@ -101,6 +101,12 @@ private - formatValue(w, src, f); - return w.data; - } -+ -+ template isEnumStrToStr(S, T) // @@@Workaround@@@ -+ { -+ enum isEnumStrToStr = isImplicitlyConvertible!(S, T) && -+ is(S == enum) && isSomeString!T; -+ } - } - - /** -@@ -250,7 +256,7 @@ If the source type is implicitly convert - to) simply performs the implicit conversion. - */ - T toImpl(T, S)(S value) -- if (isImplicitlyConvertible!(S, T)) -+ if (isImplicitlyConvertible!(S, T) && !isEnumStrToStr!(S, T)) - { - alias isUnsigned isUnsignedInt; - -@@ -1032,8 +1038,7 @@ unittest - - /// ditto - T toImpl(T, S)(S s) -- if (!isImplicitlyConvertible!(S, T) && -- is(S == enum) && -+ if (is(S == enum) && - isSomeString!T) - { - return toStr!T(s); -@@ -1042,21 +1047,26 @@ T toImpl(T, S)(S s) - unittest - { - debug(conv) scope(success) writeln("unittest @", __FILE__, ":", __LINE__, " succeeded."); -- enum E { a, b, c } -- assert(to! string(E.a) == "a"c); -- assert(to!wstring(E.b) == "b"w); -- assert(to!dstring(E.c) == "c"d); -- -- enum F : real { x = 1.414, y = 1.732, z = 2.236 } -- assert(to! string(F.x) == "x"c); -- assert(to!wstring(F.y) == "y"w); -- assert(to!dstring(F.z) == "z"d); -+ -+ enum EB { a = true } -+ enum EU { a = 0, b = 1, c = 2 } // base type is unsigned -+ enum EI { a = -1, b = 0, c = 1 } // base type is signed (bug 7909) -+ enum EF : real { a = 1.414, b = 1.732, c = 2.236 } -+ enum EC { a = 'a', b = 'b' } -+ enum ES : string { a = "aaa", b = "bbb" } -+ -+ foreach (E; TypeTuple!(EB, EU, EI, EF, EC, ES)) -+ { -+ assert(to! string(E.a) == "a"c); -+ assert(to!wstring(E.a) == "a"w); -+ assert(to!dstring(E.a) == "a"d); -+ } - - // Test an value not corresponding to an enum member. -- auto o = cast(E)5; -- assert(to! string(o) == "cast(E)5"c); -- assert(to!wstring(o) == "cast(E)5"w); -- assert(to!dstring(o) == "cast(E)5"d); -+ auto o = cast(EU)5; -+ assert(to! string(o) == "cast(EU)5"c); -+ assert(to!wstring(o) == "cast(EU)5"w); -+ assert(to!dstring(o) == "cast(EU)5"d); - } - - /// ditto -@@ -1073,7 +1083,7 @@ deprecated T toImpl(T, S)(S s, in T left - - /// ditto - T toImpl(T, S)(S b) -- if (is(Unqual!S == bool) && -+ if (isBoolean!S && - isSomeString!T) - { - return toStr!T(b); -@@ -1090,7 +1100,7 @@ unittest - - /// ditto - T toImpl(T, S)(S c) -- if (isSomeChar!(Unqual!S) && -+ if (isSomeChar!S && - isSomeString!T) - { - return toStr!T(c); -@@ -1132,7 +1142,7 @@ unittest - - /// ditto - T toImpl(T, S)(S input) -- if (isIntegral!S && isUnsigned!S && -+ if (isIntegral!S && - isSomeString!T) - { - return toStr!T(input); -@@ -1149,26 +1159,7 @@ unittest - assert(to!string(to!Int(9)) == "9"); - assert(to!string(to!Int(123)) == "123"); - } --} -- --/// ditto --T toImpl(T, S)(S value) -- if (isIntegral!S && isSigned!S && -- isSomeString!T) --{ -- return toStr!T(value); --} - --unittest --{ -- debug(conv) scope(success) writeln("unittest @", __FILE__, ":", __LINE__, " succeeded."); -- assert(wtext(int.max) == "2147483647"w); -- assert(wtext(int.min) == "-2147483648"w); -- assert(to!string(0L) == "0"); --} -- --unittest --{ - foreach (Int; TypeTuple!(byte, short, int, long)) - { - debug(conv) scope(success) writeln("unittest @", __FILE__, ":", __LINE__, " succeeded."); -@@ -1184,9 +1175,17 @@ unittest - } - } - -+unittest -+{ -+ debug(conv) scope(success) writeln("unittest @", __FILE__, ":", __LINE__, " succeeded."); -+ assert(wtext(int.max) == "2147483647"w); -+ assert(wtext(int.min) == "-2147483648"w); -+ assert(to!string(0L) == "0"); -+} -+ - /// ditto - T toImpl(T, S)(S value, uint radix) -- if (isIntegral!(Unqual!S) && -+ if (isIntegral!S && - isSomeString!T) - in - { -@@ -1194,7 +1193,7 @@ in - } - body - { -- static if (!is(Unqual!S == ulong)) -+ static if (!is(IntegralTypeOf!S == ulong)) - { - enforce(radix >= 2 && radix <= 36, new ConvException("Radix error")); - if (radix == 10) -@@ -2076,24 +2075,25 @@ Target parse(Target, Source)(ref Source - ~ to!string(s) ~ "'"); - } - --//@@@BUG4737@@@: typeid doesn't work for scoped enum with initializer --version(unittest) --{ -- private enum F : real { x = 1.414, y = 1.732, z = 2.236 } --} - unittest - { - debug(conv) scope(success) writeln("unittest @", __FILE__, ":", __LINE__, " succeeded."); -- enum E { a, b, c } -- assert(to!E("a"c) == E.a); -- assert(to!E("b"w) == E.b); -- assert(to!E("c"d) == E.c); - -- assert(to!F("x"c) == F.x); -- assert(to!F("y"w) == F.y); -- assert(to!F("z"d) == F.z); -+ enum EB : bool { a = true, b = false, c = a } -+ enum EU { a, b, c } -+ enum EI { a = -1, b = 0, c = 1 } -+ enum EF : real { a = 1.414, b = 1.732, c = 2.236 } -+ enum EC : char { a = 'a', b = 'b', c = 'c' } -+ enum ES : string { a = "aaa", b = "bbb", c = "ccc" } -+ -+ foreach (E; TypeTuple!(EB, EU, EI, EF, EC, ES)) -+ { -+ assert(to!E("a"c) == E.a); -+ assert(to!E("b"w) == E.b); -+ assert(to!E("c"d) == E.c); - -- assertThrown!ConvException(to!E("d")); -+ assertThrown!ConvException(to!E("d")); -+ } - } - - version (none) // TODO: BUG4744 -diff -Nurp a/src/phobos/std/stdio.d b/src/phobos/std/stdio.d ---- a/src/phobos/std/stdio.d 2012-04-17 12:02:10.957874054 +0200 -+++ b/src/phobos/std/stdio.d 2012-04-17 12:15:10.648126586 +0200 -@@ -665,19 +665,19 @@ arguments in text format to the file. */ - foreach (arg; args) - { - alias typeof(arg) A; -- static if (isSomeString!A && !is(A == enum)) -+ static if (isSomeString!A) - { - put(w, arg); - } -- else static if (isIntegral!A && !is(A == enum)) -+ else static if (isIntegral!A) - { - toTextRange(arg, w); - } -- else static if (isBoolean!A && !is(A == enum)) -+ else static if (isBoolean!A) - { - put(w, arg ? "true" : "false"); - } -- else static if (isSomeChar!A && !is(A == enum)) -+ else static if (isSomeChar!A) - { - put(w, arg); - } -diff -Nurp a/src/phobos/std/traits.d b/src/phobos/std/traits.d ---- a/src/phobos/std/traits.d 2012-04-17 12:02:10.897874804 +0200 -+++ b/src/phobos/std/traits.d 2012-04-17 12:15:10.647126599 +0200 -@@ -2693,7 +2693,7 @@ unittest - - /* - */ --template BooleanTypeOf(T) -+template BooleanTypeOf(T) if (!is(T == enum)) - { - inout(bool) idx( inout(bool) ); - shared(inout bool) idx( shared(inout bool) ); -@@ -2727,7 +2727,7 @@ unittest - - /* - */ --template IntegralTypeOf(T) -+template IntegralTypeOf(T) if (!is(T == enum)) - { - inout( byte) idx( inout( byte) ); - inout( ubyte) idx( inout( ubyte) ); -@@ -2786,7 +2786,7 @@ unittest - - /* - */ --template FloatingPointTypeOf(T) -+template FloatingPointTypeOf(T) if (!is(T == enum)) - { - inout( float) idx( inout( float) ); - inout(double) idx( inout(double) ); -@@ -2825,7 +2825,7 @@ unittest - - /* - */ --template NumericTypeOf(T) -+template NumericTypeOf(T) if (!is(T == enum)) - { - static if (is(IntegralTypeOf!T X)) - alias X NumericTypeOf; -@@ -2853,7 +2853,7 @@ unittest - - /* - */ --template UnsignedTypeOf(T) -+template UnsignedTypeOf(T) if (!is(T == enum)) - { - static if (is(IntegralTypeOf!T X) && - staticIndexOf!(Unqual!X, UnsignedIntTypeList) >= 0) -@@ -2862,7 +2862,7 @@ template UnsignedTypeOf(T) - static assert(0, T.stringof~" is not an unsigned type."); - } - --template SignedTypeOf(T) -+template SignedTypeOf(T) if (!is(T == enum)) - { - static if (is(IntegralTypeOf!T X) && - staticIndexOf!(Unqual!X, SignedIntTypeList) >= 0) -@@ -2875,7 +2875,7 @@ template SignedTypeOf(T) - - /* - */ --template CharTypeOf(T) -+template CharTypeOf(T) if (!is(T == enum)) - { - inout( char) idx( inout( char) ); - inout(wchar) idx( inout(wchar) ); -@@ -2930,7 +2930,7 @@ unittest - - /* - */ --template StaticArrayTypeOf(T) -+template StaticArrayTypeOf(T) if (!is(T == enum)) - { - inout(U[n]) idx(U, size_t n)( inout(U[n]) ); - -@@ -2961,7 +2961,7 @@ unittest - - /* - */ --template DynamicArrayTypeOf(T) -+template DynamicArrayTypeOf(T) if (!is(T == enum)) - { - inout(U[]) idx(U)( inout(U[]) ); - -@@ -3001,7 +3001,7 @@ unittest - - /* - */ --template ArrayTypeOf(T) -+template ArrayTypeOf(T) if (!is(T == enum)) - { - static if (is(StaticArrayTypeOf!T X)) - alias X ArrayTypeOf; -@@ -3017,7 +3017,7 @@ unittest - - /* - */ --template StringTypeOf(T) if (isSomeString!T) -+template StringTypeOf(T) if (!is(T == enum) && isSomeString!T) - { - alias ArrayTypeOf!T StringTypeOf; - } -@@ -3047,7 +3047,7 @@ unittest - - /* - */ --template AssocArrayTypeOf(T) -+template AssocArrayTypeOf(T) if (!is(T == enum)) - { - immutable(V [K]) idx(K, V)( immutable(V [K]) ); - -@@ -3279,7 +3279,10 @@ Detect whether we can treat T as one of - */ - template isSomeString(T) - { -- enum isSomeString = isNarrowString!T || is(T : const(dchar[])); -+ static if (is(T == enum)) -+ enum isSomeString = false; -+ else -+ enum isSomeString = isNarrowString!T || is(T : const(dchar[])); - } - - unittest diff --git a/dev-lang/dmd/files/2.059-issue-7911.patch b/dev-lang/dmd/files/2.059-issue-7911.patch deleted file mode 100644 index 839e0bf27..000000000 --- a/dev-lang/dmd/files/2.059-issue-7911.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Nurp a/src/dmd/attrib.c b/src/dmd/attrib.c ---- a/src/dmd/attrib.c 2012-04-17 12:02:10.224883217 +0200 -+++ b/src/dmd/attrib.c 2012-04-17 12:31:56.293554287 +0200 -@@ -1402,6 +1402,23 @@ void StaticIfDeclaration::setScope(Scope - - // But do set the scope, in case we need it for forward referencing - Dsymbol::setScope(sc); -+ -+ // Set the scopes for both the decl and elsedecl, as we don't know yet -+ // which will be selected, and the scope will be the same regardless -+ Dsymbols *d = decl; -+ for (int j = 0; j < 2; j++) -+ { -+ if (d) -+ { -+ for (size_t i = 0; i < d->dim; i++) -+ { -+ Dsymbol *s = (*d)[i]; -+ -+ s->setScope(sc); -+ } -+ } -+ d = elsedecl; -+ } - } - - void StaticIfDeclaration::semantic(Scope *sc) diff --git a/dev-lang/dmd/files/2.059-issue-7922.patch b/dev-lang/dmd/files/2.059-issue-7922.patch deleted file mode 100644 index 0d5004d7d..000000000 --- a/dev-lang/dmd/files/2.059-issue-7922.patch +++ /dev/null @@ -1,162 +0,0 @@ -diff -Nurp a/src/dmd/declaration.c b/src/dmd/declaration.c ---- a/src/dmd/declaration.c 2012-04-17 12:02:10.231883129 +0200 -+++ b/src/dmd/declaration.c 2012-04-17 12:37:45.585187488 +0200 -@@ -1361,11 +1361,17 @@ Lnomatch: - e->op = TOKblit; - } - e->type = t; -- (*pinit) = new CommaExp(loc, e, (*pinit)); - -- /* Replace __ctmp being constructed with e1 -+ /* Replace __ctmp being constructed with e1. -+ * We need to copy constructor call expression, -+ * because it may be used in other place. - */ -- dve->e1 = e1; -+ DotVarExp *dvx = (DotVarExp *)dve->copy(); -+ dvx->e1 = e1; -+ CallExp *cx = (CallExp *)ce->copy(); -+ cx->e1 = dvx; -+ -+ (*pinit) = new CommaExp(loc, e, cx); - (*pinit) = (*pinit)->semantic(sc); - goto Ldtor; - } -diff -Nurp a/src/dmd/opover.c b/src/dmd/opover.c ---- a/src/dmd/opover.c 2012-04-17 12:02:10.226883191 +0200 -+++ b/src/dmd/opover.c 2012-04-17 12:37:45.585187488 +0200 -@@ -354,9 +354,11 @@ Expression *UnaExp::op_overload(Scope *s - /* Rewrite op(e1) as: - * op(e1.aliasthis) - */ -- UnaExp *e = (UnaExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad->aliasthis->ident); -+ Expression *e = copy(); -+ ((UnaExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - #endif - } -@@ -411,9 +413,11 @@ Expression *ArrayExp::op_overload(Scope - /* Rewrite op(e1) as: - * op(e1.aliasthis) - */ -- UnaExp *e = (UnaExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad->aliasthis->ident); -+ Expression *e = copy(); -+ ((UnaExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - } - return NULL; -@@ -456,9 +460,11 @@ Expression *CastExp::op_overload(Scope * - /* Rewrite op(e1) as: - * op(e1.aliasthis) - */ -- UnaExp *e = (UnaExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad->aliasthis->ident); -+ Expression *e = copy(); -+ ((UnaExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - } - return NULL; -@@ -714,9 +720,11 @@ L1: - /* Rewrite (e1 op e2) as: - * (e1.aliasthis op e2) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad1->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad1->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - - // Try alias this on second operand -@@ -729,9 +737,11 @@ L1: - /* Rewrite (e1 op e2) as: - * (e1 op e2.aliasthis) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e2 = new DotIdExp(loc, e->e2, ad2->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e2 = new DotIdExp(loc, this->e2, ad2->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e2 = e2; -+ e = e->trySemantic(sc); -+ return e; - } - #endif - return NULL; -@@ -883,9 +893,11 @@ Expression *BinExp::compare_overload(Sco - /* Rewrite (e1 op e2) as: - * (e1.aliasthis op e2) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad1->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad1->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - - // Try alias this on second operand -@@ -894,9 +906,11 @@ Expression *BinExp::compare_overload(Sco - /* Rewrite (e1 op e2) as: - * (e1 op e2.aliasthis) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e2 = new DotIdExp(loc, e->e2, ad2->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e2 = new DotIdExp(loc, this->e2, ad2->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e2 = e2; -+ e = e->trySemantic(sc); -+ return e; - } - - return NULL; -@@ -1131,9 +1145,11 @@ L1: - /* Rewrite (e1 op e2) as: - * (e1.aliasthis op e2) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e1 = new DotIdExp(loc, e->e1, ad1->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e1 = new DotIdExp(loc, this->e1, ad1->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e1 = e1; -+ e = e->trySemantic(sc); -+ return e; - } - - // Try alias this on second operand -@@ -1143,9 +1159,11 @@ L1: - /* Rewrite (e1 op e2) as: - * (e1 op e2.aliasthis) - */ -- BinExp *e = (BinExp *)syntaxCopy(); -- e->e2 = new DotIdExp(loc, e->e2, ad2->aliasthis->ident); -- return e->trySemantic(sc); -+ Expression *e2 = new DotIdExp(loc, this->e2, ad2->aliasthis->ident); -+ Expression *e = copy(); -+ ((BinExp *)e)->e2 = e2; -+ e = e->trySemantic(sc); -+ return e; - } - #endif - return NULL; diff --git a/dev-lang/dmd/files/2.059-outOfMemoryError-undeprecation.patch b/dev-lang/dmd/files/2.059-outOfMemoryError-undeprecation.patch deleted file mode 100644 index 47d96f6ea..000000000 --- a/dev-lang/dmd/files/2.059-outOfMemoryError-undeprecation.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -Nurp a/src/phobos/std/path.d b/src/phobos/std/path.d ---- a/src/phobos/std/path.d 2012-04-17 12:02:10.980873765 +0200 -+++ b/src/phobos/std/path.d 2012-04-17 13:43:17.035037653 +0200 -@@ -59,6 +59,7 @@ version(Posix) - import core.stdc.errno; - import core.sys.posix.pwd; - import core.sys.posix.stdlib; -+ private import core.exception : onOutOfMemoryError; - } - - -@@ -2795,7 +2796,6 @@ deprecated: - version(Posix) - { - private import core.sys.posix.pwd; -- private import core.exception : onOutOfMemoryError; - } - - version(Windows) diff --git a/dev-lang/dmd/files/2.059-std-path-sep-deprecation.patch b/dev-lang/dmd/files/2.059-std-path-sep-deprecation.patch deleted file mode 100644 index 79c5bc33b..000000000 --- a/dev-lang/dmd/files/2.059-std-path-sep-deprecation.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Nurp a/src/phobos/std/datetime.d b/src/phobos/std/datetime.d ---- a/src/phobos/std/datetime.d 2012-04-17 12:02:10.776876316 +0200 -+++ b/src/phobos/std/datetime.d 2012-04-17 13:37:56.468045292 +0200 -@@ -29286,7 +29286,7 @@ assert(tz.dstName == "PDT"); - version(Posix) - auto file = tzDatabaseDir ~ name; - else version(Windows) -- auto file = tzDatabaseDir ~ replace(strip(name), "/", sep); -+ auto file = tzDatabaseDir ~ replace(strip(name), "/", dirSeparator); - - enforce(file.exists, new DateTimeException(format("File %s does not exist.", file))); - enforce(file.isFile, new DateTimeException(format("%s is not a file.", file))); -@@ -29595,10 +29595,10 @@ assert(tz.dstName == "PDT"); - version(Posix) - subName = strip(subName); - else version(Windows) -- subName = replace(strip(subName), "/", sep); -+ subName = replace(strip(subName), "/", dirSeparator); - -- if(!tzDatabaseDir.endsWith(sep)) -- tzDatabaseDir ~= sep; -+ if(!tzDatabaseDir.endsWith(dirSeparator)) -+ tzDatabaseDir ~= dirSeparator; - - enforce(tzDatabaseDir.exists, new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir))); - enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir))); diff --git a/dev-lang/dmd/files/dmd-2.059-makefile.patch b/dev-lang/dmd/files/dmd-2.059-makefile.patch deleted file mode 100644 index 0505f48eb..000000000 --- a/dev-lang/dmd/files/dmd-2.059-makefile.patch +++ /dev/null @@ -1,80 +0,0 @@ -The patches allow for MODEL, DMD (compiler for the library) and -DDOC (documentation generator) to be overriden on the command line. -The patch to gzio.c adds the missing errno.h include, to make the code portable: -http://d.puremagic.com/issues/show_bug.cgi?id=5463 ---- dmd2/src/dmd/posix.mak -+++ dmd2/src/dmd/posix.mak -@@ -29,7 +29,7 @@ - TK=tk - ROOT=root - --MODEL=32 -+MODEL?=32 - - ifeq (OSX,$(TARGET)) - ## See: http://developer.apple.com/documentation/developertools/conceptual/cross_development/Using/chapter_3_section_2.html#//apple_ref/doc/uid/20002000-1114311-BABGCAAB ---- dmd2/src/druntime/posix.mak -+++ dmd2/src/druntime/posix.mak -@@ -20,12 +20,12 @@ - endif - endif - --DMD=dmd -+DMD?=dmd - - DOCDIR=doc - IMPDIR=import - --MODEL=32 -+MODEL?=32 - - DFLAGS=-m$(MODEL) -O -release -inline -nofloat -w -d -Isrc -Iimport -property - UDFLAGS=-m$(MODEL) -O -release -nofloat -w -d -Isrc -Iimport -property ---- dmd2/src/phobos/etc/c/zlib/gzio.c -+++ dmd2/src/phobos/etc/c/zlib/gzio.c -@@ -8,6 +8,7 @@ - /* @(#) $Id$ */ - - #include -+#include - - #include "zutil.h" - ---- dmd2/src/phobos/posix.mak -+++ dmd2/src/phobos/posix.mak -@@ -61,8 +61,6 @@ - - # Variable defined in an OS-dependent manner (see below) - CC = --DMD = --DDOC = - CFLAGS = - DFLAGS = - -@@ -83,14 +81,14 @@ - # Set CC and DMD - ifeq ($(OS),win32wine) - CC = wine dmc.exe -- DMD = wine dmd.exe -+ DMD ?= wine dmd.exe - RUN = wine - else - ifeq ($(OS),win32remote) -- DMD = ssh 206.125.170.138 "cd code/dmd/phobos && dmd" -+ DMD ?= ssh 206.125.170.138 "cd code/dmd/phobos && dmd" - CC = ssh 206.125.170.138 "cd code/dmd/phobos && dmc" - else -- DMD = dmd -+ DMD ?= dmd - ifeq ($(OS),win32) - CC = dmc - else -@@ -141,7 +139,7 @@ - endif - - # Set DDOC, the documentation generator --DDOC=$(DMD) -+DDOC?=$(DMD) - - # Set LIB, the ultimate target - ifeq (,$(findstring win,$(OS))) diff --git a/dev-lang/dmd/files/dmd-2.062-makefile.patch b/dev-lang/dmd/files/dmd-2.062-makefile.patch new file mode 100644 index 000000000..50f6a7e2e --- /dev/null +++ b/dev-lang/dmd/files/dmd-2.062-makefile.patch @@ -0,0 +1,35 @@ +The patches allow for MODEL, DMD (compiler for the library) and +DDOC (documentation generator) to be overriden on the command line. +--- dmd2/src/dmd/posix.mak ++++ dmd2/src/dmd/posix.mak +@@ -49,7 +49,7 @@ + TK=tk + ROOT=root + +-MODEL=32 ++MODEL?=32 + ifneq (x,x$(MODEL)) + MODEL_FLAG=-m$(MODEL) + endif +--- dmd2/src/druntime/posix.mak ++++ dmd2/src/druntime/posix.mak +@@ -37,7 +37,7 @@ + DOCDIR=doc + IMPDIR=import + +-MODEL=32 ++MODEL?=32 + override PIC:=$(if $(PIC),-fPIC,) + + DFLAGS=-m$(MODEL) -O -release -inline -w -Isrc -Iimport -property $(PIC) +--- dmd2/src/phobos/posix.mak ++++ dmd2/src/phobos/posix.mak +@@ -149,7 +149,7 @@ + endif + + # Set DDOC, the documentation generator +-DDOC=$(DMD) ++DDOC?=$(DMD) + + # Set LIB, the ultimate target + ifeq (,$(findstring win,$(OS)))