With the JVM and JS supported and native coming up, undoubtedly a solid abstraction has been building. I have quickly perused the code and see that there is an IR among other abstractions.
I might want to target a custom backend/runtime. What is the stability of the abstraction and is it feasible for me to follow kotlin/js at master · JetBrains/kotlin · GitHub as a blueprint of the APIs to touch for my own “transpiler”?
Just of curiosity what would that be?
BTW js/ is ~140Ksloc with tests not a small project, and it is relatively simple transform
I would guess nobody tested actual dependency separation for other parts of project and adding more backends roots into main code base. So +~350Ksloc with tests. My raw estimate for adding new target with js level complexity would be ~250Ksloc which is 5-10man years worth of work.
I was just gonna see about transpiling to Go or something to see if I could get cross use. I’ve done it w/ low level JVM bytecodes as a pet project, but curious how well Kotlin’s IR will map. It’s more exploratory than anything at this point.