[Issue 18796] std.algorithm.substitute asserts on empty range

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18796

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

https://github.com/dlang/phobos/commit/d95bc60dadc454cc6143971b14a2fbf4e149cb7b
Fix Issue 18796 - Made substitute with multiple range elements correctly
recognize empty base ranges

--


[Issue 18796] std.algorithm.substitute asserts on empty range

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18796

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

   What|Removed |Added

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

--


[Issue 19402] New: bitshift with long shift amount results in int instead of long

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19402

  Issue ID: 19402
   Summary: bitshift with long shift amount results in int instead
of long
   Product: D
   Version: D2
  Hardware: x86
OS: Windows
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: dkor...@live.nl

https://dlang.org/spec/expression.html#shift_expressions
"If the operands are of integral types, they undergo the Usual Arithmetic
Conversions, and then are brought to a common type using the Usual Arithmetic
Conversions."

https://dlang.org/spec/type.html#usual-arithmetic-conversions
"If both are signed or both are unsigned, the smaller type is converted to the
larger."

Yet:
```
long x = 1L;
auto a = 1 << x;
```
Compiles to: (-vcg-ast)
```
long x = 1L;
int a = 1 << cast(int)x;
```

I expected this:
```
long x = 1L;
long a = 1L << x;
```

Which caused a nasty bug in my program.

--


[Issue 16976] Implicit conversion from ulong to int in foreach_reverse

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16976

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

   What|Removed |Added

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

--


[Issue 16976] Implicit conversion from ulong to int in foreach_reverse

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16976

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

https://github.com/dlang/dmd/commit/1003fe69843de58238f2b7823ddd1f22eeb7bc0b
Fix issue 16976 - Do not convert blindly the size of an iterable

https://github.com/dlang/dmd/commit/0c1fdaf085e59b691b9591490ac9a5504524c48d
Merge pull request #8941 from dlang/thewilsonator-patch-3

 Fix issue 16976 - Do not convert blindly the size of an iterable
merged-on-behalf-of: Nicholas Wilson 

--


[Issue 12883] implicit conversion of struct to mutable via alias this

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12883

RazvanN  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||razvan.nitu1...@gmail.com
 Resolution|INVALID |---

--- Comment #3 from RazvanN  ---
This is a valid issue. Alias this should be employed if a copy constructor is
not defined.

--


[Issue 12885] const union wrongly converts implicitly to mutable

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12885
Issue 12885 depends on issue 12883, which changed state.

Issue 12883 Summary: implicit conversion of struct to mutable via alias this
https://issues.dlang.org/show_bug.cgi?id=12883

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |---

--


[Issue 18327] std.random.XorshiftEngine is parameterized by UIntType but only works with uint

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18327

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

https://github.com/dlang/phobos/commit/c99a1855f612ac476aa9318a17efc31a97b325b7
Fix Issue 18327 - std.random.XorshiftEngine is parameterized by UIntType but
only works with uint

Also:
* Add ability to specify shift directions.
* Allow arbitrary XorshiftEngine sizes instead of predefined list only.
* Except when array is small, use index to make speed of `popFront`
  independent of array size.

https://github.com/dlang/phobos/commit/ac2c7c627deaa137dd72bd043370a9f85d2afb62
Merge pull request #6424 from n8sh/xorshift-18327

Fix Issue 18327 - std.random.XorshiftEngine is parameterized by UIntType but
only works with uint
merged-on-behalf-of: Nicholas Wilson 

--


[Issue 19403] New: std.string.stripLeft on char array could be @nogc nothrow

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19403

  Issue ID: 19403
   Summary: std.string.stripLeft on char array could be @nogc
nothrow
   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

std.string.stripLeft on char array could be @nogc nothrow by using
std.utf.decode!(UseReplacementDchar.yes) instead of string front/popFront.

--


[Issue 19403] Make std.string.stripLeft on char array @nogc nothrow

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19403

Nathan S.  changed:

   What|Removed |Added

Summary|std.string.stripLeft on |Make std.string.stripLeft
   |char array could be @nogc   |on char array @nogc nothrow
   |nothrow |

--


[Issue 19403] Make std.string.stripLeft on char array @nogc nothrow

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19403

--- Comment #1 from Nathan S.  ---
Pull request: https://github.com/dlang/phobos/pull/6769

--


[Issue 19404] New: Optimize std.string.stripRight

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19404

  Issue ID: 19404
   Summary: Optimize std.string.stripRight
   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

`stripLeft` can entirely avoid decoding for wchar arrays and can benefit from
an ASCII fast path for char arrays.

--


[Issue 19404] Optimize std.string.stripRight

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19404

--- Comment #1 from Nathan S.  ---
Pull request: https://github.com/dlang/phobos/pull/6770

--


[Issue 19404] Optimize std.string.stripRight

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19404

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

https://github.com/dlang/phobos/commit/c380684bdb8c3a29cad78f8499a600c6a74a1e5b
Fix Issue 19404 - Optimize std.string.stripRight

https://github.com/dlang/phobos/commit/329f891caf7a409f7f301dce1425c946de3a07ae
Merge pull request #6770 from n8sh/issue-19404

Fix Issue 19404 - Optimize std.string.stripRight

--


[Issue 18778] std.format: Positional arguments do not work as expected with nesting

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=18778

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

https://github.com/dlang/phobos/commit/7ec06c07dbc3060a9f10c2b04165fc4db0ae9a21
Fix issue 18778

https://github.com/dlang/phobos/commit/7e351e17fab4186913802256479f2070b57c6285
Merge pull request #6464 from Hackerpilot/issue-18778

Fix issue 18778

--


[Issue 19405] New: Improve backwards UTF-8 decoding in stripRight

2018-11-15 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=19405

  Issue ID: 19405
   Summary: Improve backwards UTF-8 decoding in stripRight
   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 backwards UTF-8 decoding in stripRight can be substantially sped up. With
the improvements it also becomes faster than foreach_reverse(dchar c; s) for
strings, so we can use it for strings and make them `@nogc` nothrow.

--