exception-handling
kotlin
exception-handling | kotlin | |
---|---|---|
7 | 208 | |
145 | 47,521 | |
2.8% | 0.5% | |
6.8 | 10.0 | |
9 days ago | 6 days ago | |
WebAssembly | Kotlin | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
exception-handling
-
Bring garbage collected programming languages efficiently to WebAssembly
Interesting article, thanks!
Notes on the issues mentioned there:
* The need for a manual shadow stack: This is fixed in WasmGC (in the same way it works in JS, as the link mentions).
* Lack of try-catch: This is fixed by the Wasm exception handling proposal, which has already shipped in browsers, https://github.com/WebAssembly/exception-handling/blob/main/...
* Null checks: Mostly fixed by WasmGC. The spec defines non-nullable local types, and VMs can use the techniques the article mentions to optimize them using signals (Wizard does, for example).
* Class initialization: This is a difficult problem, as the article says. J2Wasm and Binaryen are working to optimize it through static analysis at the toolchain level. Here is a recent PR I wrote that makes progress there: https://github.com/WebAssembly/binaryen/pull/6061
* The vtable overhead issue the article mentions may be a problem. I'm not aware of good measurements on it, through. There are some ideas on post-MVP solutions for method dispatch that might help, but nothing concrete yet.
* Checks for null and trapping: There has been discussion of variants on the GC instructions that throw instead of trap. Measurements, however, have not shown it to be a big problem atm, so it is low priority.
The author is right that stack walking, signals, and memory control are important areas that could help here.
Overall with WasmGC and exceptions we are in a pretty good place for Java as emitted by J2Wasm today: it is usually faster than J2CL which compiles Java to JavaScript. But there is definitely room for improvement.
-
In the latest demo with Dart, WebAssembly and GC in Chrome how was the Exception Handling solved?
It uses https://github.com/WebAssembly/exception-handling/blob/master/proposals/exception-handling/Exceptions.md which is actually supported by all major browsers already.
-
'The best thing we can do today to JavaScript is to retire it,' says JSON creator Douglas Crockford
Yep, you're right. It's also more than just the DOM, it's web APIs in general, such as fetch, audio, webgl/webgpu, etc. WASM still needs GC, exceptions, and WASI to be able to fully interop with any host without any of the current limitations. This'll take a few years. I'm looking forward to the future in which I will be shipping WASM-only web apps to my users.
-
WebAssembly Everywhere
Its a part of the wasm plan to support gc https://github.com/WebAssembly/gc exceptions https://github.com/WebAssembly/exception-handling
-
What's New in Node.js 17
As of Node.js 17, the v8 JavaScript engine has been updated to v9.5. The changes in this release are primarily aimed at expanding internationalization for dates and calendars as well as for the output of time zones. It also implements the WebAssembly Exception Handling proposal, designed to reduce overhead compared to current JavaScript-based workarounds.
- WebContainers: Run Node.js natively in the browser
-
Google admits Kubernetes container tech is too complex
Agreed, although at some point in a not very far feature most of those missing features will resolved. So in my mind is just a matter of time. The Wasm Community group is doing an awesome work on that :)
Here are a few examples of what needs move forward in Wasm:
* [1] Wasm Exceptions Handling: Right now Wasm is missing a way to handle exceptions natively (C++ programs can only compile to Wasm using the asyncify or longjmp/setjmp tricks via Js try/catch)
* [2] Wasm GC: Wasm Binary files are quite big (specially in interpreted languages). This is partially caused by the GC being included in the Binary itself. The GC proposal will solve this while also providing faster execution.
* [3] Wasm 64-bit Memory: currently Wasm can only operate with 32-bit data. In some contexts you may want you operate with more than 4GB of memory (for example, when operating over terabytes of data). The 64-bit memory proposal will solve that.
[1]: https://github.com/WebAssembly/exception-handling
kotlin
- Kotlin 2.0 RC1
-
Implementing an Auto-logout Feature for Android in Kotlin
A basic understanding of Kotlin and programming in general (OOP).
-
Kotlin and Azure Functions - Automating the deployment
Being somewhat allergic to coding in Java (this is a personal thing, if you like Java then good for you) I decided to try out writing the code using Kotlin from JetBrains instead. I'm already using IntelliJ as I work with Apache Spark using Scala, so the tooling was already there and ready to go for this.
-
Top Paying Programming Technologies 2024
25. Kotlin - $78,207
- Fuckjava.com Redirects to Kotlinlang.org
- Kotlin 2.0.0 Beta 2
-
Tests Everywhere - Kotlin
Kotlin testing with Kotest and MockK
- Kotlin 2.0.0 Beta1 is out
-
🎉 Kotlin Multiplatform is now STABLE!
Congrats to our friends at Kotlin. 🚀 After years of growth and development, KMP reaches a pivotal milestone with 1.9.20. We’ve been on team Kotlin Multiplatform since day one, and the best is yet to come! Learn more 👉 https://touchlab.co/kotlin-multiplatform-is-stable
-
Regarding Lenses, Prisms and Optics
Another option could be to check out Kotlin. It's a JVM language that while still object-oriented has may functional syntax features.
What are some alternatives?
Uno Platform - Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
solidity - Solidity, the Smart Contract Programming Language
Flutter - Flutter makes it easy and fast to build beautiful apps for mobile and beyond
scala - Scala 2 compiler and standard library. Bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3
simd - Branch of the spec repo scoped to discussion of SIMD in WebAssembly
Flask - The Python micro framework for building web applications.
schism - A self-hosting Scheme to WebAssembly compiler
puppeteer - Node.js API for Chrome
Dokku - A docker-powered PaaS that helps you build and manage the lifecycle of applications
kotlinx.coroutines - Library support for Kotlin coroutines
webcontainer-core - Dev environments. In your web app.
Express - Fast, unopinionated, minimalist web framework for node.