[Issue 4852] core.demangle cannot demangle functions with class/struct return types

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4852



--- Comment #1 from Rainer Schuetze r.sagita...@gmx.de 2010-09-25 00:03:59 
PDT ---
Created an attachment (id=774)
corrected patch including some additions

Please ignore the previous patch, it is flawed and breaks demangling other
symbols.

What is actually necessary is to call parseQualifiedName instead of parseLName
to get the full qualified name, but this involves a call to a function declared
later which does not work with local functions, so I placed the local functions
into a struct.

Included is also a bug fix decoding string literals in template arguments (line
1064). This allows to reenable the 2 failing unittest symbols.

I'm proposing to add an argument to demangle() whether the full type is
requested or just the qualified name.

I've added a function decodeDmdString to decompress symbols that are emitted
compressed by dmd on windows. I think it is very much related to demangling, so
it should have its place in this module, but a better name would be much
appreciated.

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


[Issue 4852] core.demangle cannot demangle functions with class/struct return types

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4852


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

   What|Removed |Added

Attachment #774|application/octet-stream|text/plain
  mime type||
 Attachment #774 is|0   |1
  patch||


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


[Issue 941] std.regexp fails to match when grouping certain sub-expressions

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=941


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
01:40:18 PDT ---
http://www.dsource.org/projects/phobos/changeset/2047

I disabled optimize() for now and inserted the code in this report as a
unittest. I'll leave it to Walter to re-enable optimization.

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


[Issue 4938] New: dmd segfault when compiling

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4938

   Summary: dmd segfault when compiling
   Product: D
   Version: D2
  Platform: Other
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: cru...@gmail.com


--- Comment #0 from AdamB cru...@gmail.com 2010-09-25 08:42:15 PDT ---
Created an attachment (id=775)
extract this and run compile.sh to cause the segfault

The dmd compiler segfaults when compiling the attached code.  Extract the
archive and run compile.sh.  dmd v2.048 on Ubuntu 10.04 32bit.

Please overlook my messy and error riddled D code as I'm actually in the
process of converting a Vala program to D.

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


[Issue 4939] New: Some compile-time length tests of array concats

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4939

   Summary: Some compile-time length tests of array concats
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: accepts-invalid, diagnostic
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-09-25 08:50:01 PDT ---
This is a wrong D2 program, because the lengths of the arrays don't match:


// Program #1
void main() {
int[2] a1;
int[3] a2;
int[6] result;
result[] = a1 ~ a2;
}


It compiles with no errors, because a1~a2 produces a dynamic array, despite its
length is determined at compile-time. I'd like the compile to catch this bug at
compile-time.

The situation in Program #1 is not so common, but a little more refined
implementation of the same kind of tests may catch at compile-time more common
cases, like:


// Program #2
void main() {
int[] a1 = new int[2];
int[] a2 = new int[3];
int[6] result;
result[] = a1 ~ a2; // Error
a1 ~= 0;
result[] = a1 ~ a2;
}


// Program #3
void main() {
int[] a1 = new int[2];
int[] a2 = new int[3];
int[] result = new int[6];
result[] = a1 ~ a2; // Error
}

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


[Issue 4938] dmd segfault when compiling

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4938


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2010-09-25 10:33:24 PDT ---
I suggest you to slowly reduce the code, until it's just few lines of code.

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


[Issue 4329] Do not show error messages that refer to __error

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4329



--- Comment #13 from bearophile_h...@eml.cc 2010-09-25 12:36:46 PDT ---
struct Vec(int N) {
int[N] data;
}
void main() {
Vec!(1)([1, 2]);
}


DMD 2.049 prints:
test.d(5): Error: cannot implicitly convert expression ([1,2]) of type int[] to
int
test.d(5): Error: structliteral has no effect in expression (Vec((__error)))

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


[Issue 1395] Regex does not support range [something to \*]

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1395


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||INVALID


