5
$\begingroup$

When doing

PacletInstall[
  "https://github.com/NCAlgebra/NC/blob/master/NCAlgebra-6.0.3.paclet?\
raw=true"];
Needs["NCOptions`"]
(*SetOptions[NCOptions,SmallCapSymbolsNonCommutative->False];*)
Needs["NCAlgebra`"]

I get the following shadowing warnings:

Global`g: Symbol g appears in multiple contexts {Global`,GraphicsRasterInformationPatch`}; definitions in context Global` may shadow or be shadowed by other definitions.
<<similar warnings for h, r, w>>
NCAlgebra::SmallCapSymbolsNonCommutative: All lower cap single letter symbols (e.g. a,b,c,...) were set as noncommutative.

Note that the last line is expected behavior of the NCAlgebra` package, which just sets an attribute to Global lower-letter symbols.
I am trying to google what the GraphicsRasterInformationPatch` context is, but didn't find anything relavent. There seems indeed to be a symbol called Image`GraphicsRasterInformationPatch, which did not give me more clues to the mystery. The context includes the following symbols:

Names["GraphicsRasterInformationPatch`*"]
(*
{"array", "bstyle", "bstyle$", "dbstyle", "dbstyle$", "g", "gopts", 
"h", "h$", "info", "info$", "is", "isr", "isr$", "is$", "pr", "pr$", 
"r", "range", "ropts", "size", "w", "w$"}
*)

I however have still no idea why I have this context introduced to my session.

I tried restarting the kernel, but the problem is persistent. It does not mess with some basic calculation I'm trying to do right now, but I'm unsure whether some packages or paclets I have are misbehaving. Is there some way to get closer to this?

$\endgroup$
7
  • $\begingroup$ Using Remove["GraphicsRasterInformationPatch`*"] after loading NCOptions` indeed removes the symbols, but I still don't know why they are introduced in the first place. $\endgroup$
    – Gravifer
    Feb 5 at 5:37
  • $\begingroup$ By discussion with @E. Chan-López as well as leaving this post here for a few days, I've been generally sure this is merely due to the implementation of the NC package. The paclet may have been introduced somehow internally, and I'll try to make a PR if I've got a clue. $\endgroup$
    – Gravifer
    Feb 7 at 12:43
  • 1
    $\begingroup$ NCAlgebra does not make use of any other paclet. $\endgroup$ Feb 20 at 3:56
  • $\begingroup$ I only encountered this when interacting with NCAlgebra though. Shall I make this into an issue at the repo? $\endgroup$
    – Gravifer
    Mar 4 at 7:48
  • 1
    $\begingroup$ Its this package that is setting g in the global context as pointed out below. We do that as a convenience in NCAlgebra and offer a key to turn it off, just in case it gets in your way. If anything, I would make it an issue with the developers of that particular paclet. $\endgroup$ Mar 18 at 23:08

1 Answer 1

4
$\begingroup$

I had the same problem recently, and it was resolved by uninstalling the Paclet:

PacletUninstall["GraphicsRasterInformationPatch"]

You can use Remove, but it will only solve it temporarily, that is, when you reboot the kernel again you will have to use Remove again.

That Paclet caused something strange in my version (13.3), since it was placed as a context for the unprotected symbols g, h, r, w. I already verified that the same thing happens in version 14.

$\endgroup$
2
  • $\begingroup$ I'm using v14 too; verifying this is a paclet is another piece to the puzzle. What is this paclet for, where did it come from, and how was it installed on our machines though? I'll try doing some further investigation $\endgroup$
    – Gravifer
    Feb 5 at 8:21
  • 1
    $\begingroup$ @Gravifer I know we have something in common, since I also used the non-commutative algebra package. I assume that it is very likely that Paclet came included in the package folder and was installed by default. Not only that, but I haven't seen it anywhere else. $\endgroup$ Feb 5 at 8:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.