why

Derek Parnell derek at nomail.afraid.org
Sun Jul 2 18:40:01 PDT 2006


On Sun, 02 Jul 2006 18:34:03 -0700, John Reimer wrote:

> Derek Parnell wrote:
>> On Sun, 02 Jul 2006 16:12:53 -0700, John Reimer wrote:
>> 
>>> Derek Parnell wrote:
>>>> On Mon, 03 Jul 2006 03:30:06 +1000, Hasan Aljudy 
>>>> <hasan.aljudy at gmail.com> wrote:
>>>>
>>>>> freud wrote:
>>>>>> why do i always get a "xx.d:module xx cannot read file xx.d" when i 
>>>>>> compile
>>>>>> xx.d?  i'm just beginning to learn the d language, anyone can help me ?
>>>>>>
>>>>> Could be anything, but ..
>>>>> When it happens to me, it's because I'm using `build` and the module 
>>>>> name doesn't match the file name.
>>>> Well, I still can cause it to happen no matter method I choose. For 
>>>> example ...
>>>>
>>>> ---- main.d ----
>>>> module xyzzy;
>>>> void main(){}
>>>> ------------------
>>>>
>>>> build main.d is successful.
>>>> dmd main.d is successful.
>>>>
>>>> --Derek Parnell
>>>> Melbourne, Australia
>>> The error was showing up when I mistakenly tried to import a module like so:
>>>
>>> --------------
>>>
>>> module amod;
>>>
>>> struct foo {}
>>>
>>> --------------
>>>
>>> module bmod;
>>>
>>> private import Amod;
>>>
>>> void main() {}
>>>
>>> ---------------------
>>>
>>> but this doesn't seem to produce the problem. It happened when I 
>>> imported a library module with the first letter capitalized, though the 
>>> actual module name was all lower case.
>>>
>>> I'm not sure which platform I was struggling with, but I think it was 
>>> windows.  I finally figured out that build was choking on the 
>>> recognition of the capital letter.
>> 
>> I believe that D is case-sensitive when it comes to module names. I know
>> that these translate into case-insensitive file names in Windows but
>> there's not much I can do about that, I guess.
>> 
> 
> No, that's true. No problem.  Just was useful for me to figure out the 
> problem was.  Now that I know, I'm careful. :)
> 
> -JJR

This is a quote from the D documentation on modules ...

"By convention, package and module names are all lower case. This is
because those names have a one-to-one correspondence with the operating
system's directory and file names, and many file systems are not case
sensitive. All lower case package and module names will minimize problems
moving projects between dissimilar file systems."

Good advice to heed.

-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Down with mediocrity!"
3/07/2006 11:39:10 AM



More information about the Digitalmars-d mailing list