All Versions
Latest Version
Avg Release Cycle
105 days
Latest Release
1293 days ago

Changelog History
Page 1

  • v0.7.0 Changes

    October 06, 2020


  • v0.6.8 Changes

    January 14, 2018

    ๐Ÿ†• New features:

    • ๐Ÿ›  ALL: Improved generated code (now new + constructor is joined), this also improves calling native code and fixes #134
    • ๐ŸŽ JS: String concatenation (new ArrayBuilder+append+toString chain) is now optimized (less code and better performance)
    • ๐Ÿ”€ HAXE-CPP: Support Haxe-Cpp synchronized blocks
    • ๐ŸŽ JS: Support Threads in JS using await/async (disabled by default because of performance impact)
    • JS: Now targets to ES6 with classes since it is mainstream already
    • Implement Object.wait/notify/notifyAll + Semaphore using Object facilities
    • ALL: Added JTranscTargetClassImpl to remap a class depending on the target (similar to ServiceLoader approach but simpler)

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  Gradle: Fixed newer gradle versions that output different language classes in different directories.
    • ๐Ÿ›  Fixed order of Side effects in several cases in D and C++ targets

    ๐Ÿ‘Œ Improvements:

    • Thread improvements in all targets

    ๐ŸŽ Performance Improvements:

    • @SergeyLabutin Reflection Cache


    • ๐Ÿ‘ @SergeyLabutin Support
    • โฑ @SergeyLabutin Missing ScheduledThreadPoolExecutor.submit
    • โšก๏ธ @SergeyLabutin Updated lime to 5.4.0
    • โšก๏ธ Updated Kotlin to 1.2.10
    • โšก๏ธ Updated Gradle to 4.4.1
    • โšก๏ธ Update plugin-publish-plugin to 0.9.9
  • v0.6.7 Changes

    August 13, 2017

    ๐Ÿ†• New features:

    • @Intrigus Add almost complete jni implementation for cpp target
    • ๐Ÿ”€ @fxjshm: Added synchronized function support (except Haxe target for now)
    • ๐Ÿ‘ @fxjshm: Support mutex in C++ target
    • โž• Added support for Runtime.addShutdownHook() to JS target
    • โž• Added javax.sound.sampled stub classes
    • โž• Added tons of java.nio stub classes
    • โž• Added java.awt.Desktop stub class
    • โž• Added java.util.Optional
    • โž• Added most java.util.functional.* interfaces
    • โž• Added stub class
    • โž• Added and implemented lots of java.time classes

    ๐Ÿ‘Œ Improvements:

    • @SergeyLabutin: Split reflection information in several methods
    • @SergeyLabutin: Thread improvements
    • ๐Ÿ‘ Implemented String.format("%.f") support with Locale support
    • Honor cond in JTranscAddLibraries, JTranscAddIncludes, JTranscAddDefines, JTranscAddImports

    ๐Ÿ›  Fixes:

    • @intrigus: Compile Bdwgc lib statically instead of dynamically
    • ๐Ÿ›  Fixed System.arraycopy undefined behaviour on overlapping
    • ๐Ÿ‘‰ Make more compatible d2i and f2i opcodes for float and double to int conversions in NaN, -Inf and +Inf


    • ๐Ÿšš Moved each language test to its own project. Added jtransc-gen-common-tests
    • โž• Added codecov + jacoco to test coverage
    • ๐ŸŒฒ Make haxelib quiet to reduce log output in travis
    • โšก๏ธ Updated gradle to 4.0.2
    • โœ… Disabled C# tests on travis for now
    • โšก๏ธ Updated travis to Ubuntu Trusty
    • haxelib --always
    • โšก๏ธ @SergeyLabutin: Updated lime to 5.3.0
  • v0.6.6 Changes

    July 23, 2017
    • @SergeyLabutin: Implemented Runtime.memory methods for Haxe+Cpp target
    • @SergeyLabutin: Fix int64
    • @SergeyLabutin: Fix DataInputStream.readUTF and DataOutputStream.writeUTF using modified utf-8
    • Implemented array literals in all languages
    • Split reflection getFieldAnnotations per class
    • @fxjshm: Fix boolean literals on C#
    • โž• Added jtransc.optimize option to gradle and tests to disable optimizations
    • Disabled variable inlining optimization for now since it caused some spurious bugs
    • ๐Ÿ @fxjshm: Added AppVeyor CI support for testing on a Windows machine
  • v0.6.5 Changes

    July 07, 2017

    ๐Ÿ‘Œ Improvements:

    • ๐ŸŽ [HAXE] [HAXE-CPP] Greatly improved performance of System.arraycopy and System.fill
    • ๐ŸŽ [HAXE-CPP] Improved performance of Object[] arrays
    • ๐ŸŽ [CPP] Improved performance of fill for 64-bit types (long and double) in 32-bit builds

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  [TEMPLATES] Fixed if+else minitemplates

    Missing API:

    • ๐Ÿ‘ @fxjshm: Added UnsupportedClassVersionError


    • โœ… [HAXE-CPP] Enabled travis-ci automated testing for haxe-cpp target
    • ๐Ÿ“š @SergeyLabutin Documentation for Android Target in readme
    • โšก๏ธ Updated Kotlin to 1.1.3-2
    • โž• Added JTRANSC_OS to templates
    • โž• Added |image_info minitemplate filter to get width and height from images from a byte array, File or String path
  • v0.6.4 Changes

    July 01, 2017

    ๐Ÿ†• New features:

    • ๐Ÿ”Œ [ALL] Plugins are now able to process classes after applied features
    • [ALL] @SergeyLabutin Added additional missing settings to CommonGenerator

    ๐Ÿ›  Fixes:

    • ๐Ÿ›  [CPP] Fixed float REM opcode on C++
    • [ALL] Fixed INVOKE_DYNAMIC_METHOD with additional expressions + optimizer (problems with inner lambdas)
    • ๐Ÿ›  [GRADLE] Fixes gradle appendVar when no annotation was provided already

    ๐Ÿ‘Œ Improvements:

    • [JS] Now compiler strips .0 trailings on double literals to reduce output size


    • [ALL] Unified body features on all targets
    • ๐Ÿšš [CPP] Removed ClassLoader C++ specialized code. Since this is not going to work at least with the current reflection library.


    • โšก๏ธ [HAXE] Updated lime to 0.5.1
    • โšก๏ธ [ALL] Updated to kotlin 1.1.3
  • v0.6.3 Changes

    June 11, 2017

    ๐Ÿ†• New features:

    • โœ… [PHP] Requires PHP 7.1. PHP target now passes big tests though it is slower than other targets
    • ๐Ÿ‘ [GRADLE] Added appendVar support. Check: fdd58dbe26203703adfc64484c5a575f17dddb9f

    ๐Ÿ›  Fixes:

    • [ALL] Class.getMethod and getDeclaredMethod correct behaviour
    • [HAXE-CPP] @SergeyLabutin - Implemented Object.wait
    • ๐Ÿ›  [CPP+C#] Fixed float NAN
    • โš  [CPP] @intrigus Consistency and warnings fixes in ++ target
    • [HAXE] Missing keywords

    ๐Ÿ‘Œ Improvements:

    • [C#] Allow specify C# compiler. Check issue #156
    • [ALL] Reduced output size combining several switch cases in one.
    • ๐Ÿ‘ [ALL] Support overlay methods in native methods
    • [ALL] Simplify generating ClassInfo for reflection
    • [HAXE] Improved integer array literal for small counts


  • v0.6.2 Changes

    May 31, 2017


    ๐Ÿ›  Fixes:

    • ๐Ÿ›  [ALL] Fixed a bug in treeshaking creating extra methods that broke super functionality and makes code bigger
    • ๐Ÿ›  [HAXE] Fixed indentation of the output classes
    • ๐Ÿ›  [HAXE] Fixed haxe division + remainder (both integer and long, at least in C++ with edge cases)
    • ๐Ÿ [HAXE] Fixed being able to execute c++ executables directly (at least in windows)
    • ๐Ÿ›  [HAXE] Fixed com.jtransc.FastMemory in haxe-cpp
    • ๐Ÿ“š [ALL] Some static init fixes + documentation about static initialization issues
    • ๐Ÿ›  [HAXE-CPP] @SergeyLabutin Fixed StringBuilder with unicode characters in Haxe-C++
    • โœ… [PHP] Some PHP issues. Still not passing big test and extremely slow due to lack of typed arrays
    • [ALL] Fix static initialization problem with charsets (static initialization + ServiceLoader a bit tricky)
    • [ALL] @SergeyLabutin TimeUnit.convert fix

    ๐Ÿ†• New features:

    • [ALL] @SergeyLabutin: Implemented ThreadPoolExecutor
    • โฑ [ALL] @SergeyLabutin: Implemented ScheduledThreadPoolExecutor
    • [DART] Allow add extra imports externally

    ๐Ÿ”„ Changes:

    • [ALL] Passthru target compiler output
    • [CPP] Allow setting GC roots manually by the GC implementation
    • [CPP] Embed to ensure we have the library and the right format and version.
    • ๐Ÿ”ง [CPP] Configurable GC
    • [ALL] Changed ZIP reader to be consistent between platforms/Java VMs
    • ๐Ÿ“š [TIZEN] Remove from documentation since not supported by Lime anymore


    • โšก๏ธ [JS] Do not use float to avoid issues with Closure Optimizer
    • ๐Ÿ”จ [JS] Some refactorings
    • [GITTER] Unified chat slack/irc -> gitter
    • [TRAVIS] Reduce mono dependencies
    • [TRAVIS] Disabled travis cache
  • v0.6.1 Changes

    May 21, 2017
    • โž• Added @JTranscAddIncludes and @JTranscAddDefines annotations
    • Honor @JTranscAddLibraries and @JTranscAddIncludes annotations in C++ target
    • โž• Added @JTranscAddTemplateVars annotation to add list variables to templates from code
    • ๐Ÿ‘ CMAKE now supports list template variables CMAKE and CMAKE_PROJECT for adding custom lines before and after project
    • โž• Added @JTranscAddMembers.cond to conditionally add members
    • ๐ŸŽ‰ Initial support of class @JTranscNativeName types in C++. Implemented Int32x4 SIMD to check. Works even without ENABLE_TYPING enabled.
    • ๐Ÿ Fxied compilation in windows (b2.exe not executing)
  • v0.6.0 Changes

    May 20, 2017


    ๐Ÿ†• New features

    • @intrigus: C++ target with GC continuing the work on @dsp-omen that created the initial c++ target
    • โœ… AS3 target (BigTest passes)
    • โœ… Dart target (BigTest passes)
    • Prevent generating runtime invisible annotations
    • โž• Added package to handle asynchronous I/O
    • ๐Ÿ‘Œ Improved com.jtransc.js.JsDynamic

    ๐Ÿ”„ Changes

    • ๐Ÿ”จ Some refactorings at CommonGenerator
    • ๐Ÿ‘ @JTranscNativeName now supports a target field to have a class has different types on different targets

    ๐Ÿ›  Fixes

    • ๐Ÿ›  @SergeyLabutin - Static initialization fixes
    • @SergeyLabutin - Some thread work on Haxe/CPP
    • ๐Ÿ– Handle template references inside @JTranscCallSiteBody

    Implemented features


    • ๐Ÿ‘ Better output quality (less casts), still left
    • Lightly improved compile time
    • ๐Ÿ‘Œ Improved StringBuilder runtime in all targets
    • ๐Ÿ‘Œ Improved slightly performance on all targets (simplifying Object construction)
    • D put strings at compile-time since Object construction no longer require runtime
    • C# implemented genStmSetArrayLiterals reducing output size and startup time
    • ๐ŸŽ Rework on Haxe arrays and casts specially in C++ for a major performance boost
    • ๐ŸŽ Implemented Haxe-C++ goto hack for even better performance on loops

    ๐Ÿ—„ Deprecations

    • ๐Ÿšš Array casts are now deprecated and removed, because that requirement was slowing down some implementations. In the future we will explore other options. For now, please use Mem/FastMemory* classes.
    • ๐Ÿ—„ Deprecated {% FIELD %} and {% METHOD %} (replaces to NAME) in favour of {% IFIELD %} and {% IMETHOD %} (replaces to .NAME or ['NAME'] in JS just when required and works with minification)
    • ๐Ÿ—„ Deprecated @JTranscNativeClass that was redundant due to @JTranscNativeName.