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

Linker requires dummy forwarders to implement Java APIs #375

Closed
densh opened this issue Nov 8, 2016 · 0 comments
Closed

Linker requires dummy forwarders to implement Java APIs #375

densh opened this issue Nov 8, 2016 · 0 comments

Comments

@densh
Copy link
Member

@densh densh commented Nov 8, 2016

This has been discovered by @soc in #373. The issue can be clearly seen in the implementation of ArrayList:

package java.util

class ArrayList[E] ... {
  ...

  override def subList(fromIndex: Int, toIndex: Int): List[E] =
    super.subList(fromIndex, toIndex)

  override def listIterator(): ListIterator[E] = super.listIterator(0)

  override def listIterator(index: Int): ListIterator[E] =
    super.listIterator(index)
}

The last three methods should not have been necessary.

@densh densh added this to the 0.1 milestone Nov 8, 2016
@densh densh added the bug label Nov 25, 2016
@densh densh modified the milestones: Backlog, 0.1 Jan 20, 2017
@densh densh modified the milestones: 0.4, Backlog May 20, 2017
matil019 added a commit to matil019/scala-native that referenced this issue Jun 8, 2017
* mention scala-native#375 for nativeLinkNIR errors
* put `TODO` to unimplemented methods
* un-javadoc the comments on the value parameters
@densh densh modified the milestones: 0.4, Backlog Jan 9, 2018
@densh densh mentioned this issue Jul 27, 2018
8 of 11 tasks complete
@densh densh closed this in #1323 Aug 28, 2018
densh added a commit that referenced this issue Aug 28, 2018
This PR is a follow-up to #1313 that completely eliminates override and pin attributes from NIR. Those were used previously to perform name-based reachability analysis (aka linking step of the nativeLink).

Instead, we do a Scala.js-like reachability and semantic analysis in the same pass. This improves precision of the reachability as it now knows about NIR semantics, not just loads all reachable names from the entry point. Smaller reachable set improves compilation time (less code to transform) and the resulting binary size (less code to emit).

Resolves #375 and probably a few more issues related to null-dereferencing segfaults and linking errors when calling across JDK boundary.
@densh densh modified the milestones: Backlog, 0.3.9 Aug 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant