[Issue 9785] dmd -inline should inline lambda delegates

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9785

Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com

--- Comment #3 from Walter Bright bugzi...@digitalmars.com ---
The reason the call to loop() gets inlined and the call to dg(i) does not is
because dg is a function pointer. It is not until the optimizer is run that
dg's value is discovered to be constant, and thus can be inlined.

Unfortunately, fixing this would require moving data flow analysis into the
front end, or inlining into the optimizer, neither of which is simple.

--


[Issue 10378] Local imports hide local symbols

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10378

Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||pull

--- Comment #15 from Kenji Hara k.hara...@gmail.com ---
https://github.com/D-Programming-Language/dmd/pull/4915

--


[Issue 14758] TypeInfo causes excessive binary bloat

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14758

Johannes Pfau johannesp...@gmail.com changed:

   What|Removed |Added

 CC||johannesp...@gmail.com

--- Comment #11 from Johannes Pfau johannesp...@gmail.com ---
 There are very few places where dynamic type info is actually necessary, it's 
  just that they were used by the old C style compiler runtime interface.

Yes, we should probably revisit these cases at some point. I wanted to cleanup
my noRTTI (fno-rtti option for gdc) branch for DMD but I thought we won't merge
big non-DDMD changes for 2.069 so I postponed that.

I think the most important thing really requiring TypeInfo might be class down
casts. I don't see how you can do that without some kind of RTTI. But we could
just use some minimal RTTI for that (As long as we can put a unique pointer for
every class in the vtable any kind of RTTI should work).

There's also some postblit related stuff where I think the compiler could
statically generate the necessary code. It was probably easier to implement it
in druntime using RTTI.

--


[Issue 14946] druntime coverage tests fail intermittently

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14946

--- Comment #1 from Steven Schveighoffer schvei...@yahoo.com ---
https://github.com/D-Programming-Language/druntime/pull/1353

--


[Issue 14758] TypeInfo causes excessive binary bloat

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14758

