u/GMP10152015

🚀 ApolloVM 0.1.28 Released
▲ 6 r/dartlang+1 crossposts

🚀 ApolloVM 0.1.28 Released

This is one of the biggest ApolloVM releases so far, bringing two new languages, major WebAssembly advancements, and substantial runtime improvements.

https://pub.dev/packages/apollovm

🆕 Kotlin Support

ApolloVM now supports Kotlin parsing, execution, and translation, reaching feature parity with Java support.

  • ✅ Parse Kotlin source
  • ✅ Execute Kotlin code inside ApolloVM
  • ✅ Translate Kotlin ↔ Dart ↔ Java
  • ✅ Shared AST architecture with no AST changes required

Supported features include functions, classes, type inference, collections, control flow, and string templates.

🆕 Modern JavaScript Support

JavaScript is now a first-class ApolloVM language.

  • ✅ Parse, execute, and translate JavaScript
  • ✅ Classes, constructors, fields, methods
  • ✅ let / const / var
  • ✅ for, for...of, while
  • ✅ Template literals
  • ✅ Arrow functions
  • ✅ Strict equality (===, !==)

JavaScript can now be translated to Dart and Java, and Dart/Java code can be translated back to JavaScript through the shared AST.

🌐 Massive WebAssembly Progress

Building on the work introduced in 0.1.27, ApolloVM now provides extensive Wasm generation support:

  • ✅ Lists and Maps
  • ✅ String handling and interpolation
  • ✅ Loops and recursion
  • ✅ Function calls
  • ✅ Dynamic memory growth
  • ✅ Map iteration (.keys / .values)
  • ✅ Map parameters and return values
  • ✅ Compound collection assignments (m[k] += 1)
  • ✅ Browser validation on Chrome

The Wasm backend is rapidly moving toward full Dart feature parity.

⚡ Runtime Improvements

• Dynamic arithmetic now works correctly across all supported languages • for-each / for...of loops now operate on any iterable • JavaScript division follows JavaScript semantics (7 / 2 = 3.5) • Improved code generation correctness • Fixed CLI translation output issues

🧪 Quality & Testing

This release adds extensive coverage for Kotlin, JavaScript, WebAssembly, runtime behavior, translation round-trips, and cross-language execution.

ApolloVM now supports:

  • 🔹 Dart
  • 🔹 Java
  • 🔹 Kotlin
  • 🔹 JavaScript
  • 🔹 WebAssembly (compilation/generation)

All powered by a single shared AST and runtime infrastructure.

GitHub: ApolloVM/apollovm_dart

The long-term goal remains unchanged: write once, parse anywhere, execute anywhere, translate anywhere.

#ApolloVM #DartLang #Java #Kotlin #JavaScript #WebAssembly #Wasm #Programming #OpenSource

u/GMP10152015 — 12 days ago