[Issue 18040] rdmd --exclude= --include= should allow passing in modules (not just packages)

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18040

Jonathan Marler  changed:

   What|Removed |Added

 CC||johnnymar...@gmail.com

--- Comment #1 from Jonathan Marler  ---
I think this will be fixed with: https://github.com/dlang/tools/pull/271

--


[Issue 18042] rdmd ignores --exclude when -deps is provided

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18042

Jonathan Marler  changed:

   What|Removed |Added

 CC||johnnymar...@gmail.com

--- Comment #1 from Jonathan Marler  ---
Just wanted to make a note that we should retest this bug once this PR is
integrated.

https://github.com/dlang/tools/pull/271

--


[Issue 18079] rdmd does not discover all dependencies

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18079

--- Comment #1 from Jonathan Marler  ---
This bug should be fixed with this PR.

https://github.com/dlang/tools/pull/271

--


[Issue 18218] New: __traits(isDeprecated, creal) should return true

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18218

  Issue ID: 18218
   Summary: __traits(isDeprecated, creal) should return true
   Product: D
   Version: D2
  Hardware: x86_64
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: greensunn...@gmail.com

--


[Issue 15206] ICE on optimized build, tym = x1d Internal error: backend\cgxmm.c 547

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15206

--- Comment #4 from briancsch...@gmail.com ---
It seems that the problem is in the allocreg function called from loaddata.

I added some debugging printfs before and after calls to `allocreg` and I see
the following:

before: tym = 0x1d, forregs = 0x02, reg =
BP|SI|DI|R10|R12|R15|XMM0|XMM1|XMM3|XMM4|XMM5|XMM6|XMM7|PSW|NOREG|RMload

after: tym = 0x1d, forregs = 0x02, reg = AX|SP

It seems that the `forregs` variable (The `pretregs` parameter to allocreg) is
not getting modified properly. It still has the value 0x2, which matches
the XMMREGS mask even though `allocreg` has correctly removed all the XMM
registers from the list of valid registers in the `reg` variable. Because this
`forregs` variable is not masked out by XMMREGS, there is a call to `xmmload`
even though `xmmload` doesn't support `tym` values of 0x1d.

--


[Issue 13742] undefined reference to __coverage

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13742

Martin Nowak  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #7 from Martin Nowak  ---
https://github.com/dlang/dmd/pull/7654

--


[Issue 18212] Usage of cfloat,cdouble,cfloat,ifloat,idouble,ireal shouldn't trigger an error in deprecated code

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18212

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/028e362d9564a7a4bdb35ac6f8a3e5843587141d
Fix Issue 18212 - Usage of cfloat,cdouble,cfloat,ifloat,idouble,ireal shouldn't
trigger an error in deprecated code

https://github.com/dlang/dmd/commit/254c9634f8498c3d7eb38f37de23b14f1c509e36
Merge pull request #7647 from wilzbach/fix-18212

Fix Issue 18212 - Usage of cfloat,cdouble,cfloat,ifloat,idouble,ireal shouldn't
trigger an error in deprecated code
merged-on-behalf-of: Iain Buclaw 

--


[Issue 18212] Usage of cfloat,cdouble,cfloat,ifloat,idouble,ireal shouldn't trigger an error in deprecated code

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18212

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 18217] Don't repeatedly call unpredictableSeed to initialize rndGen

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18217

--- Comment #1 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/befc9896d0f699163e6c252771ef3f4234b48f3b
Fix Issue 18217: Don't repeatedly call unpredictableSeed to initialize rndGen

Explanation: https://github.com/dlang/phobos/pull/5788#discussion_r146110307

https://github.com/dlang/phobos/commit/6fe220f6f2cf6d475c881e9105c6821961281789
Merge pull request #6021 from n8sh/rndGen-seeding

Fix Issue 18217: Don't repeatedly call unpredictableSeed to initialize rndGen
merged-on-behalf-of: Sebastian Wilzbach 

--


