2
$\begingroup$

When running the following code on Mathematica 10.2

SetSystemOptions[ "CompileOptions" -> "CompileReportExternal" -> True];

I received the message:

System`SetSystemOptions::obs: Developer`SetSystemOptions has been superseded by System`SetSystemOptions, and is now obsolete. It will not be included in future versions of the Wolfram Language. >>

What will SetSystemOptions become in the future?

$\endgroup$
12
  • 5
    $\begingroup$ Read the error message again. I believe it is clear. This message has been produced since at least version 7; SetSystemOptions moved out of the Developer` context after version 5.2, which was a long time ago now. $\endgroup$ Oct 13, 2015 at 11:25
  • 1
    $\begingroup$ To answer the next question, this situation was probably precipitated by your use of <<Developer`. Adding new contexts to the context path should be done cautiously and I would not recommend it just so that you can avoid typing the context for a few functions. $\endgroup$ Oct 13, 2015 at 11:30
  • $\begingroup$ @OleksandrR. Yeah! I just find this problem. I do add <<Developer $\endgroup$
    – matheorem
    Oct 13, 2015 at 11:32
  • $\begingroup$ @OleksandrR. So you are suggesting me that if I want to use ToPackedArray, then I should write Developer``ToPackedArray, right? But I still don't understand why load `Developer`` is not right and should be done cautiously? What kind of bad things can happen? $\endgroup$
    – matheorem
    Oct 13, 2015 at 11:37
  • 1
    $\begingroup$ Well, you can use <<Developer` if you really want to, but you run the risk of shadowing, as you discovered with the situation here. (Shadowed symbols are highlighted in red, but maybe this is not a strong enough hint that it is a problem.) Any bad thing could happen that might result from calling the wrong function unintentionally. I don't personally add the context to the context path and I would never even consider doing it in a package or other code intended for others to use. $\endgroup$ Oct 13, 2015 at 11:41

0