jhass changed the topic of #crystal-lang to: The Crystal programming language | https://crystal-lang.org | Crystal 0.35.1 | Fund Crystal's development: https://crystal-lang.org/sponsors | GH: https://github.com/crystal-lang/crystal | Docs: https://crystal-lang.org/docs | Gitter: https://gitter.im/crystal-lang/crystal
<FromGitter> <incognitorobito> For anyone out there I found this tutorial (https://www.youtube.com/watch?v=eAzIAjTBGgU&feature=emb_title) and got it working
<FromGitter> <Blacksmoke16> πŸ’―
scott_tams has joined #crystal-lang
cerulean has joined #crystal-lang
<cerulean> hey you guys like my rap song? https://clyp.it/skpttyrl
<FromGitter> <Blacksmoke16> no, offtopic
<scott_tams> Do we have any sort of spam protection or banning capabilities?
<FromGitter> <Blacksmoke16> not that im aware of, or have access to at least
cerulean has left #crystal-lang [#crystal-lang]
<scott_tams> damn. I bet this becomes an increasing problem... :/
<FromGitter> <Blacksmoke16> also :metal: all the way :p
<scott_tams> it's gone now so whatever
_whitelogger has joined #crystal-lang
f1reflyylmao has joined #crystal-lang
f1refly has quit [Ping timeout: 272 seconds]
scott_tams has quit [Quit: Leaving]
avane has quit [Quit: ZNC - https://znc.in]
avane has joined #crystal-lang
ryanprior has joined #crystal-lang
<ryanprior> The Opal gitter got upgraded to the new Matrix bridge and it's awesome.
<ryanprior> Matrix has some anti-spam tooling and they're working on expanding it and providing documentation: https://github.com/matrix-org/synapse/issues/8293
<ryanprior> That should make its way to Gitter within a year if you believe their timeline
tsujp has quit [Ping timeout: 265 seconds]
tsujp has joined #crystal-lang
Seich has quit [Quit: Gone fishing.]
Seich has joined #crystal-lang
<jhass> fwiw we can moderate the IRC side of things, me, RX14, oprypin, asterite and bcardiff are ops. Though the latter two are not active in IRC and we others are all in european timezones I believe :/
<jhass> cerulean was a network wide spam bot, those usually get K-lined sooner or later
HumanG33k has joined #crystal-lang
HumanG33k has quit [Remote host closed the connection]
HumanG33k has joined #crystal-lang
<oprypin> oh i'm op? i totally forgot 😬
<jhass> unless you made a new nickserv account :D
yukai has quit [Ping timeout: 240 seconds]
andrzejku has joined #crystal-lang
deavmi_ has joined #crystal-lang
deavmi has quit [Read error: Connection reset by peer]
HumanG33k has quit [Remote host closed the connection]
HumanG33k has joined #crystal-lang
HumanG33k has quit [Ping timeout: 256 seconds]
HumanG33k has joined #crystal-lang
HumanG33k has quit [Ping timeout: 260 seconds]
Liothen has quit [Ping timeout: 260 seconds]
<FromGitter> <naqvis> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f846bfb60efef1ec37847e7]
<FromGitter> <naqvis> why such behavior?
<FromGitter> <Blacksmoke16> `Array(Int32)` isnt the same as `Array(Int32 | Nil)`
alexherbo2 has joined #crystal-lang
Liothen has joined #crystal-lang
<FromGitter> <naqvis> but this is Union
<FromGitter> <Blacksmoke16> would have to do `Foo.new [1, 2, 3] of Int32?`
<FromGitter> <naqvis> `Foo.new([1,2,3,nil])` will work
<FromGitter> <Blacksmoke16> right
<FromGitter> <Blacksmoke16> because the type is inferred to be `Int32?`, but if you just give it `[1, 2, 3]` its `Array(Int32)`, which cant have `nil`, thus not matching the type restriction of `val`
<FromGitter> <naqvis> true, but thing is compiler is being told that it could be either A or B
<FromGitter> <naqvis> so shouldn't it respect the contract?
<FromGitter> <Blacksmoke16> is it not by rejecting `Array(Int32)`?
<FromGitter> <naqvis> but isn't the value fulfilling the contract?
<FromGitter> <naqvis> optional mean it may or may not
<FromGitter> <Dan-Do> but the `array of A` is not equal to `array of either A or B`, I guess :)
<FromGitter> <Blacksmoke16> `[1, 2, 3]` is not a `Array(Int32?)`, so no it doesn't match
<FromGitter> <Blacksmoke16> right
<FromGitter> <naqvis> but that defeats the intention of optionals
<FromGitter> <naqvis> doesn't it?
<FromGitter> <Blacksmoke16> i mean to be clear what you're trying to do it totally possible, you just have to tell the compiler that array can also contain `nil`, via `Foo.new [1, 2, 3] of Int32?`
<FromGitter> <Blacksmoke16> otherwise it cant know that that array should be allowed to contain `nil`
<FromGitter> <naqvis> method declaration is the contract and there its told that its an array of optionals
<FromGitter> <naqvis> so passing an array with no null, shouldn't violate that condition
<FromGitter> <naqvis> vice versa case is different
<FromGitter> <Blacksmoke16> its also a bit more strict because this is the type of an ivar, not just a method type restriction
alexherbo2 has quit [Ping timeout: 240 seconds]
<FromGitter> <Blacksmoke16> if it was the latter it would most likely be fine
<FromGitter> <naqvis> i mean, declaration not allowing accepting of optional, then passing an optional should be an error
<FromGitter> <Blacksmoke16> im pretty sure it would
<FromGitter> <naqvis> yeah
<FromGitter> <naqvis> it should and it does
<FromGitter> <asterite> if you don't assign if to `@val` it unfortunately
<FromGitter> <asterite> compiles
<FromGitter> <asterite> one of the inconsistencies of the language
<FromGitter> <naqvis> yeah, but isn't the latter behavior correct?
<FromGitter> <asterite> It depends
<FromGitter> <naqvis> i mean in this scenario
<FromGitter> <asterite> When `Array(Int32 | Nil)` is used as a type restriction, it's asking "is each element an int or a nil? if so, then let the argument pass"
<FromGitter> <asterite> but when you assign `Array(Int32)` to an instance variable of type `Array(Int32 | Nil)` then that doesn't compile
<FromGitter> <asterite> the reason is that you would later be able to push a `nil` inside it, which would be wrong
<FromGitter> <asterite> I think ideally `Array(Int32?)` would only match exactly `Array(Int32?)`, never `Array(Int32)`
<FromGitter> <naqvis> type coercion will happen?
<FromGitter> <asterite> and we'd need a syntax like `def foo(x : Array(T)) where T < Int32?`
<FromGitter> <asterite> there's no way to do type coercion for an array
alexherbo2 has joined #crystal-lang
<FromGitter> <christopherzimmerman> Is there to catch any missing method that has an argument of a certain type? ⏎ I know you can't use `typeof` in macros but I can't figure any way to identify this case. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84719324a20801a8e1255e]
<FromGitter> <Blacksmoke16> did you try `.is_a?`
<FromGitter> <Blacksmoke16> or `<= Half`
<FromGitter> <christopherzimmerman> Yea, `call.args[0]` is a `MacroID`, so it never picks up on the type I want.
<FromGitter> <Blacksmoke16> ah ip
<FromGitter> <Blacksmoke16> rip
<FromGitter> <Blacksmoke16> `call.args[0].stringify == "Half"`? :p
<FromGitter> <Blacksmoke16> ofc wouldnt handle sub types or if there are two of that class in diff namespaces...
alexherbo2 has quit [Read error: Connection reset by peer]
<FromGitter> <christopherzimmerman> I think that just produces `_arg0` or whatever. I will never need to handle different subtypes or namespaces luckily, It's supposed to mimic a primitive.
<FromGitter> <Blacksmoke16> yea i dunno, i never used `method_missing`. iirc its kinda a hack
<FromGitter> <Dan-Do> Can we re-define an alias? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84738243fa5d19e606dd0f]
<FromGitter> <Dan-Do> `Error: alias Number is already defined`
<FromGitter> <Blacksmoke16> guess not
<FromGitter> <Dan-Do> :sad:
<FromGitter> <asterite> macros receive ast nodes and they don't have types (the only things that have types are instance variables of types, in macros)
<FromGitter> <Blacksmoke16> methods can as well, via arg/return type restrictions
<FromGitter> <Dan-Do> > guess not ⏎ It's strange, since we can overwrite the methods/vars
<FromGitter> <Blacksmoke16> whats the usecase?
<FromGitter> <Blacksmoke16> fwiw you can just use https://crystal-lang.org/api/master/Number/Primitive.html for this
<FromGitter> <Dan-Do> `alias Number = Float64 | Int64 | Int32`
<FromGitter> <Dan-Do> Now I want to support broader numbers
<FromGitter> <Blacksmoke16> doesnt that essentially cover everything tho?
<FromGitter> <Blacksmoke16> er, not unsigned i guess
<FromGitter> <Dan-Do> Yeap
<FromGitter> <Blacksmoke16> make it a string? :p
<FromGitter> <Dan-Do> er, that's kind of hack :)
<FromGitter> <Blacksmoke16> what are you using the numbers for? just rendering HTML?
<FromGitter> <Dan-Do> yes, but it comes from another shard :)
<FromGitter> <Blacksmoke16> fair enough
<FromGitter> <Dan-Do> just want to know, what is the mystic behind alias?
<FromGitter> <Blacksmoke16> prob something related to that they dont really exist?
<FromGitter> <Blacksmoke16> as they're replaced at compile time with the definition. So being able to change that would prob break things
<FromGitter> <Blacksmoke16> :shrug: thats just a guess
<FromGitter> <Dan-Do> okay, thanks
<FromGitter> <asterite> If I could, I would remove aliases from the language :-o
<FromGitter> <Blacksmoke16> :0
<FromGitter> <Dan-Do> searching around, seems alias is not used for type in ruby ⏎ https://www.rubyguides.com/2018/11/ruby-alias-keyword/
<FromGitter> <Blacksmoke16> ruby doesnt have types to alias tho :p
<FromGitter> <j8r> because ruby has no types, of course
<FromGitter> <j8r> I mean, does not enforce them
<FromGitter> <j8r> Is there a RFC for type annotations, like in Python by the way? ⏎ Then, it could be useful
andrzejku has quit [Read error: Connection reset by peer]
<oprypin> when instantiating a closure, does it absolutely have to go on the heap? is there any way to control memory allocation for it?
HumanG33k has joined #crystal-lang
<oprypin> oh wait maybe its the fact that I'm using box
<oprypin> or is it a double pointer then https://crystal-lang.org/reference/syntax_and_semantics/c_bindings/callbacks.html ## Since Proc is a {Void*, Void*}
<FromGitter> <asterite> oprypin: typeof(block) will make a closure for block
<FromGitter> <asterite> just past month: https://github.com/crystal-lang/crystal/pull/9723
<oprypin> I'm willingly making a closure, yes
<oprypin> it's not about typeof
<FromGitter> <asterite> I thought you couldn't pass a closure to C
<oprypin> so I'm using Box and then i can
<oprypin> it's not even about C though. just asking, is it possible to use closures without using heap
<FromGitter> <asterite> nope
<oprypin> :(
Human_G33k has joined #crystal-lang
HumanG33k has quit [Ping timeout: 258 seconds]
Human_G33k has quit [Excess Flood]
Human_G33k has joined #crystal-lang
HumanG33k has joined #crystal-lang
Human_G33k has quit [Ping timeout: 240 seconds]
Human_G33k has joined #crystal-lang
Human_G33k has quit [Read error: Connection reset by peer]
Human_G33k has joined #crystal-lang
HumanG33k has quit [Ping timeout: 240 seconds]
Human_G33k has quit [Ping timeout: 272 seconds]
<FromGitter> <vinyll> Hey all! ⏎ When running a basic script, it takes like 10 seconds to compile/run (Macbook i5, 8Gram). ⏎ That's pretty long for a reloading process. Any recommandation?
<FromGitter> <Blacksmoke16> built a binary and run that instead
<FromGitter> <Blacksmoke16> would be your best bet assuming you're not actively devving on it
<FromGitter> <vinyll> Well, would that update when I update the code?
<FromGitter> <Blacksmoke16> no
<FromGitter> <vinyll> Oh right, that's the case, need to update a typo and see the result in a web page
<FromGitter> <vinyll> Does it take that long for you too?
<FromGitter> <Blacksmoke16> are you running it in release mode?
<FromGitter> <Blacksmoke16> depends on the program, but most things are quite fast
<raz> yup 10s seems long for a basic script, unless it has a bazillion deps
<FromGitter> <Blacksmoke16> or just low single core perf
<raz> yeh, i5 is slow, but that slow? hm
<FromGitter> <Blacksmoke16> just tried on work laptop, was 3.2s for hello world on first compile, then .75s on additional runs
<raz> gimme the code
<raz> i wanna brag with my i9
<FromGitter> <Blacksmoke16> `puts "hello world"`
<FromGitter> <Blacksmoke16> :S
<raz> wth
<raz> 6.4s on first run
<raz> then 1.1 on subsequent ones
<FromGitter> <Blacksmoke16> *dunked* :p
<raz> you prob cheated and had stuff cached already :p
<FromGitter> <Blacksmoke16> ah, well you have the overhead of whatever grip is doing
<FromGitter> <vinyll> I compile it with `crystal src/server.cr`. ⏎ Then I Cmd+C to quit and restart. ⏎ There might be a more optimized way?
<FromGitter> <Blacksmoke16> could use like https://www.npmjs.com/package/nodemon to watch for changes and restart automatically
<FromGitter> <Blacksmoke16> other than that not really
<FromGitter> <asterite> the compiler is slow, there's no way around that
<FromGitter> <Blacksmoke16> ```code paste, see link``` ⏎ ⏎ Oh its even faster now raz :P [https://gitter.im/crystal-lang/crystal?at=5f84a073a1c81d0a7eda5eee]
<FromGitter> <vinyll> Right. It's pretty decent for a true basic: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84a074a1c81d0a7eda5ef2]
<raz> blacksmoke: mine goes down to 0.8 after a few runs :P
<raz> i also tried vinyl's code now. `time crystal build src/server.cr` gives me 4.2s
<raz> still not zippy, but that seems about realistic
<FromGitter> <Blacksmoke16> id have to try with desktop, work laptop has more cores but slower single core speed since its a laptop
<raz> yeh i'm on the mbp 16"
<FromGitter> <vinyll> 1) 2s would be decent enough for me
<raz> for me compile times are right at the "ok, can work with this" threshold. my real app is in the 8-10s range (but that's fully fleshed out, ORM and all)
<FromGitter> <vinyll> I get the follow ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84a12607361f0cc6492a77]
<FromGitter> <vinyll> Strangly I get 6 sec the first time
<raz> i'd take it as an excuse to buy that bigger macbook ;)
<raz> would be great if the compiler got faster, but that's prob not gonna happen very soon
<raz> or, the old school route: buy/rent a cheap buildbox and compile there
<raz> i've worked that way for years, takes a bit of setup - but for purely cli/web stuff it's not much different from compiling locally
<FromGitter> <vinyll> I tried Grip vs Athena (@Blacksmoke16 πŸ‘€) using Crinja. ⏎ And figured it actually comes from VSCodium! ⏎ It must be a Crystal extension, or even more probably Cristalline…
<FromGitter> <wyhaines> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84a829dc95072254d10627]
<FromGitter> <wyhaines> That's Ubuntu 20.04 on WSL 1 on a Dell XPS 15" from last year.
<FromGitter> <vinyll> yes, a `puts "Hey!"` is less than a second as well for me :)
<FromGitter> <Blacksmoke16> @vinyll ah nice, went with grip eh? πŸ˜‰
<FromGitter> <vinyll> 5 seconds when running a web homepage with Grip or Athena + Crinja
<FromGitter> <Blacksmoke16> not too bad
<FromGitter> <vinyll> I'm still trying frameworks actually. ⏎ I'm even still wondering wether to go with Crystal or not (Elixir might be an option because of the ecosystem, though Crystal seems more straightforward)
psydroid has quit [Quit: killed]
return0e[m] has quit [Quit: killed]
ryanprior has quit [Quit: killed]
<FromGitter> <Blacksmoke16> πŸ‘ fair enough. Happy to answer any questions/etc in regards to Athena.
psydroid has joined #crystal-lang
<raz> i wanted to like elixir, tried it a few times. but the whole "one language stacked on top of another" just breaks the deal for me every time
return0e[m] has joined #crystal-lang
<raz> same with the JVM languages. it just always feels messy, stuff leaks in from the underlying language, you end up needing to know the quirks of both
<raz> crystal may not be as wrinkly and mature yet, but at least when there's a crystal bug, it's a crystal bug. not some obscure "oh btw" from two decades ago that pokes through 2 layers of "we never liked this but gotta carry it on cause now everything depends on it"
<riffraff169> jruby bothers because of that too...what is the problem, ruby? java? jvm? who knows?
<raz> yea, i actually used jruby for a production rails app for a while (before MRI performance became tolerable)
<riffraff169> on the other hand, some could argue same thing with most languages and c....is that an X bug, or a C bug...well, until the language becomes self-hosted
<raz> fun times... swapping out gems for others that may hopefully work
<raz> yea, but C and LLVM don't really count for me. at that layer it's not my problem, it's the language-makers problem.
<raz> whereas with elixir-on-erlang or anything-on-jvm it is my problem. constantly
<riffraff169> that is true
<FromGitter> <dscottboggs> idk there are a bunch of things I've run into about Crystal that are just "it has to be this way because C is this way" when interoperating with C libraries. And it's not like you're gonna get away from C libraries unless you run lillith (https://github.com/ffwff/lilith) as your daily driver, and even then....
<FromGitter> <dscottboggs> I've also heard that there are performance constraints on our hardware imposed by the C memory and processing model, but my understanding isn't advanced yet to understand or have encountered those yet.
<FromGitter> <dscottboggs> the biggest thing that comes to mind is Crystal closures being unable to be passed as C function pointers. Totally destroyed a really awesome library idea I had
<FromGitter> <vinyll> I find this confusing: ⏎ ⏎ ```require "athena" ⏎ class ExampleController < ART::Controller``` ⏎ ⏎ `ART` exists in `athena`, but how can you figure where it comes from when requiring muliple files? ... [https://gitter.im/crystal-lang/crystal?at=5f84b9543775d02b5a075a0c]
<FromGitter> <dscottboggs> > where it comes from ⏎ ⏎ What do you mean by this? ⏎ ⏎ > how can you avoid names collision? ... [https://gitter.im/crystal-lang/crystal?at=5f84b99f07361f0cc64965a5]
<FromGitter> <Blacksmoke16> `ART` is an alias `Athena::Routing`
<FromGitter> <vinyll> How would you know that `ART` is declared in `athena`
<FromGitter> <Blacksmoke16> less typing
<FromGitter> <dscottboggs> the docs
<FromGitter> <Blacksmoke16> read the API docs?
<FromGitter> <Blacksmoke16> yea
<FromGitter> <Blacksmoke16> thats kinda a problem with any shard, you wouldnt know the types that are exposed from that shard w/o looking at api or source
<FromGitter> <vinyll> I mean in Python one would do `from athena import ART` and the code would be explicit. ⏎ Here, readiing the code, it seems like it comes out of nowhere. ⏎ Changing language is changing paradigms; so I'm learning to adapt ;)
<FromGitter> <Blacksmoke16> i would love to have something like that, but alas it doesnt exist
<FromGitter> <dscottboggs> name collision is not an error in Crystal -- if you, do ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Both `#b` *and* `#b` will be defined as members of `Ex`, rather than an error being thrown [https://gitter.im/crystal-lang/crystal?at=5f84ba3a78d7f20c9fa66a07]
<FromGitter> <dscottboggs> this is a big change if you're used to python
<FromGitter> <dscottboggs> (even though it's technically possible to do at least the latter example in python, the way to do it isn't obvious)
<raz> unlearning python is such a pleasant experience, wish i could do it again
<raz> that language is so broken on so many levels :<
<FromGitter> <vinyll> Right, I see the confusion and collision. ⏎ Is there a benefit, flexibility or other interest with this paradigm?
<FromGitter> <Blacksmoke16> i have thought about using private aliases to avoid large namespace names in code
<FromGitter> <Blacksmoke16> like a pseudo import system, but :shrug:
<FromGitter> <Blacksmoke16> prob just is what Ruby does :shrug:
<FromGitter> <Blacksmoke16> is how it came to be
<FromGitter> <dscottboggs> yes exactly, firstly it was how ruby did it
<FromGitter> <rishavs> I am getting an error on doing shards update. ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I am assuming that the shards repo and the pg repo are out of sync [https://gitter.im/crystal-lang/crystal?at=5f84bfc2a605930a78a5e895]
<FromGitter> <rishavs> any way to wok around this?
<FromGitter> <Blacksmoke16> sure you're not just trying to use a branch or somethign that doesnt exist?
<FromGitter> <Blacksmoke16> that tag not matching is just a warning afaik
<FromGitter> <Blacksmoke16> can you share your shard.yml?
<FromGitter> <rishavs> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84c3feaacbfa2248d3572a]
<FromGitter> <rishavs> i just got a fresh new wsl an installed crystal just now
<FromGitter> <Blacksmoke16> works fine for me
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84c45f02e81701b019c9bc]
<raz> hm, the error message could be a little more helpful
<FromGitter> <Blacksmoke16> try like `rm -rf ./lib` and maybe shards cache?
<raz> what shard version, what tag version Β―\_(ツ)_/Β―
<raz> yea, rm -rf has worked for me too in the past (gladly needed it rarely tho)
<FromGitter> <rishavs> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5f84c50360efef1ec3794259]
<FromGitter> <rishavs> rm -rf ./lib didnt help
<FromGitter> <rishavs> will try nuking the shards cache. What was the command for that again? been a while since i did that
<FromGitter> <Blacksmoke16> for linux its like `rm -rf ~/.cache/shards` iirc
<FromGitter> <rishavs> No effect. I am on `Description: Ubuntu 20.04.1 LTS`. could that be a problem?
<FromGitter> <Blacksmoke16> :shrug: not sure
<raz> rishavs: hmm, are you on some kind of network fs?
<raz> (just cause it starts with /mnt/c)
<FromGitter> <rishavs> its wsl. i am on windows
<raz> ouch ok
<raz> no idea if that's related, but windows is, well... not an ideal env
<FromGitter> <rishavs> this has worked for me for years :( ⏎ I just wanted to dust off some old project and code in crystal yet again
<raz> hm, the error msg is sadly not very helpful
<raz> it says what command it runs, but not in what path
<FromGitter> <rishavs> I did verbose as well; ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Still not descriptive [https://gitter.im/crystal-lang/crystal?at=5f84c77260efef1ec37948b0]
<raz> hum, that's kinda weird in many ways
<raz> maybe try stating the pg version explicitly in the shard.yml
<raz> possibly he's in the middle of cutting a release and stuff isn't synced up, or something like that
* raz making random guesses
<FromGitter> <Blacksmoke16> It installed fine on mac
<raz> yeh, i don't think it's that. but i've also seen weirdness when my shard.yml & git tags weren't in sync
<raz> don't remember what particular error that gave me tho
<raz> fwiw, v0.22.0 seems to be relatively new https://github.com/will/crystal-pg/tree/v0.22.0
<raz> 5 days ago
<FromGitter> <rishavs> tried both `version: ~> 0.21.1` and `version: ~> 0.22.0` ⏎ had no effect
<FromGitter> <rishavs> Anyway, I have added a bug in crystal-pg repo. Hope a fix comes soon. Thanks for al the help raz and blacksmoke. Much appreciated
<raz> np. bugs like that suck. :(
<FromGitter> <Blacksmoke16> id best its WSL issue tbh
<FromGitter> <j8r> @rishavs can you try running `git archive --format=tar --prefix= refs/tags/v0.10.0 | tar -x -f - -C '/mnt/c/Users/Mockingbird/Documents/GitHub/kaipi/lib/db` ?
<raz> yea that would also be my guess. does it something weird with the filesystem?
<FromGitter> <j8r> .. after cloning https://github.com/will/crystal-pg
<FromGitter> <rishavs> let me try
<FromGitter> <j8r> or any other valid directory
<FromGitter> <rishavs> Can confirm that this is some wsl issue. I can work on norma directories well enough
<FromGitter> <rishavs> but on moounted directories, i am hitting permissions issues
<FromGitter> <rishavs> just used a local workspace this time; ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ worked fine [https://gitter.im/crystal-lang/crystal?at=5f84cd101cbba72b63d7a3ab]
<FromGitter> <rishavs> Thanks for all the help folks. I am unblocked ^_^
<FromGitter> <Blacksmoke16> id bet*
<FromGitter> <Blacksmoke16> πŸ‘
yukai has joined #crystal-lang