[Issue 17629] package.di files cannot be used

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17526

Seb  changed:

   What|Removed |Added

 CC||greensunn...@gmail.com

--


[Issue 17526] Add a set method for AA

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17626

greenify  changed:

   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

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3573

Bolpat  changed:

   What|Removed |Added

 CC|qs.il.paperi...@gmail.com   |

--


[Issue 17626] Same name variable assignment should raise a compile-time warning

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17626

David Baum  changed:

   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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=2525

Martin Nowak  changed:

   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

2017-07-09 Thread via Digitalmars-d-bugs
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

2017-07-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15432

Rainer Schuetze  changed:

   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

2017-07-09 Thread via Digitalmars-d-bugs
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?

--