Bug 11241 – DIP 37 causes problems

Status
RESOLVED
Resolution
INVALID
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-10-13T02:56:00Z
Last change time
2013-10-14T23:22:48Z
Assigned to
nobody
Creator
rswhite4

Comments

Comment #0 by rswhite4 — 2013-10-13T02:56:17Z
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 ----
Comment #1 by k.hara.pg — 2013-10-14T23:22:48Z
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.