[Issue 10920] template instantiation order dependent link failure problem

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10920


Denis Shelomovskij verylonglogin@gmail.com changed:

   What|Removed |Added

 CC||verylonglogin@gmail.com


--- Comment #2 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-24 
12:26:53 MSD ---
 ...and others - had increased the criticalness of this issue.

Filed particualr regression Issue 4.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11114] New: Undefined symbols after merging dmd pull #2550

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4

   Summary: Undefined symbols after merging dmd pull #2550
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: link-failure
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: verylonglogin@gmail.com


--- Comment #0 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-24 
12:25:50 MSD ---
Merging dmd pull #2550 [1] (commit ba48d3e) causes Symbol Undefined linker
errors for some templates.

The project builds fine before the pull. Application is in `levelling` package,
other package are libs it is linked with. OPTLINK errors just after merging,
symbols are demangled using VisualD:
--
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel6__ctorMFNfC6metaui8controls9container16ContainerControlAC6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5PanelXC6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel
(@safe
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel.__ctor(metaui.controls.container.ContainerControl,
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel[]...))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel6sourceMNgFNaNbNdNfZNgC9levelling14LevFileManager14LevFileManager
(metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel.sourceinout(pure
nothrow @property @safe inout(levelling.LevFileManager.LevFileManager)
function()))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel6__ctorMFNaNfC6metaui8controls9container16ContainerControlZC6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel
(pure @safe
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel.__ctor(metaui.controls.container.ContainerControl))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D3std10functional28__T8unaryFunVAyaa4_74727565Z40__T8unaryFunTC4gtkd3gtk8controls6WidgetZ8unaryFunFNaNbNfC4gtkd3gtk8controls6WidgetZb
(pure nothrow @safe bool
std.functional.unaryFun!(true).unaryFun!(gtkd.gtk.controls.Widget).unaryFun(gtkd.gtk.controls.Widget))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D5unstd5casts95__T6upCastTC11levellingui6native10GTKContext10GTKContextTC11levellingui6panels7context7ContextZ6upCastFNaNbNdNfNgC11levellingui6panels7context7ContextZNgC11levellingui6native10GTKContext10GTKContext
(pure nothrow @property @safe inout(levellingui.native.GTKContext.GTKContext)
unstd.casts.upCast!(levellingui.native.GTKContext.GTKContext,
levellingui.panels.context.Context).upCast(inout(levellingui.panels.context.Context)))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel6sourceMFNdNfC9levelling14LevFileManager14LevFileManagerZv
(@property @safe void
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel.source(levelling.LevFileManager.LevFileManager))
Debug\Levelling.obj(Levelling) 
 Error 42: Symbol Undefined
_D6metaui8controls5panel54__T5PanelTC9levelling14LevFileManager14LevFileManagerZ5Panel20setTypedSourceObjectMFNaNfC6ObjectZv
(pure @safe void
metaui.controls.panel.Panel!(levelling.LevFileManager.LevFileManager).Panel.setTypedSourceObject(Object))
--- errorlevel 7
--
Also see Issue 10920 which looks similar but isn't a regression so I created
a new one.


[1] https://github.com/D-Programming-Language/dmd/pull/2550

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11115] New: VisualD rebuilds project even if nothing changed

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5

   Summary: VisualD rebuilds project even if nothing changed
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: major
  Priority: P2
 Component: VisualD
AssignedTo: nob...@puremagic.com
ReportedBy: verylonglogin@gmail.com


--- Comment #0 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-24 
12:40:08 MSD ---
Every Debug+Run command causes some projects to rebuild (~10 seconds). Looks
like VisualD has some false positives about changed dependencies. This is a
very old problem. It would be good to have at least a workaround to force the
IDE to rebuild only on source files change as now users are forced to disable
buid on run and build solution manually after code change.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11114] Undefined symbols after merging dmd pull #2550

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4



--- Comment #1 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-24 
12:46:03 MSD ---
And the funny thing is: all libraries builds fine and works with latest HEAD.
The only thing I have to build without the pull is the final executable.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11116] New: core.sys.windows.windows does not expose GetDesktopWindow

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6

   Summary: core.sys.windows.windows does not expose
GetDesktopWindow
   Product: D
   Version: D2
  Platform: All
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: ajid...@gmail.com