[Issue 18217] Don't repeatedly call unpredictableSeed to initialize rndGen

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18217

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 15206] ICE on optimized build, tym = x1d Internal error: backend\cgxmm.c 547

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15206

hst...@quickfur.ath.cx changed:

   What|Removed |Added

 CC||hst...@quickfur.ath.cx
   Severity|normal  |critical

--- Comment #3 from hst...@quickfur.ath.cx ---
All ICEs should be critical.

--


[Issue 10930] std.array.replace cannot simple replace an element in array

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10930

Seb  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #8 from Seb  ---
PR https://github.com/dlang/phobos/pull/6022

--


[Issue 18215] std.array.replace throws a range violation if the from range is longer than the array

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18215

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/7c0dab8d121a34ae73f467cf7aa9be9d306b4fea
Fix Issue 18215 - std.array.replace throws a range violation if the from range
is longer than the array

https://github.com/dlang/phobos/commit/aeb7b9b69e06f280c269721c427f3242e5507562
Merge pull request #6017 from wilzbach/fix-18215

--


[Issue 18217] New: Don't repeatedly call unpredictableSeed to initialize rndGen

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18217

  Issue ID: 18217
   Summary: Don't repeatedly call unpredictableSeed to initialize
rndGen
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: n8sh.second...@hotmail.com

The offending code in std.random:
```
static if (isSeedable!(Random, typeof(map!((a) =>
unpredictableSeed)(repeat(0)
result.seed(map!((a) => unpredictableSeed)(repeat(0)));
```

Having this code in Phobos leads others to mistakenly copy it since
Phobos is generally a model of good D programming practices.
Calling unpredictableSeed just once would be faster and would give
a better result. See comment for an explanation:

https://github.com/dlang/phobos/pull/5788#discussion_r146110307

--


[Issue 18215] std.array.replace throws a range violation if the from range is longer than the array

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18215

--- Comment #1 from github-bugzi...@puremagic.com ---
Commits pushed to stable at https://github.com/dlang/phobos

https://github.com/dlang/phobos/commit/7c0dab8d121a34ae73f467cf7aa9be9d306b4fea
Fix Issue 18215 - std.array.replace throws a range violation if the from range
is longer than the array

https://github.com/dlang/phobos/commit/aeb7b9b69e06f280c269721c427f3242e5507562
Merge pull request #6017 from wilzbach/fix-18215

Fix Issue 18215 - std.array.replace throws a range violation if the from range
is longer than the array
merged-on-behalf-of: H. S. Teoh 

--


[Issue 18215] std.array.replace throws a range violation if the from range is longer than the array

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18215

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 10930] std.array.replace cannot simple replace an element in array

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10930

Seb  changed:

   What|Removed |Added

 CC||greensunn...@gmail.com

--- Comment #7 from Seb  ---
This applied on top of https://github.com/dlang/phobos/pull/6017 will make it
work:

