www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - std.regex.Stack

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
Today, I was surprised to discover that std.regex has a public stack
implementation (std.regex.Stack). Is this intended to be public? It's
causing a conflict with my code, and I found it strange that importing
std.regex should declare a type called 'Stack'.

I'm refraining from filing a bug for now, just in case there's a good
reason for this that I didn't think of.


T

-- 
Without outlines, life would be pointless.
Sep 05 2013
next sibling parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Thursday, 5 September 2013 at 22:49:49 UTC, H. S. Teoh wrote:
 Today, I was surprised to discover that std.regex has a public 
 stack
 implementation (std.regex.Stack). Is this intended to be 
 public? It's
 causing a conflict with my code, and I found it strange that 
 importing
 std.regex should declare a type called 'Stack'.

The declaration is not public - there is a "private:" line at the top of the file, and the module declares its public symbols explicitly. Conflicts between public and private symbols is a long-standing problem of D: http://d.puremagic.com/issues/show_bug.cgi?id=1238 http://wiki.dlang.org/DIP22
Sep 05 2013
parent Dmitry Olshansky <dmitry.olsh gmail.com> writes:
06-Sep-2013 03:11, Vladimir Panteleev пишет:
 On Thursday, 5 September 2013 at 22:49:49 UTC, H. S. Teoh wrote:
 Today, I was surprised to discover that std.regex has a public stack
 implementation (std.regex.Stack). Is this intended to be public? It's
 causing a conflict with my code, and I found it strange that importing
 std.regex should declare a type called 'Stack'.

The declaration is not public - there is a "private:" line at the top of the file, and the module declares its public symbols explicitly. Conflicts between public and private symbols is a long-standing problem of D: http://d.puremagic.com/issues/show_bug.cgi?id=1238 http://wiki.dlang.org/DIP22

LOL I couldn't stress the importance of that bug better :) Time to make private symbols invisible outside! (isn't that what module-level encapsulation was all about) https://github.com/D-Programming-Language/dmd/pull/739 -- Dmitry Olshansky
Sep 06 2013
prev sibling next sibling parent "Gary Willoughby" <dev nomad.so> writes:
On Thursday, 5 September 2013 at 23:11:21 UTC, Vladimir Panteleev 
wrote:
 Conflicts between public and private symbols is a long-standing 
 problem of D:

Wow! O_o
Sep 06 2013
prev sibling parent "eles" <eles eles.com> writes:
On Friday, 6 September 2013 at 18:16:18 UTC, Gary Willoughby 
wrote:
 On Thursday, 5 September 2013 at 23:11:21 UTC, Vladimir 
 Panteleev wrote:
 Wow! O_o

Yes. The compiler has been progressing since '99. O_o
Sep 06 2013