All notable changes to this project will be documented in this file.
- SmartCore::Engine::ReadWriteLock: allow #read_sync invocations inside #write_sync;
SmartCore::Engine::ReadWriteLock
does not lock the current thread if the current thread has already acquired the lock;
SmartCore::Engine::ReadWriteLock#write_owned?
- checking that write lock is owned by current thread or not;
- Read/Write locking mechanizm:
SmartCore::Engine::ReadWriteLock
;
- Simplest in-memory cache storage implementation:
SmartCore::Engine::Cache
;
- Minimal Ruby version is
2.5
(>= 2.5
); - Better
BasicObject
's refinement extention specs; - Updated development dependencies;
using SmartCore::Ext::BasicObjectAsObject
provides native support for:BasicObject#inspect
;
- Support for Ruby@3;
- Support for
#hash
and#instance_of?
forSmartCore::Ext::BasicObjectAsObject
refinement;
- New type of utilities: Extensions (
SmartCore::Ext
); - New extension:
SmartCore::Ext::BasicObjectAsObject
refinement:using SmartCore::Ext::BasicObjectAsObject
provides native support for:BasicObject#is_a?
;BasicObject#kind_of?
;BasicObject#freeze
;BasicObject#frozen?
;
- Updated development dependencies;
- Support for Ruby@2.4 has ended;
SmartCore::Engine::Frozener
can not be used with rubies lower than@2.7
;
- Any object frozener (
SmartCore::Engine::Frozener
,SmartCore::Engine::Frozener::Mixin
);
- Atomic threadsafe value container (
SmartCore::Engine::Atom
);
- Inline rescue pipe (
SmartCore::Engine::RescueExt.inline_rescue_pipe
); - Actualized development dependencies and test environment;
- Global error type
SmartCore::TypeError
inherited from::TypeError
;
SmartCore::Engine::Lock
- simple reentrant-based locking primitive;
- Global error type
SmartCore::NameError
inherited from::NameError
;
- Actualized development dependencies;
- Invalid gem requirement in
bin/console
;
SmartCore::FrozenError
inherits classic::FrozenError
behaviour forRuby >= 2.5.0
and old::RuntimeError
behaviour forRuby < 2.5.0
;
- Minimalistic Release :)