www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 11241] New: DIP 37 causes problems

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=11241

           Summary: DIP 37 causes problems
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: rswhite4 googlemail.com



core/all.d:
----
module core.all;

import std.array;
----

core/memory/test.d
----
module core.memory.test;

import std.array;
----

Compile all.d in 2.063: >dmd core/all.d -main
No errors

Compile all.d in 2.064 beta1: >dmd core/all.d -main
----
D:\D\dmd2\windows\bin\..\..\src\phobos\std\array.d(15): Error: importing
package
 'memory' requires a 'package.d' file which cannot be found in
'core\memory\pack
age.d'
import path[0] = D:\D\dmd2\windows\bin\..\..\src\phobos
import path[1] = D:\D\dmd2\windows\bin\..\..\src\druntime\import
----

Compile all.d and test.d in 2.063: >dmd core/all.d core/memory/test.d
----
D:\D\dmd2\windows\bin\..\..\src\phobos\std\array.d(15): Error: can only import
f
rom a module, not from package core.memory
Error: module core.memory from file
D:\D\dmd2\windows\bin\..\..\src\druntime\imp
ort\core\memory.d conflicts with package name memory
D:\D\dmd2\windows\bin\..\..\src\phobos\std\container.d(212): Error: can only
imp
ort from a module, not from package core.memory
Error: module core.memory from file
D:\D\dmd2\windows\bin\..\..\src\druntime\imp
ort\core\memory.d conflicts with package name memory
D:\D\dmd2\windows\bin\..\..\src\phobos\std\typecons.d(46): Error: can only
impor
t from a module, not from package core.memory
Error: module core.memory from file
D:\D\dmd2\windows\bin\..\..\src\druntime\imp
ort\core\memory.d conflicts with package name memory
----

Compile all.d and test.d in 2.064: >dmd core/all.d core/memory/test.d
----
D:\D\dmd2\windows\bin\..\..\src\phobos\std\array.d(15): Error: importing
package
 'memory' requires a 'package.d' file which cannot be found in
'core\memory\pack
age.d'
import path[0] = D:\D\dmd2\windows\bin\..\..\src\phobos
import path[1] = D:\D\dmd2\windows\bin\..\..\src\druntime\import
----

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 13 2013
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=11241


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID



This is invalid issue, because the root package name 'core' is reserved for
druntime.

When packate/module name is found, compiler should pick the first found source
file or directly in the import path.
With 2.063 and earlier, the rule was not correctly implemented.
(If a module name 'core.memory' had been searched from Phobos code, compiler
had wongly skipped the first found directory 'core/memory/' in your project.)

You had been used the 'core' package name in your project. (Un)fortunately it
had not been caused problems, but it should conflict with the druntime.
Therefore the current git-head behavior is essentially correct behavior.

Please change the package name in your project.

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