[Issue 17629] package.di files cannot be used
https://issues.dlang.org/show_bug.cgi?id=17629 --- Comment #1 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/e205f8947bfb099dd12556cc5c3343cdee479eae fix Issue 17629: Try loading package.di prior to package.d * This is the same behavior as ordinary modules where .di files are scanned first https://github.com/dlang/dmd/commit/0bd1739fdd8b87e57f4886555f27a8e07e98c643 add test for Issue 17629 - package.di files not supported --
[Issue 17629] package.di files cannot be used
https://issues.dlang.org/show_bug.cgi?id=17629 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17482] [REG 2.074] comile error: Comparing Nullable!Variant with basic type
https://issues.dlang.org/show_bug.cgi?id=17482 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/a7ea880eb24a36e09e50de7b8b32d941110aa630 Fix issue 17482: Fix Nullable!Variant equality checks. https://github.com/dlang/phobos/commit/d07b10148dcfbf494a8f433ebf5646a4cb8d1b10 Merge pull request #5541 from jmdavis/issue_17482 --
[Issue 16577] A selective import on a symbol that has overloads leads to duplicate messages
https://issues.dlang.org/show_bug.cgi?id=16577 b2.t...@gmx.com changed: What|Removed |Added Summary|deduplicate deprecation |A selective import on a |messages|symbol that has overloads ||leads to duplicate messages --
[Issue 16191] std/digest/digest.d should be renamed to package.d
https://issues.dlang.org/show_bug.cgi?id=16191 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 16191] std/digest/digest.d should be renamed to package.d
https://issues.dlang.org/show_bug.cgi?id=16191 --- Comment #2 from github-bugzi...@puremagic.com --- Commit pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/5774d017eb4fa154491385a91f590abc2f66b964 Fix issue 16191 - std/digest/digest.d should be renamed to package.d --
[Issue 17630] New: DMD treats imports as public imports when selectively imported
https://issues.dlang.org/show_bug.cgi?id=17630 Issue ID: 17630 Summary: DMD treats imports as public imports when selectively imported Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: blocker Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: greensunn...@gmail.com foo.d: --- module foo; import c; //import c : NotErase; // <- breaks build of module `bar` --- bar.d: --- module bar; unittest { import foo : Erase; // A non-selective import correctly errors assert(Erase == 2); } --- c.d: --- module c; int Erase = 2; int NotErase = 2; --- --
[Issue 17612] [REG2.063] Segmentation fault with bad object.d
https://issues.dlang.org/show_bug.cgi?id=17612 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17612] [REG2.063] Segmentation fault with bad object.d
https://issues.dlang.org/show_bug.cgi?id=17612 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/9e486c36fc76b7ccf45e3d9f19fa9115e7986d19 fix Issue 17612 - [REG2.063] Segmentation fault with bad object.d https://github.com/dlang/dmd/commit/49c0625f305907aa4f9d81aff3370598aac2f5b7 Merge pull request #6975 from WalterBright/fix17612 fix Issue 17612 - [REG2.063] Segmentation fault with bad object.d merged-on-behalf-of: Martin Nowak--
[Issue 17545] [REG2.072] __traits(getAttributes, name) evaluates name to value prematurely
https://issues.dlang.org/show_bug.cgi?id=17545 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/2e6c7ac3af5ec52aff63a779e781cab1a802dfa5 fix Issue 17545 - [REG2.072] __traits(getAttributes, name) evaluates name to value prematurely https://github.com/dlang/dmd/commit/1227633d355b0a6ab8f65d82247fcf0d5012129e Merge pull request #6949 from WalterBright/fix17545 fix Issue 17545 - [REG2.072] __traits(getAttributes, name) evaluates … merged-on-behalf-of: Martin Nowak--
[Issue 17545] [REG2.072] __traits(getAttributes, name) evaluates name to value prematurely
https://issues.dlang.org/show_bug.cgi?id=17545 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17548] [REG2.072.0] Forward reference error with scope function parameters
https://issues.dlang.org/show_bug.cgi?id=17548 --- Comment #5 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/8a67b112405213d95089426b8ecfc598ee14d3fb Fix Issue 17548 - [REG2.072.0] Forward reference error with scope function parameters Prior to this commit, in StructDeclaration.semantic the only two ways the condition (symtab && !scx && semanticRun < PASSsemanticdone) may be true are: - if determineFields() fails - if a first semantic() call on the same struct is ongoing But in the second case, setting semanticRun to PASSsemanticdone is wrong, because if the semantic() call defers itself, the deferred semantic() call will return immediately, resulting in a "has forward references" error during semantic2(). https://github.com/dlang/dmd/commit/b61d20fdbda633d7dfcf18f1b81649f25e32d0c4 Add testcase for issue 17548. https://issues.dlang.org/show_bug.cgi?id=17548 https://github.com/dlang/dmd/commit/2f6db2fb8bef57e55a45fc555128bd9d9fbf328e Merge pull request #6937 from Syniurge/alt-fix17548 Alternative fix to issue 17548 - [REG2.072.0] Forward reference error with scope function parameters merged-on-behalf-of: Martin Nowak--
[Issue 17548] [REG2.072.0] Forward reference error with scope function parameters
https://issues.dlang.org/show_bug.cgi?id=17548 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17492] [REG 2.066] [ICE] AssertError@ddmd/dclass.d(1007): Assertion failure
https://issues.dlang.org/show_bug.cgi?id=17492 --- Comment #4 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/b9e92f385a3399f170a010813b0b05aee1110731 fix Issue 17492 - [REG 2.066] [ICE] AssertError@ddmd/dclass.d(1007): Assertion failure https://github.com/dlang/dmd/commit/ed24195a9ff2759b1c1ac2f0486e358eea8b56bc Merge pull request #6964 from WalterBright/fix17492 fix Issue 17492 - [REG 2.066] [ICE] AssertError@ddmd/dclass.d(1007): … merged-on-behalf-of: Martin Nowak--
[Issue 17492] [REG 2.066] [ICE] AssertError@ddmd/dclass.d(1007): Assertion failure
https://issues.dlang.org/show_bug.cgi?id=17492 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17481] [REG 2.069.0] synchronized: Access Violation with dmd -O on win32
https://issues.dlang.org/show_bug.cgi?id=17481 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17481] [REG 2.069.0] synchronized: Access Violation with dmd -O on win32
https://issues.dlang.org/show_bug.cgi?id=17481 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to stable at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/d728c0f9ba8f762682eced7da06f8123ed4d7f71 fix Issue 17481 - [REG 2.069.0] synchronized: Access Violation with dmd -O on win32 https://github.com/dlang/dmd/commit/5fa367d499fd688d02e53afc9c2ceef31fb67619 Merge pull request #6965 from WalterBright/fix17481 fix Issue 17481 - [REG 2.069.0] synchronized: Access Violation with d… merged-on-behalf-of: Martin Nowak--
[Issue 17629] New: package.di files cannot be used
https://issues.dlang.org/show_bug.cgi?id=17629 Issue ID: 17629 Summary: package.di files cannot be used Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: e...@weka.io Unlike other .d files, package.d files cannot have interface-file counterparts. if a/package.d exists, "import a" works. if a/package.di exists, "import a" does not work. If both exist, the latter is ignored. --
[Issue 16856] D does not work on FreeBSD current (what will eventually be 12) due to libunwind
https://issues.dlang.org/show_bug.cgi?id=16856 --- Comment #12 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/druntime https://github.com/dlang/druntime/commit/ce863ecdd9ba0e56a40c8afa7b247946702f2995 Fix issue 16856: Don't use dlopen from the fini sections In case finalizers are called from the runtime linker we shouldn't try to get handle to and reference the dying shared object. This was used just for the asserting, so this simply removes the assert making it working on the platforms where this is strictly forbiden (e.g. FreeBSD 12). https://github.com/dlang/druntime/commit/1d983500f8d66b2bcb8fac514b2b23394ab60b37 Merge pull request #1862 from Burgos/dso Fis issue 16856: Don't use dlopen from the fini sections merged-on-behalf-of: Sebastian Wilzbach--
[Issue 17375] colliding modules detected with binutils 2.28 linker and shared libraries
https://issues.dlang.org/show_bug.cgi?id=17375 --- Comment #9 from Seb--- > It should be made default on Arch anyhow after we've switched with 2.072.2 Sadly it's not the default on Arch yet, see e.g. http://forum.dlang.org/post/gpbyhmdsudlmapsvv...@forum.dlang.org and my proposal to make it default for all Posix distros: https://github.com/dlang/phobos/pull/5586 --
[Issue 17628] New: formattedWrite is impure on double
https://issues.dlang.org/show_bug.cgi?id=17628 Issue ID: 17628 Summary: formattedWrite is impure on double Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: qs.il.paperi...@gmail.com pure void main() { import std.format : formattedWrite; auto app = appender!string; app.formattedWrite!"%s"(1.0); } fails. formattedWrite can purely do its job for int and string. It should also do for floating point types. --
[Issue 17627] New: assert output in ctfe is irritating
https://issues.dlang.org/show_bug.cgi?id=17627 Issue ID: 17627 Summary: assert output in ctfe is irritating Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: an...@s-e-a-p.de assert(false, strVar) has to be used to output a string variable in CTFE. At the moment there is no other possibility as pragma(msg, ...) and writeln is not working. Also with the new CTFE it isn't 100% clear whether ctfeWriteln will come: http://forum.dlang.org/post/ynqedyhlpbolyfmhf...@forum.dlang.org For this example string test(string s) { string tmp = s; tmp = tmp[4..$]; assert(false, tmp); return tmp; } enum foo = `1234 5678 `; void main() { enum bar = test(foo); } The output is (dmd 2.075.0-b2): C:\Users\user\Desktop>rdmd app app.d(6): Error: "1234\x0a5678\x0a"[4..10] app.d(17):called from here: test("1234\x0a5678\x0a") Failed: ["dmd", "-v", "-o-", "app.d", "-I."] Instead of the content of tmp, the full content is shown with the slice information [4..10]. This output is in a real scenario quite irritating as the string is much longer and a lot more logic is going on and also the string isn't passed back but a structure. I already thought dmd isn't working at all, as the tmp variable didn't changed its value. Only after having 5 looks at the minimal example output, I saw the slice information. --
[Issue 15750] net/isemail uses lots of redundant helper methods
https://issues.dlang.org/show_bug.cgi?id=15750 --- Comment #1 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/5c31dd26ed289b397a4bad32ac29af6e77247ef7 Issue 15750 - remove substr from std.net.isemail https://github.com/dlang/phobos/commit/e9ff980095462ee88713bcea3cc9852de5081e5b Merge pull request #5585 from wilzbach/remove-substr Issue 15750 - remove substr from std.net.isemail merged-on-behalf-of: Jack Stouffer--
[Issue 17526] Add a set method for AA
https://issues.dlang.org/show_bug.cgi?id=17526 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --
[Issue 17526] Add a set method for AA
https://issues.dlang.org/show_bug.cgi?id=17526 --- Comment #6 from Bolpat--- @Vladimir Exactly. It's a performance and possibility issue. We can discuss the name after everything else is done. I propose a change to the signature + semantics: V* set(K, V)(ref const(V)[const(K)] aa, auto ref const(K) key, lazy const(V) value) { if (auto valPtr = key in aa) return null; // cast away const as initialization is okay: (cast() aa[key]) = value(); return key in aa; } So it returns null if it was not set and a pointer to the object in the AA to be able to modify it after setting without additional lookups. I like addOrGet very much. Both methods have their range of applicability. With this one, you can do if (auto valPtr = aa.set(key, val())) { valPtr.property = something(); manage(*valPtr); } The main difference between the two is what you intend to do: - Yours assures the key has a value afterwards. It doesn't really care if the key is there already. One cannot even know using it. - Mine expects the key not to be there beforehand. It is specifically designed to add this key-value pair. --
[Issue 16397] missing coverage from template instances when using separate compilation
https://issues.dlang.org/show_bug.cgi?id=16397 --- Comment #4 from Martin Nowak--- Comment from Rainer https://github.com/dlang/phobos/pull/5579#issuecomment-313905465 > Always generating coverage instrumentation of templated code will only work > if > you cover all linked libraries, though. For example, coverage from > druntime > modules might leak into the report, just as well as that it might provide > template instances without coverage instrumention. Yes, but that's what we do with everything else as well, e.g. -unittest or -profile, so it seems sensible to use this here as well. That's also what C++ and gcov do. cat > cova.cc << CODE #include "covb.h" int main() { foo(1, 2); } CODE cat > covb.h << CODE template T foo(T a, T b) { return a + b; } CODE g++ -fprofile-arcs -ftest-coverage cova.cc -o cova ./cova gcov cova.cc File 'covb.h' Lines executed:100.00% of 2 Creating 'covb.h.gcov' File 'cova.cc' Lines executed:100.00% of 3 Creating 'cova.cc.gcov' --
[Issue 17626] Same name variable assignment should raise a compile-time warning
https://issues.dlang.org/show_bug.cgi?id=17626 --- Comment #3 from David Baum--- @greenify -- thanks for the DScanner issue. I really appreciate it. --
[Issue 17626] Same name variable assignment should raise a compile-time warning
https://issues.dlang.org/show_bug.cgi?id=17626 greenifychanged: What|Removed |Added CC||greeen...@gmail.com --- Comment #2 from greenify --- You probably have better chances of getting this into DScanner: https://github.com/dlang-community/D-Scanner/issues/497 --
[Issue 3573] pure and nothrow allow function return type to be inferred
https://issues.dlang.org/show_bug.cgi?id=3573 Bolpatchanged: What|Removed |Added CC|qs.il.paperi...@gmail.com | --
[Issue 17626] Same name variable assignment should raise a compile-time warning
https://issues.dlang.org/show_bug.cgi?id=17626 David Baumchanged: What|Removed |Added Summary|Same name variable |Same name variable |assignment should be|assignment should raise a |prohibited |compile-time warning --- Comment #1 from David Baum --- I would like to suggest having the following code raise a compile-time warning: ``` x = x; ``` Other than invoking the copy constructor, this is a no-op. I had the following piece of code, which for "some reason" didn't work: ``` struct FuncPtr{ void* ptr; this(void* ptr){ ptr = ptr; } ... } ``` Locating this wasn't immediate, and I don't see valid reasons for someone to purposely write such a code. I suggest at least raising a compile-time warning. Much easier than to hunt for nulls in runtime. --
[Issue 2525] Can't use `override` when implementing abstract base class's interface function
https://issues.dlang.org/show_bug.cgi?id=2525 --- Comment #14 from Martin Nowak--- As a workaround one can redeclare the interface methods in the abstract class. interface I { void foo(); } abstract class A : I { override void foo(); } class B : A { override void foo () {} } Note that this bug and the workaround also applies to implicit abstract classes. interface I { void foo(); } class A : I { abstract override void foo(); } class B : A { override void foo () {} } --
[Issue 2525] Can't use `override` when implementing abstract base class's interface function
https://issues.dlang.org/show_bug.cgi?id=2525 Martin Nowakchanged: What|Removed |Added CC||c...@dawg.eu --- Comment #13 from Martin Nowak --- See Issue 9978 for why we allow to override interface functions. The given code should work. --
[Issue 17626] New: Same name variable assignment should be prohibited
https://issues.dlang.org/show_bug.cgi?id=17626 Issue ID: 17626 Summary: Same name variable assignment should be prohibited Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dlang.org Assignee: nob...@puremagic.com Reporter: da...@weka.io --
[Issue 15432] Win64: bad code offset in debug line number info
https://issues.dlang.org/show_bug.cgi?id=15432 Rainer Schuetzechanged: What|Removed |Added Keywords||pull --- Comment #5 from Rainer Schuetze --- https://github.com/dlang/dmd/pull/6979 --
[Issue 16650] Wrong mangling for extern(C++) with posix stat_t
https://issues.dlang.org/show_bug.cgi?id=16650 --- Comment #5 from Jacob Carlborg--- (In reply to Vladimir Panteleev from comment #4) > It's easy enough to test! > > $ cat test.d > pragma(mangle, "CeciNestPasUnS") > struct S { } > > extern(C++) void fun(S* s); > > pragma(msg, fun.mangleof); > > $ dmd -o- test.d > _Z3funP1S > > Looks like pragma(mangle) has no effect on structs so far. I didn't really expect it to work. Perhaps a worthwhile feature? --