Skip to content
This repository has been archived by the owner on Apr 18, 2020. It is now read-only.

Use simulacrum + cats as a production ready test #22

Open
DavidDudson opened this issue Dec 21, 2017 · 1 comment
Open

Use simulacrum + cats as a production ready test #22

DavidDudson opened this issue Dec 21, 2017 · 1 comment
Milestone

Comments

@DavidDudson
Copy link
Member

Step 1

Rewrite simulacrum as a generator

Step 2

Remove scalamacros/paradise from the cats build and replace it with scalagen.

Note: We should not have to touch the sourcecode at all, as the existing annotations can have their package and Type.Name's mirrored in the scalagen version.

Step 3

Ensure all cross-building tests pass.

Step 4

Profile the builds with scalamacros/paradise and scalagen and see if scalagen is faster.

In theory it should be, as the code is generated once, for the entire build matrix.
scalamacros/paradise as a compiler plugin, runs on every compile.

Step 5

🍾

@SemanticBeeng
Copy link

SemanticBeeng commented Oct 1, 2018

"Remove scalamacros/paradise from the cats build and replace it with scalagen"
Please outline some steps for doing this.

Also need to use scalameta and avoid paradise for the aecor project.

The only thing I found as possible guide for migrating away from paradise was the combinations of two forks for scalafmt.

scalafmt latest uses scalameta 4.0.0 and no paradise
https://github.com/scalameta/scalafmt/blob/175ee66e048e690aeb8a22f56ab4fd355c219ca8/project/Dependencies.scala#L9

This older fork uses scalameta 1.7.0 and paradise
https://github.com/olafurpg/scalafmt/blob/12ed28a683cd4b45335e48d9d31d789ae9ed2235/project/Dependencies.scala#L8

But not very clear what the migration path would be.

And what would be your time estimate if you were to do this cats migration?

UPDATE: some related discussion here https://gitter.im/scalameta/scalameta?at=5bb22588bbdc0b2505ccd01b

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants