Releases: 7mind/izumi
Releases · 7mind/izumi
0.9.12-M2
distage:
Added new ModuleDef syntax bind
for binding a single implementation to multiple interfaces:
new ModuleDef {
bind[ImplXYZ]
.to[X]
.to[Y]("special")
.to[Z]
make[User]
}
where User:
// User doesn't have to know that both X and Y
// are the same instance of ImplXYZ, it only knows
// of separate interfaces
class User(
x: X,
y: Y @Id("special"),
) {
...
}
Desugaring:
bind[ImplXYZ]
.to[X]
.to[Y]("special")
.to[Z]
<=>
make[ImplXYZ]
make[X].using[ImplXYZ]
make[Y].named("special").using[ImplXYZ]
make[Z].using[ImplXYZ]
- Binding implementation to multiple interfaces (#652)
0.9.12-M1
fundamentals-bio:
Now BIO* typeclass syntax is available in scope everywhere where a BIO* type is imported. You can start chaining transformations immediately:
import izumi.functional.bio.{BIOMonad, BIOPrimitives, F}
def adder[F[+_, +_]: BIOMonad: BIOPrimitives](i: Int): F[Nothing, Int] =
F.mkRef(0).flatMap(ref => ref.update(_ + i) *> ref.get)
flatMap
and *>
extension methods are available automatically, No syntax import is necessary.
All changes:
- Zero-import BIO syntax via implicit punning (#587)
- Workaround scala/bug#11803 - move all BIO* classes to package object (#726)
- trifunctorize BIOFork to BIOFork3 (#726)
- move
bio.BIO.catz
cats converstions tobio.catz
- Suspend error argument in BIO.fromOption; remove Remove BIO.fromOption variant that returns F[Unit, A] (has been unused so far) (#721)
- Reduce amount of implicit conversions in scope by inheriting syntax classes (#722)
- Add BIOError.tapError (62aa18c)
distage:
- Add DIResource.OfZIO (71c4ad3)
logstage:
- slf4j bridge filters out null throwables (264fe5b)
idealingua:
- c# time format issues (db7c47e)
dependency updates:
- Update jawn-parser to 0.14.3 (#723)
0.9.11
fundamentals-reflection:
- Fix slow LightTypeTag caching impl, enable caching by default during compile (#715)
distage:
- Add support for ZManaged in DIResource:
DIResource.fromZIO/.toZIO
, support direct binding of ZManaged inmake[X].fromResource
- better set key disambiguation (#713)
logstage:
- Add LogstageZIO.withDynamicContext (#720)
- logstage: make LogIO inherit from UnsafeLogIO, this makes LogIO contain all logger methods; add UnsafeLogIO#acceptable method to check the current log level (#719)
idealingua:
- Derive Codec in IRTWithCirce instead of an Encoder/Decoder pair (#718)
dependency updates:
- Update classgraph to 4.8.53 (#717)
0.9.10
fundamentals-reflection:
- Enable caching for runtime LightTypeTag creation by default (#712)
fundamentals-bio:
- Change Clock.Standard to object
dependency updates
0.9.9
0.9.8
fundamentals-bio:
- Add BIOAsync.repeatUntil
- fundamentals-bio: Add BIOPrimitives (BIORef, BIOPromise, BIOSemaphore)
distage:
- Merge distage-static into distage-core (#704)
- distage-roles: move *Impls to companion object (#701)
- Set element binding keys are now disambiguated during construction, not during planning (#696)
- Re-add
PartialOrder
,Eq
,Hash
instances forModuleBase
fundamentals-platform:
- move CodePosition package to fundamentals.language
dependency updates:
0.9.7
fundamentals-reflection:
- Add Strong
LTag
summoner in fundamentals-reflection (#692)
LTag
is available only for types that are fully known, same asTypeTag
and opposed toWeakTypeTag
/LTag.Weak
- Add support for Literal Types (#697)
- Fix
StackOverflowError
when comparing types of formA.type where { object A extends A; trait A }
distage:
- Fix
ClassCastException
inResourceRewriter
when subtypes ofAutoCloseable
were added as Set members and subsequently rewritten toDIResource
(#695) - Rename
DIResource.Flatten
/FlattenCats
toDIResource.Of
/OfCats
(#694) DIResource.FromAutoCloseable
is now covariant- Fix assertion failed "TypeTag cannot be migrated to different mirror" (#685)
dependency updates:
Lightweight Reflection
This release introduced preliminary implementation of Lightweight Scala Reflection (Macro RTTI).
You may find more details in our blog
0.8.8
Key changes:
- Logstage is now available for Scala.js thanks to @pshirshov ! (#593)
Fixed bugs:
- Move scalacOptions out of globalSettings since they can end up in the meta build (#601)
- logstage 0.8.7 does not support java 8 (#595)
Dependency updates:
- Update zio to 1.0.0-RC11-1 (#606)
- Update http4s-blaze-client, ... to 0.21.0-M3 (#604)
- Update cats-effect to 2.0.0-M5 (#602)
Documentation: https://izumi.7mind.io/
0.8.7
Building for Scala 2.13 now!
API changes:
- Add BIOMonadError typeclass between BIOMonad and BIOBracket
- Remove deprecated .point and .now methods
- Generate circe ObjectEncoder instead of Encoder in IDL when possible
Bug fixes:
- Fix reflective new static object creation in RuntimeConfigReader
- Add more
synchronized
wrapping due to non-threadsafety of scala-reflect #579 #568
Dependencies:
- ZIO updated to
1.0-RC10-1
- cats updated to
2.0.0-M4
- circe updated to
0.12.0-M4