Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
347 stars 231 forks source link

MultiplierIdeals package doesn't work #2454

Closed AviSteiner closed 3 months ago

AviSteiner commented 2 years ago

I am using Macaulay2 version 1.19.1. I get the following error:

i1 : needsPackage "MultiplierIdeals"
MultiplierIdeals.m2:143:17:(2):[11]: error: assignment to protected built-in global variable 'multiplierIdeal'
DanGrayson commented 2 years ago

I can't reproduce that here. Perhaps you have a corrupted version of the file "MultiplierIdeals.m2" in your current directory.

denham0 commented 2 years ago

@DanGrayson I've got Macaulay2 version 1.19.1 running on OS X as well as Ubuntu 16.04. The error @AviSteiner notes happens for me only on my Ubuntu 16.04 system (perhaps the same distribution he's using.) Not on my Mac.

AviSteiner commented 2 years ago

@DanGrayson I've got Macaulay2 version 1.19.1 running on OS X as well as Ubuntu 16.04. The error @AviSteiner notes happens for me only on my Ubuntu 16.04 system (perhaps the same distribution he's using.) Not on my Mac.

I'm using Ubuntu 20.04.3 LTS (GNU/Linux 5.8.0-63-generic x86_64)

DanGrayson commented 2 years ago

Could you try adding "-q" to the M2 command line and try again?

We haven't released a version of M2 for Ubuntu 16.04 since 2019. How did you get M2 1.19.1 installed there?

denham0 commented 2 years ago

Sorry, it’s actually 18.04. Maybe my brain missed an update.

This is what I get:

@.***:~$ M2 -q Macaulay2, version 1.19.1 with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases, MinimalPrimes, PrimaryDecomposition, ReesAlgebra, Saturation, TangentCone

i1 : needsPackage "MultiplierIdeals" --warning: symbol "Classic" in PackageDictionary is shadowed by a symbol in HyperplaneArrangements.Dictionary -- use the synonym Package$Classic

o1 = MultiplierIdeals

o1 : Package

i2 :

On Apr 27, 2022, at 7:00 PM, Daniel R. Grayson @.***> wrote:

Could you try adding "-q" to the M2 command line and try again?

We haven't released a version of M2 for Ubuntu 16.04 since 2019. How did you get M2 1.19.1 installed there?

— Reply to this email directly, view it on GitHub https://github.com/Macaulay2/M2/issues/2454#issuecomment-1111559198, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLDLNUIBKCCB3PPEQHHJOTVHHBJ3ANCNFSM5T4T33XA. You are receiving this because you commented.

DanGrayson commented 2 years ago

The effect of "-q" on the command line is to omit the user "application directory" from the path. That's where packages get installed when you run "installPackage" on them. So maybe you have an old version of MultiplierIdeals there, since with "-q" the package loads correctly. You could try

uninstallPackage "MultiplierIdeals"

to get rid of it, or

uninstallAllPackages()

to get rid of all previously installed packages.

denham0 commented 2 years ago

Thanks, it turns out it was a conflict coming from the development version of HyperplaneArrangements.

DanGrayson commented 2 years ago

I'm glad it worked out.

AviSteiner commented 2 years ago

I'm glad it worked out.

Well, it hasn't quite worked out yet. Graham, Greg, and I still need to figure out what we did that's making this happen. The only thing I can think of is that we have some exports with the same name as exports from MultiplierIdeals, but that shouldn't make a difference.

DanGrayson commented 2 years ago

Try setting notify = true before loading it, so you can see which file is actually being loaded. Better yet, add --notify to the M2 command line to see which version of everything else is being loaded.

AviSteiner commented 2 years ago

Try setting notify = true before loading it, so you can see which file is actually being loaded. Better yet, add --notify to the M2 command line to see which version of everything else is being loaded.

Here's what I got when I ran M2 --notify:

