Releases: JetBrains/rd
Releases · JetBrains/rd
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
2023.3.0
Fixed
-
rd-gen: if no model sources are defined, the Gradle task won't pass the
-s
argument to the RdGen tool (and so it won't break with no sources passed)This allows the users to optimize model compilation on their side, and only provide model classes in a compiled form in cases when there are a lot of them, and so incremental compilation is beneficial.