tyre icon indicating copy to clipboard operation
tyre copied to clipboard

Reorganize the library for better backend flexibility.

Open Drup opened this issue 7 years ago • 3 comments

The goal is more or less to solve #1, it includes #21

  1. Functorize the core of the library
  2. Extract the backend-agnostic part into a new library
  3. Add a very WIP new library that target javascript regexs.

We should also be able to easily write an re2 or a pcre backend.

Unfortunately, since it uses functors, it means that it's not possible to write code that will easily work on any backend just with that. I tried the polymorphism approach, and it really doesn't work so well, we would need tons of parameters (or a module parameter, which sounds really terrible).

cc @rgrinberg @paurkedal for feedback ?

Drup avatar Oct 18 '18 15:10 Drup

I wonder if variants are the right approach here. The motivation here is to make things to work in JS right? In which case, I don't assume 2 instances of this library will be useful in the same executable.

rgrinberg avatar Oct 18 '18 18:10 rgrinberg

@rgrinberg Unfortunately, the APIs are not exactly the same (Re can do more things). We could provide a minimal common version and use variants for that part.

Drup avatar Oct 18 '18 18:10 Drup

If we want to avoid variants, maybe define signature for the last common denominator, and provide a module alias for each platform mapping to the most efficient implementation of that signature for the platform?

paurkedal avatar Oct 19 '18 19:10 paurkedal