-- loading startup.m2 for the first time
-- phase 1
-- executable = /usr/bin/M2-binary
Macaulay2, version 1.19.1
-- prefixDirectory = /usr/
-- topBuilddir     =
-- topSrcdir       =
-- phase 2
 -- file search path directories:
 --    /usr/share/Macaulay2/Core/
 --    /usr/share/Macaulay2/
 -- loading Core.m2
 -- reading /usr/share/Macaulay2/Core/Core.m2
 -- about to read /usr/share/Macaulay2/Core/loadsequence
 -- loading run.m2
 -- loading system.m2
 -- loading methods.m2
 -- loading option.m2
 -- loading classes.m2
 -- loaded /usr/share/Macaulay2/Core/classes.m2
 -- loaded /usr/share/Macaulay2/Core/option.m2
 -- loaded /usr/share/Macaulay2/Core/methods.m2
 -- loading remember.m2
 -- loaded /usr/share/Macaulay2/Core/remember.m2
 -- Layout#1 assigned for directory /usr/
 -- Layout#1 assigned for directory /home/asteine9/.Macaulay2/local/
 -- loaded /usr/share/Macaulay2/Core/system.m2
 -- loaded /usr/share/Macaulay2/Core/run.m2
 -- loading shared.m2
 -- loaded /usr/share/Macaulay2/Core/shared.m2
 -- loading autoload.m2
 -- loaded /usr/share/Macaulay2/Core/autoload.m2
 -- loading regex.m2
 -- loaded /usr/share/Macaulay2/Core/regex.m2
 -- loading profile.m2
 -- loaded /usr/share/Macaulay2/Core/profile.m2
 -- loading debugging.m2
 -- loading nets.m2
 -- loading set.m2
 -- loaded /usr/share/Macaulay2/Core/set.m2
 -- loaded /usr/share/Macaulay2/Core/nets.m2
 -- loaded /usr/share/Macaulay2/Core/debugging.m2
 -- loading files.m2
 -- loaded /usr/share/Macaulay2/Core/files.m2
 -- loading fold.m2
 -- loaded /usr/share/Macaulay2/Core/fold.m2
 -- loading max.m2
 -- loaded /usr/share/Macaulay2/Core/max.m2
 -- loading structure.m2
 -- loaded /usr/share/Macaulay2/Core/structure.m2
 -- loading combinatorics.m2
 -- loaded /usr/share/Macaulay2/Core/combinatorics.m2
 -- loading lists.m2
 -- loaded /usr/share/Macaulay2/Core/lists.m2
 -- loading tables.m2
 -- loaded /usr/share/Macaulay2/Core/tables.m2
 -- loading robust.m2
 -- loaded /usr/share/Macaulay2/Core/robust.m2
 -- loading content.m2
 -- loaded /usr/share/Macaulay2/Core/content.m2
 -- loading hypertext.m2
 -- loaded /usr/share/Macaulay2/Core/hypertext.m2
 -- loading validate.m2
 -- loaded /usr/share/Macaulay2/Core/validate.m2
 -- loading expressions.m2
 -- loaded /usr/share/Macaulay2/Core/expressions.m2
 -- loading peek.m2
 -- loaded /usr/share/Macaulay2/Core/peek.m2
 -- loading code.m2
 -- loading gateway.m2
 -- loaded /usr/share/Macaulay2/Core/gateway.m2
 -- loaded /usr/share/Macaulay2/Core/code.m2
 -- loading printing.m2
 -- loaded /usr/share/Macaulay2/Core/printing.m2
 -- loading http.m2
 -- loaded /usr/share/Macaulay2/Core/http.m2
 -- loading computations.m2
 -- loaded /usr/share/Macaulay2/Core/computations.m2
 -- loading rings.m2
 -- loaded /usr/share/Macaulay2/Core/rings.m2
 -- loading integers.m2
 -- loaded /usr/share/Macaulay2/Core/integers.m2
 -- loading engine.m2
 -- loaded /usr/share/Macaulay2/Core/engine.m2
 -- loading enginering.m2
 -- loaded /usr/share/Macaulay2/Core/enginering.m2
 -- loading rationals.m2
 -- loaded /usr/share/Macaulay2/Core/rationals.m2
 -- loading reals.m2
 -- loaded /usr/share/Macaulay2/Core/reals.m2
 -- loading intervals.m2
 -- loaded /usr/share/Macaulay2/Core/intervals.m2
 -- loading quotient.m2
 -- loaded /usr/share/Macaulay2/Core/quotient.m2
 -- loading powers.m2
 -- loaded /usr/share/Macaulay2/Core/powers.m2
 -- loading orderedmonoidrings.m2
 -- loaded /usr/share/Macaulay2/Core/orderedmonoidrings.m2
 -- loading variables.m2
 -- loaded /usr/share/Macaulay2/Core/variables.m2
 -- loading indeterminates.m2
 -- loaded /usr/share/Macaulay2/Core/indeterminates.m2
 -- loading ofcm.m2
 -- loaded /usr/share/Macaulay2/Core/ofcm.m2
 -- loading dotdot.m2
 -- loaded /usr/share/Macaulay2/Core/dotdot.m2
 -- loading modules.m2
 -- loaded /usr/share/Macaulay2/Core/modules.m2
 -- loading matrix.m2
 -- loaded /usr/share/Macaulay2/Core/matrix.m2
 -- loading matrix1.m2
 -- loaded /usr/share/Macaulay2/Core/matrix1.m2
 -- loading mutablemat.m2
 -- loaded /usr/share/Macaulay2/Core/mutablemat.m2
 -- loading localring.m2
 -- loaded /usr/share/Macaulay2/Core/localring.m2
 -- loading quotring.m2
 -- loaded /usr/share/Macaulay2/Core/quotring.m2
 -- loading freealgebras.m2
 -- loaded /usr/share/Macaulay2/Core/freealgebras.m2
 -- loading multilin.m2
 -- loaded /usr/share/Macaulay2/Core/multilin.m2
 -- loading flint.m2
 -- loaded /usr/share/Macaulay2/Core/flint.m2
 -- loading modules2.m2
 -- loading matrix2.m2
 -- loading gb.m2
 -- loaded /usr/share/Macaulay2/Core/gb.m2
 -- loaded /usr/share/Macaulay2/Core/matrix2.m2
 -- loaded /usr/share/Macaulay2/Core/modules2.m2
 -- loading galois.m2
 -- loaded /usr/share/Macaulay2/Core/galois.m2
 -- loading ringmap.m2
 -- loaded /usr/share/Macaulay2/Core/ringmap.m2
 -- loading newring.m2
 -- loaded /usr/share/Macaulay2/Core/newring.m2
 -- loading basis.m2
 -- loaded /usr/share/Macaulay2/Core/basis.m2
 -- loading genmat.m2
 -- loaded /usr/share/Macaulay2/Core/genmat.m2
 -- loading pushforward.m2
 -- loaded /usr/share/Macaulay2/Core/pushforward.m2
 -- loading ext.m2
 -- loaded /usr/share/Macaulay2/Core/ext.m2
 -- loading tor.m2
 -- loaded /usr/share/Macaulay2/Core/tor.m2
 -- loading gradedmodules.m2
 -- loaded /usr/share/Macaulay2/Core/gradedmodules.m2
 -- loading chaincomplexes.m2
 -- loaded /usr/share/Macaulay2/Core/chaincomplexes.m2
 -- loading res.m2
 -- loaded /usr/share/Macaulay2/Core/res.m2
 -- loading betti.m2
 -- loaded /usr/share/Macaulay2/Core/betti.m2
 -- loading monideal.m2
 -- loaded /usr/share/Macaulay2/Core/monideal.m2
 -- loading intersect.m2
 -- loaded /usr/share/Macaulay2/Core/intersect.m2
 -- loading factor.m2
 -- loaded /usr/share/Macaulay2/Core/factor.m2
 -- loading integrate.m2
 -- loaded /usr/share/Macaulay2/Core/integrate.m2
 -- loading minPres.m2
 -- loaded /usr/share/Macaulay2/Core/minPres.m2
 -- loading monomcurve.m2
 -- loaded /usr/share/Macaulay2/Core/monomcurve.m2
 -- loading fano.m2
 -- loaded /usr/share/Macaulay2/Core/fano.m2
 -- loading schubert.m2
 -- loaded /usr/share/Macaulay2/Core/schubert.m2
 -- loading local.m2
 -- loaded /usr/share/Macaulay2/Core/local.m2
 -- loading packages.m2
 -- database not present: /usr/lib/x86_64-linux-gnu/Macaulay2/Core/cache/rawdocumentation-dcba-8.db
 -- loaded /usr/share/Macaulay2/Core/packages.m2
 -- loading examples.m2
 -- loaded /usr/share/Macaulay2/Core/examples.m2
 -- loading document.m2
 -- loaded /usr/share/Macaulay2/Core/document.m2
 -- loading installPackage.m2
 -- loaded /usr/share/Macaulay2/Core/installPackage.m2
 -- loading testing.m2
 -- loaded /usr/share/Macaulay2/Core/testing.m2
 -- loading help.m2
 -- loaded /usr/share/Macaulay2/Core/help.m2
 -- loading format.m2
 -- loaded /usr/share/Macaulay2/Core/format.m2
 -- loading html.m2
 -- loaded /usr/share/Macaulay2/Core/html.m2
 -- loading markdown.m2
 -- loaded /usr/share/Macaulay2/Core/markdown.m2
 -- loading mathml.m2
 -- loading varieties.m2
 -- loaded /usr/share/Macaulay2/Core/varieties.m2
 -- loaded /usr/share/Macaulay2/Core/mathml.m2
 -- loading latex.m2
 -- loaded /usr/share/Macaulay2/Core/latex.m2
 -- loading book.m2
 -- loaded /usr/share/Macaulay2/Core/book.m2
 -- loading webapp.m2
 -- loaded /usr/share/Macaulay2/Core/webapp.m2
 -- loading jupyter.m2
 -- loaded /usr/share/Macaulay2/Core/jupyter.m2
 -- loading texmacs.m2
 -- loaded /usr/share/Macaulay2/Core/texmacs.m2
 -- loading pretty.m2
 -- loaded /usr/share/Macaulay2/Core/pretty.m2
 -- loading programs.m2
 -- loaded /usr/share/Macaulay2/Core/programs.m2
 -- loading undoc.m2
 -- loaded /usr/share/Macaulay2/Core/undoc.m2
 -- loading obsolete.m2
 -- loaded /usr/share/Macaulay2/Core/obsolete.m2
 -- loading exports.m2
 -- loaded /usr/share/Macaulay2/Core/exports.m2
 -- loading typicalvalues.m2
 -- loading tvalues.m2
 -- loaded /usr/share/Macaulay2/Core/tvalues.m2
 -- loaded /usr/share/Macaulay2/Core/typicalvalues.m2
 -- loading last.m2
 -- loaded /usr/share/Macaulay2/Core/last.m2
 -- read /usr/share/Macaulay2/Core/loadsequence
 -- package "Core" loaded
 -- loaded /usr/share/Macaulay2/Core/Core.m2
 -- phase 3
 -- database not present: /usr/lib/x86_64-linux-gnu/Macaulay2/User/cache/rawdocumentation-dcba-8.db
 -- loading Elimination.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Elimination/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Elimination.m2
 -- package "Elimination" loaded
 -- loaded /usr/share/Macaulay2/Elimination.m2
 -- loading LLLBases.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/LLLBases/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/LLLBases.m2
 -- package "LLLBases" loaded
 -- loaded /usr/share/Macaulay2/LLLBases.m2
 -- loading IntegralClosure.m2
 -- loading MinimalPrimes.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/MinimalPrimes/cache/rawdocumentation-dcba-8.db
 -- loading ./MinimalPrimes/AnnotatedIdeal.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/AnnotatedIdeal.m2
 -- loading ./MinimalPrimes/PDState.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/PDState.m2
 -- loading ./MinimalPrimes/splitIdeals.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/splitIdeals.m2
 -- loading ./MinimalPrimes/factorTower.m2
 -- loading ./quickGB.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/quickGB.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/factorTower.m2
 -- loading ./MinimalPrimes/radical.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/radical.m2
 -- loading ./MinimalPrimes/tests.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes/tests.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/MinimalPrimes.m2
 -- package "MinimalPrimes" loaded
 -- loaded /usr/share/Macaulay2/MinimalPrimes.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/IntegralClosure/cache/rawdocumentation-dcba-8.db
 -- loading PrimaryDecomposition.m2
 -- loading Saturation.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Saturation/cache/rawdocumentation-dcba-8.db
 -- loading ./Saturation/quotient-test.m2
 -- loaded /usr/share/Macaulay2/Saturation/quotient-test.m2
 -- loading ./Saturation/saturate-test.m2
 -- loaded /usr/share/Macaulay2/Saturation/saturate-test.m2
 -- loading ./Saturation/annihilator-test.m2
 -- loaded /usr/share/Macaulay2/Saturation/annihilator-test.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Saturation.m2
 -- package "Saturation" loaded
 -- loaded /usr/share/Macaulay2/Saturation.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/PrimaryDecomposition/cache/rawdocumentation-dcba-8.db
 -- loading ./PrimaryDecomposition/GTZ.m2
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition/GTZ.m2
 -- loading ./PrimaryDecomposition/Shimoyama-Yokoyama.m2
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition/Shimoyama-Yokoyama.m2
 -- loading ./PrimaryDecomposition/Eisenbud-Huneke-Vasconcelos.m2
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition/Eisenbud-Huneke-Vasconcelos.m2
 -- loading ./PrimaryDecomposition/tests.m2
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition/tests.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/PrimaryDecomposition.m2
 -- package "PrimaryDecomposition" loaded
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition.m2
 -- loading ReesAlgebra.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/ReesAlgebra/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/ReesAlgebra.m2
 -- package "ReesAlgebra" loaded
 -- loaded /usr/share/Macaulay2/ReesAlgebra.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/IntegralClosure.m2
 -- package "IntegralClosure" loaded
 -- loaded /usr/share/Macaulay2/IntegralClosure.m2
 -- loading Classic.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Classic/cache/rawdocumentation-dcba-8.db
 -- loading Parsing.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Parsing/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Parsing.m2
 -- package "Parsing" loaded
 -- loaded /usr/share/Macaulay2/Parsing.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Classic.m2
 -- package "Classic" loaded
 -- loaded /usr/share/Macaulay2/Classic.m2
 -- loading TangentCone.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/TangentCone/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/TangentCone.m2
 -- package "TangentCone" loaded
 -- loaded /usr/share/Macaulay2/TangentCone.m2
 -- loading ConwayPolynomials.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/ConwayPolynomials/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/ConwayPolynomials.m2
 -- package "ConwayPolynomials" loaded
 -- loaded /usr/share/Macaulay2/ConwayPolynomials.m2
 -- loading InverseSystems.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/InverseSystems/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/InverseSystems.m2
 -- package "InverseSystems" loaded
 -- loaded /usr/share/Macaulay2/InverseSystems.m2
 -- loading SimpleDoc.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/SimpleDoc/cache/rawdocumentation-dcba-8.db
 -- loading Text.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Text/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Text.m2
 -- package "Text" loaded
 -- loaded /usr/share/Macaulay2/Text.m2
 -- loading ./SimpleDoc/helpers.m2
 -- loaded /usr/share/Macaulay2/SimpleDoc/helpers.m2
 -- loading ./SimpleDoc/templates.m2
 -- loaded /usr/share/Macaulay2/SimpleDoc/templates.m2
 -- loading ./SimpleDoc/example.m2
 -- loaded /usr/share/Macaulay2/SimpleDoc/example.m2
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/SimpleDoc.m2
 -- package "SimpleDoc" loaded
 -- loaded /usr/share/Macaulay2/SimpleDoc.m2
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems,
               LLLBases, MinimalPrimes, PrimaryDecomposition, ReesAlgebra,
               Saturation, TangentCone
 -- loading HyperplaneArrangements.m2
 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- loading AbstractToricVarieties.m2
 -- loaded /usr/share/Macaulay2/AbstractToricVarieties.m2
 -- loading AdjointIdeal.m2
 -- loaded /usr/share/Macaulay2/AdjointIdeal.m2
 -- loading AInfinity.m2
 -- loaded /usr/share/Macaulay2/AInfinity.m2
 -- loading AlgebraicSplines.m2
 -- loaded /usr/share/Macaulay2/AlgebraicSplines.m2
 -- loading AnalyzeSheafOnP1.m2
 -- loaded /usr/share/Macaulay2/AnalyzeSheafOnP1.m2
 -- loading AssociativeAlgebras.m2
 -- loaded /usr/share/Macaulay2/AssociativeAlgebras.m2
 -- loading BeginningMacaulay2.m2
 -- loaded /usr/share/Macaulay2/BeginningMacaulay2.m2
 -- loading Benchmark.m2
 -- loaded /usr/share/Macaulay2/Benchmark.m2
 -- loading Bertini.m2
 -- loaded /usr/share/Macaulay2/Bertini.m2
 -- loading BettiCharacters.m2
 -- loaded /usr/share/Macaulay2/BettiCharacters.m2
 -- loading BGG.m2
 -- loaded /usr/share/Macaulay2/BGG.m2
 -- loading BIBasis.m2
 -- loaded /usr/share/Macaulay2/BIBasis.m2
 -- loading BinomialEdgeIdeals.m2
 -- loaded /usr/share/Macaulay2/BinomialEdgeIdeals.m2
 -- loading Binomials.m2
 -- loaded /usr/share/Macaulay2/Binomials.m2
 -- loading BoijSoederberg.m2
 -- loaded /usr/share/Macaulay2/BoijSoederberg.m2
 -- loading Book3264Examples.m2
 -- loaded /usr/share/Macaulay2/Book3264Examples.m2
 -- loading BooleanGB.m2
 -- loaded /usr/share/Macaulay2/BooleanGB.m2
 -- loading Browse.m2
 -- loaded /usr/share/Macaulay2/Browse.m2
 -- loading Bruns.m2
 -- loaded /usr/share/Macaulay2/Bruns.m2
 -- loading ChainComplexExtras.m2
 -- loaded /usr/share/Macaulay2/ChainComplexExtras.m2
 -- loading ChainComplexOperations.m2
 -- loaded /usr/share/Macaulay2/ChainComplexOperations.m2
 -- loading CharacteristicClasses.m2
 -- loaded /usr/share/Macaulay2/CharacteristicClasses.m2
 -- loading Chordal.m2
 -- loaded /usr/share/Macaulay2/Chordal.m2
 -- loading Classic.m2
 -- loaded /usr/share/Macaulay2/Classic.m2
 -- loading CohomCalg.m2
 -- loaded /usr/share/Macaulay2/CohomCalg.m2
 -- loading CoincidentRootLoci.m2
 -- loaded /usr/share/Macaulay2/CoincidentRootLoci.m2
 -- loading CompleteIntersectionResolutions.m2
 -- loaded /usr/share/Macaulay2/CompleteIntersectionResolutions.m2
 -- loading Complexes.m2
 -- loaded /usr/share/Macaulay2/Complexes.m2
 -- loading ConformalBlocks.m2
 -- loaded /usr/share/Macaulay2/ConformalBlocks.m2
 -- loading ConvexInterface.m2
 -- loaded /usr/share/Macaulay2/ConvexInterface.m2
 -- loading ConwayPolynomials.m2
 -- loaded /usr/share/Macaulay2/ConwayPolynomials.m2
 -- loading CorrespondenceScrolls.m2
 -- loaded /usr/share/Macaulay2/CorrespondenceScrolls.m2
 -- loading Cremona.m2
 -- loaded /usr/share/Macaulay2/Cremona.m2
 -- loading Cyclotomic.m2
 -- loaded /usr/share/Macaulay2/Cyclotomic.m2
 -- loading DecomposableSparseSystems.m2
 -- loading PHCpack.m2
 -- loaded /usr/share/Macaulay2/PHCpack.m2
 -- loaded /usr/share/Macaulay2/DecomposableSparseSystems.m2
 -- loading Depth.m2
 -- loaded /usr/share/Macaulay2/Depth.m2
 -- loading DeterminantalRepresentations.m2
 -- loaded /usr/share/Macaulay2/DeterminantalRepresentations.m2
 -- loading DGAlgebras.m2
 -- loaded /usr/share/Macaulay2/DGAlgebras.m2
 -- loading DiffAlg.m2
 -- loaded /usr/share/Macaulay2/DiffAlg.m2
 -- loading Divisor.m2
 -- loaded /usr/share/Macaulay2/Divisor.m2
 -- loading Dmodules.m2
 -- loaded /usr/share/Macaulay2/Dmodules.m2
 -- loading EagonResolution.m2
 -- loaded /usr/share/Macaulay2/EagonResolution.m2
 -- loading EdgeIdeals.m2
 -- loaded /usr/share/Macaulay2/EdgeIdeals.m2
 -- loading EigenSolver.m2
 -- loaded /usr/share/Macaulay2/EigenSolver.m2
 -- loading Elimination.m2
 -- loaded /usr/share/Macaulay2/Elimination.m2
 -- loading EliminationMatrices.m2
 -- loaded /usr/share/Macaulay2/EliminationMatrices.m2
 -- loading EllipticCurves.m2
 -- loaded /usr/share/Macaulay2/EllipticCurves.m2
 -- loading EllipticIntegrals.m2
 -- loaded /usr/share/Macaulay2/EllipticIntegrals.m2
 -- loading EngineTests.m2
 -- loaded /usr/share/Macaulay2/EngineTests.m2
 -- loading EnumerationCurves.m2
 -- loaded /usr/share/Macaulay2/EnumerationCurves.m2
 -- loading EquivariantGB.m2
 -- loaded /usr/share/Macaulay2/EquivariantGB.m2
 -- loading ExampleSystems.m2
 -- loaded /usr/share/Macaulay2/ExampleSystems.m2
 -- loading ExteriorIdeals.m2
 -- loaded /usr/share/Macaulay2/ExteriorIdeals.m2
 -- loading ExteriorModules.m2
 -- loaded /usr/share/Macaulay2/ExteriorModules.m2
 -- loading FastMinors.m2
 -- loaded /usr/share/Macaulay2/FastMinors.m2
 -- loading FGLM.m2
 -- loaded /usr/share/Macaulay2/FGLM.m2
 -- loading FiniteFittingIdeals.m2
 -- loaded /usr/share/Macaulay2/FiniteFittingIdeals.m2
 -- loading FirstPackage.m2
 -- loaded /usr/share/Macaulay2/FirstPackage.m2
 -- loading FormalGroupLaws.m2
 -- loaded /usr/share/Macaulay2/FormalGroupLaws.m2
 -- loading FourierMotzkin.m2
 -- loaded /usr/share/Macaulay2/FourierMotzkin.m2
 -- loading FourTiTwo.m2
 -- loaded /usr/share/Macaulay2/FourTiTwo.m2
 -- loading FrobeniusThresholds.m2
 -- loaded /usr/share/Macaulay2/FrobeniusThresholds.m2
 -- loading FunctionFieldDesingularization.m2
 -- loaded /usr/share/Macaulay2/FunctionFieldDesingularization.m2
 -- loading GenericInitialIdeal.m2
 -- loaded /usr/share/Macaulay2/GenericInitialIdeal.m2
 -- loading gfanInterface.m2
 -- loaded /usr/share/Macaulay2/gfanInterface.m2
 -- loading GKMVarieties.m2
 -- loaded /usr/share/Macaulay2/GKMVarieties.m2
 -- loading GradedLieAlgebras.m2
 -- loaded /usr/share/Macaulay2/GradedLieAlgebras.m2
 -- loading GraphicalModels.m2
 -- loaded /usr/share/Macaulay2/GraphicalModels.m2
 -- loading GraphicalModelsMLE.m2
 -- loaded /usr/share/Macaulay2/GraphicalModelsMLE.m2
 -- loading Graphics.m2
 -- loaded /usr/share/Macaulay2/Graphics.m2
 -- loading Graphs.m2
 -- loaded /usr/share/Macaulay2/Graphs.m2
 -- loading GroebnerStrata.m2
 -- loaded /usr/share/Macaulay2/GroebnerStrata.m2
 -- loading GroebnerWalk.m2
 -- loaded /usr/share/Macaulay2/GroebnerWalk.m2
 -- loading Hadamard.m2
 -- loaded /usr/share/Macaulay2/Hadamard.m2
 -- loading HigherCIOperators.m2
 -- loaded /usr/share/Macaulay2/HigherCIOperators.m2
 -- loading HighestWeights.m2
 -- loaded /usr/share/Macaulay2/HighestWeights.m2
 -- loading HodgeIntegrals.m2
 -- loaded /usr/share/Macaulay2/HodgeIntegrals.m2
 -- loading HomotopyLieAlgebra.m2
 -- loaded /usr/share/Macaulay2/HomotopyLieAlgebra.m2
 -- loading HyperplaneArrangements.m2
 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- loading IntegralClosure.m2
 -- loaded /usr/share/Macaulay2/IntegralClosure.m2
 -- loading InvariantRing.m2
 -- loaded /usr/share/Macaulay2/InvariantRing.m2
 -- loading InverseSystems.m2
 -- loaded /usr/share/Macaulay2/InverseSystems.m2
 -- loading InvolutiveBases.m2
 -- loaded /usr/share/Macaulay2/InvolutiveBases.m2
 -- loading Jets.m2
 -- loaded /usr/share/Macaulay2/Jets.m2
 -- loading K3Carpets.m2
 -- loaded /usr/share/Macaulay2/K3Carpets.m2
 -- loading K3Surfaces.m2
 -- loaded /usr/share/Macaulay2/K3Surfaces.m2
 -- loading Kronecker.m2
 -- loaded /usr/share/Macaulay2/Kronecker.m2
 -- loading KustinMiller.m2
 -- loaded /usr/share/Macaulay2/KustinMiller.m2
 -- loading LatticePolytopes.m2
 -- loaded /usr/share/Macaulay2/LatticePolytopes.m2
 -- loading LexIdeals.m2
 -- loaded /usr/share/Macaulay2/LexIdeals.m2
 -- loading Licenses.m2
 -- loaded /usr/share/Macaulay2/Licenses.m2
 -- loading LieTypes.m2
 -- loaded /usr/share/Macaulay2/LieTypes.m2
 -- loading LinearTruncations.m2
 -- loaded /usr/share/Macaulay2/LinearTruncations.m2
 -- loading LLLBases.m2
 -- loaded /usr/share/Macaulay2/LLLBases.m2
 -- loading LocalRings.m2
 -- loaded /usr/share/Macaulay2/LocalRings.m2
 -- loading M0nbar.m2
 -- loaded /usr/share/Macaulay2/M0nbar.m2
 -- loading Macaulay2Doc.m2
 -- loaded /usr/share/Macaulay2/Macaulay2Doc.m2
 -- loading MapleInterface.m2
 -- loaded /usr/share/Macaulay2/MapleInterface.m2
 -- loading Markov.m2
 -- loaded /usr/share/Macaulay2/Markov.m2
 -- loading Matroids.m2
 -- loaded /usr/share/Macaulay2/Matroids.m2
 -- loading MCMApproximations.m2
 -- loaded /usr/share/Macaulay2/MCMApproximations.m2
 -- loading MinimalPrimes.m2
 -- loaded /usr/share/Macaulay2/MinimalPrimes.m2
 -- loading Miura.m2
 -- loaded /usr/share/Macaulay2/Miura.m2
 -- loading MixedMultiplicity.m2
 -- loaded /usr/share/Macaulay2/MixedMultiplicity.m2
 -- loading ModuleDeformations.m2
 -- loaded /usr/share/Macaulay2/ModuleDeformations.m2
 -- loading MonodromySolver.m2
 -- loaded /usr/share/Macaulay2/MonodromySolver.m2
 -- loading MonomialAlgebras.m2
 -- loaded /usr/share/Macaulay2/MonomialAlgebras.m2
 -- loading MonomialIntegerPrograms.m2
 -- loaded /usr/share/Macaulay2/MonomialIntegerPrograms.m2
 -- loading MonomialOrbits.m2
 -- loaded /usr/share/Macaulay2/MonomialOrbits.m2
 -- loading MultiGradedRationalMap.m2
 -- loaded /usr/share/Macaulay2/MultiGradedRationalMap.m2
 -- loading MultiplicitySequence.m2
 -- loaded /usr/share/Macaulay2/MultiplicitySequence.m2
 -- loading MultiplierIdeals.m2
 -- loaded /usr/share/Macaulay2/MultiplierIdeals.m2
 -- loading MultiplierIdealsDim2.m2
 -- loaded /usr/share/Macaulay2/MultiplierIdealsDim2.m2
 -- loading MultiprojectiveVarieties.m2
 -- loaded /usr/share/Macaulay2/MultiprojectiveVarieties.m2
 -- loading NAGtypes.m2
 -- loaded /usr/share/Macaulay2/NAGtypes.m2
 -- loading Nauty.m2
 -- loaded /usr/share/Macaulay2/Nauty.m2
 -- loading NautyGraphs.m2
 -- loaded /usr/share/Macaulay2/NautyGraphs.m2
 -- loading NCAlgebra.m2
 -- loaded /usr/share/Macaulay2/NCAlgebra.m2
 -- loading NoetherianOperators.m2
 -- loaded /usr/share/Macaulay2/NoetherianOperators.m2
 -- loading NoetherNormalization.m2
 -- loaded /usr/share/Macaulay2/NoetherNormalization.m2
 -- loading NonminimalComplexes.m2
 -- loaded /usr/share/Macaulay2/NonminimalComplexes.m2
 -- loading Normaliz.m2
 -- loaded /usr/share/Macaulay2/Normaliz.m2
 -- loading NormalToricVarieties.m2
 -- loaded /usr/share/Macaulay2/NormalToricVarieties.m2
 -- loading NumericalAlgebraicGeometry.m2
 -- loaded /usr/share/Macaulay2/NumericalAlgebraicGeometry.m2
 -- loading NumericalCertification.m2
 -- loaded /usr/share/Macaulay2/NumericalCertification.m2
 -- loading NumericalImplicitization.m2
 -- loaded /usr/share/Macaulay2/NumericalImplicitization.m2
 -- loading NumericalLinearAlgebra.m2
 -- loaded /usr/share/Macaulay2/NumericalLinearAlgebra.m2
 -- loading NumericalSchubertCalculus.m2
 -- loaded /usr/share/Macaulay2/NumericalSchubertCalculus.m2
 -- loading NumericSolutions.m2
 -- loaded /usr/share/Macaulay2/NumericSolutions.m2
 -- loading OldPolyhedra.m2
 -- loaded /usr/share/Macaulay2/OldPolyhedra.m2
 -- loading OldToricVectorBundles.m2
 -- loaded /usr/share/Macaulay2/OldToricVectorBundles.m2
 -- loading OpenMath.m2
 -- loaded /usr/share/Macaulay2/OpenMath.m2
 -- loading PackageCitations.m2
 -- loaded /usr/share/Macaulay2/PackageCitations.m2
 -- loading PackageTemplate.m2
 -- loaded /usr/share/Macaulay2/PackageTemplate.m2
 -- loading Parametrization.m2
 -- loaded /usr/share/Macaulay2/Parametrization.m2
 -- loading Parsing.m2
 -- loaded /usr/share/Macaulay2/Parsing.m2
 -- loading PencilsOfQuadrics.m2
 -- loaded /usr/share/Macaulay2/PencilsOfQuadrics.m2
 -- loading Permanents.m2
 -- loaded /usr/share/Macaulay2/Permanents.m2
 -- loading PHCpack.m2
 -- loaded /usr/share/Macaulay2/PHCpack.m2
 -- loading PhylogeneticTrees.m2
 -- loaded /usr/share/Macaulay2/PhylogeneticTrees.m2
 -- loading PieriMaps.m2
 -- loaded /usr/share/Macaulay2/PieriMaps.m2
 -- loading Points.m2
 -- loaded /usr/share/Macaulay2/Points.m2
 -- loading Polyhedra.m2
 -- loaded /usr/share/Macaulay2/Polyhedra.m2
 -- loading Polymake.m2
 -- loaded /usr/share/Macaulay2/Polymake.m2
 -- loading Posets.m2
 -- loaded /usr/share/Macaulay2/Posets.m2
 -- loading PositivityToricBundles.m2
 -- loaded /usr/share/Macaulay2/PositivityToricBundles.m2
 -- loading PrimaryDecomposition.m2
 -- loaded /usr/share/Macaulay2/PrimaryDecomposition.m2
 -- loading PruneComplex.m2
 -- loaded /usr/share/Macaulay2/PruneComplex.m2
 -- loading Pullback.m2
 -- loaded /usr/share/Macaulay2/Pullback.m2
 -- loading PushForward.m2
 -- loaded /usr/share/Macaulay2/PushForward.m2
 -- loading Python.m2
 -- loaded /usr/share/Macaulay2/Python.m2
 -- loading QthPower.m2
 -- loaded /usr/share/Macaulay2/QthPower.m2
 -- loading Quasidegrees.m2
 -- loaded /usr/share/Macaulay2/Quasidegrees.m2
 -- loading QuaternaryQuartics.m2
 -- loaded /usr/share/Macaulay2/QuaternaryQuartics.m2
 -- loading QuillenSuslin.m2
 -- loaded /usr/share/Macaulay2/QuillenSuslin.m2
 -- loading RandomCanonicalCurves.m2
 -- loaded /usr/share/Macaulay2/RandomCanonicalCurves.m2
 -- loading RandomComplexes.m2
 -- loaded /usr/share/Macaulay2/RandomComplexes.m2
 -- loading RandomCurves.m2
 -- loaded /usr/share/Macaulay2/RandomCurves.m2
 -- loading RandomCurvesOverVerySmallFiniteFields.m2
 -- loaded /usr/share/Macaulay2/RandomCurvesOverVerySmallFiniteFields.m2
 -- loading RandomGenus14Curves.m2
 -- loaded /usr/share/Macaulay2/RandomGenus14Curves.m2
 -- loading RandomIdeals.m2
 -- loaded /usr/share/Macaulay2/RandomIdeals.m2
 -- loading RandomMonomialIdeals.m2
 -- loaded /usr/share/Macaulay2/RandomMonomialIdeals.m2
 -- loading RandomObjects.m2
 -- loaded /usr/share/Macaulay2/RandomObjects.m2
 -- loading RandomPlaneCurves.m2
 -- loaded /usr/share/Macaulay2/RandomPlaneCurves.m2
 -- loading RandomPoints.m2
 -- loaded /usr/share/Macaulay2/RandomPoints.m2
 -- loading RandomSpaceCurves.m2
 -- loaded /usr/share/Macaulay2/RandomSpaceCurves.m2
 -- loading RationalMaps.m2
 -- loaded /usr/share/Macaulay2/RationalMaps.m2
 -- loading RationalPoints.m2
 -- loaded /usr/share/Macaulay2/RationalPoints.m2
 -- loading RationalPoints2.m2
 -- loaded /usr/share/Macaulay2/RationalPoints2.m2
 -- loading ReactionNetworks.m2
 -- loaded /usr/share/Macaulay2/ReactionNetworks.m2
 -- loading RealRoots.m2
 -- loaded /usr/share/Macaulay2/RealRoots.m2
 -- loading ReesAlgebra.m2
 -- loaded /usr/share/Macaulay2/ReesAlgebra.m2
 -- loading ReflexivePolytopesDB.m2
 -- loaded /usr/share/Macaulay2/ReflexivePolytopesDB.m2
 -- loading Regularity.m2
 -- loaded /usr/share/Macaulay2/Regularity.m2
 -- loading RelativeCanonicalResolution.m2
 -- loaded /usr/share/Macaulay2/RelativeCanonicalResolution.m2
 -- loading ResidualIntersections.m2
 -- loaded /usr/share/Macaulay2/ResidualIntersections.m2
 -- loading ResLengthThree.m2
 -- loaded /usr/share/Macaulay2/ResLengthThree.m2
 -- loading ResolutionsOfStanleyReisnerRings.m2
 -- loaded /usr/share/Macaulay2/ResolutionsOfStanleyReisnerRings.m2
 -- loading Resultants.m2
 -- loaded /usr/share/Macaulay2/Resultants.m2
 -- loading RunExternalM2.m2
 -- loaded /usr/share/Macaulay2/RunExternalM2.m2
 -- loading Saturation.m2
 -- loaded /usr/share/Macaulay2/Saturation.m2
 -- loading Schubert2.m2
 -- loaded /usr/share/Macaulay2/Schubert2.m2
 -- loading SchurComplexes.m2
 -- loaded /usr/share/Macaulay2/SchurComplexes.m2
 -- loading SchurFunctors.m2
 -- loaded /usr/share/Macaulay2/SchurFunctors.m2
 -- loading SchurRings.m2
 -- loaded /usr/share/Macaulay2/SchurRings.m2
 -- loading SCSCP.m2
 -- loaded /usr/share/Macaulay2/SCSCP.m2
 -- loading SectionRing.m2
 -- loaded /usr/share/Macaulay2/SectionRing.m2
 -- loading SegreClasses.m2
 -- loaded /usr/share/Macaulay2/SegreClasses.m2
 -- loading SemidefiniteProgramming.m2
 -- loaded /usr/share/Macaulay2/SemidefiniteProgramming.m2
 -- loading Seminormalization.m2
 -- loaded /usr/share/Macaulay2/Seminormalization.m2
 -- loading Serialization.m2
 -- loaded /usr/share/Macaulay2/Serialization.m2
 -- loading SimpleDoc.m2
 -- loaded /usr/share/Macaulay2/SimpleDoc.m2
 -- loading SimplicialComplexes.m2
 -- loaded /usr/share/Macaulay2/SimplicialComplexes.m2
 -- loading SimplicialDecomposability.m2
 -- loaded /usr/share/Macaulay2/SimplicialDecomposability.m2
 -- loading SimplicialPosets.m2
 -- loaded /usr/share/Macaulay2/SimplicialPosets.m2
 -- loading SlackIdeals.m2
 -- loaded /usr/share/Macaulay2/SlackIdeals.m2
 -- loading SLnEquivariantMatrices.m2
 -- loaded /usr/share/Macaulay2/SLnEquivariantMatrices.m2
 -- loading SLPexpressions.m2
 -- loaded /usr/share/Macaulay2/SLPexpressions.m2
 -- loading SpaceCurves.m2
 -- loaded /usr/share/Macaulay2/SpaceCurves.m2
 -- loading SparseResultants.m2
 -- loaded /usr/share/Macaulay2/SparseResultants.m2
 -- loading SpechtModule.m2
 -- loaded /usr/share/Macaulay2/SpechtModule.m2
 -- loading SpecialFanoFourfolds.m2
 -- loaded /usr/share/Macaulay2/SpecialFanoFourfolds.m2
 -- loading SpectralSequences.m2
 -- loaded /usr/share/Macaulay2/SpectralSequences.m2
 -- loading SRdeformations.m2
 -- loaded /usr/share/Macaulay2/SRdeformations.m2
 -- loading StatePolytope.m2
 -- loaded /usr/share/Macaulay2/StatePolytope.m2
 -- loading StatGraphs.m2
 -- loaded /usr/share/Macaulay2/StatGraphs.m2
 -- loading StronglyStableIdeals.m2
 -- loaded /usr/share/Macaulay2/StronglyStableIdeals.m2
 -- loading Style.m2
 -- loaded /usr/share/Macaulay2/Style.m2
 -- loading SubalgebraBases.m2
 -- loaded /usr/share/Macaulay2/SubalgebraBases.m2
 -- loading SumsOfSquares.m2
 -- loaded /usr/share/Macaulay2/SumsOfSquares.m2
 -- loading SuperLinearAlgebra.m2
 -- loaded /usr/share/Macaulay2/SuperLinearAlgebra.m2
 -- loading SVDComplexes.m2
 -- loaded /usr/share/Macaulay2/SVDComplexes.m2
 -- loading SwitchingFields.m2
 -- loaded /usr/share/Macaulay2/SwitchingFields.m2
 -- loading SymbolicPowers.m2
 -- loaded /usr/share/Macaulay2/SymbolicPowers.m2
 -- loading SymmetricPolynomials.m2
 -- loaded /usr/share/Macaulay2/SymmetricPolynomials.m2
 -- loading TangentCone.m2
 -- loaded /usr/share/Macaulay2/TangentCone.m2
 -- loading TateOnProducts.m2
 -- loaded /usr/share/Macaulay2/TateOnProducts.m2
 -- loading TensorComplexes.m2
 -- loaded /usr/share/Macaulay2/TensorComplexes.m2
 -- loading TestIdeals.m2
 -- loaded /usr/share/Macaulay2/TestIdeals.m2
 -- loading Text.m2
 -- loaded /usr/share/Macaulay2/Text.m2
 -- loading ThinSincereQuivers.m2
 -- loaded /usr/share/Macaulay2/ThinSincereQuivers.m2
 -- loading ThreadedGB.m2
 -- loaded /usr/share/Macaulay2/ThreadedGB.m2
 -- loading Topcom.m2
 -- loaded /usr/share/Macaulay2/Topcom.m2
 -- loading TorAlgebra.m2
 -- loaded /usr/share/Macaulay2/TorAlgebra.m2
 -- loading ToricInvariants.m2
 -- loaded /usr/share/Macaulay2/ToricInvariants.m2
 -- loading ToricTopology.m2
 -- loaded /usr/share/Macaulay2/ToricTopology.m2
 -- loading ToricVectorBundles.m2
 -- loaded /usr/share/Macaulay2/ToricVectorBundles.m2
 -- loading TriangularSets.m2
 -- loaded /usr/share/Macaulay2/TriangularSets.m2
 -- loading Triplets.m2
 -- loaded /usr/share/Macaulay2/Triplets.m2
 -- loading Tropical.m2
 -- loaded /usr/share/Macaulay2/Tropical.m2
 -- loading Truncations.m2
 -- loaded /usr/share/Macaulay2/Truncations.m2
 -- loading TSpreadIdeals.m2
 -- loaded /usr/share/Macaulay2/TSpreadIdeals.m2
 -- loading Units.m2
 -- loaded /usr/share/Macaulay2/Units.m2
 -- loading VectorFields.m2
 -- loaded /usr/share/Macaulay2/VectorFields.m2
 -- loading VectorGraphics.m2
 -- loaded /usr/share/Macaulay2/VectorGraphics.m2
 -- loading VersalDeformations.m2
 -- loaded /usr/share/Macaulay2/VersalDeformations.m2
 -- loading VirtualResolutions.m2
 -- loaded /usr/share/Macaulay2/VirtualResolutions.m2
 -- loading Visualize.m2
 -- loaded /usr/share/Macaulay2/Visualize.m2
 -- loading WeylGroups.m2
 -- loaded /usr/share/Macaulay2/WeylGroups.m2
 -- loading XML.m2
 -- loaded /usr/share/Macaulay2/XML.m2
 -- loading init.m2
 -- loaded .Macaulay2/init.m2
 -- phase 4

