-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ongoing Scala 3 support #280
Conversation
@nicolasstucki pattern matching calls to this method with quoted patterns seems quite hard because of the complex relationship of all the type parameters involved: It seems easy enough to parse them using trees/terms but is there any chance of matching them using quoted patterns? E.g. the first problem is that you cannot even put in wildcard types for the type parameters because they don't fulfill the bounds: case '{($p: Parser).capture[a, b]($arg)($d)} => fails with
Should it work leaving off the type arguments completely? In that case, the macro compiles but it does not match the invocation when the macro is executed. Are there any extra tools to debug non-matching quote patterns? |
If I understand correctly you need to add upper bounds to case '{ type a <: T; type b < T2; ($p: Parser).capture[`a`, `b`]($arg)($d)} => |
Cool, I'm going to try that. |
Something similar compiles but still doesn't match: case '{ type I <: HList; type O <: HList; ($p: Parser).capture[I, O]($arg: Rule[I, O])($d) } => doesn't match this tree:
|
We're missing an implementation for |
spray-json available in scala3
Hi ;) First of all, thanks for the effort towards migrating this lib! Is there any time schedule to migrate this lib (and hence akka-http) to Scala 3 in foreseeable future? Maybe there are some areas where one can quite easily contribute? |
Co-authored-by: Johannes Rudolph <[email protected]>
The biggest problem is that real world parsers still hang the Scala 3 compiler or fail with typing errors. We have some tests commented out in |
parboiled-core/src/main/scala-3/org/parboiled2/support/TailSwitch.scala
Outdated
Show resolved
Hide resolved
Co-authored-by: Michał Pałka <[email protected]>
this now seems to be fixed, right? ;) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Huge thanks again to everyone involved in this massive task! |
Ok, just released parboiled2 2.4.0, cross-built against:
X
Unfortunately I had to (temporarily) disable the cross-build against scala-native due to a missing dependency (scala-check for scala-native 0.4.3) and weird Thank you again, everyone, for the awesome feat of pulling off this migration! |
Continuation of #274
This PR documents the ongoing progress on Scala 3 support. It stays open until the support is ready for merging into master.
The commits are supposed to stay, so let's try to use reasonable commits. Changes can be PR'd against this branch.
run
macro @lrytzrun
macro for Scala 3 #289run
combinator Implement RunAction #295test
@yanns implement test #291~>
remaining casesatomic
,named
,quiet
, andfail
#303parboiled
module tests pass implement DynamicRuleDispatch for Scala 3 #299example
module tests pass Make examples compile #298times
for statically known boundary values