sklose / NCalc2

expression evaluator for .NET with built-in compiler
MIT License
166 stars 58 forks source link

Port lambda compilation to original NCalc as plugin #112

Open Bykiev opened 3 months ago

Bykiev commented 3 months ago

The original NCalc version was moved to Parlot parser. Now the DI and Plugins are supported. As many features are just backported here I'd suggest to implement the core feature - compilation of expression to CLR Lambda as Plugin.

@david-brink-talogy, @sklose what do you think?

david-brink-talogy commented 3 months ago

It would be great if the ncalc community could unite behind a single implementation. Having ncalc/ncalc, sklose/ncalc2, and ncalc/ncalc-async causes confuses which is apparent on some of the issue boards in the various repos.

I think this repo adds more than support for linq expressions. The difference in the EvaluationOptions might be a reasonable place to start.
https://github.com/sklose/NCalc2/blob/master/src/NCalc/EvaluationOption.cs https://github.com/ncalc/ncalc/blob/master/src/NCalc/ExpressionOptions.cs

Bykiev commented 3 months ago

There are some difference between NCalc and NCalc2 with EvaluationOptions (now it's ExpressionOptions), welcome to contribute https://github.com/ncalc/ncalc/pull/188 !

sklose commented 3 months ago

@Bykiev @david-brink-talogy looks like the PR https://github.com/ncalc/ncalc/pull/188 is about to land. What do you think should be the future of this project? It seems all features that were added here have been ported. I am leaning towards archiving the project and updating the README file with a pointer to ncalc/ncalc. Does anybody see any value in keeping this project alive?

Bykiev commented 3 months ago

I think after the release of NCalc v4.2 we should create a note in NCalc2 repo, that all features are ported to NCalcSync package and users should migrate to this package. I'm expecting some minor issues during migration process (there are some differences in packages). And when it'll be stable, the NCalc2 project can be archived.

david-brink-talogy commented 3 months ago

Might be good to get insight from the PanoramicData team since it has a dependency on this package. Unfortunately it doesn't seem like I can properly mention @davidnmbond.

Bykiev commented 3 months ago

PanoramicData still using v2.2.110

Bykiev commented 2 months ago

As all features from NCalc2 were moved to NCalc project this repo can be archived. Welcome to contribute!