--- Comment #13 from Mike slavo5...@yahoo.com ---
(In reply to Martin Nowak from comment #10)

 I don't think you can properly use D on a small SoC with TypeInfo or
 ModuleInfo.

Yes, it is seldom needed, but the current toolchain implementation is too
tightly coupled to it, so it's not so easily removed.  See
http://forum.dlang.org/post/nfqgmfvixhgjsvtvm...@forum.dlang.org for a relevant
discussion.

 Please try the -betterC switch, it's supposed to avoid all runtime
 dependencies.

If you look at the example posted in the initial comment of this issue, you
will see that the -betterC switch was used, yet the dead code remains.

--


[Issue 3806] TypeInfo_Const has member base in object_.d and member next in object.di

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3806

Steven Schveighoffer schvei...@yahoo.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||schvei...@yahoo.com
 Resolution|--- |FIXED

--- Comment #3 from Steven Schveighoffer schvei...@yahoo.com ---
(In reply to Mike from comment #2)
 Since object.di has been removed
 (https://github.com/D-Programming-Language/druntime/pull/1260), is this
 issue still relevant?

No, closing.

--


[Issue 14758] TypeInfo causes excessive binary bloat

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14758

--- Comment #12 from Sobirari Muhomori dfj1es...@sneakemail.com ---
Downcasts can be done the COM way:

void* TypeId(T)=TypeId;

final T toType(T)()
{
  cast(T)toType(TypeId!T); //reinterpret_cast
}

override void* toType(void* typeId)
{
  if(typeId==TypeId!Me)return this;
}

--


[Issue 14943] dmd should inline more aggressively

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14943

Ivan Kazmenko ga...@mail.ru changed:

   What|Removed |Added

 CC||ga...@mail.ru

--


[Issue 3806] TypeInfo_Const has member base in object_.d and member next in object.di

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=3806

Mike slavo5...@yahoo.com changed:

   What|Removed |Added

 CC||slavo5...@yahoo.com

--- Comment #2 from Mike slavo5...@yahoo.com ---
Since object.di has been removed
(https://github.com/D-Programming-Language/druntime/pull/1260), is this issue
still relevant?

--


[Issue 14946] New: druntime coverage tests fail intermittently

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14946

  Issue ID: 14946
   Summary: druntime coverage tests fail intermittently
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: major
  Priority: P1
 Component: druntime
  Assignee: nob...@puremagic.com
  Reporter: schvei...@yahoo.com

Because we run druntime tests concurrently (both debug and release), it's
possible to be running the coverage tests concurrently in both debug and
release. However, the coverage tests output the same list file, so there is a
potential race which results in failures during test.

This causes both the master and pull requests to fail randomly.

--


[Issue 14944] cannot initialize static array by static this()

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14944

Jonathan M Davis issues.dl...@jmdavisprog.com changed:

   What|Removed |Added

 CC||issues.dl...@jmdavisprog.co
   ||m

--- Comment #2 from Jonathan M Davis issues.dl...@jmdavisprog.com ---
The same thing happens if it's a module-level static constructor. So, the class
doesn't matter. And doing the same assignment to the array with a ref in
foreach works in a normal function. It's specifically when that assignment is
done in a static constructor that this happens.

My guess is that it stems from the fact that if a variable is initialized is a
static constructor, then it's not supposed to be initialized before that
(otherwise, you couldn't initialize const or immutable variables that way), but
I don't know.

--


[Issue 7648] std.stdio expects file names to be encoded in CP_ACP on Windows instead of UTF-8

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=7648

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

https://github.com/D-Programming-Language/phobos/commit/3a025da7c69f66b28c0eed53aa9ea1ccced01623
Cleanup for Issue 7648. Add Non-ASCII characters in filename for unittests.

https://github.com/D-Programming-Language/phobos/commit/6df5d551fd8a21feef061483c226e7d9b26d6cd4
Merge pull request #3296 from aka-demik/Issue-7648

Cleanup for Issue 7648: std.stdio expects file names to be encoded in CP_ACP on
Windows instead of UTF-8

--


[Issue 14944] cannot initialize static array by static this()

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14944

bb.t...@gmx.com changed:

   What|Removed |Added

 CC||bb.t...@gmx.com

--- Comment #1 from bb.t...@gmx.com ---
The problem is more subtle than suggested by the summary. Actually the problem
is the **ref** in foreach(). 

Initialization of the array succeeds if you use another form of for loop, e.g

---
import std.stdio;
class Foo {
static int[10] tbl;
static this() {
foreach(i; 0 .. tbl.length) {
tbl[i] = 1;
}
}
}
void main() {
writeln(Foo.tbl[0]); // 1
}
---

--


[Issue 14758] TypeInfo causes excessive binary bloat

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14758

Martin Nowak c...@dawg.eu changed:

   What|Removed |Added

 CC||c...@dawg.eu

--- Comment #10 from Martin Nowak c...@dawg.eu ---
 There have been proposals to add a -nortti flag to the compiler to remove 
 TypeInfo completely, but that would force a compromise on slicing, postblit 
 and other features.  Such compromises are most undesirable.

There are very few places where dynamic type info is actually necessary, it's
just that they were used by the old C style compiler runtime interface.
The remaining places are mostly GC, rt.lifetime, and currently the AA.
I don't think you can properly use D on a small SoC with TypeInfo or
ModuleInfo.
Please try the -betterC switch, it's supposed to avoid all runtime
dependencies.

--


[Issue 10378] Local imports hide local symbols

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=10378

Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Assignee|nob...@puremagic.com|k.hara...@gmail.com

--- Comment #14 from Kenji Hara k.hara...@gmail.com ---
We can resolve the issue by applying some rewriting rule.

void test()
{
import a, b;
import c;

stmt1;

improt d;

stmt2;
}

To:

void test()
{
struct __ImportScope1 { // internal namespace
import a, b;
import c;
}
with (__ImportScope1) {
stmt1;

struct __ImportScope2 { // internal namespace
improt d;
}
with (__ImportScope2) {
stmt2;
}
}
}

After that, we can reuse the symbol shadowing check mechanism on WithStatement.

--


[Issue 14945] unions are missing from the ABI page

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14945

Don clugd...@yahoo.com.au changed:

   What|Removed |Added

   Keywords||spec

--


[Issue 14945] New: unions are missing from the ABI page

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14945

  Issue ID: 14945
   Summary: unions are missing from the ABI page
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: trivial
  Priority: P1
 Component: dlang.org
  Assignee: nob...@puremagic.com
  Reporter: clugd...@yahoo.com.au

Three trivial problems with the ABI page:

Presumably the Structs section should be changed to Structs and Unions,
since they also conform to the C ABI.

AFAIK unions are name-mangled as if they were structs. This should be stated
explicitly.

Unions are also missing from the description of the extern(D) calling
convention on Windows x86.

--


[Issue 14944] New: cannot initialize static array by static this()

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14944

  Issue ID: 14944
   Summary: cannot initialize static array by static this()
   Product: D
   Version: D2
  Hardware: x86_64
OS: Windows
Status: NEW
  Severity: normal
  Priority: P1
 Component: dmd
  Assignee: nob...@puremagic.com
  Reporter: yosik...@altalk.com

Following code prints 0 using
DMD32 D Compiler v2.068.0

import std.stdio;
class Foo {
static int[10] tbl;
static this() {
foreach(ref v; tbl) {
v = 1;
}
}
}
void main() {
writeln(Foo.tbl[0]);
}

--


[Issue 14944] cannot initialize static array by static this()

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14944

yosik...@altalk.com changed:

   What|Removed |Added

 CC||yosik...@altalk.com

--


[Issue 14760] Clear content-length for libcurl option to eliminate segmentation fault.

2015-08-21 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14760

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

https://github.com/D-Programming-Language/phobos/commit/404c3cd9df4ab83cc35e670b6d1077bbb84878e2
fix Issue 14760 - Clear content-length for libcurl

- content-length must be set to allow follow-up
  post/put/trace requests with empty body

- reset content-length to 0 after _basicHTTP

https://github.com/D-Programming-Language/phobos/commit/fadfe88564fa7eff6ebc7fad2ad02ae5d62ebc9c
Merge pull request #3567 from MartinNowak/fix14760

fix Issue 14760 - Clear content-length for libcurl

--