diff --git a/std/array.d b/std/array.d
index 3a44612cb..207b1280d 100644
--- a/std/array.d
+++ b/std/array.d
@@ -2120,21 +2120,21 @@ if (isInputRange!RoR &&
 $(REF map, std,algorithm,iteration) which can act as a lazy replace
  +/
 E[] replace(E, R1, R2)(E[] subject, R1 from, R2 to)
-if (isDynamicArray!(E[]) && isForwardRange!R1 && isForwardRange!R2
-&& (hasLength!R2 || isSomeString!R2))
+if (isDynamicArray!(E[]))
 {
 import std.algorithm.searching : find;
 import std.range : dropOne;

-if (from.empty) return subject;
+static if (isInputRange!R1)
+if (from.empty) return subject;

-auto balance = find(subject, from.save);
+auto balance = find(subject, from);
 if (balance.empty)
 return subject;

 auto app = appender!(E[])();
 app.put(subject[0 .. subject.length - balance.length]);
-app.put(to.save);
+app.put(to);
 // replacing an element in an array is different to a range replacement
 static if (is(Unqual!E : Unqual!R1))
 replaceInto(app, balance.dropOne, from, to);
@@ -2158,6 +2158,11 @@ if (isDynamicArray!(E[]) && isForwardRange!R1 &&
isForwardRange!R2
 assert([3, 3, 4, 3].replace([3, 3], [1, 1, 1]) == [1, 1, 1, 4, 3]);
 }

+@safe unittest
+{
+assert([0, 1, 2].replace(1, 4) == [0, 4, 2]);
+}
+
 // https://issues.dlang.org/show_bug.cgi?id=18215
 @safe unittest
 {
@@ -2181,28 +2186,29 @@ if (isDynamicArray!(E[]) && isForwardRange!R1 &&
isForwardRange!R2

 /// ditto
 void replaceInto(E, Sink, R1, R2)(Sink sink, E[] subject, R1 from, R2 to)
-if (isOutputRange!(Sink, E) && isDynamicArray!(E[])
-&& isForwardRange!R1 && isForwardRange!R2
-&& (hasLength!R2 || isSomeString!R2))
+if (isOutputRange!(Sink, E) && isDynamicArray!(E[]))
 {
 import std.algorithm.searching : find;
 import std.range : dropOne;

-if (from.empty)
+static if (isInputRange!R1)
 {
-sink.put(subject);
-return;
+if (from.empty)
+{
+sink.put(subject);
+return;
+}
 }
 for (;;)
 {
-auto balance = find(subject, from.save);
+auto balance = find(subject, from);
 if (balance.empty)
 {
 sink.put(subject);
 break;
 }
 sink.put(subject[0 .. subject.length - balance.length]);
-sink.put(to.save);
+sink.put(to);
 // replacing an element in an array is different to a range
replacement
 static if (is(Unqual!E : Unqual!R1))
 subject = balance.dropOne;


Of course constraints need be set, but to be fair currently there aren't any
for this

--


[Issue 18209] std.uni.byGrapheme is not usable in CTFE

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18209

--- Comment #3 from Jack Stouffer  ---
(In reply to Jack Stouffer from comment #2)
> Apparently this isn't possible.
> 
> There are two ways of fixing this
> 
> 1. remove the small string optimization from Grapheme
> 2. have byGrapheme return a specialized type of Grapheme that doesn't have
> SSO

Or

3. Create a special function byGraphemeCTFE which is a range of CTFEGraphemes.
That way there's no performance regression

--


[Issue 18209] std.uni.byGrapheme is not usable in CTFE

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18209

--- Comment #2 from Jack Stouffer  ---
(In reply to Jack Stouffer from comment #1)
> Pretty sure there's a way to change a struct's layout if it's being used in
> compile time. All that needs to be done is just bring the fields out of the
> union when used in CTFE.

Apparently this isn't possible.

There are two ways of fixing this

1. remove the small string optimization from Grapheme
2. have byGrapheme return a specialized type of Grapheme that doesn't have SSO

--


[Issue 7054] format() aligns using code units instead of graphemes

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7054

Basile B.  changed:

   What|Removed |Added

   Keywords||pull

--- Comment #14 from Basile B.  ---
pull: https://github.com/dlang/phobos/pull/6008

--


[Issue 7054] format() aligns using code units instead of graphemes

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7054

Basile B.  changed:

   What|Removed |Added

 CC||b2.t...@gmx.com
Summary|std.format.formattedWrite   |format() aligns using code
   |uses code units count as|units instead of graphemes
   |width instead of characters |
   |count   |

--


[Issue 18205] Format string with width specification doesn't work with multibyte characters

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18205

Basile B.  changed:

   What|Removed |Added

 Depends on|18209   |


Referenced Issues:

https://issues.dlang.org/show_bug.cgi?id=18209
[Issue 18209] std.uni.byGrapheme is not usable in CTFE
--


[Issue 18209] std.uni.byGrapheme is not usable in CTFE

2018-01-09 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18209

Basile B.  changed:

   What|Removed |Added

 Blocks|18205   |


Referenced Issues:

https://issues.dlang.org/show_bug.cgi?id=18205
[Issue 18205] Format string with width specification doesn't work with
multibyte characters
--