M2 icon indicating copy to clipboard operation
M2 copied to clipboard

warning with debug Core and help issue

Open pzinn opened this issue 3 years ago • 7 comments

I think this issue has been around for a while, but it might be time to take a look at it:

i1 : debug Core
 -- warning: symbol "topComponents" in PrimaryDecomposition.Dictionary is shadowed by a symbol in Core#"private dictionary"
 --   use one of the synonyms PrimaryDecomposition$top, PrimaryDecomposition$topComponents, top

i2 : needsPackage "Graphs"

o2 = Graphs

o2 : Package

i3 : help oo
 -- warning: symbol "topComponents" in Core#"private dictionary" is shadowed by a symbol in PrimaryDecomposition.Dictionary
 --   use the synonym Core$top
stdio:3:1:(3): error: makeDocumentTag: package cannot be determined: (-*Function*-,ForestNode)

pzinn avatar Dec 09 '21 03:12 pzinn

I realize I haven't really said what the issue is. Actually, there are two (possibly unrelated!): the warning messages, and the fact that help fails after debug Core.

pzinn avatar Dec 09 '21 04:12 pzinn

I don't get the warning message, and the error occurs only with 1.19.1.

+ /Applications/Macaulay2-1.19.1/bin/M2 --no-readline --print-width 103
Macaulay2, version 1.19.1
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
               MinimalPrimes, PrimaryDecomposition, ReesAlgebra, Saturation, TangentCone

i1 : debug Core

i2 : needsPackage "Graphs"

o2 = Graphs

o2 : Package

i3 : help Graphs
stdio:3:1:(3): error: makeDocumentTag: package cannot be determined: (-*Function*-,ForestNode)

i4 : 

Process M2 finished

+ /Applications/Macaulay2-1.19/bin/M2 --no-readline --print-width 103
Macaulay2, version 1.19
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems, LLLBases,
               MinimalPrimes, PrimaryDecomposition, ReesAlgebra, Saturation, TangentCone

i1 : debug Core

i2 : needsPackage "Graphs"

o2 = Graphs

o2 : Package

i3 : help Graphs

o3 = Graphs
     ******

o3 : DIV

DanGrayson avatar Dec 13 '21 16:12 DanGrayson

It's probably a bug revealed now since help Graphs calls methods Graphs to get a list of all methods documented by that package (previously, if a package documented a method whose keys came from other packages, the package documentation would not list it). Here is a simpler version:

i1 : debug Core

i2 : methods needsPackage "FirstPackage"
stdio:2:1:(3): error: makeDocumentTag: package cannot be determined: (-*Function*-,ForestNode)

Maybe makeDocumentTag shouldn't throw an error when it fails, or maybe package should catch that error. I'm not sure.

mahrud avatar Dec 13 '21 17:12 mahrud

I'm working on getting every function labelled with the package it's in, so I'll probably, as a side-effect, fix this problem.

DanGrayson avatar Dec 13 '21 21:12 DanGrayson

I'm working on getting every function labelled with the package it's in, so I'll probably, as a side-effect, fix this problem.

Does a function get a package even if it is not exported? In this case ForestNode is an unexported type from Core, which is why it doesn't have a package:

i1 : debug Core

i2 : package ForestNode === null

o2 = true

i3 : dictionary ForestNode 

o3 = Core#"private dictionary"

It would be nice if this was combined with the frame system and both were fixed and documented at the same time.

mahrud avatar Dec 14 '21 00:12 mahrud

I'll fix that, too.

DanGrayson avatar Dec 14 '21 17:12 DanGrayson

going thru all my open issues and this one is still relevant...

pzinn avatar Nov 22 '23 10:11 pzinn