Skip to content
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

[WIP] Check if opts succeed in CI #2545

Closed
wants to merge 80 commits into from

Conversation

DarkDimius
Copy link
Member

@DarkDimius DarkDimius commented May 26, 2017

If they do, I'll force push to PR by @OlivierBlanvillain

Copy link
Member

@dottybot dottybot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello, and thank you for opening this PR! 🎉

All contributors have signed the CLA, thank you! ❤️

Commit Messages

We want to keep history, but for that to actually be useful we have
some rules on how to format our commit messages (relevant xkcd).

Please stick to these guidelines for commit messages:

  1. Separate subject from body with a blank line
  2. When fixing an issue, start your commit message with Fix #<ISSUE-NBR>:
  3. Limit the subject line to 72 characters
  4. Capitalize the subject line
  5. Do not end the subject line with a period
  6. Use the imperative mood in the subject line ("Added" instead of "Add")
  7. Wrap the body at 80 characters
  8. Use the body to explain what and why vs. how

adapted from https://chris.beams.io/posts/git-commit

Have an awesome day! ☀️

@OlivierBlanvillain
Copy link
Contributor

@DarkDimius Looks green to me, the failure comes from the bytecode tests I've added (and never tried to run bootstrapped), it's looks like a test infrastructure thing:

[error] Test dotty.tools.dotc.SimplifyPosTests.initializationError failed: java.lang.Exception: No runnable methods, took 0.002 sec
[error] Test dotty.tools.dotc.SimplifyNegTests.initializationError failed: java.lang.Exception: No runnable methods, took 0.0 sec
[error] Test dotty.tools.dotc.SimplifyEquivalences.initializationError failed: java.lang.Exception: Test class should have exactly one public constructor, took 0.0 sec

@DarkDimius
Copy link
Member Author

@OlivierBlanvillain could you please modify the bytecode tests to make sure they pass?

@smarter
Copy link
Member

smarter commented May 27, 2017

SimplifyNegTests extends a trait with @Test methods, I wonder if this is related to https://github.com/scala-js/scala-2.12-junit-mixin-plugin

@smarter
Copy link
Member

smarter commented May 27, 2017

@DarkDimius Does dotty emit mixin forwarders?

@DarkDimius
Copy link
Member Author

DarkDimius commented May 27, 2017 via email

@smarter
Copy link
Member

smarter commented May 27, 2017

Doesn't Scala 2.12 always emit forwarders for performance reasons now?

OlivierBlanvillain and others added 21 commits May 29, 2017 10:06
The situation is a follows:

Without this commit `testOnly dotty.tools.dotc.CompilationTests -- *testPickling` fail with more precise types after pickling.

Reverting tpd.scala to master breaks the "tree referencial equiality" condition used in Simplify to detect a fix point. For example `vulpix t7336.scala` (this one also requires the Skolem#toString change).

This hack is sufficent for Simplify to reach its fix points without breaking pickling...

[SQUASH] [TODO] fix tpd .toString hack
3 failing tests left:

tests/run/t8933c.scala
tests/pos/t348plus.scala
dotty1 from idempotency1
This is removing a disparity between lubs obtained before and after erasure.

Consider this example:

```
if b ast.Trees.Match(???)
else ast.Trees.Literal(???)
```

Before erasure this would be an or type that's later widen to
`ast.Trees.TermTree`. Because of `erasedLub` bias for classes, recomputing
this lub after erasure lead to `ast.Trees.Tree` instead.

This disparity prevents a local optimisation from being Ycheckable.
This also seems to be a reason why Ycheck:front fails.

typeAssigner is REMOVING partial evaluation that typer did
when you copy a tree. It means that types would be different if
you test pickling.

Update made to homogenize:

- Don't print constant types in pickling.
- Sort union types according to their .show String
This is the issue discussed on scala#2439. The fix implemented there (6f3aa3c) breaks a bunch of other tests; to be further investigated.
Make Apply and TypeApply copy only if
function or argument types have changed.
@DarkDimius
Copy link
Member Author

I'm working on fixing Junit4 in Dotty

@OlivierBlanvillain
Copy link
Contributor

OlivierBlanvillain commented May 29, 2017

@DarkDimius I have a fix for the SimplifyTests, it it ok to test it by force pushing this branch?

@DarkDimius
Copy link
Member Author

@OlivierBlanvillain, yes please force push. I'll still fix JUnit 4 in separate branch.

@OlivierBlanvillain
Copy link
Contributor

@DarkDimius it passed the CI! http://dotty-ci.epfl.ch/lampepfl/dotty/2614 I've pushed it to #2513.

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

Successfully merging this pull request may close these issues.

None yet

6 participants