--- Comment #2 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
13:57:16 PDT ---
I didn't find \* listed as a valid escape inside a character class in
EcmaScript regexes (http://bclary.com/2004/11/07/#a-15.10.1).

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


[Issue 1420] No builtin equivalents to C++ containers

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1420


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||LATER


--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
14:00:25 PDT ---
As std.container is being worked on, I'll preemptively mark this as resolved.
It won't be forgotten...

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


[Issue 1487] toString(string) and toString(Object)

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1487


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
15:41:40 PDT ---
std.conv has settled this a while ago.

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


[Issue 1598] New std.variant is missing functionality from Box

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1598


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX


--- Comment #2 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
15:42:44 PDT ---
As described in my previous comment.

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


[Issue 3467] Non-int integral template parameters not correctly propagated

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3467


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2010-09-25 16:29:51 PDT ---
The bug is present in dmd 2.049 still:


struct Vec(size_t N) {
void opBinary(string op:~, size_t M)(Vec!M) {}
}
void main() {
Vec!2 a1;
Vec!3 a2;
a1 ~ a2; // line 7, Error
}

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


[Issue 1635] DirEntry.isfile() and DirEntry.isdir() broken

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1635


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WORKSFORME


--- Comment #5 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
17:39:04 PDT ---
Can't reproduce.

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


[Issue 1638] Restrictive functionality of listdir in file.d

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1638


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #2 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
17:45:16 PDT ---
dirEntries() takes care of that.

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


[Issue 309] std.boxer incorrectly handles interface instances (major problem in dmd reflection?)

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=309


nfx...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||nfx...@gmail.com
 Resolution|WONTFIX |


--- Comment #2 from nfx...@gmail.com 2010-09-25 18:07:36 PDT ---
std.boxer is not deprecated in D1. Please don't close valid D1 bugs as WONTFIX.

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


[Issue 1635] DirEntry.isfile() and DirEntry.isdir() broken

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1635


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #6 from Jonathan M Davis jmdavisp...@gmx.com 2010-09-25 18:09:50 
PDT ---
See also bug# 4929. Currently, on Linux/Posix, DirEntry use d_type from readdir
to set its file type, and if you'll look at the man page for readdir, it
specifically says that d_type is not supported by all file system types.
DirEntry really should be using stat if d_type wasn't set properly. My patch in
bug# 3848 makes it so that while it still uses d_type for the file type if it
was set correctly, it uses stat instead of d_type if d_type is DT_UNKNOWN.

The only place that I'm sure that I've run into this problem (and consistently)
is with /usr/share/zoneinfo, but I think that it's very nature makes it so that
it's only going to fail under certain types of situations or on certain types
of systems.

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


[Issue 309] std.boxer incorrectly handles interface instances (major problem in dmd reflection?)

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=309



--- Comment #3 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
18:16:52 PDT ---
Apologies.

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


[Issue 3175] rejects templated ref return function

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3175


Shin Fujishiro rsi...@gmail.com changed:

   What|Removed |Added

   Keywords||patch
   Severity|trivial |major


--- Comment #3 from Shin Fujishiro rsi...@gmail.com 2010-09-25 18:16:35 PDT 
---
Patch against dmd r687. deduceFunctionTemplateMatch() must reset storage class
in parameter's scope as done in matchWithInstance().

--- a/src/template.c
+++ b/src/template.c
@@ -887,6 +887,7 @@ MATCH
TemplateDeclaration::deduceFunctionTemplateMatch(Scope *sc, Loc loc, Objec
 ScopeDsymbol *paramsym = new ScopeDsymbol();
 paramsym-parent = scope-parent;
 Scope *paramscope = scope-push(paramsym);
+paramscope-stc = 0;

 TemplateTupleParameter *tp = isVariadic();
 int tp_is_declared = 0;


Increased the severity as the bug has been repeatedly reported: bug 4041, bug
4446, bug 4934 and comment 2 of bug 2460.

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


[Issue 4934] Cannot compile an overloaded operator returning by ref

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4934


Shin Fujishiro rsi...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||rsi...@gmail.com
 Resolution||DUPLICATE


--- Comment #1 from Shin Fujishiro rsi...@gmail.com 2010-09-25 18:19:48 PDT 
---
*** This issue has been marked as a duplicate of issue 4041 ***

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


[Issue 4041] Error with ref or auto ref return from opOpAssign

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4041


Shin Fujishiro rsi...@gmail.com changed:

   What|Removed |Added

 CC||samu...@voliacable.com


--- Comment #1 from Shin Fujishiro rsi...@gmail.com 2010-09-25 18:19:48 PDT 
---
*** Issue 4934 has been marked as a duplicate of this issue. ***

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


[Issue 4940] New: ICE(symbol.c): Accessing tuple-typed field of struct literal with user-defined constructor

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4940

   Summary: ICE(symbol.c): Accessing tuple-typed field of struct
literal with user-defined constructor
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k.hanaz...@gmail.com


--- Comment #0 from Kasumi Hanazuki k.hanaz...@gmail.com 2010-09-25 18:39:51 
PDT ---
DMD v2.049 on Windows crashes with the message:

  Internal error: ..\ztc\symbol.c 1043

This only occurs when accessing a tuple-typed field on a struct literal
directly and using an user-defined constructor.



void main() {
  auto w = S(0).x;
}

template Tuple(T...) {
  alias T Tuple;
}

struct S {
  Tuple!(int, int) x;
  this(int) { }
}

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


[Issue 1858] std.string find signature is not string

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1858


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Issue 4941] New: TypeTuple slice boundaries are not CTFE'd

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4941

   Summary: TypeTuple slice boundaries are not CTFE'd
   Product: D
   Version: D1  D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: patch, rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: rsi...@gmail.com


--- Comment #0 from Shin Fujishiro rsi...@gmail.com 2010-09-25 21:25:29 PDT 
---
Type tuples can't be sliced with boundaries that involve CTFE-able function
call(s). The following valid code doesn't compile (both D1  D2):

template T(_...) { alias _ T; }
size_t mid(size_t n) { return n/2; }

alias T!(int, int, int)[0 .. mid($)] A;
// Error: Integer constant expression expected instead of mid(3u)



Patch against dmd r687, makes it sure that TypeSlice boundaries get CTFE'd.

--- src/mtype.c
+++ src/mtype.c
@@ -7787,11 +7787,11 @@ Type *TypeSlice::semantic(Loc loc, Scope *sc)
 TypeTuple *tt = (TypeTuple *)tbn;

 lwr = semanticLength(sc, tbn, lwr);
-lwr = lwr-optimize(WANTvalue);
+lwr = lwr-optimize(WANTvalue | WANTinterpret);
 uinteger_t i1 = lwr-toUInteger();

 upr = semanticLength(sc, tbn, upr);
-upr = upr-optimize(WANTvalue);
+upr = upr-optimize(WANTvalue | WANTinterpret);
 uinteger_t i2 = upr-toUInteger();

 if (!(i1 = i2  i2 = tt-arguments-dim))

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


[Issue 2107] Regexp multiline attribute is broken

2010-09-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2107


Andrei Alexandrescu and...@metalanguage.com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||INVALID


--- Comment #1 from Andrei Alexandrescu and...@metalanguage.com 2010-09-25 
22:21:18 PDT ---
The m flag refers to the behavior of ^ and $, not that of the dot.

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