[Issue 16192] std.conv.toChars() opSlice wrong for radix other than 10

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16192

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

https://github.com/dlang/phobos/commit/18c9ffc625b874d8b4e149bb4adbc3707ce08032
fix issue 16192 - std.conv.toChars() opSlice wrong for radix other than 10

https://github.com/dlang/phobos/commit/c4b397315c6d4341cf6302a07163696468ae
Merge pull request #4489 from aG0aep6G/16192-2

fix issue 16192 - std.conv.toChars() opSlice wrong for radix other th…

--


[Issue 16241] std.xml mistakenly disallows "==" in comments but allows "--"

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16241

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

https://github.com/dlang/phobos/commit/82afcc0c1933dac726535ec758eacb154b70343a
fix issue 16241 - std.xml mistakenly disallows "==" in comments but allows "--"

https://github.com/dlang/phobos/commit/5225064a828cab2a2eed049d0006edb546350f22
Merge pull request #4570 from aG0aep6G/16241

fix issue 16241 - std.xml mistakenly disallows "==" in comments but a…

--


[Issue 16241] std.xml mistakenly disallows "==" in comments but allows "--"

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16241

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

   What|Removed |Added

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

--


[Issue 4509] XML parser in std.xml throws TagException if the attr value is put in apostrophes.

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=4509

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

   What|Removed |Added

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

--


[Issue 4509] XML parser in std.xml throws TagException if the attr value is put in apostrophes.

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=4509

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

https://github.com/dlang/phobos/commit/1533801fc890ee70178f04059422e9ce0e41d239
std.xml: accept single quotes for attributes

Fixes issue 4509 - XML parser in std.xml throws TagException if the
attr value is put in apostrophes.

https://github.com/dlang/phobos/commit/d231d783e68ed8b3c3950158a6ccc696b9be33b8
Merge pull request #4567 from aG0aep6G/4509

Fix issue 4509 - XML parser in std.xml throws TagException if the attr value is
put in apostrophes.

--


[Issue 16244] compiler ICE on complex `typeof()` for method arg type

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16244

--- Comment #1 from Ketmar Dark  ---
p.s. i.e. compiler segfaults, not the compiled code. sorry.

--


[Issue 16244] New: compiler ICE on complex `typeof()` for method arg type

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16244

  Issue ID: 16244
   Summary: compiler ICE on complex `typeof()` for method arg type
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: ket...@ketmar.no-ip.org

this code segfaults with 2.071:

struct Foo {
  int get_val () const { return 0; }
  auto val() (typeof(cast()get_val) v) {}
}

void main () {
  Foo().val = 45;
}


note that removing `cast()` gives proper error message instead.

--


[Issue 16243] wrong C++ argument passing with empty struct and 6 integers

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243

Martin Nowak  changed:

   What|Removed |Added

Summary|wrong argument passed with  |wrong C++ argument passing
   |empty struct and 6 integers |with empty struct and 6
   ||integers

--- Comment #1 from Martin Nowak  ---
Complete test case, also requires a C++ roundtrip. C++ compiler is.

Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.2.0
Thread model: posix

cat > cpp.cc << CODE
struct S13956
{
};

void check13956(S13956 arg0, int arg1, int arg2, int arg3, int arg4, int arg5,
int arg6);