Here's what I got when I ran needsPackage "MultiplierIdeals":

-- loading MultiplierIdeals.m2
 -- loading HyperplaneArrangements.m2
 -- loading Matroids.m2
 -- loading Graphs.m2
 -- loading SimplicialComplexes.m2
 -- loading GenericInitialIdeal.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/GenericInitialIdeal/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/GenericInitialIdeal.m2
 -- package "GenericInitialIdeal" loaded
 -- loaded /usr/share/Macaulay2/GenericInitialIdeal.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/SimplicialComplexes/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/SimplicialComplexes.m2
 -- package "SimplicialComplexes" loaded
 -- loaded /usr/share/Macaulay2/SimplicialComplexes.m2
--loading configuration for package "Graphs" from file /home/asteine9/.Macaulay2/init-Graphs.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Graphs/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Graphs.m2
 -- package "Graphs" loaded
 -- loaded /usr/share/Macaulay2/Graphs.m2
 -- loading Posets.m2
 -- loading FourTiTwo.m2
--loading configuration for package "FourTiTwo" from file /home/asteine9/.Macaulay2/init-FourTiTwo.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/FourTiTwo/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/FourTiTwo.m2
 -- package "FourTiTwo" loaded
 -- loaded /usr/share/Macaulay2/FourTiTwo.m2
