Releases: JetBrains/rd
Releases · JetBrains/rd
2025.1.1
Changed
- rd-net: allowed comparison and basic operations (operators
==
and!=
,Equals
,GetHashCode
) fordefault(Lifetime)
. - rd-net: support two different modes for
default(Lifetime)
.- If
Lifetime.LogErrorIfLifetimeIsNotInitialized == true
(enabled by default), usages ofdefault(Lifetime).Definition
will log errors.default(Lifetime)
is not equal toLifetime.Eternal
. - 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
.
- If
2025.1.0
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
Changed
- rd-kt: isolate
onWireReceived
to avoid completely broken protocol if something went wrong (failed deserialization) - rd-kt: deprecate
asCoroutineDispatcher
that allows inlining becauseisDispatchNeeded() = false
can lead to a deadlock - rd-kt: fire signal even if we are unbound
2024.3.0
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
: addContains
andIndexOf
methods, thanks to @DenisPimenov - [rd-kt]
ViewableList::sync
for optimized updates with a minimal number of change events
2024.3-pre1
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
Changed
- [rd-net] UnsafeWriter/UnsafeReader: simple methods for compact UTF8 string serialization + code cleanup to use explicit Write* API
Release 2024.1.0
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
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)
Changed
- rd-kt: allow to create
Ext
s 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 aLifetime
Fixed
- rd-kt:
SignalFlow
should no longer get stuck - rd-kt:
ConcurrentViewableSet::view
's callback should get correct itemlifetime
now
2023.3.1
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 toIMutableViewableConcurrentSet
- rd-kt:
IAppendOnlyViewableConcurrentSet
has been renamed toIViewableConcurrentSet
- rd-kt:
adviseOn
now uses a sequential scheduler always - rd-kt: proper threading for
outOfSyncModels