Berkeley2014 Ask Dan and Mike
This page will contain an attempt at a transcript for the "Ask Dan and Mike" session.
Branden : Suppose there is a method that exists for one type, how can one implement that same method for the same type? Can one add new options when you do this?
Dan : Methods are handled in two ways. Some methods handle options for all argument types, and some for the individual methods (most are global). If they are handled globally, there is not a way to do this. (Is this correct?)
Mike : Should Options=>true be set on all methods by default?
Branden : How does one find the code for a given method in the M2 source?
Dan : Tag search in emacs, decompose in the source code.
Mats : When you compute the resolution of a matrix which is not homogeneous, garbage is returned. Is there a way around that?
Mike : For things like resolution, you must check your matrices/modules are homogeneous.
Robert : How can I effectively use large matrices without eating up a lot of RAM?
Mike : You can make sparse matrices via map(Module,Module,OptionTable) or mutableMatrix.
Luis : Ambient ring, how can I 'use' the ring in the code of the package?
Dan : Don't use 'use'! Use subscripts of the form S_0, S_1, etc to access the variables of S, don't do it using the name of the variable.
Branden : Where should one put temporary files?
Dan : Use temporaryFileName() to create a temp directory, etc.
Dan : To submit issues in the M2 system, visit here and click 'issues' and fill out the issue report.
Nathan Greive : Is there a way to make sure your package returns an error in a certain case?
Dan : May use 'try', but 'try' is a blunt instrument. Don't rely on this to catch a particular type of error, since errors in M2 are not robust enough to catch only a certain type of error, etc.
Doug : Is there a way to search existing packages to see/use code that already has done.