All notable changes to this project will be documented in this file.
- SmartCore::Engine::ReadWriteLock: allow #read_sync invocations inside #write_sync;
SmartCore::Engine::ReadWriteLockdoes 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::BasicObjectAsObjectprovides native support for:BasicObject#inspect;
- Support for Ruby@3;
- Support for
#hashand#instance_of?forSmartCore::Ext::BasicObjectAsObjectrefinement;
- New type of utilities: Extensions (
SmartCore::Ext); - New extension:
SmartCore::Ext::BasicObjectAsObjectrefinement:using SmartCore::Ext::BasicObjectAsObjectprovides 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::Frozenercan 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::TypeErrorinherited from::TypeError;
SmartCore::Engine::Lock- simple reentrant-based locking primitive;
- Global error type
SmartCore::NameErrorinherited from::NameError;
- Actualized development dependencies;
- Invalid gem requirement in
bin/console;
SmartCore::FrozenErrorinherits classic::FrozenErrorbehaviour forRuby >= 2.5.0and old::RuntimeErrorbehaviour forRuby < 2.5.0;
- Minimalistic Release :)