[Issue 2504] Reserve for associative arrays

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=2504

Jon Degenhardt  changed:

   What|Removed |Added

 CC||jrdemail2000-dl...@yahoo.co
   ||m

--- Comment #5 from Jon Degenhardt  ---
I have noticed meaningful performance degradation after associative arrays
reach about 10 million entries. I gave some GC related numbers in this forum
post: https://forum.dlang.org/post/flxmwyeuhjcuekfed...@forum.dlang.org

In addition to GC stats, it appears likely that resizing the underlying array
will be costly at these numbers. Having an ability to reserve capacity for a
minimum number of keys may address this.

--


[Issue 11229] std.string.toLower is slow

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11229

Jon Degenhardt  changed:

   What|Removed |Added

 CC||jrdemail2000-dl...@yahoo.co
   ||m

--- Comment #1 from Jon Degenhardt  ---
Some comments I made in this forum post:
https://forum.dlang.org/post/zyoojkmzpqizebusi...@forum.dlang.org

Routines like to toLower and asLowerCase call functions that work for all
unicode characters. I was able to create much faster versions by checking if
the character was ascii, then calling either the ascii version or the more
general version. Same is true for a few routines like isNumber. Some have the
ascii check optimization built in, but not all.

If this optimization is added, it might also be useful to add a few common
combinations (or a generic solution, if that's feasible). For example, to check
if a character is alpha-numeric, one currently ORs two tests from the standard
library, isAlpha and isNumber. Putting in an ascii optimization check requires
putting it before doing the OR, rather than inside the tests being ORed.

--


[Issue 15038] Associative Array .get property const vs immutable

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15038

Jon Degenhardt  changed:

   What|Removed |Added

 CC||jrdemail2000-dl...@yahoo.co
   ||m

--- Comment #1 from Jon Degenhardt  ---
Some discussion in this thread:
https://forum.dlang.org/post/mailman.206.1457557607.26339.digitalmar...@puremagic.com

The summary is that there can be performance implications if it is necessary to
copy a char[] to a string just to test for presence in the associative array.
This can happen when streaming text from an input source, as it's natural to
read as char[] (eg. File.byLine).

--


[Issue 314] [module] Static, renamed, and selective imports are always public

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=314

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

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 3108] [meta] Protection

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3108
Issue 3108 depends on issue 314, which changed state.

Issue 314 Summary: [module] Static, renamed, and selective imports are always 
public
https://issues.dlang.org/show_bug.cgi?id=314

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 2830] private attribute doesn't work for structs/unions/classes

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=2830
Issue 2830 depends on issue 314, which changed state.

Issue 314 Summary: [module] Static, renamed, and selective imports are always 
public
https://issues.dlang.org/show_bug.cgi?id=314

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 314] [module] Static, renamed, and selective imports are always public

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=314

--- Comment #52 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/7cf24a4b5f07f920c0d772ac84a3c5547db2c538
fix Issue 314 - static, renamed, and selective imports are always public

- enable protection for imports (unless -transition=import or
  -transition=checkimports is used)
- relies on DIP22 in order to resolve public/private symbol conflicts
  hence cannot be enabled when DIP22 is turned off by the transition
  switches

https://github.com/D-Programming-Language/dmd/commit/8be10ece1b6f81a81f8c794b258ca2c49a9e7652
Merge pull request #5485 from MartinNowak/fix314

fix Issue 314 - static, renamed, and selective imports are always public

--


[Issue 15224] making 'clean' results in garbage commands

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15224

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

   What|Removed |Added

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

--


[Issue 15224] making 'clean' results in garbage commands

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15224

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/4e8c3492083d9f5ee19c22012820e5535f99147a
fix Issue 15224 - making 'clean' results in garbage commands

https://github.com/D-Programming-Language/druntime/commit/236c43b2ea4f9d101ca7d15477be104ac0dbf2cd
Merge pull request #1483 from MartinNowak/fix15224

fix Issue 15224 - making 'clean' results in garbage commands

--


[Issue 15513] Memory Corruption with thread local objects

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15513

--- Comment #6 from Puneet Goel  ---
https://github.com/D-Programming-Language/druntime/pull/1506

Wroks for me for linux.

--


[Issue 15778] [REG2.064] polysemous string type doesn't work in array operation

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15778

Kenji Hara  changed:

   What|Removed |Added

   Keywords||pull, rejects-valid

--- Comment #4 from Kenji Hara  ---
https://github.com/D-Programming-Language/dmd/pull/5511

