On Thursday, August 18, 2016 at 7:37:28 AM UTC+1, Jeroen Demeyer wrote:
>
> On 2016-08-18 00:02, Simon King wrote: 
> > Slightly elaborating on my suggestion: Split the code from the old-style 
> > p_group_cohomology-2.1.6.spkg into four parts, namely 
> > 1. an optional package "meataxe", which provides a C library and some 
> >     executables and which is *not* a Python package. It is useful for 
> >     Sage's matrix arithmetic and thus is wrapped by OptionalExtension 
> >     in the Sage library 
>
> Obviously, it would be better if you could just use the "official" 
> meataxe package, not Simon King's personal copy. But I understand that 
> this might not be possible. 
>
> > 2. an optional package "modular_resolution", which depends on meataxe, 
> >     provides a C library and some executables, which is *not* a Python 
> >     package and which is of no use without 3. and 4. 
>
> Right. So meataxe and modular_resolution will then be "autotools" 
> packages, I suppose? 
>
> > 3. Gap and Singular library functions, that certainly should be 
> installed 
> >     into SAGE_ROOT/src/ext/gap resp. .../singular (should it not?), and 
> a 
> >     data-base of cohomology rings 
>
> Again, packages should not install stuff in the Sage sources. Especially 
> because your package seems useful even without Sage. 
>
> Does a concept of "GAP packages" and "Singular packages" exist? If so, 
> you should follow recommendations for those kinds of packages to install 
> your GAP/Singular code. 
>

With GAP it is problematic, as updating GAP wipes out installed GAP 
packages.
Also there is a lot of boilerplate to produce for a GAP package, and I 
would not really recommend this, unless
it's a separate piece useful with GAP alone. 
An alternative is to use libGAP factory function facility.
This allows you to embed GAP code into py(x) files.
E.g.

sage: t=libgap.function_factory("""function(m)
....: local a,b;
....: a:=m^2;
....: return a-1;
....: end""")
sage: t(5)
24


With Singular, you might look at Normaliz package, that installs a Singular 
"library", and do what they do.
 

>
> If you really have no idea what to do, install the code in 
> local/share/gap/modular_resolution and 
> local/share/singular/modular_resolution 
>
> > 4. Cython/Python code that depends on 1., 2. and 3., and shall either 
> >     be OptionalExtension in the Sage library (but people seem to not 
> >     like it) or a pip-installable Python package p_group_cohomology, 
>
> > where 3. should be provided as data files either by 2. or by 4. 
>
> I would say: provide it with 2. You could also consider merging 2., 3. 
> and 4. in one package, since they look closely related (one library + 
> various interfaces). 
>
> Good. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to