[Issue 11792] Investigate migrating to a meta repo

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11792

--- Comment #8 from Dicebot pub...@dicebot.lv ---
I am of very bad opinion of subtree approach (single physical repo). It would
destroy natural separation of areas of interest for pull request reviewers
(need to add dmd/phobos labels manually for each PR), make commit history
so noisy it is impossible to follow for few specific projects, make impossible
to finely tune team permissions to different repos.

Only benefit is reducing amount of repositories under D-Programming-Language
organization. I don't see it a problem that needs solution, not at this cost at
least.

--


[Issue 11792] Investigate migrating to a meta repo

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11792

--- Comment #7 from Vladimir Panteleev thecybersha...@gmail.com ---
On the forum, I posted ([1]):

 I would like to add that, however, it might be worth considering 
 moving everything to a single repository at the same time as the 
 switch to DDMD. DDMD by itself is a big change, so aggregating 
 other changes with big wolkflow impact (but net benefit in the 
 long run) would make sense.

This would also be a good time to replace makefiles with a D build tool.

Here are some thoughts on how this can be done:

- Create the repo with an experimental status ahead of time, so that it can be
extensively tested.
- Decide on a date on which the switch will occur.
- Add comment to all open pull requests some time before, that the changes will
need to be rebased on the new repository.
- Use git-subtree to add the existing repositories to the new unified
repository.
- Add a commit to the existing repositories which replaces the README (and
possibly all content) with a link to the new repository.
- Move the old repositories to a new organization (e.g.
D-Programming-Language-Old) so they don't clutter D-P-L organization's project
list. TODO: Check if GitHub creates redirects (we need redirects).

Although the change is big, the gain is also big: we will have one single
repository using a self-hosted compiler and build system. By doing these all
together, we will need to break things only once.

[1]: http://forum.dlang.org/post/fjpppbranpbikojvk...@forum.dlang.org

--


[Issue 11792] Investigate migrating to a meta repo

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11792

