NCalc is now using Mercurial hosted on CodePlex

Coordinator
Sep 18, 2010 at 1:58 AM

As the popularity of NCalc is growing, and I'd like to get more contribution from it, I have moved the source code management to CodePlex directly, using Mercurial. If you are willing to contribute, like adding new features, correcting bugs or adding unit tests, feel free to create a Fork on the source code, and push you changes on it. It will make it easy for myself to review the changes and include it in the main branch, while allowing you to save your modifications somewhere.

Sebastien

Sep 20, 2010 at 5:01 PM

Thanks Sebastien, i've created a fork & documented it here: http://ncalc.codeplex.com/Thread/View.aspx?ThreadId=227873

I am wary of adding too much to NCalc as it may lose its simplicity.

Things i have added in the fork - main features were:

  • Incorporated MEF (http://mef.codeplex.com) to dynamically load the functions in the library as well as to add extensibility [This required a move to .Net 4.0]
  • Documented each function and its parameters via a help system -TODO - this could be used for an intellisense like system - would love to see one if anyone has time/ know-how
  • Added functionality to print out language documentation.
  • Added Random function which works when used by multiple threads

Things i'd like to see (minor):

  • Removal of the trace statements in the library - i measured a 16% speedup with tracing turned off [by default its on even in release mode]
  • A means of extracting all variable names from an expression - i have created code to do this via evaluation in the fork but i am sure there is a better method.
  • More documentation on iterating variables - examples plus how and where it can fail
  • More array functions - eg Zip with or similar
  • A good way of dealing with empty strings as variables - for example casting them to zero

Things i'd like to see (major):

  • A version of NCalc which supports multiple lines, variables & functions variables? - ie a very simple scripting language