Roadmap

This is what I have planned for future versions of GlassCalc, helpfully sorted into vague time periods.  If an item is listed with 100% done or Fixed, those changes will appear in the next version I release.

Bugs to Fix

Near Future

  • Rework internals to separate parser from UI thread – 15% done
  • Button/command to turn entire history list into copyable text
  • Smarter detection of changes in extensions.ini
  • Decide what to do with expressions like 1/2x and cos(x)/2x.  The latter is most likely intended to be cos(x)/(2*x), but the former could mean either (1/2)*x or 1/(2*x).  GlassCalc currently parses as 1/2*x and cos(x)/2*x.  Maybe allow simple fractional coefficients (as in (1/2)*x) with a toggle to turn it off?

After That

  • Immediate evaluation of simple expressions (a la Soulver)
  • Selectively export functions
  • Import/export custom constants/scale factors
  • Create a place on this site where custom function/constant/scale factor packages can be shared

Maybe

  • Switch to a different parser library that doesn’t rely on COM (such as muParser). This would make GlassCalc a lot easier to install and it should run as a portable app too. I’m still not sure whether I want to do this or continue porting MTParser to C#.
  • mod operator for modulus (in addition to %)
  • Add buttons to delete functions/variables to the function/variable lists.
  • Ability to ignore a constant/scale factor defined in global extensions.ini
  • Ability to minimize to system tray icon and restore with a hotkey
  • Move configuration settings from config to ini files to improve startup performance
  • Move function reference to another window and provide filters (show only trig functions, etc.)
    • Add option to filter function reference as things are typed in the input box
  • Normalize function prototypes in function list
  • Show function bodies as typed (not as interpreted)
  • Add a Scale Factors panel under Constants

Much Later

  • Port MTParser to C# – 20% done?
  • Support for higher precision math (requires C# port of MTParser)