https://kotlinlang.org logo
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
kotlin-native
  • m

    magnumrocha

    04/13/2020, 11:39 AM
    Hello guys... is it possible to make a reference of a native Kotlin Class to an
    COpaquePointer
    ? in Swift we can do something like:
    var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)
    <http://context.info|context.info> = Unmanaged<Reachability>.passUnretained(self).toOpaque()
    where
    self
    is a the Swift class that contain this code...
    a
    s
    • 3
    • 6
  • k

    Kavan

    04/14/2020, 12:21 PM
    How can I get experimental-kotlin-compiler-1.4.0-linux-x64.zip I can't find specific build on GitHub nor teamcity
    a
    n
    • 3
    • 5
  • d

    dazza5000

    04/14/2020, 8:30 PM
    Can you target Windows 7 with Kotlin/Native?
    r
    • 2
    • 2
  • a

    antrax

    04/14/2020, 9:26 PM
    Is calling Ktor in background thread possible at all ATM? We lost all hope to do that on iOS.
    🇳🇴 3
    k
    b
    • 3
    • 6
  • a

    antrax

    04/14/2020, 9:29 PM
    Just basic case doesn't work: GlobalScope.launch(backgroundDispatcher) { CoroutineWorker.withContext(backgroundDispatcher) HttpClient().get<HttpResponse>(urlString = "https://google.com") } }
    a
    • 2
    • 2
  • f

    felislynx

    04/15/2020, 6:57 AM
    Hi, is it possible to use c/c++ code in kotlin-native (similarly to JNI?). I'm going to write program that executes inside Raspberry Pi and i might need some native code to communicate with external devices 🙂
    a
    m
    n
    • 4
    • 10
  • r

    Rupesh

    04/15/2020, 11:18 AM
    I have tries below command and this works :
    val startCommand = "adb shell am start -S -W $appPackage/$launchActivity -c android.intent.category.LAUNCHER -a android.intent.action.MAIN"
    
    Runtime.getRuntime().exec("$startCommand")
    But when I tried to write log into file its not:
    val writeLog = "adb logcat -d | grep --line-buffered ABC >> logcat.txt"
    
    Runtime.getRuntime().exec("$writeLog")
    m
    • 2
    • 5
  • a

    Alexander Larsson

    04/16/2020, 8:06 AM
    Hello, me and my colleague is trying to use
    cinterop
    to call functions in the OpenSSL library. We already had it compiled as a
    .framework
    for iOS (calling fron Obj-C) so we re-used now when we are trying to call from Kotlin. We have managed to build a
    .klib
    using Gradle. From `build.gradle.kts`:
    val ios = iosArm64("ios")
        val iosSim = iosX64("iosSim")
    
        configure(listOf(iosSim, ios)) {
            binaries.framework {
                baseName = frameworkBaseName
            }
            compilations {
                val main by getting {
                    cinterops {
                        val openssl by creating {
                            defFile("$projectDir/src/iosMain/cinterop/openssl.def")
                            includeDirs("$projectDir/src/iosMain/cinterop/OpenSSL-Apple/include")
                        }
                    }
                }
            }
    Def file:
    headers = openssl/asn1.h openssl/err.h openssl/pkcs12.h openssl/rsa.h openssl/x509.h
    staticLibraries = openssl
    libraryPaths = <beginning of absolute path>/KotlinMultiplatformTestSDK/shared/src/iosMain/cinterop/OpenSSL-Apple/frameworks/iPhone/openssl.framework
    The above configuration works and produces a
    klib
    and we can then go ahead and import it and try to make a call to OpenSSL from Kotlin:
    package openssl
    
    import interop.*
    import kotlinx.cinterop.*
    
    class TestOpenSSL {
    
        fun TestOpenSSL_init() {
            ERR_load_crypto_strings()
        }
    
    }
    We get code completion and everything seems to work just fine until we build it and we get an error from the linker:
    > Task :shared:linkDebugFrameworkIos
    v: Using Kotlin home directory dist/kotlinc
    e: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld invocation reported errors
                The /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld command returned non-zero exit code: 1.
                output:
                Undefined symbols for architecture arm64:
      "_ERR_load_crypto_strings", referenced from:
          _openssl_ERR_load_crypto_strings_wrapper662 in result.o
    ld: symbol(s) not found for architecture arm64
    
    > Task :shared:linkDebugFrameworkIos FAILED
    Any ideas whats wrong here? How do we get this working? Would really appreciate any help! 🙂
    a
    • 2
    • 11
  • a

    Alexander Larsson

    04/16/2020, 1:15 PM
    Now we are having problems calling function like C macros from Kotlin. We found some info saying it is not supported. Correct? Do we need to implement normal functions in C or maybe Objective-C that call the macros? The problem is that `cinterop`does not seem to create bindings for the macros.
    k
    s
    • 3
    • 6
  • m

    magnumrocha

    04/16/2020, 4:19 PM
    From https://kotlinlang.org/docs/tutorials/native/mapping-function-pointers-from-c.html: "We use the 
    staticCFunction{..}
     helper function from Kotlin/Native to wrap a Kotlin lambda function into a C function pointer. It only allows having unbound and non-capturing lambda functions. For example, it is not able to use a local variable from the function. We may only use globally visible declarations." "globally visible declarations" -> how can access my global kotlin declarations inside the the lambda of
    staticCFunction
    , because I have tested some approaches and only could have access to functions that use kotlin global functions (like
    println
    ), if I use some of my global scoped declarations my code fails on kotlin native call stack...
    d
    • 2
    • 9
  • k

    Kavan

    04/17/2020, 5:04 AM
    When I asked "why kotlin-native compilation is slow ?". Some said its gradle some said its jvm. But I don't know what is real reason. btw, I tried compiling using meson build. was quick. please KN experts explain, why and whats bottleneck in KN right now ?
    b
    b
    e
    • 4
    • 7
  • g

    gabin

    04/17/2020, 11:00 AM
    Hi guys. I’ve followed this guide https://kotlinlang.org/docs/tutorials/native/using-intellij-idea.html to create empty hello world project. But the last step “run” is not possible. Run command is not available at all, there are no created configurations. How can I run the test project?
    t
    • 2
    • 4
  • g

    gabin

    04/17/2020, 11:01 AM
    btw building empty KN project takes 3 m 47 s
    a
    n
    • 3
    • 3
  • d

    Daniel Rampelt

    04/17/2020, 2:41 PM
    Has anyone else had any issues building multi-module iOS projects on 1.3.70+? It works fine for me when building for a real device but not on the simulator, looks like a problem with the caching. I'm getting:
    > Task :shared:linkDebugFrameworkIos FAILED
    e: /Users/.../project/shared/some/module/build/classes/kotlin/ios/main/module1 is cached (in /Users/.../.konan/kotlin-native-macos-1.3.72/klib/cache/ios_x64-gSTATIC/libmodule1-cache.a), but its dependency isn't: /Users/.../project/shared/module2/build/classes/kotlin/ios/main/module2
    a
    • 2
    • 8
  • a

    Alexander Larsson

    04/17/2020, 2:47 PM
    Im binding against a library that is importing Foundation/Foundation.h using cinterop. Should I point out some system path to make this work? Im thinking in includeDirs in the gradle file.
    k
    • 2
    • 16
  • b

    Benjamin Charais

    04/17/2020, 10:17 PM
    Does anyone have an implementation of an Atomic HashMap? Or something that would function similarly? I'm in a bit of a spot and not having luck with my attempts.
    r
    • 2
    • 1
  • p

    Peter Samokhin

    04/18/2020, 3:55 AM
    Hello! I reported the bug: https://youtrack.jetbrains.com/issue/KT-38369 Maybe, someone knows the workaround for the case with the configuration like this:
    targetFromPreset(presets["iosX64"], "iosX64") { compilations["main"].source(sourceSets["nativeMain"]) }
    i.e. when I have the only one sources directory for a lot of different native targets, and when I try to create only one actual class. In this case, there is a really annoying IDE error with the suggestion to create
    N
    actual declarations instead of the only one.
    a
    • 2
    • 1
  • h

    hannesstruss

    04/18/2020, 7:10 PM
    I was trying to write an extension in Swift on a generic Kotlin type (to add Swift Combine support to SqlDelight's
    Query<RowType>
    ). @russhwolf suggested using a top level func like
    func createPublisher<T>(query: RuntimeQuery<T>) -> AnyPublisher<RuntimeQuery<T>, Never>
    . That works! Are there maybe any other solutions?
    r
    • 2
    • 4
  • s

    saket

    04/19/2020, 4:18 PM
    I’m trying to understand why some of my tests are failing with
    InvalidMutabilityException
    on native platforms because they use
    lazy{}
    values. My code is single threaded and does not freeze objects anywhere. Are test graphs frozen by default on native platforms? update: TIL
    objects
    are frozen by default!
    d
    m
    • 3
    • 17
  • m

    mbonnin

    04/19/2020, 10:18 PM
    Is there something I can read on what the K/N internals look like and how much overhead is in the "header". Things like: is a Kotlin
    CPointer
    always 64bits in RAM or is it refcounted ? What's in the "header" ? refcount ? frozen state ? other ?
    d
    • 2
    • 5
  • n

    napperley

    04/20/2020, 1:37 AM
    Discovered a way to handle library/include paths without hard coding them in the def file, which only works for a static C library. In the build file include paths are passed to the compilerOpts function, and library paths are passed to the extraOpts function: https://gitlab.com/napperley/jmonitor/-/blob/master/build.gradle.kts#L16
    d
    • 2
    • 7
  • a

    Alexander Larsson

    04/20/2020, 8:22 AM
    I'm having problems with running C-interop on an Objective C framework with a header that imports
    Foundation
    . The
    cinterop
    task fails with an exception:
    > Task :shared:cinteropObjektiveSSLIos FAILED
    1 actionable task: 1 executed
    Exception in thread "main" java.lang.Error: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:492:1: error: expected identifier or '('
    	at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:152)
    	at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.indexDeclarations(Indexer.kt:1003)
    	at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.buildNativeIndexImpl(Indexer.kt:992)
    	at org.jetbrains.kotlin.native.interop.indexer.NativeIndexKt.buildNativeIndex(NativeIndex.kt:91)
    	at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:230)
    	at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:46)
    	at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:44)
    	at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:19)
    	at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:37)
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':shared:cinteropObjektiveSSLIos'.
    > Process 'command '/Applications/IntelliJ IDEA <http://CE.app/Contents/jbr/Contents/Home/bin/java|CE.app/Contents/jbr/Contents/Home/bin/java>'' finished with non-zero exit value 1
    Line 492 in NSObjCRuntime.h is:
    @class NSString, Protocol;
    Is this a bug in Kotlin/Native or the
    cinterop
    tool? I can remove the import of
    Foundation
    to "fix" this bug but then it fails with
    error: unknown type name 'NSData'
    so I obviously need to keep it in there. Any workarounds?
    a
    • 2
    • 3
  • a

    Alexander Larsson

    04/20/2020, 11:59 AM
    How can I write something in Kotlin Native that I can call like a static method from Swift? I want the call site to look like
    SomeClass.staticMethod()
    .
    m
    n
    • 3
    • 7
  • r

    Romain Dubreucq

    04/20/2020, 2:08 PM
    Hello I'm using a Swift wrapper around my K/N library and have the common InvalidMutabilityException I have a reference of a Kotlin object in a Swift class: when I call a method (that mutates its state) on it, it throws the exception which seems logical as it is frozen by default. I used the @ThreadLocal annotation on the variable that is changed by the method but nothing changes. My question is: how can I tell K/N runtime that my Kotlin object reference should be "ThreadLocal" from a Swift class? Thank you
    d
    • 2
    • 2
  • p

    Patrick

    04/20/2020, 2:40 PM
    I have the following code on Windows x64 (Kotlin 1.3.72):
    package sample
    
    import io.ktor.client.HttpClient
    import io.ktor.client.engine.curl.Curl
    import io.ktor.client.features.json.JsonFeature
    import io.ktor.client.features.json.serializer.KotlinxSerializer
    import io.ktor.client.request.get
    import kotlinx.coroutines.runBlocking
    
    fun main() = runBlocking<Unit> {
        val client = HttpClient(Curl) {
            install(JsonFeature) {
                serializer = KotlinxSerializer()
            }
        }
    
        val response = client.get<String>("<http://google.de>")
    
        println(response)
    }
    However the linker fails with this error message:
    C:\Users\Patrick\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1\bin\ld: cannot find -lcurl
    - This tells me that curl seems to be missing. However it should be installed on Windows 10 by default. I also downloaded the curl binaries and added them to the include path, but still nothing. Any ideas why the linker fails here?
    a
    • 2
    • 3
  • i

    Ian Stewart

    04/20/2020, 5:05 PM
    I’m curious for the generation of objective-C; is the intermediate code available, or are the binaries somehow generated “directly”? I’m curious to have access to the objective-C on windows (using 1.4M1)
    s
    • 2
    • 3
  • k

    kpgalligan

    04/20/2020, 6:26 PM
    Is there a way to build older versions of kotlin native locally? It seems like the dependencies needed to build expire or are removed at some point. I’ve made a new branch at the 1.3.72 release, but running
    ./gradlew dependencies:update
    fails with
    A problem occurred evaluating project ':backend.native:tests'.
    > Could not resolve all files for configuration ':backend.native:tests:update_tests'.
       > Could not resolve org:Kotlin_KotlinRelease_1370_Compiler:1.3.72-eap-463.
         Required by:
             project :backend.native:tests
          > Could not resolve org:Kotlin_KotlinRelease_1370_Compiler:1.3.72-eap-463.
             > Could not get resource '<https://buildserver.labs.intellij.net/guestAuth/repository/download/Kotlin_KotlinRelease_1370_Compiler/1.3.72-eap-463/teamcity-ivy.xml>'.
                > Could not GET '<https://buildserver.labs.intellij.net/guestAuth/repository/download/Kotlin_KotlinRelease_1370_Compiler/1.3.72-eap-463/teamcity-ivy.xml>'. Received status code 400 from server: Bad Request
    I’ve seen similar issues in the past. Running
    ./gradlew dependencies:update
    for master seems to work fine.
    e
    • 2
    • 3
  • d

    delblanco

    04/22/2020, 10:39 AM
    I'm running into a problem where every function marked with
    suspend
    isn't available in swift. In my example I created this fairly simple `UserRepository`:
    interface UserRepository {
    
        suspend fun getUser(uri: UserUri) : User
    
        suspend fun getUsers() : List<User>
    
        fun getUsersIosWorkaround() : List<User>
    }
    On jvm/android all three methods are available though when compiling for iOS the last non suspend function is available. This is the converted protocol as found in `common.h`:
    __attribute__((swift_name("UserRepository")))
    @protocol CommonUserRepository
    @required
    - (NSArray<CommonUser *> *)getUsersIosWorkaround __attribute__((swift_name("getUsersIosWorkaround()")));
    @end;
    They're also missing on the dummy UserRepository implementation inside `common.h`:
    __attribute__((objc_subclassing_restricted))
    __attribute__((swift_name("MockUserRepository")))
    @interface CommonMockUserRepository : CommonBase <CommonUserRepository>
    - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
    + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
    - (NSArray<CommonUser *> *)getUsersIosWorkaround __attribute__((swift_name("getUsersIosWorkaround()")));
    @end;
    Presenters definied in
    common
    can invoke the suspend functions so I know they work in the PoC app. Not sure if this is a bug, bad configuration or by design.. so any help is appreciated!
    a
    s
    • 3
    • 3
  • n

    Nikolay Kasyanov

    04/22/2020, 2:21 PM
    hey folks, in Kotlin one has a method called
    values()
    in each
    enum class
    , although it doesn’t seem to be exposed to Objective-C headers. Is this a known limitation?
    a
    • 2
    • 4
  • k

    kevin.cianfarini

    04/22/2020, 6:29 PM
    Can anyone help me diagnose this issue? Getting a linking issue stack trace when trying to compile a very simple project.
    Untitled
    d
    • 2
    • 3
Powered by Linen
Title
k

kevin.cianfarini

04/22/2020, 6:29 PM
Can anyone help me diagnose this issue? Getting a linking issue stack trace when trying to compile a very simple project.
Untitled
after doing a bit of research, it looks like konan has a dependency on ncurses? Is that true?
d

Dominaezzz

04/22/2020, 6:49 PM
Not sure but I had to install it too.
k

kevin.cianfarini

04/22/2020, 6:55 PM
weird
View count: 1