Skip to content

Releases: JetBrains/rd

2025.1.1

29 Jan 16:35
Compare
Choose a tag to compare

Changed

  • rd-net: allowed comparison and basic operations (operators == and !=, Equals, GetHashCode) for default(Lifetime).
  • rd-net: support two different modes for default(Lifetime).
    1. If Lifetime.LogErrorIfLifetimeIsNotInitialized == true (enabled by default), usages of default(Lifetime).Definition will log errors. default(Lifetime) is not equal to Lifetime.Eternal.
    2. If Lifetime.LogErrorIfLifetimeIsNotInitialized == false (must be switched explicitly), legacy mode is active. In this mode, default(Lifetime) is essentially the same (and considered as equal to) Lifetime.Eternal.

2025.1.0

27 Jan 16:43
Compare
Choose a tag to compare

Fixed

  • rd-kt: Isolate onWireReceived to avoid completely broken protocol if someting went wrong (failed deserialization)

Changed

  • rd-reflection: assembly qualified name in rd reflection name for lazy-loading assemblies
  • rd-net: log error on accessing non-initialized lifetime

Added

  • rd-cpp: added float and double handling in gen_util.h

Full Changelog: 2024.3.1...2025.1.0

2024.3.1

25 Oct 15:24
89adb2c
Compare
Choose a tag to compare

Changed

  • rd-kt: isolate onWireReceived to avoid completely broken protocol if something went wrong (failed deserialization)
  • rd-kt: deprecate asCoroutineDispatcher that allows inlining because isDispatchNeeded() = false can lead to a deadlock
  • rd-kt: fire signal even if we are unbound

2024.3.0

19 Sep 16:48
Compare
Choose a tag to compare

Changed

  • [rd-kt] Improve toString representation of protocol entities
  • [rd-kt] Improve messages in Logger.catch
  • [rd-kt] Support saving the list of marshallers during generation to a file
  • [rd-net] implement RdTask.GetAwaiter
  • [rd-net] SpinWaitEx: overload to avoid allocations, annotations

Added

  • [rd-net] CompactList: add Contains and IndexOf methods, thanks to @DenisPimenov
  • [rd-kt] ViewableList::sync for optimized updates with a minimal number of change events

2024.3-pre1

12 Jul 11:10
b793311
Compare
Choose a tag to compare
2024.3-pre1 Pre-release
Pre-release

Changed

  • [rd-kt] Improve 'toString' representation of protocol entities
  • [rd-kt] Improve messages in Logger.catch
  • [rd-kt] Support saving the list of marshallers during generation to a file
  • [rd-net] implement RdTask.GetAwaiter
  • [rd-net] SpinWaitEx: overload to avoid allocations, annotations

Release 2024.1.1

23 Feb 13:58
4e3bffa
Compare
Choose a tag to compare

Changed

  • [rd-net] UnsafeWriter/UnsafeReader: simple methods for compact UTF8 string serialization + code cleanup to use explicit Write* API

Release 2024.1.0

23 Feb 13:07
Compare
Choose a tag to compare

