puchaczov / tql.rdl Goto Github PK
View Code? Open in Web Editor NEWAdvanced time pattern evaluator
Home Page: http://www.defineyourtimepattern.net/
License: Apache License 2.0
Advanced time pattern evaluator
Home Page: http://www.defineyourtimepattern.net/
License: Apache License 2.0
Registering methods this way is far too much complicated and error prone. Additionally requires to performs multiple changes in tests if any new default method is added.
old ways how to accomplish that:
var methods = new System.Reflection.MethodInfo[2] { GetType().GetMethod(nameof(TestA), new[] { typeof(DateTimeOffset?) }), GetType().GetMethod(nameof(TestB), new[] { typeof(DateTimeOffset?) }) };
The new way assume that user will deliver only interface so only new RdlTimeline<MyMethodsAggregator >(...)
will be required. MyMethodsAggregator will contains methods that will be founded by reflection api and added automaticly to use in user script. It also good to note that MyMethodsAggregator class and it's methods to use must be annotated.
*It will potentially force to standarize calling convention.
Syntax: ...WHERE a BETWEEN FIRST_DATE AND SECOND_DATE
Currently, I'm not sure what should be done to make it work. Have to consider that.
Add union syntax to allow user combining two different time patterns into one f.e
repeat every day where day % 2 = 0
union
repeat every day where day % 3 = 0
Method invocation result could be potentially cached. It can be achieved by storing result in memory and replace each invocation function instruction with load score from memory instruction.
*Potentially it will force reimplementing how's score can be stored in memory
**It leads that I will need something like functions (call ret usage required) what wasn't used but it's partially implemented.
Quick overview:
simple example:
push 5
prepare function call
call GetDay
greaterequal
push 15
prepare function call
call GetDay
lessequal
and
GetDay should be call once becouse it's second evaluation won't return anything more usefull than first call.
***Probably that will cause to implement annotation for methods that result cannot be cached to allow them result return other results between calls (do I need that?)
Add debugging symbols to allow coupling of source code with generated byte code. It will allow further debugging code and building debugger tools.
*probably vm will need to be modified significantly
From TQL.RDL.Evaluator project should be removed code generation. This project should be used only as interface for evaluators. If somebody would want to make own evaluator, he probably wan't need evaluators already implemented.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.