Skip to content

Releases: heremaps/gluecodium

Release version 14.1.1 (#1804)

Choose a tag to compare

@github-actions github-actions released this 03 Mar 11:14
1b12ef1
  • C++: fixed a bug related to redundant 'using' statements generation for derived classes. We generate using statment to avoid warning/error related to method shadowing, when base and derived classes have method overload with the same name.

Release version 14.1.0 (#1802)

Choose a tag to compare

@github-actions github-actions released this 22 Feb 19:10
4354ddb
  • Kotlin: use @JvmSynthetic annotation for Kotlin internal elements whenever possible to hide them from Java code.
  • Kotlin: allow the usage of 'RequiresOptIn' and 'OptIn' annotations for internal API via CLI parameters. This way error is generated when the code, which is not intended to access the internal API uses it. Three new CLI parameters are available: 'androidrequiresoptinannotation', 'androidoptinannotation' and 'androidinternalapiannotationname'.
  • Kotlin: for external types usage in Kotlin, use 'internal' keyword for the types, which are generated by Gluecodium as their 'internal' representation.
  • Kotlin: minimize the usage of 'JvmSuppressWildcards' annotation for collection parameters. This annotation was used for all generated collection types. It needs to be used only when collection type holds enumeration or open type e.g.: 'open class', 'interface' or 'fun interface'.
  • Kotlin: raise error when '@internal' elements are defined in interfaces. Kotlin language does not allow usage of 'internal' keyword in interfaces. We need to raise an error, because there is no valid way of generating such code.
  • Kotlin: make the 'Impl' classes private. Such classes are used to represent C++ implementation of interface/lambda in Kotlin and they should not be accessed by the users. Only JNI layer should access such types.
  • Kotlin: always handle static properties as get/set pair. Moreover, disallow internal static properties/functions in LimeInterface elements.

Release version 14.0.0 (#1787)

Choose a tag to compare

@github-actions github-actions released this 02 Dec 08:27
34efc20
  • Kotlin: Warning -- breaking change! The getters of seconds and nanoseconds in Duration class are replaced with read-only properties.

Release version 13.20.0 (#1785)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 09:12
626f45d

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)

Choose a tag to compare

@github-actions github-actions released this 11 Aug 08:07
17eafc9

Features:

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

Release version 13.18.0 (#1778)

Choose a tag to compare

@github-actions github-actions released this 07 Aug 12:24
bf3c1f6

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)

Choose a tag to compare

@github-actions github-actions released this 04 Aug 14:04
8ed7945

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)

Choose a tag to compare

@github-actions github-actions released this 13 Jun 06:44
a9aeb0d

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)

Choose a tag to compare

@github-actions github-actions released this 05 Jun 04:49
9b47779

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)

Choose a tag to compare

@github-actions github-actions released this 26 May 12:16
356da44

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.