OK, I can build Nemo. But how do I load modules from Nemo now that it is installed and built.
For example "using Nemo", "using Rings", "using Fields" all fail, complaining that it can't find the modules. I must be missing a step somewhere. Bill. On 12 September 2014 00:47, Bill Hart <[email protected]> wrote: > It's ok, I got it. Pkg.build() > > Bill. > > On 12 September 2014 00:38, Bill Hart <[email protected]> wrote: > >> I had a go at making a preliminary package which should vaguely build on >> Linux when "using Nemo" is run from within the src/ directory. >> >> I checked this works on my machine at least. >> >> I also checked that Pkg.clone("https://github.com/wbhart/nemo.git") >> clones the Nemo repository from within Julia. But this seems to only clone >> the repository and doesn't appear to issue "using Nemo" as I had expected. >> >> Also typing "using Nemo" manually says that it can't find Nemo. What >> command to users have to issue to get "using Nemo" to actually do something? >> >> Bill. >> >> >> >> On 10 September 2014 16:26, Isaiah Norton <[email protected]> >> wrote: >> >>> >>> This was what I thought of trying first. But I couldn't figure out how >>>> it worked out what GitHub repository to associate this with, or whether it >>>> would try to create one, possibly scrubbing my existing nemo repository on >>>> GitHub. Obviously I don't want to lose my commit history. >>> >>> >>> For Pkg manager purposes, the association will be created later (when >>> you register the package). >>> >>> It also isn't clear where Julia creates the empty git repository. In the >>>> current directory? Or in some subdirectory of the Julia source tree? >>> >>> >>> Under `$HOME/.julia/v0.3` (or v0.4 if you are on git master) >>> >>> For the most part I can just run configure, make, make install for now >>>> and set some library paths (if I can figure out what kind of system I am >>>> on). >>> >>> >>> There are some macros to help with this: @osx, @linux, @unix (both), and >>> @windows. There is also a variable called OS_NAME with a platform-specific >>> value (:Windows, :Linux, etc.) See: >>> >>> http://docs.julialang.org/en/release-0.3/manual/calling-c-and-fortran-code/#handling-platform-variations >>> >>> >>> >>> On Wed, Sep 10, 2014 at 10:18 AM, Bill Hart <[email protected] >>> > wrote: >>> >>>> >>>> >>>> On Wednesday, 10 September 2014 15:57:56 UTC+2, Isaiah wrote: >>>>> >>>>> Is there documentation somewhere explaining how to do the latter? Or >>>>>> can someone help me with doing the latter? >>>>> >>>>> >>>>> You could run `Pkg.generate("Nemo")` and then copy and commit (some >>>>> of) the resulting files in your own Nemo git tree; there aren't very many. >>>>> >>>> >>>> This was what I thought of trying first. But I couldn't figure out how >>>> it worked out what GitHub repository to associate this with, or whether it >>>> would try to create one, possibly scrubbing my existing nemo repository on >>>> GitHub. Obviously I don't want to lose my commit history. >>>> >>>> It also isn't clear where Julia creates the empty git repository. In >>>> the current directory? Or in some subdirectory of the Julia source tree? >>>> >>>> >>>>> I can't find any documentation explaining where to put the commands in >>>>>> a Pkg to actually git clone flint, build it, install it and set up paths >>>>>> for Nemo. Given the complexities of installing flint for the user, I'd >>>>>> like >>>>>> to have the Julia package manager do this automatically if at all >>>>>> possible. >>>>>> And I see it does seem to be possible. I just can't figure out how. >>>>>> >>>>> >>>>> The Pkg manager will look for a file called `MYPKG/deps/build.jl` and >>>>> run that if it exists. That's just a Julia file, so you can do whatever >>>>> you >>>>> want there (shell out, etc.). >>>>> >>>> >>>> Perfect. For the most part I can just run configure, make, make install >>>> for now and set some library paths (if I can figure out what kind of system >>>> I am on). >>>> >>>> Finding the Julia installation on the system in order to link against >>>> the gmp/mpfr might be slightly more difficult. >>>> >>>> >>>>> One option is to use the BinDeps package which provides primitives for >>>>> interacting with various package managers and build systems: >>>>> >>>>> https://github.com/JuliaLang/BinDeps.jl >>>>> >>>>> A very advanced and fully-developed usage example can be found in the >>>>> Cairo package, which has Autotools, Apt, Yum, and several other targets: >>>>> >>>>> https://github.com/JuliaLang/Cairo.jl/blob/master/deps/build.jl >>>>> >>>>> There are a number of other examples to draw from. Hopefully the above >>>>> links will give you a sense of where to start. I can help out on Linux and >>>>> Windows (@ihnorton on github). >>>>> >>>> >>>> Thanks. >>>> >>>> Bill. >>>> >>>> >>>>> >>>>> >>>>> On Wed, Sep 10, 2014 at 9:31 AM, Bill Hart <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I have been writing a new Julia package, which I have called Nemo >>>>>> (it's essentially a limited computer algebra system). >>>>>> >>>>>> I have two specific problems: >>>>>> >>>>>> 1) The git and GitHub repository for Nemo already exists, but I >>>>>> haven't created a Julia Pkg yet. >>>>>> >>>>>> https://github.com/wbhart/nemo >>>>>> >>>>>> The documentation on creating a Julia Pkg seems to assume you are >>>>>> going to start with the Pkg then commit code to the git repository that >>>>>> it >>>>>> creates, not create a git/github project and then add the necessary stuff >>>>>> to turn it into a Julia package. >>>>>> >>>>>> Is there documentation somewhere explaining how to do the latter? Or >>>>>> can someone help me with doing the latter? >>>>>> >>>>>> (I have a couple of small build issues to fix in order for flint to >>>>>> work on Windows 64 before it will work there. But I will be working on >>>>>> those right away. I have managed to get it to work with Julia there, just >>>>>> not hacked the fixes into the flint build system yet. Other than this >>>>>> minor >>>>>> thing, I am quite ready to publish Nemo as a package right away (well, >>>>>> apart from a horrible 3x slowdown and excessive memory usage caused by >>>>>> gc, >>>>>> but I think I've given up on solving that problem for now).) >>>>>> >>>>>> 2) Nemo relies on mpir (or GMP), mpfr and flint, which are large >>>>>> external C/assembly libraries which need to get built or be available to >>>>>> run Nemo. I understand Julia has its own GMP and MPFR which I can >>>>>> probably >>>>>> link to if they are recent enough. >>>>>> >>>>>> Flint needs to be built when the package is installed. It takes a >>>>>> long time to build, e.g. 40 minutes or so on Windows, maybe a third of >>>>>> that >>>>>> on Linux. >>>>>> >>>>>> I can't find any documentation explaining where to put the commands >>>>>> in a Pkg to actually git clone flint, build it, install it and set up >>>>>> paths >>>>>> for Nemo. Given the complexities of installing flint for the user, I'd >>>>>> like >>>>>> to have the Julia package manager do this automatically if at all >>>>>> possible. >>>>>> And I see it does seem to be possible. I just can't figure out how. >>>>>> >>>>>> Flint is here: >>>>>> >>>>>> https://github.com/wbhart/flint2 >>>>>> >>>>>> Can anyone help, or point me in the right direction? >>>>>> >>>>>> Bill. >>>>>> >>>>> >>>>> >>> >> >
