shine icon indicating copy to clipboard operation
shine copied to clipboard

Scala 3 Draft PR

Open michel-steuwer opened this issue 3 years ago • 3 comments

This is a draft PR porting shine and all dependent repositories to Scala 3.

At the moment of opening this PR, there exists a large performance regression that me need to address before merging.

Here are the changes made in:

michel-steuwer avatar Aug 20 '21 14:08 michel-steuwer

I see that you have changed some lazy vals to defs, could that be part of the performance regression?

Bastacyclop avatar Aug 23 '21 10:08 Bastacyclop

In elevate macros you are wrapping these everywhere (strategies, combinators):

       try ... catch
          case _: MatchError => Failure(this)

I don't think this is what we used to do? Ideally Success/Failure should only be automatically wrapped around rules and not strategies/combinators (i.e. automatically lifting partial rule functions to monadic functions)?

Bastacyclop avatar Aug 23 '21 10:08 Bastacyclop

In src/main/scala/elevate/core/strategies/debug.scala, there are rule definitions which look more like strategies to me. I think we should be careful about what is a rule and what is a strategy?

Bastacyclop avatar Aug 23 '21 10:08 Bastacyclop