Skip to content

Releases: heremaps/gluecodium

Release version 13.20.0 (#1785)

05 Nov 09:12
626f45d

Choose a tag to compare

Features:

  • Kotlin: interfaces are now generated as functional interfaces whenever it is possible.
  • Kotlin: static properties of classes can be now accessed also via static getter and setter generated as extension function.
  • Kotlin: generated collection types are immutable.

Release version 13.19.0 (#1779)

11 Aug 08:07
17eafc9

Choose a tag to compare

Features:

  • Kotlin: reintroduced handling of @Internal annotation, which results in usage of internal keyword.

Release version 13.18.0 (#1778)

07 Aug 12:24
bf3c1f6

Choose a tag to compare

Features:

  • Dart/FFI: a new public function called *_library_execute_callbacks_for_isolate_of_current_thread() is available to execute enqueued callbacks for the current thread. This can be used to implement platform event handlers, which need to wait until certain actions complete. If such handlers block the thread, then no callbacks can be executed -- this may lead to dead locks. The new function can be used together with polling to execute some Dart callbacks while the thread is waiting.

Bug-fixes:

  • Dart/FFI: the bug related to entering isolate context after the given isolate is closed is solved for execution of Dart callbacks from C++. Since this release the callbacks queue manager received a new function, which checks if callbacks queue for given isolate is open and only in such case enters isolate context before executing a callback.

Release version 13.17.0 (#1776)

04 Aug 14:04
8ed7945

Choose a tag to compare

Features:

  • Validation: LimeLambdaValidator class is extended with new functionality to raise warning/error when parameters with default names are explicitly documented.

Bug-fixes:

  • C++: the compilation error in generated C++ code for equatable structure with set of enumerations is fixed by adjusting the template specialization in UnorderedSetHash.h.
  • Validation: LimeValidatorUtils.needsDocumentationComment() function is extended to avoid raising warnings/errors when a given LimeElement is annotated as internal/skipped for each platform (Java, Kotlin, Swift, Dart).

Release version 13.16.0 (#1766)

13 Jun 06:44
a9aeb0d

Choose a tag to compare

Features:

  • Dart: added support for type aliases (typedefs).

Bug-fixes:

  • Dart: removed redundant white-spaces from rendered comments for constructors of structures. Adjusted the rendered comments to list parameters using bullet points to improve readability.

Release version 13.15.1 (#1763)

05 Jun 04:49
9b47779

Choose a tag to compare

Bug-fixes:

  • Kotlin: fixed warnings from the generated NativeBase.kt file related to redundant imports. Fixed warnings related to usage of !! operator on non-nullable type in the generated code related to serialization.
  • Kotlin: implemented proper handling of custom platform names for accessors of properties. Before this release the generated JNI symbol did not match the signature generated by Kotlin compiler when custom name was used. The problem is fixed via usage of @JvmName() for getters and setters.
  • Validation: the attributes mismatch validator for Kotlin and Java attributes takes into account also accessors of properties and function parameters. Before this release such problems were not reported.
  • CMake: fixed the problem with regeneration of files when GLUECODIUM_FORCE_USAGE_OF_JNI_FROM_JAVA_GENERATOR was set. Before this release files were regenerated even if they did not need to be regenerated.

Release version 13.15.0 (#1756)

26 May 12:16
356da44

Choose a tag to compare

Features

  • CMake: the limitation which disallowed generating both android and android-kotlin via CMake is lifted via GLUECODIUM_FORCE_USAGE_OF_JNI_FROM_JAVA_GENERATOR.
    When the new optional property is set to true, then usage of both generators is allowed. However, the generated Kotlin code uses JNI layer generated by Java generator.
    Therefore, it is crucial to ensure that LIME model for both Java and Kotlin is same -- that's responsibility of the user.
  • Validation: the warnings related to android attributes mismatch, which are enabled via -enableandroidattributesmismatchwarning can be treated as errors via werror=AndroidAttributesMismatch.

Bug fixes:

  • Kotlin: fixed bug related to redundant generation of properties in Impl class for nested lambda.
    Prior to this fix the properties were duplicated and caused compilation problems.
  • Kotlin: added @JvmField annotation to value field of generated enumerations. Without that annotation
    the field had to be accessed via getter when Kotlin code was consumed by Java.

Release version 13.14.0 (#1748)

15 May 04:52
6460bc4

Choose a tag to compare

Features

  • The new version of Gluecodium brings android-kotlin generator, which allows rendering Kotlin+JNI files that can be used for Android. The initial release covers generation of all available LIME element types. The supported attributes are the same as for Java. The generated documentation comments follow KDoc: Dokka engine can be used to process them and produce documentation in HTML format. Kotlin generator is exposed via CLI, CMake and gluecodium-gradle plugin.

Release version 13.13.0 (#1713)

05 May 11:36
3392f3c

Choose a tag to compare

Features

  • Dart/Flutter: the generated code is now compatible with Flutter 3.29 and above. When the user invokes the callback created for lambda/interface from the thread that is the main isolate thread, but outside of isolate context then it is correclty executed. Before this release the thread would deadlock. Now the generated code identifies such case and enters the isolate context before invoking the callback.
  • Java/Kotlin: in order to ease transition from Java to Kotlin the possibility to conditionally warn about mismatch in attributes used for Java/Kotlin is implemented. The following new CLI parameter is available -enableandroidattributesmismatchwarning as well as GLUECODIUM_ENABLE_ANDROID_ATTRIBUTES_MISMATCH_WARNING CMake parameter.
  • Common: introduced LIME DOC validation rules. Users may use the new CLI parameter called -docsvalidationrules or CMake parameter GLUECODIUM_DOCS_VALIDATION_RULES, which allow specifying JSON file with regular expressions used to validate comments for certain LIME elements. More information can be found in lime_markdown.md.

Release version 13.12.0 (#1706)

31 Mar 05:38
432fb1d

Choose a tag to compare

Features

  • Several placeholder files can be specified with CMake property GLUECODIUM_DOCS_PLACEHOLDERS_LIST or placeholders can be directly specified in CMake property GLUECODIUM_DOCS_PLACEHOLDERS.
  • The new annotation called @AfterConstruction() is available and can be used to specify function called after the construction of an object finishes. It should be used for calling platform code from the constructor. More information can be found in docs/lime_attributes.md.