Changes between Version 2 and Version 88 of Ticket #21437


Ignore:
Timestamp:
07/11/17 08:14:10 (4 years ago)
Author:
SimonKing
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #21437

    • Property Status changed from needs_review to needs_work
    • Property Summary changed from Some additions to the optional MeatAxe wrapper to Proper initialisation for the optional MeatAxe library
    • Property Dependencies changed from to #23352 #23399 #23400
    • Property Milestone changed from sage-7.4 to sage-7.6
    • Property Commit changed from e861781fcdd710864b01db832a700b13af20218d to b6c8114f9c1480929a9bac9671d9c7b9fa689402
  • Ticket #21437 – Description

    v2 v88  
    1 While working at #18514, I found a couple of things to be fixed in the !MeatAxe wrapper:
     1While working at #18514, I found a couple of things to be fixed in the !MeatAxe wrapper. At some point (see comments), it was suggested to separate these things. So, we now have the tickets #23352, #23399 and #23400. What is left:
    22
    3 - Things used to crash when reading a matrix from an empty/non-existent file. Rather, it should return an empty matrix.
    4 - !MeatAxe executable rely on an environment variable declaring where to find multiplication tables. This variable is now defined upon importing `sage.matrix.matrix_gfpn_dense`.
    5 - An important fix: Previously, for pickling a matrix, I was simply dumping the contents of a memory block. By !MeatAxe's design, one row occupies a multiple of `sizeof(long)` in memory, but there may be trailing empty bytes, whose number will generally depend on `sizeof(long)`. Hence, pickling must not dump the whole memory block, as it is machine dependent. Instead, only the parts of memory that are actually used to store data have to be dumped.
    6 - There are some auxiliary functions that I would like to use in my group cohomology package (related with slicing).
     3- !MeatAxe executables rely on an environment variable declaring where to find multiplication tables.
     4- Each module that links against the !MeatAxe library, which is a dynamic C library, has to define a certain C variable, which serves the same purpose as the aforementioned environment variable.
     5
     6I suggest to add here a function that does the initialisation and must be called be each module using !MeatAxe functions. For that purpose, a new module sage.libs.meataxe is created.