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

JS IR compiler support #910

Closed
andersio opened this issue Mar 17, 2021 · 3 comments · Fixed by #940
Closed

JS IR compiler support #910

andersio opened this issue Mar 17, 2021 · 3 comments · Fixed by #940
Labels

Comments

@andersio
Copy link

andersio commented Mar 17, 2021

While JS IR backend is still in alpha, IR compiler support is valuable to prototype and test TypeScript integration. So it would be great if okio can enable kotlin.js.compiler=both at some point.

Having said that, when I try to convert square/okio 3.0.0-alpha1 to work with the JS IR compiler, I stumbled upon a compiler bug & filed it as KT-45542. It is reproducible on both Kotlin 1.4.31 and 1.5.0-M1. Since square/okio uses default parameter values in its expect classes quite a lot, guess we will all have to wait then. :shipit:

@JakeWharton
Copy link
Collaborator

Thanks! Feel free to fire over a PR when upstream is fixed as well!

@andersio
Copy link
Author

andersio commented Mar 26, 2021

@JakeWharton Is it acceptable to workaround the issue by dropping default arguments?

e.g.

-  fun lastIndexOf(other: ByteString, fromIndex: Int = size): Int
+  fun lastIndexOf(other: ByteString, fromIndex: Int): Int
+  fun lastIndexOf(other: ByteString): Int

Not sure whether this has an ABI impact on JVM though.

@swankjesse
Copy link
Collaborator

@andersio that is not a binary-compatible change.
Too bad!

swankjesse pushed a commit that referenced this issue May 22, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.

It also works around a bug in IR where Long.toString() returns the wrong
value.

Closes: #910
swankjesse pushed a commit that referenced this issue May 22, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 22, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 23, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 23, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 23, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 24, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 25, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse added a commit that referenced this issue May 25, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 25, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse pushed a commit that referenced this issue May 25, 2021
This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910
swankjesse added a commit that referenced this issue May 26, 2021
* Support Kotlin/JS IR and Legacy JS

This introduces a very ugly workaround to a limitation in the IR compiler
where default parameter values cannot be functions on the invoked object.
https://youtrack.jetbrains.com/issue/KT-45542

It also works around a bug in IR where Long.toString() returns the wrong
value.
https://youtrack.jetbrains.com/issue/KT-39891

Closes: #910

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

Successfully merging a pull request may close this issue.

3 participants