--- Comment #0 from ajid...@gmail.com 2013-09-24 09:06:14 PDT ---
While it does expose some functions of the same header file (winuser.h), it
doesn't expose GetDesktopWindow(). (See
http://msdn.microsoft.com/en-us/library/ms633504%28VS.85%29.aspx )
Same goes for a lot of other functions. The module is pretty hit and miss.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10920] template instantiation order dependent link failure problem

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10920


Dicebot pub...@dicebot.lv changed:

   What|Removed |Added

 CC||pub...@dicebot.lv


--- Comment #3 from Dicebot pub...@dicebot.lv 2013-09-24 09:53:39 PDT ---
I think it was already discussed in that Walters pull request and rejected as
invalid. If `foo.d` imports `bar.d` it MUST also compile `bar.d` too and link
into the final application.

In provided snippet `FormatSpec!char` should always be expected to be in
`bar.d` during separate compilation. It may also be _additionally_ emitted to
`foo.d` as a weak symbol if `foo.d` code flow runs semantic on it first, but
that will be taken care of by linker.

D does not have headers, every single module is expected to be compiled and
linked.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10381] Nonsense associative array comparison

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10381



--- Comment #6 from github-bugzi...@puremagic.com 2013-09-24 10:06:18 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/f357fb07cfbb5b64c5a4ccc12a4ce7b83cb7a3b8
Fix issue 10381 Nonsense associative array comparison

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11115] VisualD rebuilds project even if nothing changed

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5


Rainer Schuetze r.sagita...@gmx.de changed:

   What|Removed |Added

 CC||r.sagita...@gmx.de


--- Comment #1 from Rainer Schuetze r.sagita...@gmx.de 2013-09-24 11:59:07 
PDT ---
I guess you are using dmd 2.064alpha built from git-HEAD.

What's causing the rebuild is a dependency generated by dmd to the pseudo
module __entrypoint.d. I'd say this is a regression in dmd.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11115] VisualD rebuilds project even if nothing changed

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5



--- Comment #2 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-24 
23:00:21 MSD ---
(In reply to comment #1)
 I guess you are using dmd 2.064alpha built from git-HEAD.
 
 What's causing the rebuild is a dependency generated by dmd to the pseudo
 module __entrypoint.d. I'd say this is a regression in dmd.

So file an issue please.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11115] VisualD rebuilds project even if nothing changed

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5



--- Comment #3 from Rainer Schuetze r.sagita...@gmx.de 2013-09-24 12:07:29 
PDT ---
done that: http://d.puremagic.com/issues/show_bug.cgi?id=7

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11116] core.sys.windows.windows does not expose GetDesktopWindow

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 CC||andrej.mitrov...@gmail.com


--- Comment #1 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-24 
12:44:13 PDT ---
(In reply to comment #0)
 While it does expose some functions of the same header file (winuser.h), it
 doesn't expose GetDesktopWindow(). (See
 http://msdn.microsoft.com/en-us/library/ms633504%28VS.85%29.aspx )
 Same goes for a lot of other functions. The module is pretty hit and miss.

I recommend grabbing:
http://www.dsource.org/projects/bindings/wiki/WindowsApi

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11118] New: undefined identifier in template structs functions

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8

   Summary: undefined identifier in template structs functions
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: critical
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: code.via...@gmail.com


--- Comment #0 from Oleg B code.via...@gmail.com 2013-09-24 14:26:37 PDT ---
[code]
struct img(size_t DIM)
{
void setSize(E)( E[DIM] sz... ) {}
}

void main()
{
img!2 x;
x.setSize( 10u, 10u );
}
[/code]

compiler return:

bug.d(9): Error: undefined identifier DIM
bug.d(9): Error: template bug.img!(2).img.setSize does not match any function
template declaration. Candidates are:
bug.d(3):bug.img!(2).img.setSize(E)(E[DIM] sz...)
bug.d(9): Error: template bug.img!(2).img.setSize(E)(E[DIM] sz...) cannot
deduce template function from argument types !()(uint, uint)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11119] New: Alias declaration cannot see forward-referenced symbol in mixed-in template

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9

   Summary: Alias declaration cannot see forward-referenced symbol
in mixed-in template
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: andrej.mitrov...@gmail.com


--- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-24 
15:45:22 PDT ---
-
module test;

struct K
{
mixin templ;
alias a = foo;  // ok
}

struct F
{
alias a = foo;  // fail
mixin templ;
}

mixin template templ()
{
void foo() { }
}

void main() { }
-

$ dmd test.d
test.d(11): Error: undefined identifier foo

