Go Back

Is Gennet40 Idempotent?

Idempotence is the property of certain operations in mathematics and computer science whereby they can be applied multiple times without changing the result beyond the initial application. The concept of idempotence arises in a number of places in abstract algebra (in particular, in the theory of projectors and closure operators) and functional programming (in which it is connected to the property of referential transparency).

In this case if given the same input x into Gennet40.exe (https://www.synergex.com/docs/index.htm#tools/toolsChap4Gennet40utility.htm) am I guaranteed to get the same output y? Specifically I am concerned about the order in which the methods are ordered. We are willing to take a performance hit in order to guarantee consistent ordering/idempotence.

It is critical that this property be preserved as this will allow us to implement a Tattler process to observe when code changes affect these interop ELBs. Leveraging modern DevOps procedures we have thrown this process into CI and then attached a Tattler to alert us when a developer messed up. This is heavily reliant on our ability to quickly perform a diff against the committed version.

3 Answers
0   | Posted by Ace Olszowka to Synergy DBL on 5/20/2019 10:16 PM
Phillip Bratt
Hi Ace, Synergex is currently researching this question and will post an answer soon.

5/30/2019 10:02 PM   0  
Best Answer chosen by Ace Olszowka
Phillip Bratt
The answer here is kinda yes, kinda no. Cutting right to the heart of it, it won't work for what you are trying to do. The reason being that gennet40 is consistent but the inputs aren't. Guaranteed at least once a month your output is going to change because Windows will roll out updates. You can even test this if you have two Windows machines with different stages of updates if you do the same procedure on both you will get different results. The files will be different. In summary, you would get the same predictable output but the inputs change and they change often.

6/6/2019 4:51 PM   0  
Ace Olszowka
@Phillip Thank you for the input; can you expand a little more on this portion:
 
Guaranteed at least once a month your output is going to change because Windows will roll out updates.

I could understand this if we were GENNET'ing some windows level assembly but in our scenario we're GENNET'ing our own code. Looking over the version history across several years and varying OSes we have not experienced this yet.

Maybe to cut to the heart of the matter for us: Can you at very least guarantee the order in which the methods are generated will remain consistent?

6/6/2019 5:05 PM   0  
Please log in to comment or answer this question.