Regular update, May 2025 #1034
Replies: 3 comments 4 replies
-
|
If you lack of demos, I have Heroes of might and magic III combat emulator here https://ihromant.github.io/ Unfortunately, I don't want to make this code public at this moment of time, so you have to trust (and you have seen it) that it's implemented using TeaVM.
|
Beta Was this translation helpful? Give feedback.
-
|
Hi, discord invite like is expired. |
Beta Was this translation helpful? Give feedback.
-
|
Other idea came to my mind. But I assume that implementing it would be not worth spending efforts or impossible, therefore sharing it here first. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi. I think I do a lot of purely technical work, which shows good result - after two releases and less than a year of work we finally have new WebAssembly GC backend that just works. However, I always a bit reluctant to do community work. I'd like to find a way to change it. So I'll try this new format: on some regular basis (I'm not sure, perhaps it's monthly, or two times a month, or may be just "when I have enough time and motivation", but not too rare) I'll share my progress, my thoughts and my ideas and my plans here. Let's start.
First of all, my current focus is to create an impressive demo. Current ones that I have are two simple and too small, so as anyone sees them, they think that TeaVM is a toy project. Another reason is that currently I'm too bound to my employer's project when I test new releases; I want to have my own "big project". So the decision was to revive my old project of translating Java compiler to WebAssembly. Many years ago there used to be a page on TeaVM's site where everyone could just type any JavaScript code, press "play" button and get the result. Unlike most of such playgrounds, my version did not do any roundtrip to the sever for compilation - everything was done by the client. However, after Java 8 there were too many show stoppers. First of all, modularization. Second, javac started to use
java.nio.filepackage, which is huge and which is not implemented in Harmony project, so I have to re-implement it myself. Now I did just that: implemented most ofjava.nio.file, and now I can at least compile javac 21 (but it still does not run). I'll keep sharing my progress on this project. Another possible benefit from such playground is documentation: I'm going to prepare code samples for playground that cover specific topics (say, JavaScript interop) and set permanent links for them, so that I could put these links into documentation.Second, by release 0.13.0 I'm going to close final gap between JS and WebAssembly GC backend, namely, support for green threads. In addition, if this won't take too much time, I hope to extend reflection support: add support for annotation on fields and methods and perhaps even implement generics in reflection and support proxies.
Finally, I have always realized that keeping this state when TeaVM is my personal hobby project is a way nowhere. Sometimes I make efforts to change this - and always fail. But I'm going to keep trying. My last effort was 1.5 years ago when I started to thank PR authors in release notes and encouraged to make contributions. I also added corresponding section on the web side. This however did not bring good experience. Partially, this is my fault - I'm usually reluctant to review PRs. Partially this is because I felt that I need WebAssembly GC backend, because it seemed a year ago that it's the direction where the world is going (and I think that decision was right). And this made me sink deeply into coding, so I became even more unresponsive. I'd like to change different approaches of growing long-term co-contributors for this project, I hope to publish details a bit later.
Also, one small thing. Recently I added to examples to TeaVM's gallery sections:
One special thing about them that they weren't created by me. And what I'm proud to find out: when I released TeaVM whith stable WebAssembly GC support, @kenchis just took his project and re-compiled it to WebAssembly GC without any assistance from my side. So I updated the link to point to WebAssembly GC version.
Let this format won't be monologue. Just communicate with me and with each other. Share your ideas, your progress, your projects. I'd like to encourage you to post here, in "Discussions" and in discord. I receive questions here - good, but don't limit your posts to questions. Share everything you want to share. And of course, if you have something to reply here - just write your replies to this post.
Beta Was this translation helpful? Give feedback.
All reactions