void func13956(S13956 arg0, int arg1, int arg2, int arg3, int arg4, int arg5,
int arg6)
{
check13956(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
}
CODE

cat > bug.d << CODE
struct S13956
{
}

extern(C++) void func13956(S13956 arg0, int arg1, int arg2, int arg3, int arg4,
int arg5, int arg6)
{
check13956(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
}

extern(C++) void check13956(S13956 arg0, int arg1, int arg2, int arg3, int
arg4, int arg5, int arg6)
{
assert(arg0 == S13956());
assert(arg1 == 1);
assert(arg2 == 2);
assert(arg3 == 3);
assert(arg4 == 4);
assert(arg5 == 5);
assert(arg6 == 6); // fails on OSX 32-bit
}

void main()
{
func13956(S13956(), 1, 2, 3, 4, 5, 6);
}
CODE

c++ -m32 -c cpp.cc
dmd -m32 cpp.o -run bug

--


[Issue 16243] New: wrong argument passed with empty struct and 6 integers

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16243

  Issue ID: 16243
   Summary: wrong argument passed with empty struct and 6 integers
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: c...@dawg.eu

The bug is OSX-32 only, so not that important (P3), but looks easy to fix.

cat > bug.d << CODE
struct S13956
{
}

extern(C++) void func13956(S13956 arg0, int arg1, int arg2, int arg3, int arg4,
int arg5, int arg6);

extern(C++) void check13956(S13956 arg0, int arg1, int arg2, int arg3, int
arg4, int arg5, int arg6)
{
assert(arg0 == S13956());
assert(arg1 == 1);
assert(arg2 == 2);
assert(arg3 == 3);
assert(arg4 == 4);
assert(arg5 == 5);
assert(arg6 == 6); // fails on OSX 32-bit
}

void main()
{
func13956(S13956(), 1, 2, 3, 4, 5, 6);
}
CODE

dmd -m32 -run bug


The arg6 parameter is uninitialized (or maybe a pointer).
See disabled test case here
https://github.com/dlang/dmd/pull/5915/commits/6e6c6ed9db5935fb36e9b06e309cea6be7afa9b1.

--


[Issue 16242] New: Sometimes dependencies are not properly stored/detected

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16242

  Issue ID: 16242
   Summary: Sometimes dependencies are not properly
stored/detected
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: schvei...@yahoo.com

Created attachment 1602
  --> https://issues.dlang.org/attachment.cgi?id=1602=edit
cycle detector program

When looking at cycles (see issue 16211), a case appeared to only cause cycles
on Windows, but in actuality was a cycle on all platforms. The root cause of
the cycle not being detected is that the dependencies stored by dmd and/or
detected by druntime did not include all the true dependencies.

In druntime, I have added a special debug version that prints out all
dependencies as they are encountered (see druntime src/rt/minfo.d,
printModuleDependencies). I wrote a simple cycle detector that accepts the
output from this to determine with brute force whether any cycles are present,
without dealing with determining constructor order (attached). It did not see
any cycles in the output from OSX.

The cause of this is that std.internal.math.biguintcore only had one
dependency, core.cpuid. However, it actually has several dependencies (one that
caused the cycle on Windows). For some reason, either dmd is not putting the
dependency into the module info, or druntime is not reading it.

I'm not sure how to reduce this, but I'll see if I can find some time to figure
this out.

Note sure of the guilty party, so I picked dmd. Could also be druntime.

--


[Issue 15951] Inefficiencies in struct initialization

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15951

--- Comment #5 from Johannes Pfau  ---
Spec problem #4:

= void initializers for fields are not even mentioned in the spec. The only
part mentioning = void initializers is for variables.


We can't really do anything about this in the compiler backends as long as
there's no spec explaining this feature.

--


[Issue 16241] std.xml mistakenly disallows "==" in comments but allows "--"

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16241

ag0ae...@gmail.com changed:

   What|Removed |Added

   Keywords||pull
   Assignee|nob...@puremagic.com|ag0ae...@gmail.com

--- Comment #1 from ag0ae...@gmail.com ---
https://github.com/dlang/phobos/pull/4570

--


[Issue 16241] New: std.xml mistakenly disallows "==" in comments but allows "--"

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16241

  Issue ID: 16241
   Summary: std.xml mistakenly disallows "==" in comments but
allows "--"
   Product: D
   Version: D2
  Hardware: x86_64
OS: Linux
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: ag0ae...@gmail.com


void main()
{
import std.xml;
auto doc1 = new Document(""); /* accepted */
auto doc2 = new Document(""); /* rejected */
}


Should be the other way around. Seems like a simple typo in the code. Going to
make a PR.

--


[Issue 12647] Lazy parameter evaluation should be marked as nothrow

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12647

Per Nordlöw  changed:

   What|Removed |Added

 CC||per.nord...@gmail.com

--- Comment #5 from Per Nordlöw  ---
If this gets fixed the bug comment at

file:///home/per/ware/dlang_org/web/phobos-prerelease/std_algorithm_comparison.html#.either

should be removed.

--


[Issue 16240] New: std.exception.enforce should be nothrow when throwing errors

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=16240

  Issue ID: 16240
   Summary: std.exception.enforce should be nothrow when throwing
errors
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: phobos
  Assignee: nob...@puremagic.com
  Reporter: j...@jackstouffer.com

void test() nothrow
{
import std.exception : enforce;
import core.exception : RangeError;

// this line doesn't compile
// enforce!RangeError(false);
version(assert) if (false) throw new RangeError();
}

void main()
{
test();
}

--


[Issue 15999] Inline assembly incorrect sign extension instead of error

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15999

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

https://github.com/dlang/dmd/commit/cb1911c64ed7bd988e80ea0b3d0b3a431cfd094e
Fix issue 15999 - Inline assembly incorrect sign extension instead of error

https://github.com/dlang/dmd/commit/702c543a83b809826b289bd17f01e4259d453177
Merge pull request #5739 from WalterWaldron/fix13147

Fix issue 15999 - Inline assembly incorrect sign extension instead of…

--


[Issue 15999] Inline assembly incorrect sign extension instead of error

2016-07-06 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=15999

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

   What|Removed |Added

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

--