--loading configuration for package "Posets" from file /home/asteine9/.Macaulay2/init-Posets.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Posets/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Posets.m2
 -- package "Posets" loaded
 -- loaded /usr/share/Macaulay2/Posets.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Matroids/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Matroids.m2
 -- package "Matroids" loaded
 -- loaded /usr/share/Macaulay2/Matroids.m2
 -- Layout#1 assigned for directory .Macaulay2/local/
 -- opening database .Macaulay2/local/lib/x86_64-linux-gnu/Macaulay2/HyperplaneArrangements/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- package "HyperplaneArrangements" loaded
 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/MultiplierIdeals/cache/rawdocumentation-dcba-8.db
 -- loading Normaliz.m2
 -- opening database /usr/lib/x86_64-linux-gnu/Macaulay2/Normaliz/cache/rawdocumentation-dcba-8.db
 -- beginDocumentation: using documentation database, skipping the rest of /usr/share/Macaulay2/Normaliz.m2
 -- package "Normaliz" loaded
 -- loaded /usr/share/Macaulay2/Normaliz.m2
/usr/share/Macaulay2/MultiplierIdeals.m2:143:17:(2):[11]: error: assignment to protected built-in global variable 'multiplierIdeal'
DanGrayson commented 2 years ago

Okay, thanks. Filtering out the lines coming from the installed M2, I see this:

 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
 -- loaded .Macaulay2/init.m2
 -- loaded .Macaulay2/local/share/Macaulay2/HyperplaneArrangements.m2
