pablisco
09/29/2020, 10:43 PMpablisco
09/30/2020, 12:12 AMJannis
10/01/2020, 11:25 AMSatyam Agarwal
10/02/2020, 1:05 PM~~catch~~
Can you please beautify it 🙂stojan
10/05/2020, 2:55 PMMarius Kotsbak
10/06/2020, 12:02 PMorg.gradle.api.GradleScriptException: A problem occurred evaluating project ':arrow-meta'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:237)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
[...]
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.api.GradleException: tools.jar not found at your JAVA_HOME dir /usr/lib/jvm/java-11-openjdk-amd64.
Building with a JRE or JDK9 is currently not supported
Maybe tools.jar is no more used and it is a bad check to have?:
def toolsJar = Jvm.current().getToolsJar()
if (!toolsJar)
throw new GradleException("tools.jar not found at your JAVA_HOME dir ${Jvm.current().getJavaHome().getAbsolutePath()}.\n" +
"Building with a JRE or JDK9 is currently not supported.")
pablisco
10/07/2020, 10:46 PMNot a valid Kotlin file (expecting a parameter declaration) (cannot be auto-corrected)
The line in question has a trailing comma, is this something we need to enable on ktlint? Or maybe we need to upgrade ktlint?
I found this, but there doesn't seem to be any resolution, it's just closed 🤔
https://github.com/pinterest/ktlint/issues/729kioba
10/14/2020, 5:17 PMDelimitedScope
to implement option {}
continuation and I realised that DelimContScope
can not manage null
as a shift
return value.
the implementation already using nullable to show that the block is done. I replaced the nullable type with a quick GADT to represent empty state and allow nullable value:
private val nextShift = atomic<Shift<(suspend () -> R)>>(Empty)
is there any better way to avoid constant boxing for the return values of shifts?kioba
10/29/2020, 11:42 AMArrow-Core
. Is this a known issue?raulraja
11/14/2020, 5:43 PMSatyam Agarwal
11/15/2020, 1:28 PMfx
webpage. The rest is very confusing, and have fewer examples than what was mentioned in the README before the PR I mentioned.
I would really appreciate if this README was expanded.
And above all, if you can take a look at what I going on https://arrow-kt.io/docs/fx/ , it would be amazing.
I think you guys will promote. coroutines integrated solutions more and more, which is natural.
The webpage should reflect that, with rich set of examples from the README.
I don’t understand the point of kotlinx.coroutines
section from the website, now that we have arrow-fx-coroutines
.
Also Why IO integration
contains kotlinx.coroutines
when Coroutines Integration
contains the same sub section ?
I think Coroutines Integration
should just be removed, and Quick start
should be enriched and expanded.
The Data type section is now pointing to arrow-fx-coroutines
but contains no practical examples. Its just a neat and more described version of api docs.
There are many who use fx a lot, but not necessarily are well versed with fp concepts, which makes things hard, if we want to use API from the library without good docs.
For me personally, things have gotten way easier, since I have migrated from arrow from Try.catch to IO.invoke, to Either.catch, and have been using since 2018. So I know where to look, who to ask.
I know there are a lot at your plate, but honestly, so do I, and its a shame after using this library for more than about 3 years, I haven’t already started contributing. Things have been way too busy.
I hope, I, in future, instead of requesting things, should be able to make time to raise PRs instead. 🙂 But until then, here is my request 😅raulraja
12/10/2020, 1:34 PMSatyam Agarwal
12/12/2020, 4:38 AMarrow-fx
, thinking to raise a PR (or atleast trying to), so I want to build the project from intellij. But I am getting this :
Kotlin: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
class arrow.core.computations.EitherEffect, unresolved supertypes: arrow.continuations.Effect
Can anyone help me 🙂
A lot of files don’t compile because computation class are missing, I am guessing because of error above.
Using jdk 1.8, but it has scala dep as well, so I am getting this too :
scalac: '13' is not a valid choice for '-target'
simon.vergauwen
12/13/2020, 3:51 PMJannis
12/15/2020, 1:19 PMCould not initialize class arrow.core.Either$Left
This is in a rather complex bit of code so I have no clue how to reproduce it in simple terms. The function that fails also works if called from a different method, but fails with others.pablisco
12/18/2020, 4:39 PMstojan
12/20/2020, 6:13 PMparMapN
arity 7 (based on the arity 6 implementation) however kotest doesn't have the checkAll
method with arity 7, so I could not implement the same tests as for arity 6
https://github.com/arrow-kt/arrow-fx/pull/356
any ideas for how to fix, or should I create a ticket with kotest?stojan
01/11/2021, 8:03 AMstojan
01/17/2021, 10:20 AMFlow.retry
using Schedule
you can find the PR here: https://github.com/arrow-kt/arrow-fx/pull/378
It's built atop the Flow.retryWhen
operator and it seems to be working.... am I on the right path? any ideas how to test the delay
part then retrying?stojan
01/26/2021, 4:26 PMSatyam Agarwal
01/26/2021, 8:24 PMarrow-fx
lib’s arrow-benchmarks-fx
module’s compiled with jdk 1.6 ?
I am gettinh this error :
e: /arrow-fx/arrow-benchmarks-fx/src/jmh/kotlin/arrow/benchmarks/Cancellable.kt: (28, 8): Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option
Thus every cmd + f9 fails
Does arrow supports 1.6 😮 ?
I have excluded those modules from build, so I can continuestojan
02/03/2021, 9:02 AMstojan
02/13/2021, 4:10 PMRachel
02/24/2021, 9:37 AMSatyam Agarwal
04/13/2021, 12:16 PMpablisco
04/14/2021, 9:52 AMkotlin.Result
?It’s becoming stable on 1.5? If only we get comprehensions would be a nice addition IMHO 🙂
val friendsNames: Result<List<String>> = result {
val user = getCurrentUser().bind() // Result<User>
val friends = friendsFor(user).bind() // Result<List<User>>
friends.map { it.name }
}
stojan
04/23/2021, 9:07 AMmitch
04/27/2021, 1:57 PMdata class Foo(val foo: Either<FooLeftADT, FooRightThing>)
// serializes to
{
"foo": {
"left": ${leftValue.asJson}
// or "right": ${rightValue.asJson}
}
}
That shape is awkward but the codec above guarantees roundtrip. On the other hand, I also realize that Helios
(which is by the way is a great library!!) is doing it without i.e.
// which yields
{
"foo": ${leftValue.asJson}
// or "foo": ${rightValue.asJson}
}
personally I do see the temptation of breaking codec laws in the second / helios variant. They are less awkward and more universally acceptable when we’re talking about microservices interop. However, a similar proposition was raised to circe and was declined - most likely due to the codec being unlawful. Of course, at the end of the day, both can be correct, and there’s no stopping us to implement a configurable knob for users to switch between one and the other.
I don’t personally serialize Either<L, R>
myself. I normally advocate folding it to a proper sealed type in the internal projects in my company so to avoid this problem altogether and also make sure the api contract plays well with various microservices written in multiple languages / paradigms. Having said that I’m somewhat indifferent.
by the way the same thing can’t be said for ior
keen to hear Arrow :arrow: crews’ thoughts.pablisco
05/04/2021, 11:32 AMpablisco
05/05/2021, 9:45 AMpablisco
05/05/2021, 9:45 AMRachel
05/05/2021, 10:11 AMpablisco
05/05/2021, 10:31 AM