52
$\begingroup$

In comments on this question, Mr. Wizard suggested a community wiki to share the bug fixes/workarounds (or possibly other tricks) people load in their init.m. I think this could provide a nice resource.

$\endgroup$
4
  • $\begingroup$ I think this should probably be restricted to bug fixes and workarounds or it becomes too broad. $\endgroup$
    – Mr.Wizard
    Commented Aug 16, 2013 at 21:54
  • $\begingroup$ Should these be version-tagged? $\endgroup$
    – Yves Klett
    Commented Aug 17, 2013 at 16:54
  • $\begingroup$ @Yves I think they should, and so far it looks like everyone has already done that. $\endgroup$
    – Mr.Wizard
    Commented Aug 17, 2013 at 20:51
  • $\begingroup$ Tangentially related: (56728) $\endgroup$
    – Mr.Wizard
    Commented Feb 12, 2015 at 10:38

3 Answers 3

26
$\begingroup$

Fixes by Mathematica version. Note that unfixed bugs may apply to earlier versions as well; e.g. TableAlignments -> Left not working also applies to version 7.

Version 10.1

  • Fix syntax highlighting in Trace:

    Unprotect[Trace];
    SyntaxInformation[Trace] = {"ArgumentsPattern" -> {_, _., OptionsPattern[]}};
    Protect[Trace];
    
  • Fix Incompatibility of Row and TeXForm: (v9+)

    BoxForm`$UseTemplateSlotSequenceForRow = False;
    
  • Fix SetOptions for CoordinatesToolOptions for DateListPlot?:

    DateListPlot;  (* preload; do not remove! *)
    
    With[
      {dv := DownValues[Graphics`DateListPlotDump`iDateListPlot]},
      dv = dv /.
        (fr : FilterRules)[a : Graphics`DateListPlotDump`opts, b_Options] :> 
          fr[Join[a, Options @ Graphics`DateListPlotDump`caller], b]
    ];
    
  • Fix TableAlignments -> Left not working

    • code too long to include; provided in answer linked above
  • Fix In 10.1.0 BenchmarkPlot doesn't work?

    • see answer to link above
  • Fix Strange Error on Fresh Kernel (10.2):

    With[
      {dv := DownValues @ PacletManager`Package`loadWolframLanguageCode},
      dv = dv /. wl : HoldPattern[ToString @ $SystemWordLength] :> RuleCondition[wl];
    ]
    
  • Fix Problems with Displaying Output for Summation

    InactiveDump`assembleInactiveSumProduct[
       {args_, disp_, interp_, char_, tag_, tooltip_, fmt_}] := 
      TemplateBox[ args, tag,
        DisplayFunction -> Function[disp], 
        InterpretationFunction -> Function[interp],
        SyntaxForm -> char
      ]
    
  • Fix Inset in ArrayPlot

    Graphics`ArrayPlotDump`Private`stripOptions[opt2___, OP_] := 
      Module[{opt = Flatten @ {opt2}}, 
       Delete[opt, 
        Position[opt, 
         g_?(System`Utilities`StringName[#1] === 
              System`Utilities`StringName[OP] &) -> _,
         {1}
        ]
       ]
      ];
    
  • Fix Conversion to TeX results in infinite recursion

    Convert`TeX`ExpressionToTeX; (* preload; do not remove! *)
    
    Begin["System`Convert`"]
    
    With[{DV := DownValues[`TeXFormDump`maketex], RLS := `CommonDump`RemoveLinearSyntax},
      DV = DV /.
         Verbatim[RLS][arg_, `CommonDump`Recursive -> val_] :>
          RLS[arg, `CommonDump`ConvertRecursive -> val]
    ]
    
    End[]
    

Version 10.0


Version 7

As a version 7 user these likely don't apply to most users but here are mine:

  • Fix Symbol name slow-down weirdness (hashing problem?):

    SetSystemOptions["NeedNotReevaluateOptions"->{"UseSymbolLists"->True}];
    
  • Fix a bug in FullSimplify:

    Unprotect[Holonomic`HolonomicFullSimplify];Clear[Holonomic`HolonomicFullSimplify]; 
    
  • Prevent Mathematica from eating all my RAM and freezing (most of the time):

    $Pre = Function[Null, MemoryConstrained[Unevaluated @ #, 2^32, "Memory Exceeded"], HoldAll]
    
$\endgroup$
5
  • 1
    $\begingroup$ It would probably be good to include a version check before applying any fixes. $\endgroup$
    – Szabolcs
    Commented Jan 19, 2015 at 16:21
  • $\begingroup$ @Szabolcs Would you elaborate on that, please? $\endgroup$
    – Mr.Wizard
    Commented Jan 19, 2015 at 16:22
  • 1
    $\begingroup$ If[$VersionNumber == (* number *), ( * do this *)] was probably meant… $\endgroup$ Commented Jun 19, 2015 at 21:40
  • $\begingroup$ @J.M. Perhaps so. I prefer to maintain the fixes manually. $\endgroup$
    – Mr.Wizard
    Commented Jun 19, 2015 at 21:41
  • 1
    $\begingroup$ @Mr.Wizard Yes, that's what I meant. It's critical when one has multiple versions installed. Doing this without a version check is dangerous. Someone might copy a fix from here, forget about it, update Mathematica, then something suddenly gets broken. $\endgroup$
    – Szabolcs
    Commented Apr 10, 2019 at 11:48
11
$\begingroup$

Here is one that came from a Wolfram employee so it should be safe to add in version 9:

FindInstance returns Indeterminate in version 9, but not in 8

$\endgroup$
9
$\begingroup$

Here's a patch from Adam Strzebonski of Wolfram, which fixes a bug in RootReduce[] in 9.0.1.

ToNumberField won't recognize Root as explicit algebraic number

$\endgroup$

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.