www.digitalmars.com         C & C++   DMDScript  

D - BUG: import std conflict

reply Ant <Ant_member pathlink.com> writes:
Here it is (seems that this is a old problem):

compiler message:
I.d(3): import std conflicts with gc.std at /dmd/src/phobos/internal/gc/gc.d(14)

1
- uncommenting line (2) - compiles OK
2
- commenting line (3) - compiles OK
3
- removing private from line (1) - no effect, same error message
4
- changing private to public on line (1) - no effect, same error message

so AFAICT --------------------
- the compiler message need to be reviewed
(can the compiler tell the difference at all?)
- public import might be broken broken (?)

----------------------
module I;

private import std.string; // (1)

public class I{}
----------------------


module II;

private import I;
private import internal.gc.gc;
//private import std.string;  // (2)

public class II
{
this()
{
printf("II %.*s\n",std.string.toString(11));  // (3)
}
}
Nov 06 2003
next sibling parent reply "Walter" <walter digitalmars.com> writes:
"Ant" <Ant_member pathlink.com> wrote in message
news:bof50a$2nnj$1 digitaldaemon.com...
 private import internal.gc.gc;

Why do you need to import the internal implementation of gc?
Nov 07 2003
parent Ant <Ant_member pathlink.com> writes:
In article <bogmhi$1sf7$2 digitaldaemon.com>, Walter says...
"Ant" <Ant_member pathlink.com> wrote in message
news:bof50a$2nnj$1 digitaldaemon.com...
 private import internal.gc.gc;

Why do you need to import the internal implementation of gc?

(I don't have dmd here) oops, maybe I don't. I just found in std.gc: void addRoot(void *p) that's what I'm using. But I don't think the problem is specific to the internal.gc.gc, I believe I have it with other imports from std. I'll confirm it tonight. (?Maybe removing the internal import will solve it?) I'll try to get a better example using only std imports. DUI doesn't compile at all, last problem was "private import std.string;" on two diferente source files giving the "conflict at std" message. Ant
Nov 07 2003
prev sibling parent reply Ant <Ant_member pathlink.com> writes:
In article <bof50a$2nnj$1 digitaldaemon.com>, Ant says...
Here it is (seems that this is a old problem):

I changed all imports in DUI to private and still get: dui/DUI.d(19): import std conflicts with ObjectG.std at dui/ObjectG.d(22) swaping lines 22 and 24 on ObjectG gives the same message (exactly - no line numbers changed). Sorry, I can't reproduce it on a simpler example. I'm going back to 0.74, let me know if you are looking at this problem I think I can help. I don't know what else to try. Maybe there is something funny on my DUI thing (?) but the compiler message doesn't help to find it out... We know that I'm not the only one to experience this problem. Ant #################### ObjectG.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.ObjectG; private import dui.Utils; private import def.Types; private import def.Constants; private import std.gc; // this is line 22 private import std.string; // this is line 24 private import dui.OGTK; private import ddi.Value; ############################# DUI.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.DUI; private import def.Types; private import def.Constants; private import dui.Utils; private import std.string; // this is line 19 //private import std.thread; //private import dui.SListG; //private import dui.ListG; ##############################
Nov 07 2003
parent reply "Walter" <walter digitalmars.com> writes:
Try renaming ObjectG.std to ObjectG.mystd.

"Ant" <Ant_member pathlink.com> wrote in message
news:bohr98$d92$1 digitaldaemon.com...
 In article <bof50a$2nnj$1 digitaldaemon.com>, Ant says...
Here it is (seems that this is a old problem):

I changed all imports in DUI to private and still get: dui/DUI.d(19): import std conflicts with ObjectG.std at dui/ObjectG.d(22) swaping lines 22 and 24 on ObjectG gives the same message (exactly - no line numbers changed). Sorry, I can't reproduce it on a simpler example. I'm going back to 0.74, let me know if you are looking at this problem I think I can help. I don't know what else to try. Maybe there is something funny on my DUI thing (?) but the compiler message doesn't help to find it out... We know that I'm not the only one to experience this problem. Ant #################### ObjectG.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.ObjectG; private import dui.Utils; private import def.Types; private import def.Constants; private import std.gc; // this is line 22 private import std.string; // this is line 24 private import dui.OGTK; private import ddi.Value; ############################# DUI.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.DUI; private import def.Types; private import def.Constants; private import dui.Utils; private import std.string; // this is line 19 //private import std.thread; //private import dui.SListG; //private import dui.ListG; ##############################

Nov 08 2003
parent Ant <Ant_member pathlink.com> writes:
In article <bojese$2p41$1 digitaldaemon.com>, Walter says...
Try renaming ObjectG.std to ObjectG.mystd.

What do you mean? there is no ObjectG.std! Are you saying to use alias? how? Ant
"Ant" <Ant_member pathlink.com> wrote in message
news:bohr98$d92$1 digitaldaemon.com...
 In article <bof50a$2nnj$1 digitaldaemon.com>, Ant says...
Here it is (seems that this is a old problem):

I changed all imports in DUI to private and still get: dui/DUI.d(19): import std conflicts with ObjectG.std at dui/ObjectG.d(22) swaping lines 22 and 24 on ObjectG gives the same message (exactly - no line numbers changed). Sorry, I can't reproduce it on a simpler example. I'm going back to 0.74, let me know if you are looking at this problem I think I can help. I don't know what else to try. Maybe there is something funny on my DUI thing (?) but the compiler message doesn't help to find it out... We know that I'm not the only one to experience this problem. Ant #################### ObjectG.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.ObjectG; private import dui.Utils; private import def.Types; private import def.Constants; private import std.gc; // this is line 22 private import std.string; // this is line 24 private import dui.OGTK; private import ddi.Value; ############################# DUI.d /** * DUI D (graphic) User Interface * an implementation through GTK+ * by Antonio Monteiro. * DUI is released under the LGPL license * This file is part of DUI. * Send comments and suggestions to duitoolkit yahoo.ca * or go to the yahoo group * http://groups.yahoo.com/group/duitoolkit * (Group email: duitoolkit yahoogroups.com) * See detailed information at DUI home page * http://ca.geocities.com/duitoolkit */ module dui.DUI; private import def.Types; private import def.Constants; private import dui.Utils; private import std.string; // this is line 19 //private import std.thread; //private import dui.SListG; //private import dui.ListG; ##############################


Nov 09 2003