[Issue 15710] New: Replacement for std.utf.validate which does not throw

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15710

  Issue ID: 15710
   Summary: Replacement for std.utf.validate which does not throw
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: issues.dl...@jmdavisprog.com

For whatever reason, std.utf.validate throws when a string is invalid Unicode
rather than returning true or false (probably because it was easier at the time
it was implemented, since the only wwy to validate Unicode other than
reimplementing decode would have been to catch the exception it threw on
failure). It also only works on strings and not arbitrary ranges of characters.
So, we need a new function (e.g. isValidUnicode) which validates a range of
characters and returns whether it's valid Unicode rather than throwing. Then we
can deprecate validate and get that much closer to getting rid of UTFException
and all of the extraneous Unicode validation that we have right now.

--


[Issue 15709] New: [Downloads] cannot install dmd using curl script

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15709

  Issue ID: 15709
   Summary: [Downloads] cannot install dmd using curl script
   Product: D
   Version: D2
  Hardware: x86_64
   URL: http://dlang.org/
OS: Linux
Status: NEW
  Severity: blocker
  Priority: P3
 Component: installer
  Assignee: nob...@puremagic.com
  Reporter: xemail...@yahoo.co.uk

When I run the command given in https://dlang.org/download.html#dmd:

- curl -fsS https://dlang.org/install.sh | bash -s dmd

I receive this output:

Downloading and unpacking
http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.linux.tar.xz
100%
Invalid signature
http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.linux.tar.xz.sig

--


[Issue 1180] the GC failes to handle large allocation requests propperly

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=1180

Sobirari Muhomori  changed:

   What|Removed |Added

   Severity|normal  |regression

--


[Issue 1180] the GC failes to handle large allocation requests propperly

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=1180

Sobirari Muhomori  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
Version|D1 (retired)|D2
  Component|phobos  |druntime
   Hardware|x86 |x86_64
   Assignee|bugzi...@digitalmars.com|nob...@puremagic.com
 Resolution|FIXED   |---
   Severity|blocker |normal
 OS|All |Linux

--- Comment #2 from Sobirari Muhomori  ---
int main()
{
size_t len = size_t.max-100;
ubyte[] arr = new ubyte[len];
return 0;
}

Return code: 11 (Segmentation fault)

Tried only on dpaste.

--


[Issue 7349] assert(0) in class destructor - bad (or incorrect) error

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7349

Sobirari Muhomori  changed:

   What|Removed |Added

 CC||matt.elk...@gmail.com

--- Comment #5 from Sobirari Muhomori  ---
*** Issue 15705 has been marked as a duplicate of this issue. ***

--


[Issue 15705] Invalid memory operation during array growth (@safe code)

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15705

Sobirari Muhomori  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Sobirari Muhomori  ---


*** This issue has been marked as a duplicate of issue 7349 ***

--


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

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

Issue 313 Summary: [module] Fully qualified names bypass private imports
https://issues.dlang.org/show_bug.cgi?id=313

   What|Removed |Added

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

--


[Issue 313] [module] Fully qualified names bypass private imports

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=313

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

   What|Removed |Added

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

--


[Issue 3108] [meta] Protection

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

Issue 313 Summary: [module] Fully qualified names bypass private imports
https://issues.dlang.org/show_bug.cgi?id=313

   What|Removed |Added

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

--


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

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

Issue 313 Summary: [module] Fully qualified names bypass private imports
https://issues.dlang.org/show_bug.cgi?id=313

   What|Removed |Added

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

--


[Issue 313] [module] Fully qualified names bypass private imports

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=313

--- Comment #20 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/ea25aad26d11951ccbcd2a57f8c3add968f32434
fix Issue 313 - Fully qualified names bypass private imports

- b/c we're using a global package tree, imported modules were
  accessible in other scopes using fully qualified names
- maintain a whitelist of imported modules in the current scope

https://github.com/D-Programming-Language/dmd/commit/eb8c2c7a48404495d3a62ee5bd58e28a654e99d5
Merge pull request #5426 from MartinNowak/fix313

fix Issue 313 - Fully qualified names bypass private imports

--


[Issue 15708] New: std.range.choose assumes hasElaborateCopyConstructor means "has __postblit"

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15708

  Issue ID: 15708
   Summary: std.range.choose assumes hasElaborateCopyConstructor
means "has __postblit"
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: acehr...@yahoo.com

The following program fails compilation:

import std.stdio : stdin;
import std.range: choose;

void main()
{
ubyte[1][] secondRange;
choose(true, stdin.byChunk(1), secondRange);
}

/usr/include/dmd/phobos/std/range/package.d(1296): Error: no property
'__postblit' for type 'ByChunk', did you mean '__xpostblit'?

Forum thread:

  http://forum.dlang.org/thread/ylcpaldlbbsmbceeo...@forum.dlang.org

The reason is, std.range.choose has the following post-blit:

static if (hasElaborateCopyConstructor!R1
|| hasElaborateCopyConstructor!R2)
this(this)
{
if (condition)
{
static if (hasElaborateCopyConstructor!R1) r1.__postblit();
}
else
{
static if (hasElaborateCopyConstructor!R2) r2.__postblit();
}
}

However, hasElaborateCopyConstructor may be true even if there is no
__postblit:

template hasElaborateCopyConstructor(S)
{
static if(isStaticArray!S && S.length)
{
enum bool hasElaborateCopyConstructor =
hasElaborateCopyConstructor!(typeof(S.init[0]));
}
else static if(is(S == struct))
{
enum hasElaborateCopyConstructor = hasMember!(S, "__postblit")
|| anySatisfy!(.hasElaborateCopyConstructor, FieldTypeTuple!S);
}
else
{
enum bool hasElaborateCopyConstructor = false;
}
}

Ali

--


[Issue 15707] New: Extend aggregate TypeInfo with information about `alias this`

2016-02-20 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15707

  Issue ID: 15707
   Summary: Extend aggregate TypeInfo with information about
`alias this`
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: druntime
  Assignee: nob...@puremagic.com
  Reporter: pub...@dicebot.lv

Proposal:

enhance TypeInfo so that for a struct like this:

struct S
{
byte[8] x;
int y;
alias y this;
}

.. the following code will be valid:

auto ti = typeid(S.init);
assert (ti.aliasthis.offset == 8);
assert (ti.aliasthis.next == typeid(int.init));

Use case:

RTTI based formatting/logging, most importantly in cases where `alias this`
struct is used as a replacement for typedef.

--