Hey folks! As you all know well we are working on ...
# javascript
d
Hey folks! As you all know well we are working on moving our new IR compiler backend to the Beta stage (KT-42289). As part of this task, i’m trying to reach the third-party library maintainers to ask them to provide compatibility with the new backend (support both-mode). Or get a list of problems that stop them from doing it. You can really help me by looking at the list below and pointing out third party (not Kotlin or JetBrains) libraries/artifacts, that are not on it, but are used in your projects: •  KVision  •  Fritz2  •  KorGE  •  Doodle  •  Plotly.kt  •  Kmath  •  Kotest •  samgarasx/kotlin-js-wrappers •  redux-kotlin •  vue-kotlin •  kotlin-material-ui •  yested_fw •  kvdom •  Kodein-DI •  Koin
👀 1
s
<https://github.com/cfnz/muirwik>
✔️ 1
a
Plotly->Plotly.kt (not to confuse with JS plotly). Also you can add https://github.com/mipt-npm/visionforge and https://github.com/mipt-npm/gdml.kt. We've migrated everything to IR and waiting 1.4.20 for release versions (there were critical bugs before that). We do not plan to suppor Legacy mode.
✔️ 1
@Dmitry Romanov [JB] https://github.com/pdvrieze/xmlutil supports JS target and we use it as dependency. It is already on BOTH though.
👍 2
t
c
r
https://github.com/gbaldeck/snabbdom-kotlin It's used by KVision. I've created a PR for 1.4 and BOTH, but no answer from the owner. For now I've decided to use my own fork.
n
I'd love to move Measured as well, but this is depends on mockk's migration. I've filed an issue already, but there's been no progress yet.
d
Thank you, guys!
g
@Robert Jaros I am the owner of the snabbdom-kotlin repo. I haven't had time for maintenance on any of my repos for quite a while so it's definitely better to fork it.
r
@gbaldeck That's what i did. Anyway, thanks for your project 🙂 KVision might not have been created if I hadn't found it 🙂
g
@Robert Jaros no problem 🙂. I just merged your pull request and invited you to the repo by the way. Then you can merge pull requests and do whatever else needs to be done without having to wait
🙏 1
👍 1
g
@Dmitry Romanov [JB] I’m going to try the new backend on data2viz
d
@gaetan Cool, thanks! If any problems arise, it’d be great if you could share them with us.
👍 1
l
n
Doodle hasn’t moved because it depends on Mockk, but I am also still seeing IDE freezes as described here https://youtrack.jetbrains.com/issue/KT-41335.
👀 1
a
Yes, there is some kind of memory leak in dependencies indexing. I heard it fixed in 1.4.30, but I have not found the issue.
👍 1
d
Thnx @Nick! I will try to talk to the guys from Mockk. AFAIK the fix for KT-41335 will be in the following Kotlin plugin version (1.4.20)
👍 1
g
@Dmitry Romanov [JB] The first “internal” test module doesn’t compile with Kotlin 1.4.20 :
Copy code
> Task :tests:compileTestKotlinJsIr FAILED
e: java.lang.AssertionError: Unbound symbols not allowed
        Unbound public symbol for public io.data2viz.test/TestBase.element|-8168683018529524952[0]
        Unbound public symbol for public io.data2viz.test.matchers/Matchers.element|-8168683018529524952[0]
Should I create a new issue for it?
👌 1
a
There are several similar problems on youtrack already
g
Yes, I know. This is why I ask this question, as I’m not able to determine if it is exactly the same issue.
a
You should open in in any case or comment the existing issue
b
@gaetan please create an issue with instruction to reproduce.
btw, have you tried clean build?
g
I’m working to provide data2viz library with the new IR mode. I face a problem using the BOTH mode. When I use it, the js files generated for current version change:
Copy code
(function (root, factory) {
  if (typeof define === 'function' && define.amd)
    define(['exports', 'kotlin', 'd2v-core-jsLegacy'], factory);
  else if (typeof exports === 'object')
    factory(module.exports, require('kotlin'), require('d2v-core-jsLegacy'));
  else {
    if (typeof kotlin === 'undefined') {
      throw new Error("Error loading module 'd2v-color-jsLegacy'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'd2v-color-jsLegacy'.");
    }if (typeof this['d2v-core-jsLegacy'] === 'undefined') {
      throw new Error("Error loading module 'd2v-color-jsLegacy'. Its dependency 'd2v-core-jsLegacy' was not found. Please, check whether 'd2v-core-jsLegacy' is loaded prior to 'd2v-color-jsLegacy'.");
    }root['d2v-color-jsLegacy'] = factory(typeof this['d2v-color-jsLegacy'] === 'undefined' ? {} : this['d2v-color-jsLegacy'], kotlin, this['d2v-core-jsLegacy']);
The module names are modified with a
-jsLegacy
suffix. Is there a way to keep the current translation when using
BOTH
mode? @dmitry.petrov @bashor
r
g
Thanks a lot.
n
Both Doodle and Measured now support the IR backend.
🎉 2
🔥 1