Giter Club home page Giter Club logo

tql.rdl's People

Contributors

puchaczov avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

bubdm

tql.rdl's Issues

Don't force user to register it's own method by using reflection api.

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.

Add between operator

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.

Union expression

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

Caching method invocation when possible.

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?)

Debugging symbols

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.