Changes

  • [rd-kt, rd-net] Remove length restrictions for pretty printer
  • Docs: update instructions and links
  • Add coroutine scope to Lifetime (#432)
  • [rd-kt] Allow creation on background by default on kotlin side.
  • Delegate creating extensions to parent protocol.
  • [rd-net] Enable cross-platform tests
  • Lazy serializers
  • Improve logging
  • Backend listeners support.
  • Support multiline comments
  • [rd-net] Additional diagnostics for lifetimes
  • [rd-cpp] Support task result lifetimes.
  • [rd-cpp] Auto-binding for bindable task results.

Fixes

  • [rd-kt, rd-net] Fix Already has RdId exception when reassign RdProperty
  • Ensure counterpart is not called with terminated lifetime.
  • Fix memory leak in dispatcher.
  • Fix SignalFlow (#434)
  • Fix serializers (#438)
  • Do not assert binding thread for ext (#436)
  • Dot not create new lifetime if requestLifetime is Eternal.
  • [rd-cpp] Fix compilation on the latest clang
  • [rd-net] Lifetime.Eternal.KeepAlive should throw an assertion
  • [rd-net] ProcessWatchdog: no longer fail on exit code 259 on Windows
  • [rd-net] Grant the condition call if SpinUntil() has zero timeout.
  • [rd-net] Fix unexpected timeout errors in logs during laptop sleeping.
  • [rd-cpp] Fix to_string using deprecated API (not actually fixing, but covering with bunch of pragmas and platform specific implementations)
  • [rd-cpp] Fix diamond inheritance that started to fail to compile with latest VC++
  • [rd-cpp] Fix utf support in to_string
  • [rd-net] Add [CodeAnalysis.NotNull] for NotNull extension-methods.
  • [rd-cpp] Fix c++ tests and enable them in CI.
  • [rd-cpp] Fix multi-threading issues with sockets.
  • [rd-cpp] Fix invalid error messages when socket closed by client.
  • [rd-cpp] Fix array fields serialization and generation.
  • [rd-cpp] Fix issues with access to released bounded call results.
  • [rd-cpp] Fix memory-leaks for closures in signals after Lifetime termination.
  • [rd-cpp] Fix serialization of uninitialized properties.

2024.1.0-pre1

16 Jan 15:39
6801316
Compare
Choose a tag to compare
2024.1.0-pre1 Pre-release
Pre-release

Changes

  • Add coroutine scope to Lifetime (#432)
  • [rd-kt] Allow creation on background by default on kotlin side.
  • Delegate creating extensions to parent protocol.
  • [rd-net] Enable cross-platform tests
  • Lazy serializers
  • Improve logging
  • Backend listeners support.
  • Support multiline comments
  • [rd-net] Additional diagnostics for lifetimes
  • [rd-cpp] Support task result lifetimes.
  • [rd-cpp] Auto-binding for bindable task results.

Fixes

  • Ensure counterpart is not called with terminated lifetime.
  • Fix memory leak in dispatcher.
  • Fix SignalFlow (#434)
  • Fix serializers (#438)
  • Do not assert binding thread for ext (#436)
  • Dot not create new lifetime if requestLifetime is Eternal.
  • [rd-cpp] Fix compilation on the latest clang
  • [rd-net] Lifetime.Eternal.KeepAlive should throw an assertion
  • [rd-net] ProcessWatchdog: no longer fail on exit code 259 on Windows
  • [rd-net] Grant the condition call if SpinUntil() has zero timeout.
  • [rd-net] Fix unexpected timeout errors in logs during laptop sleeping.
  • [rd-cpp] Fix to_string using deprecated API (not actually fixing, but covering with bunch of pragmas and platform specific implementations)
  • [rd-cpp] Fix diamond inheritance that started to fail to compile with latest VC++
  • [rd-cpp] Fix utf support in to_string
  • [rd-net] Add [CodeAnalysis.NotNull] for NotNull extension-methods.
  • [rd-cpp] Fix c++ tests and enable them in CI.
  • [rd-cpp] Fix multi-threading issues with sockets.
  • [rd-cpp] Fix invalid error messages when socket closed by client.
  • [rd-cpp] Fix array fields serialization and generation.
  • [rd-cpp] Fix issues with access to released bounded call results.
  • [rd-cpp] Fix memory-leaks for closures in signals after Lifetime termination.
  • [rd-cpp] Fix serialization of uninitialized properties.

2023.3.2 (JVM-only)

15 Sep 17:31
Compare
Choose a tag to compare

Changed

  • rd-kt: allow to create Exts from background thread
  • rd-kt: RdCoroutineScope no longer relies on a lifetime (should only be overridden once)
  • rd-kt: lazily initialized CoroutineScope is now a member of a Lifetime

Fixed

  • rd-kt: SignalFlow should no longer get stuck
  • rd-kt: ConcurrentViewableSet::view's callback should get correct item lifetime now

2023.3.1

15 Sep 22:21
4ce736c
Compare
Choose a tag to compare

Added

  • rd-kt: IScheduler::executionOrder to provide and consume more details on the scheduler
  • rd-kt: ISignal<T>.asFlow()

Changed

  • rd-kt: coroutine API is moved to rd-core
  • rd-kt: IViewableConcurrentSet has been renamed to IMutableViewableConcurrentSet
  • rd-kt: IAppendOnlyViewableConcurrentSet has been renamed to IViewableConcurrentSet
  • rd-kt: adviseOn now uses a sequential scheduler always
  • rd-kt: proper threading for outOfSyncModels