It does not appear to be a regression, but it might be a duplicate of some
other bug (?).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11120] New: Compiler calls wrong property when using type tuple of length 1

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11120

   Summary: Compiler calls wrong property when using type tuple of
length 1
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: andrej.mitrov...@gmail.com


--- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-24 
16:04:30 PDT ---
-
module test;

int glob;

struct K
{
@property void max(int) { }
@disable @property ref int max() { return glob; }

alias setMax = _chainerFunc!max;

template _chainerFunc(alias symbol)
{
import std.traits;
alias Params = ParameterTypeTuple!symbol;

auto ref _chainerFunc(Params[0] args)  // ok
{
symbol = args;
return this;
}
}
}

struct F
{
@property void max(int) { }
@disable @property ref int max() { return glob; }

alias setMax = _chainerFunc!max;

template _chainerFunc(alias symbol)
{
import std.traits;
alias Params = ParameterTypeTuple!symbol;

auto ref _chainerFunc(Params args)  // fail
{
symbol = args;  // Error: attempts to call getter
return this;
}
}
}

void main()
{
K k;
k.max = 2;
k.setMax(1).setMax(2);  // chaining example

F f;
f.max = 2;
f.setMax(1).setMax(2);  // ditto
}
-

$ dmd test.d
fail.d(39): Error: function test.F.max is not callable because it is annotated
with @disable
fail.d(39): Error: cannot implicitly convert expression (tuple(_param_0)) of
type (int) to int

The code in main() is not needed but demonstrates the usage. Note how the
compiler wants to call the wrong @property function (the getter instead of the
setter).

The above hurts generic code having to use Params[0] when the length is already
known to equal 1.

-- Please note: The bug goes away if there is no getter property, but only a
@property setter is available. Observe:

-
module test;

struct K
{
@property void max(int) { }

// commented out
// @property int max() { return 1; }

alias setMax = _chainerFunc!max;

template _chainerFunc(alias symbol)
{
import std.traits;
alias Params = ParameterTypeTuple!symbol;

// ok, now works without Params[0]
auto ref _chainerFunc(Params args)
{
symbol = args;
return this;
}
}
}

void main()
{
K k;
k.max = 2;
k.setMax(1).setMax(2);  // chaining example
}
-

So I think this is a bug, and not an enhancement.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10920] template instantiation order dependent link failure problem

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10920



--- Comment #4 from Kenji Hara k.hara...@gmail.com 2013-09-24 18:56:59 PDT ---
(In reply to comment #3)
 I think it was already discussed in that Walters pull request and rejected as
 invalid. If `foo.d` imports `bar.d` it MUST also compile `bar.d` too and link
 into the final application.

My question and Walter's reply:
https://github.com/D-Programming-Language/dmd/pull/2550#issuecomment-24296228
https://github.com/D-Programming-Language/dmd/pull/2550#issuecomment-24297212

But I still worries that the current design is difficult to understand.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 10920] template instantiation order dependent link failure problem

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10920



--- Comment #5 from Dicebot pub...@dicebot.lv 2013-09-24 19:01:56 PDT ---
(In reply to comment #4)
 (In reply to comment #3)
  I think it was already discussed in that Walters pull request and rejected 
  as
  invalid. If `foo.d` imports `bar.d` it MUST also compile `bar.d` too and 
  link
  into the final application.
 
 My question and Walter's reply:
 https://github.com/D-Programming-Language/dmd/pull/2550#issuecomment-24296228
 https://github.com/D-Programming-Language/dmd/pull/2550#issuecomment-24297212
 
 But I still worries that the current design is difficult to understand.

Yeah, that is exactly the comments I was referring to, thanks. And I completely
agree with Walter here - this is difficult to understand only if you think
about modules in a similar way as C headers, but those are not.

Average programmer should care about internal design as much as he cares about
exact optimization algorithms in backend. Omitting some modules during
compilation  is illegal and likely to break the program in some way (not only
current one), that should be told explicitly in spec if it is not already.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11117] Pseudo module __entrypoint.d listed as dependency with -deps

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7


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

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-09-24 19:31:07 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2586

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 11114] Undefined symbols after merging dmd pull #2550

2013-09-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4



--- Comment #2 from Kenji Hara k.hara...@gmail.com 2013-09-24 19:38:22 PDT ---
Could you please post the reduced test case? Posting just only error messages
cannot help for fixing the regression.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---