/usr/share/Macaulay2/MultiplierIdeals.m2:143:17:(2):[11]: error: assignment to protected built-in global variable 'multiplierIdeal'

It mystifies me that the package HyperplaneArrangements (which you've previously installed) is getting loaded 3 times. By default, reloading a package gives an error.

Have you edited the file /usr/share/Macaulay2/MultiplierIdeals.m2? If so, perhaps it's no longer exporting multiplierIdeal before trying to assign a value to it.

Send me (by email) the contents of those three files and I'll take a look at them.

AviSteiner commented 2 years ago

Send me (by email) the contents of those three files and I'll take a look at them.

Sent.

DanGrayson commented 2 years ago

Okay, here's what's happening.

You have installed a modern version of the package HyperplaneArrangements, which now exports multiplierIdeal. (It also exports multIdeal, which seems to be a bad idea, since the names are so similar.)

The package MultiplierIdeals depends on the package HyperplaneArrangements, so when MultiplierIdeals is being loaded, it first loads HyperplaneArrangements. The dictionary path while MultiplierIdeals is being loaded is this:

        {HyperplaneArrangements.Dictionary    }
        {Matroids.Dictionary                  }
        {Posets.Dictionary                    }
        {FourTiTwo.Dictionary                 }
        {Graphs.Dictionary                    }
        {SimplicialComplexes.Dictionary       }
        {GenericInitialIdeal.Dictionary       }
        {Normaliz.Dictionary                  }
        {ReesAlgebra.Dictionary               }
        {MultiplierIdeals#"private dictionary"}
        {MultiplierIdeals.Dictionary          }
        {Core.Dictionary                      }
        {OutputDictionary                     }
        {PackageDictionary                    }

Notice that the dictionary for HyperplaneArrangements occurs before the dictionary for MultiplierIdeals in the path. That means, that when the statement

multiplierIdeal = method();

is encountered, it looks up the symbol multiplierIdeal in the dictionaries on the path, and finds the one in HyperplaneArrangements, which has already been exported and marked immutable. Thus the assignment leads to an error.

One way to go is to just remove the line multiplierIdeal = method(); from the package MultiplierIdeals. Then you could just add more methods to the method function of that name provided by HyperplaneArrangements. (Don't override any methods, though -- we're going to disallow that.)

(If you are actively developing the package HyperplaneArrangements, then it's logical that you might have to modify other packages that depend on it.)

(I was wrong before, when I assumed that exporting the symbol before using it would make it work.)

AviSteiner commented 2 years ago

@DanGrayson multIdeal is a synonym for multiplierIdeal. It's only there for backwards compatibility.

I did what you suggested, and now everything works. However: logCanonicalThreshold as defined in MultiplierIdeals does override the definition from HyperplaneArrangements. How do I deal with this so that things don't go wrong later?

AviSteiner commented 2 years ago

@ggsmith (Just to loop you in)

ggsmith commented 2 years ago

I'm in the process of fixing this issue as I prepare a pull request for our new version of HyperplaneArrangements.

AviSteiner commented 2 years ago

I'm in the process of fixing this issue as I prepare a pull request for our new version of HyperplaneArrangements.

I've already "fixed" it, modulo the problem with overriding logCanonicalThreshold. I also found a bug in trim, which I fixed. I'll push everything now.

DanGrayson commented 2 years ago

@DanGrayson multIdeal is a synonym for multiplierIdeal. It's only there for backwards compatibility.

I did what you suggested, and now everything works. However: logCanonicalThreshold as defined in MultiplierIdeals does override the definition from HyperplaneArrangements. How do I deal with this so that things don't go wrong later?

Get together with the authors of the other package and decide whose code is better, then eliminate one in favor of the other.

DanGrayson commented 2 years ago

@DanGrayson multIdeal is a synonym for multiplierIdeal. It's only there for backwards compatibility.

There is a way to create a true synonym in the list of exports:

    "isDecomposable", 
    "isCentral", 
    "multiplierIdeal",
    "multIdeal" => "multiplierIdeal",
    "lct",
    "logCanonicalThreshold",
    "randomArrangement",

See https://faculty.math.illinois.edu/Macaulay2/doc/Macaulay2-1.19.1/share/doc/Macaulay2/Macaulay2Doc/html/_export.html