--


[Issue 15722] std.algorithm sum should favour speed

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15722

--- Comment #5 from adamsib...@hotmail.com ---
>John Colvin 2016-03-09 15:08:05 UTC
>https://github.com/D-Programming-Language/phobos/pull/4069


Thanks John! Out of interest what is the impact on accuracy between the two
methods?

--


[Issue 15722] std.algorithm sum should favour speed

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15722

John Colvin  changed:

   What|Removed |Added

 CC||john.loughran.colvin@gmail.
   ||com

--- Comment #4 from John Colvin  ---
https://github.com/D-Programming-Language/phobos/pull/4069

--


[Issue 15778] [REG2.064] polysemous string type doesn't work in array operation

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15778

Kenji Hara  changed:

   What|Removed |Added

Summary|polysemous string type  |[REG2.064] polysemous
   |doesn't work in array   |string type doesn't work in
   |operation   |array operation

--- Comment #3 from Kenji Hara  ---
Introduced in 2.064.

--


[Issue 15782] New: [Reg 2.071-devel] something about the const/non-const types in TypeTuples changed

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15782

  Issue ID: 15782
   Summary: [Reg 2.071-devel] something about the const/non-const
types in TypeTuples changed
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: c...@dawg.eu

Since a week or so vibe.d's test suite is no longer compilable w/ the
dmd-master.
A meta-programming test fails with
static assert  ("(A, const(B), const(A))" == "(A, B)")
indicating that some compiler semantics changed.
https://github.com/rejectedsoftware/vibe.d/blob/0b4f51ef7a7bc880a7ce37356fcf0c0a5f4b19b5/source/vibe/internal/meta/codegen.d#L95

--


[Issue 15781] Template type deduction failure with same-type variables with different constness

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15781

Daniel Kozak  changed:

   What|Removed |Added

 CC||kozz...@gmail.com

--


[Issue 15781] Template type deduction failure with same-type variables with different constness

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15781

Johan Engelen  changed:

   What|Removed |Added

Summary|Type deduction const|Template type deduction
   ||failure with same-type
   ||variables with different
   ||constness

--


[Issue 15781] New: Type deduction const

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15781

  Issue ID: 15781
   Summary: Type deduction const
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: jbc.enge...@gmail.com

```
struct TypeA {
int value;
}

auto foo(T)(T start, T end) {
   import std.stdio;
   writeln(typeid(T));
}


void main() {
alias Tiep = TypeA;
const Tiep a;
Tiep b;

Tiep c = a;  // This is fine
foo(c,b);

foo(a,b);// This is not fine with DMD 2.069.2
}
```

The code compiles fine with DMD 2.068.2.
The code fails to compile with DMD 2.068.2 and DMD 2.070.2:
deduce.d(19): Error: template deduce.foo cannot deduce function from argument
types !()(const(TypeA), TypeA), candidates are:
deduce.d(5):deduce.foo(T)(T start, T end)

I believe this is a regression.
DMD 2.068.2 deduces T = TypeA (non-const).

For `alias Tiep = int;` it compiles with DMD 2.070.2.
Also when modifying the code to read `auto foo(T)(const T start, const T end)`.

This issue was reported after a brief forum discussion:
http://forum.dlang.org/thread/pviqlkktqzeusjual...@forum.dlang.org.

--


[Issue 15780] New: CTFE foreach fails with tuple

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15780

  Issue ID: 15780
   Summary: CTFE foreach fails with tuple
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: jbc.enge...@gmail.com

This code:

```
import std.typecons;

void foo(alias fields)() {
foreach(i, field; fields) {
enum string a = fields[i];  // OK
enum string b = field;  // not OK with 2.069.2 ???
}
}

void main() {
foo!(tuple("H", "I", "J"))();
}
```

Builds with DMD 2.068.2.
Fails with DMD 2.069.2, and fails with DMD 2.070.2: 
foreachTuple.d(6): Error: variable field cannot be read at compile time
foreachTuple.d(6): Error: variable field cannot be read at compile time
foreachTuple.d(6): Error: variable field cannot be read at compile time
foreachTuple.d(11): Error: template instance foreachTuple.foo!(Tuple("H", "I",
"J")) error instantiating

I believe this is a regression.

(I am not sure if this is duplicate or related to
https://issues.dlang.org/show_bug.cgi?id=15740 )

--


[Issue 15738] Problem with std.experimental.ndslice empty()

2016-03-09 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15738

Илья Ярошенко  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--