For experimentation (only!): external matching predicates? #224
Replies: 1 comment 1 reply
-
How much of Numeric do you need? If it is just equality I could probably pull that together quickly. But the full <, <=, etc does get into some very tricky territory, see https://github.com/aws/event-ruler/blob/main/src/main/software/amazon/event/ruler/ByteMachine.java#L1104 If you really need the whole thing and this stuff gets you that, why don't you go ahead in a fork? I think we can agree we probably don't want to pull this as-is into mainline Quamina? For a semi-retired guy I am overcommitted and have had a series of interruptions this spring that have kept me from looking at Quamina except for a day here and ther since about February. I'll get quiet time this summer to get back to it. I'm still fighting the stupid horrible bug where combining a few automata explodes to O(2**N) states. I've nibbled around the edges of it for weeks but not quite cracked its back. I know it can be done because aws-ruler does it but sigh I thought I had a more elegant way to build/combine automata. |
Beta Was this translation helpful? Give feedback.
-
I have an application that needs the full
numeric
suite. (See #27.) I started to work on automata generation, but getting all the details right in full generality was more than I could bite off at the moment. Not at all surprising, of course. For me today, correctness happens to be more important that efficiency. So I dug up some old hacks for the interim. Here they are.The simple goal is to allow an application to provide custom value matchers for those folks who have no shame. Discussed before at #39 and #217. These matchers do not have to be automata, and they wouldn't be integrated with Quamina automata even if they were. So really just arbitrary matching – as awkward and slow as that might be.
I have not done much integration testing or performance analysis, and I'm not at all sure that all interactions are okay. I'll probably do a bit more testing soon. My immediate goal is to get on with the application that's motivating this hack. Then with the luxury of time maybe I can get back to a proper
numeric
implementation. Or someone will beat me to it.To be clear: I'm not proud of what I've done here. It's heretical with respect to Quamina's primary goal of speed. Just thought I'd mention it.
Beta Was this translation helpful? Give feedback.
All reactions