[Issue 14956] C++ Mangling incompatible with C++11

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

--- Comment #3 from Iain Buclaw  ---
(In reply to Marco Leise from comment #2)
> The mangling of the mangling changed? I thought that was a typo, but
> obviously you are right.

The C++-98 use of "Sb" and "Ss" is a special mangle string, and not actually
representative of the actual name or namespace of basic_string.

Perhaps a better way of putting it would have been: "The abbreviations for
mangling basic_string have been removed and replaced with a new namespace".

--


[Issue 14956] C++ Mangling incompatible with C++11

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

--- Comment #4 from Iain Buclaw  ---
(In reply to Marco Leise from comment #2)
> I assume the only way out of this is providing a -cxx11 flag for dmd? >.<

As we already support C++ namespaces, we can funnel what needs to be changed in
the testsuite case itself.

---
extern (C++, std)
{
version (C++-98)
{
struct basic_string(T, C = char_traits!T, A = allocator!T)
{
}
}
else version (C++-11)
{
extern (C++, __cxx11)
{
struct basic_string(T, C = char_traits!T, A = allocator!T)
{
}
}
}
}
---

Which leaves us with the question, how do figure out whether to use version
condition branch A or B?

--


[Issue 14405] Private class std.typecons.Foo conflicts with local class

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

r...@rcorre.net changed:

   What|Removed |Added

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

--- Comment #3 from r...@rcorre.net ---
This was patched up in
https://github.com/D-Programming-Language/phobos/pull/3158.
Closing.

--


[Issue 14956] C++ Mangling incompatible with C++11

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

Jacob Carlborg  changed:

   What|Removed |Added

 CC||d...@me.com

--- Comment #5 from Jacob Carlborg  ---
(In reply to Iain Buclaw from comment #4)

> Which leaves us with the question, how do figure out whether to use version
> condition branch A or B?

The user specifies the appropriate version flag. Or the compiler need a new
flag for this.

--


[Issue 14956] C++ Mangling incompatible with C++11

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

--- Comment #6 from Iain Buclaw  ---
(In reply to Jacob Carlborg from comment #5)
> (In reply to Iain Buclaw from comment #4)
> 
> > Which leaves us with the question, how do figure out whether to use version
> > condition branch A or B?
> 
> The user specifies the appropriate version flag. Or the compiler need a new
> flag for this.


Well, so far, apart from the testsuite, is there any other place this is
necessary?  Probably not.  We don't maintain a core.stdcxx library, thank
goodness.  And those who wish to use bindings to C++ std, then they can make
the change in their code and provide some user defined version to select one or
the other.

I've only found one bug that prevents this.  I've raised a PR for that.

https://github.com/D-Programming-Language/dmd/pull/5261

--


[Issue 7157] Optimiser is O(n^2) w.r.t. function length

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

--- Comment #8 from Martin Nowak  ---
Another case of this.
https://github.com/etcimon/botan/issues/8
It took dmd almost 13 minutes to compile botan w/ release optimizations on
heroku (and about 4 minutes on my local machine).

--


[Issue 15227] std.format undocumented grammar

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

--- Comment #3 from Doug Nickerson  ---
In addition to the undocumented syntax I've further noticed:
- grammar for 'Integer' technically allows leading 0's and disallows negative
integers
- 'Integer' is used in the grammar for both non-negative (Position) and
negative (Width, Precision) purposes
- the 'r' (raw) and 'u' (unsigned) format spec characters are not documented
anywhere (neither in the grammar or the rest of the text)

That last bullet is probably more important than any other.

Caveat on the original issue: there is indeed a hyperlink very early on in the
formattedWrite documentation, which goes to an external page that does explain
the positional syntax/semantics: "%n$" and "*m$" but not the forms involving
':'

Incidentally, that page (2004 edition) indicates a newer version is available:
http://pubs.opengroup.org/onlinepubs/9699919799/  (2013 edition).  However, it
doesn't appear to have anything new regarding positional notation.

Related question: is there a reason, or should std.format support the 'i', 'p',
or 'n' format spec characters from the *printf family of functions?

--


[Issue 15227] std.format undocumented grammar

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

--- Comment #4 from Doug Nickerson  ---
Correction: the 2013 edition link should be:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html

--