mitch
04/20/2023, 11:34 AMmitch
04/20/2023, 12:21 PMmitch
04/21/2023, 7:00 AM./gradlew :commonizeNativeDistribution
succeeded without issue in my mac.. any pointers on how to fix this would be greatly appreciated 🙇♀️
> Task :commonizeNativeDistribution FAILED
> Task :kotest-assertions-arrow:compileCommonMainKotlinMetadata
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':commonizeNativeDistribution'.
> Could not resolve all files for configuration ':kotlinKlibCommonizerClasspath'.
> Cannot resolve external dependency org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.8.10 because no repositories are defined.
Required by:
project :
macos (push) steps seems to fail due to missing kotest artifacts which @sam had fixed a while backRon S
04/27/2023, 9:15 AMIliyan Germanov
05/06/2023, 9:38 AMYoussef Shoaib [MOD]
05/26/2023, 1:23 PMwithError
raise builder, suggested by @CLOVIS, alongside a (surprisingly missing) Effect.mapError
. There's also a suggestion there as to whether we should have a merge { }
raise builder or not (which would return a supertype of the raised and returned values, and hence be an analogue for Effect.merge
)Alejandro Serrano Mena
07/05/2023, 8:47 AMSam Pengilly
07/27/2023, 10:54 PMYoussef Shoaib [MOD]
07/28/2023, 8:51 AMinline fun Either.getValue
et al inside Raise be something that Arrow would consider? It would allow using by
as bind
basically, so it might look nicer when giving names to Eithers, Options, etc. Or is it not worth it especially because the vision is Raise everywhere?CLOVIS
07/28/2023, 10:26 AMYoussef Shoaib [MOD]
08/02/2023, 10:29 AMarrow-context
library that contains niceties for general context receivers + arrow-specific context receiver sugar. Since context receivers are likely not gonna be stable for 1-2 years, I think it might make some sense to have an experimental library like that for those on the bleeding edge, with the idea being that when contexts are stable, it'd get merged into arrow-core
.
If you think it'd be more apt to have that as a community library, I get that; I just think it'd have more reach under the arrow name, and it'd help in prototyping ideas for the future, kinda like how arrow-exact
is right nowsimon.vergauwen
10/19/2023, 8:30 AMKev
11/12/2023, 10:20 AMAlejandro Serrano.Mena
11/13/2023, 9:45 AMYoussef Shoaib [MOD]
11/30/2023, 10:27 PMtransform
lambda for top-level fold for raise. I think perhaps top-level fold shouldn't exist, instead being replaced by recover
, which describes the intent much more clearly. I've elaborated further in this PR
Regardless, putting this into actual code, I tried implementing this against Arrow 2, but it's failing a test that seems to suggest an interesting design choice of Effect. More info in thread...Youssef Shoaib [MOD]
12/22/2023, 12:41 PM@BuilderInference
has been unnecessary since 1.7.0
Marc
01/04/2024, 7:07 PMYoussef Shoaib [MOD]
01/12/2024, 3:44 AMarrow-context
repo was created under the Arrow github. I'm excited to share the first (very rough) prototype of some of the ideas I've implemented for it. This is still a Draft PR, and a lottttt of things are missing, so suggestions are very welcome :)Kev
01/16/2024, 11:52 AMMaksym M.
01/18/2024, 11:49 AMYoussef Shoaib [MOD]
01/19/2024, 8:39 AMarrow-context
, but if there's strong rational for why they'd be bad, then it's probably not worth wasting time on it.Kev
01/24/2024, 1:40 AMKev
01/30/2024, 12:25 PMJavier
01/30/2024, 7:09 PMmacos-14
runner using M1 is really faster compared to the old one, even more in Multiplatform libraries.
It should be interesting trying it but we had issues related to the memory and this runner only has 7GB compared to 14GB the old one has...raulraja
01/30/2024, 10:14 PMAlejandro Serrano.Mena
04/17/2024, 7:52 AMarrow-2
into main
, I would like to hear your opinion into also making the move to Kotlin 2.0 for that branch.
• there's a new default to generate lambdas which we may benefit from
• our main blocking rock, KSP, is officially supported
To give the full context, our current setup is to compile with both 1.9.x and 2.0, but only test with 1.9.x and publish those tooAlejandro Serrano.Mena
04/17/2024, 6:52 PMarrow-2
, we need a couple of things to be ready:
• publish snapshots once again (this should in principle be working), but we need to double check
• publish docs in such a way that they do not override the 1.2.x ones
volunteers for those tasks?Sam Pengilly
04/23/2024, 11:12 AMfun parse(num: Int) = either {
ensure(num % 2 != 0) { IllegalArgumentException("$num is even") }
num
}
val result = iorNel<Throwable, List<Int>> {
(1..10)
.map { parse(it) }
.mapNotNull { recover({ it.toEitherNel().bind() }) { null } }
}
Inside an ior builder, should recovering a bound Either that's a left case result in the error being combined into the Ior, putting it into the Both case? It's not necessarily explicit, but I'm not sure what other ways there are express this intent. It feels reasonable but also maybe not?
For this functionality to work, the only thing that would need to be done is that IorRaise
would need to override raise
like so:
override fun raise(r: Error): Nothing {
combine(r)
raise.raise(r)
}
Without that, the only thing that will ever cause an error to trigger IorRaise::combine
is binding an Ior.Both
, from what I can tell nothing else will ever cause an error to accumulate or put the outer Ior
into a Both
state.
I don't think that this override of raise
will cause undesired effects with other cases like binding an Ior.Left
, that should still short circuit the outer Ior
into a Left
case, but will just combine
the error briefly in the IorRaise
state first.
Could there be another option where mapOrAccumulate
has slightly different semantics depending on whether it's used in an IorRaise
context or a Raise
context? Even if that's the path to go down I think it would still require an override of raise
as defined above to work properly.
Right now the only approach to this is to be very explicit and convert the Either
into an Ior.Both
with the desired error information and a "recovered" value. Maybe that's the intention and I'm barking up the wrong tree. Interested in getting some thoughts on this as it would be good to have an easy to use API that makes a lot of sense intuitively.CLOVIS
04/23/2024, 2:19 PMCLOVIS
04/23/2024, 3:52 PMEither
variant that supports unfinished operations using a three-state sealed class. How could interoperability with the Raise
DSL look like?