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] 
> <javascript:>> 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.
>>
>
>

Reply via email to