Thanks for replies (sorry I was not notified)
The matter was for running tests often (BDD) and Pkg doesn't seem to be the 
solution.
Finally I resolved it but still don't understand what was the matter. :)
I've defined all modules in package.jl with exports and include then use 
"using Package.ModuleA.typeA" in moduleB for example.

Le lundi 21 mars 2016 04:13:24 UTC+1, James Dang a écrit :
>
> If MyDir is on the LOAD_PATH, this works for me:
>
> LOAD_PATH/
>   Foo/
>     src/
>       Foo.jl
>
> Foo.jl:
>   module Foo
>   ...
>   end
>
> in separate code:
>    import Foo
>
>
>
>
>
>
> On Wednesday, March 16, 2016 at 9:42:37 PM UTC+8, Gregory Salvan wrote:
>>
>> Hi,
>> I don't understand the way of importing/using modules, or including files.
>> I've look at documentation (FAQ and modules) and into this list for old 
>> subjects, and tested all solutions I found.
>>
>> with julia version 0.4.3 on gentoo
>>
>> directory structure looks like:
>>
>> package.jl (directory)
>>   |_ src
>>   |  |_ fileA.jl
>>   |  |_ fileB.jl
>>   |  |_ fileC.jl
>>   |  |_ fileD.jl
>>   |  |_ package.jl
>>   |_ test
>>      |_ testA.jl
>>
>> The* first issue* I had was with "using" in tests, for example I've 
>> tried:
>>
>> push!(LOAD_PATH, string(dirname(@__FILE__), "/..src")) # just to try - 
>> ModuleA is in fileA.jl in ../src
>> using ModuleA
>> # alternativelly:
>> # using ModuleA.TypeA1 or using ModuleA: TypeA1...
>> facts("Test ModuleA") do
>>   context("create") do
>>      type_a1 = ModuleA.TypeA1()
>>   end
>> end
>>
>>
>> I've tested launching this test with :
>> JULIA_LOAD_PATH=./src/ LOAD_PATH=./src julia --color=yes test/testA.jl
>>
>> (no differences with import too)
>>
>> The error message is:
>> ERROR: LoadError: ArgumentError: ModuleA not found in path
>>
>> Instead of import/using (but that's not what I wanted), It's OK if I use :
>> include("../src/fileA.jl")
>>
>>
>>
>> The *second issue* is when I wanted to define modules in package.jl this 
>> way:
>>
>> module Package
>>   module ModA
>>     include("fileA.jl")
>>     include("fileB.jl")
>>   end
>>   module ModC
>>     include("fileC.jl")
>>   end
>> end
>>
>> And have for example a fileD.jl included in fileA.jl and fileB.jl (or 
>> fileC.jl) with and immutable type. (I've included fileD.jl because I 
>> couldn't use "using" but I would prefer "using")
>> I have an error ERROR: LoadError: LoadError: LoadError: LoadError: 
>> LoadError: invalid redefinition of constant ImmutableType
>>
>> So as I can't use "using" to avoid the reloading what can I do? 
>> what I've not understood about julia import/using and include ?
>>
>> NOTE:
>> some things I've tried: fileD.jl with a module ModuleD and "using" with 
>> and without  __precompile__
>> setting LOAD_PATH and JULIA_LOAD_PATH globally with bashrc or passing it 
>> to shell
>> ...
>>
>>

Reply via email to