--- Comment #9 from Vladimir Panteleev thecybersha...@gmail.com ---
(In reply to Dicebot from comment #8)
 It
 would destroy natural separation of areas of interest for pull request
 reviewers (need to add dmd/phobos labels manually for each PR),

It would not be hard to write a bot to apply these labels automatically.

 make
 commit history so noisy it is impossible to follow for few specific
 projects,

It is easy in git to see the log of a specific directory, git log phobos or
gitk phobos.

 make impossible to finely tune team permissions to different repos.

Valid argument, but I'm not sure how important it is.

 Only benefit is reducing amount of repositories under D-Programming-Language
 organization. I don't see it a problem that needs solution, not at this cost
 at least.

There are more benefits:

- Code which affects multiple projects can be done as one commit.
- Makefiles and build scripts no longer need to assume (but allow overriding)
location of other subcomponents - their location will be guaranteed. This means
they can be simplified.
- It will be easy to build D at a specific point in its development.
- It will no longer be necessary to use specialized tools such as Digger to
bisect regressions.

--


[Issue 14134] Free of large array does not work

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14134

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

   What|Removed |Added

 CC||c...@dawg.eu

--- Comment #9 from Martin Nowak c...@dawg.eu ---
(In reply to Rainer Schuetze from comment #8)
 Other notes:
 
 - The current version also works for memory allocated outside the GC, it
 just doesn't free the memory.

That should be fixed, we don't want to promote delete arr[] as a method to
destroy a slice.

 There is no good way to destroy an array except delete.

foreach (ref el; ary)
destroy(el);

--


[Issue 14134] Free of large array does not work

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14134

--- Comment #10 from Martin Nowak c...@dawg.eu ---
I think the right semantic is to destroy+free the complete array iff it's GC
managed.

--


[Issue 11792] Investigate migrating to a meta repo

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11792

--- Comment #10 from Dicebot pub...@dicebot.lv ---
 It is easy in git to see the log of a specific directory, git log phobos or 
 gitk phobos

I was referring to following on GitHub, not exploring plain git history. For
example I am currently subscribed to all changes in Phobos but not in DMD and
druntime - combined together it is simply too much stuff to me to follow.

 - Makefiles and build scripts no longer need to assume (but allow overriding) 
 location of other subcomponents - their location will be guaranteed. This 
 means they can be simplified.

This is addressed by my proposed scheme (with submodules) too.

As for the other points - you propose to improve experience for very small
group of developers (those who need to do history bisection and/or do changes
on multiple repos at once) at the cost of harming experience for more casual
one (anyone who does D development / reviewing or simply wants to know what
happens in more details).

I think having specialized tool (Digger) for specialized tasks is more
appropriate that having specialized tool (tagging bot + custom activity feed
filters) for common tasks.

--


[Issue 14139] GIT HEAD : PI now has wrong value

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14139

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

   What|Removed |Added

 CC||c...@dawg.eu

--- Comment #6 from Martin Nowak c...@dawg.eu ---
Any insight on why LTO mess this up?

--


[Issue 14169] Template symbol visibility regression

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14169

--- Comment #3 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/22815447bb4fbf59f4ca7d3a1ddef79f604053f5
fix Issue 14169 - Template symbol visibility regression

https://github.com/D-Programming-Language/dmd/commit/5c6810e1df995e72020b8af6b394d29846e063ac
Merge pull request #4405 from 9rnsr/fix14169

[REG2.067a] Issue 14169 - Template symbol visibility regression

--


[Issue 14169] Template symbol visibility regression

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14169

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

   What|Removed |Added

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

--


[Issue 14149] Bad std.algorithm error messages

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14149

hst...@quickfur.ath.cx changed:

   What|Removed |Added

 CC||hst...@quickfur.ath.cx

--


[Issue 9998] RefCounted is impure

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9998

Ulrich Küttler kuett...@gmail.com changed:

   What|Removed |Added

 CC||kuett...@gmail.com

--


[Issue 13983] RefCounted needs to be pure, @safe, nothrow

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13983

Ulrich Küttler kuett...@gmail.com changed:

   What|Removed |Added

 CC||kuett...@gmail.com

--


[Issue 14159] Bug in ctRegex - Error: found 'else' instead of statement

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14159

--- Comment #2 from Merlin Meyer-Mitchell db...@m3.sent.com ---
(In reply to e10s from comment #1)
 
 *** This issue has been marked as a duplicate of issue 12105 ***

Thanks!

--


[Issue 13972] Make scoped, Unique, and RefCounted @nogc

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13972

Ulrich Küttler kuett...@gmail.com changed:

   What|Removed |Added

 CC||kuett...@gmail.com

--


[Issue 13972] Make scoped, Unique, and RefCounted @nogc

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13972

bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc

--- Comment #2 from bearophile_h...@eml.cc ---
(In reply to Kapps from comment #1)

 if(foo is null) {
 static ex = cast(immutable)(new Exception(foo is null));
 throw ex;

I think no cast is needed:

static immutable ex = new Exception(foo is null);


 and does not help in situations where the
 exception text includes additional information from runtime arguments.

The space for the extra information could be allocated statically, and pasted
inside the buffer. But this makes the function not pure.


 Also
 I'm not sure what kind of impact this would have if called and thrown in a
 catch block.

In presence of exception chaining how are immutable exceptions working?

--


[Issue 14097] root/async.c: use after free

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14097

Ali Cehreli acehr...@yahoo.com changed:

   What|Removed |Added

 CC||acehr...@yahoo.com
Summary|root/async.c: free after|root/async.c: use after
   |use |free

--


[Issue 14155] [REG2.066] A defect in DIP29: the return value of some pure functions cannot be unique pointer

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14155

--- Comment #5 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/e17d26719eb61a30518c997718c14e38bb2912da
fix Issue 14155 - A defect in DIP29: the return value of some pure functions
cannot be unique pointer

https://github.com/D-Programming-Language/dmd/commit/50e1b75c44dca2a47bcded4e639e5775792ae517
Merge pull request #4397 from 9rnsr/fix14155

[REG2.066] Issue 14155 - A defect in DIP29: the return value of some pure
functions cannot be unique pointer

--


[Issue 14141] `pure` member function returning qualified member result is implicitly convertible to unqualified

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14141

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

   What|Removed |Added

 Resolution|DUPLICATE   |FIXED

--


[Issue 13640] [REG2.066] can break immutability with inout

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13640

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

https://github.com/D-Programming-Language/dmd/commit/283aa4add2868dc7424c5232f18bbcfc392ed26a
Use constConv in CallExp::implicitConvTo() and NewExp::implicitConvTo()

As same as the fix for issue 13640 (commit:
7cf3baf8f0c75a7e3641786af4dfe0441e3918d6).

--


[Issue 14155] [REG2.066] A defect in DIP29: the return value of some pure functions cannot be unique pointer

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14155

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

   What|Removed |Added

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

--


[Issue 14160] [REG2.066] mutable global data access is wrongly accepted in pure function

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14160

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

   What|Removed |Added

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

--


[Issue 14160] [REG2.066] mutable global data access is wrongly accepted in pure function

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14160

--- Comment #3 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/b6e8ef68dda3f306c70be659a69efa1db897798f
fix Issue 14160 - mutable global data access is wrongly accepted in pure
function

https://github.com/D-Programming-Language/dmd/commit/abc775b2a8a08e07193d54dcbfc75b1bb34ee16d
Merge pull request #4398 from 9rnsr/fix14160

[REG2.066] Issue 14160 - mutable global data access is wrongly accepted in pure
function

--


[Issue 14141] `pure` member function returning qualified member result is implicitly convertible to unqualified

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14141

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

https://github.com/D-Programming-Language/dmd/commit/f42159ac11325fcfa61134feef2da6ae9701b6e4
fix Issue 14141 - `pure` member function returning qualified member result is
implicitly convertible to unqualified

--


[Issue 14170] New: `this` compiles in a static context

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14170

  Issue ID: 14170
   Summary: `this` compiles in a static context
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: slavo5...@yahoo.com

This code compiles and executes:
---
import std.stdio;

struct StaticRegister {
static private uint _value;
@property static uint value() { return _value; }
@property static void value(uint v) { _value = v; }

static alias value this; // (1)

static void test() {
writeln(this.stringof);  // (2)
writeln(typeof(this).stringof);  // (3)
writeln(this.value); // (4)
}
}

void main(string[] s) {
// works due to `alias value this`
StaticRegister = 1;

StaticRegister.test();
}
---

I suspect (1), (2), (3), and (4) should all generate compiler errors. `static
alias value this` and `alias value this` seem to be semantically the same
thing, but I can't be sure.

I attempted to understand the meaning of `this` in a static context on the
forum...

http://forum.dlang.org/post/xcnwuneclebuyqcjb...@forum.dlang.org
http://forum.dlang.org/post/ubatudbwrakkwzulp...@forum.dlang.org

...but I was unable to elicit a definitive answer.

One member of the community believes (3) is valid, and the rest are not.  If
that is the case, it needs to be documented in the language specification at
http://dlang.org/expression.html#this.  At the moment the spec is silent on the
subject.

Issue #380 is a D1 bug that was fixed to specifically allow `this` in a static
context, but I'm not sure if it applies to D2.

--


[Issue 14097] root/async.c: use after free

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14097

ZombineDev petar.p.ki...@gmail.com changed:

   What|Removed |Added

 CC||petar.p.ki...@gmail.com

--- Comment #4 from ZombineDev petar.p.ki...@gmail.com ---
(In reply to Ketmar Dark from comment #3)

Now that `AsyncRead::dispose()` waits for all operations on all files to
complete, it should not be possible to `free()` `aw`, before `startthread()`
completes.
Even if this somehow happens accessing `aw-filesdim` or using a cached version
of it is irrelevant, because inside the loop we access the `aw-files` member,
which would also lead to the same problem.

--


[Issue 14171] Mark non-allocating GC functions as @nogc

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14171

weaselcat r9shacklef...@gmail.com changed:

   What|Removed |Added

 CC||r9shacklef...@gmail.com

--


[Issue 14171] New: Mark non-allocating GC functions as @nogc

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14171

  Issue ID: 14171
   Summary: Mark non-allocating GC functions as @nogc
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: druntime
  Assignee: nob...@puremagic.com
  Reporter: r9shacklef...@gmail.com

Many functions in the GC don't actually allocate, but are useful for building
tools that help facilitate working around the GC - i.e, AddRange is vital for
manually managed memory that holds references to GC allocated memory. I don't
think there's a reason these shouldn't be @nogc but I could easily be wrong.

--


[Issue 14156] buffer overflow in LibELF

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14156

--- Comment #5 from Sobirari Muhomori dfj1es...@sneakemail.com ---
If sprintf is provided through a macro wrapper, it can infer buffer size of the
first argument, as it's known statically.
See if this circumvents protection:
---
char* dest = h-user_id;
len = sprintf(dest, %u, om-user_id);
---

--


[Issue 14156] buffer overflow in LibELF

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14156

--- Comment #6 from Guillaume Chatelet chatelet.guilla...@gmail.com ---
Thx Sobira, it makes sense.
I have a pending proposal which will write the buffer at once and solve the
'memory corruption'.
https://github.com/D-Programming-Language/dmd/pull/4402

--


[Issue 14169] Template symbol visibility regression

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14169

--- Comment #1 from Kenji Hara k.hara...@gmail.com ---
Introduced in: https://github.com/D-Programming-Language/dmd/pull/4104

--


[Issue 14169] Template symbol visibility regression

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14169

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

   What|Removed |Added

   Keywords||pull
   Hardware|x86_64  |All
 OS|Linux   |All

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

--


[Issue 13775] [REG2.067a] Broken explicit casting of dynamic array slices of known size to static array of different type

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13775

Mathias LANG pro.mathias.l...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||pro.mathias.l...@gmail.com
 Resolution|FIXED   |---

--- Comment #14 from Mathias LANG pro.mathias.l...@gmail.com ---
Vibe.d is suffering from it as well:

case AF_INET6:
ubyte[16] ip = addr_ip6.sin6_addr.s6_addr;
auto ret = appender!string();
ret.reserve(40);
foreach (i; 0 .. 8) {
if (i  0) ret.put(':');
ret.formattedWrite(%x, bigEndianToNative!ushort(cast(ubyte[2])ip[i*2
.. i*2+2]));
}
return ret.data;


However this code still fails with a recent compiler:

source/vibe/core/net.d(181): Error: cannot cast expression ip[cast(ulong)(i *
2)..cast(ulong)(i * 2 + 2)] of type ubyte[] to ubyte[2]

Tested with v2.067-devel-932e0a5 (From today, Feb 12).

--


[Issue 9110] Escaping reference error from lazy variadic parameters

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9110

monkeywork...@hotmail.com changed:

   What|Removed |Added

 CC||monkeywork...@hotmail.com

--- Comment #1 from monkeywork...@hotmail.com ---
I've also just ran into this error.

void test(lazy string[] s...)
{
}

void main(string[] argv)
{
//Error: escaping reference to local
test(asdf, fdsa, afsd, sdaf);
}

--


[Issue 14156] buffer overflow in LibELF

2015-02-11 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14156

--- Comment #7 from Sobirari Muhomori dfj1es...@sneakemail.com ---
There's also a declaration like this:
---
template size_t size
int sprintf(
   char (buffer)[size],
   const char *format [,
   argument] ... 
); // C++ only
---

--