ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.34.0 | Fund Crystal's development: http://is.gd/X7PRtI | GH: https://github.com/crystal-lang/crystal | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Gitter: https://gitter.im/crystal-lang/crystal
<FromGitter> <tenebrousedge> ternary is probably the shortest
<oprypin> thx
ur5us has quit [Ping timeout: 260 seconds]
rocx has quit [Quit: 👏 developers 👏 developers 👏 developers 👏 developers]
ur5us has joined #crystal-lang
ur5us has quit [Quit: Leaving]
<FromGitter> <ImAHopelessDev_gitlab> https://softwareengineering.stackexchange.com/a/150618 i saw this answer and it intrigued me ⏎ ⏎ here is what i have so far: https://play.crystal-lang.org/#/r/8v50 ⏎ ⏎ am i following the answer correctly? [https://gitter.im/crystal-lang/crystal?at=5e8fc600c52b6a38abd73528]
<FromGitter> <Blacksmoke16> `if random_v <= v && v >= random_v` :thinking:
<FromGitter> <tenebrousedge> isn't that `if random_v == v` ?
<FromGitter> <Blacksmoke16> eya
<FromGitter> <Blacksmoke16> yea*
<FromGitter> <ImAHopelessDev_gitlab> new one: https://play.crystal-lang.org/#/r/8v5g
<FromGitter> <ImAHopelessDev_gitlab> i think i got it?!
<FromGitter> <tenebrousedge> cumulative sum would be like `h.reduce([]) {|m, e| m << m.last + e }` no?
<FromGitter> <tenebrousedge> maybe with `nil` handling
<FromGitter> <tenebrousedge> `h[1..-1].reduce([h.first]) {|m, e| m << m.last + e }`
<FromGitter> <ImAHopelessDev_gitlab> anyways, this weighted randomness stuff is very cool
<FromGitter> <ImAHopelessDev_gitlab> i intend to use it in some gamedev stuff
<FromGitter> <tenebrousedge> https://play.crystal-lang.org/#/r/8v5s
<FromGitter> <ImAHopelessDev_gitlab> O_o
<oprypin> tenebrousedge: i think that decreased the readability of the code significantly
<FromGitter> <tenebrousedge> that's nice
<oprypin> ImAHopelessDev_gitlab: good cumulative sum here https://stackoverflow.com/a/1475845
<FromGitter> <tenebrousedge> you shouldn't need the `sum` var
<FromGitter> <tenebrousedge> I don't care if you think it's more readable with it
<oprypin> k
<oprypin> ImAHopelessDev_gitlab: that's nice code you shared. glad you found this concept
<oprypin> if u have a very big list of items and weights, this can be sped up with bisect at the end :>
<FromGitter> <ImAHopelessDev_gitlab> thanks for the help! i'm just glad i go tthe concept actually working cause when I viewed that answer my brain was like WTF is this guy saying. then i was like, wait a minute let me try this with crystal on the playground lol
<FromGitter> <laynef> Hey guys do you guys have something like JIRA to the divide the work. This community is huge and is the coolest shit in tech right now. Even if people don't know. I could help set it up right now if I knew
<FromGitter> <tenebrousedge> the github issues list is a thing
<FromGitter> <ImAHopelessDev_gitlab> What is JIRA?
<FromGitter> <tenebrousedge> JIRA is an obnoxious project management tool
<FromGitter> <tenebrousedge> no, I'm sure it works fine for some people
<FromGitter> <ImAHopelessDev_gitlab> yeah, github issues prob take care of that
chachasmooth has quit [Ping timeout: 265 seconds]
chachasmooth has joined #crystal-lang
<FromGitter> <ImAHopelessDev_gitlab> @waj nice find, sefault :O
chachasmooth has quit [Ping timeout: 265 seconds]
chachasmooth has joined #crystal-lang
<FromGitter> <watzon> Exciting stuff
<FromGitter> <watzon> Got Tourmaline added here
<FromGitter> <ImAHopelessDev_gitlab> noiced
_ht has joined #crystal-lang
ur5us has joined #crystal-lang
<FromGitter> <Acciaiodigitale> @oprypin If you followed my forum thread you can see I only do a propose (plattform indipendent and not in Slack direction) but after two comments someone already takes some initiative and probably in the direction that majority likes. It is not probably the best solution in absoute, but goes in the right direction. ⏎ You use IRC. How many millenials do you think are willing to use IRC as a platform?
<FromGitter> ... You have to think in plural terms of a community if you wanna see Crystal grows.
<oprypin> @Acciaiodigitale: i don't know what you're trying to say by millennials but i'm that and we have many younger people
<oprypin> others will use gitter no problem
<FromGitter> <Acciaiodigitale> You think what likes yourself and no other @oprypin
<oprypin> @Acciaiodigitale: i don't see your data backing up the claim that people would not use Crystal (or was it just about not interacting with the community?) because they don't like the chat option
<FromGitter> <Acciaiodigitale> I never say that: I say that language where is present a common point to link the arguments related to the language (and projects) have flourishing community (and meetups and so on) ⏎ I don't take you any number: go and see yourselves, I took the examples.
<oprypin> anyway the larger point is that this discussion happens not so rarely and always just ends up with a tiny part of the community splitting into yet another new chat
<FromGitter> <Acciaiodigitale> I'm not talking about plattform
<oprypin> @Acciaiodigitale: i mean I'm not gonna look at any of the corporate backed ones, it's just well advertised
<oprypin> that doesn't leave you with much
<FromGitter> <Acciaiodigitale> @oprypin every time I read a chat from you I read: "I". This is why our discussion is going nowhere.
<oprypin> that's all i can do to respond to a claim without data. add at least one data point
<FromGitter> <Acciaiodigitale> Can I copy and paste the previouse response now?
ur5us has quit [Ping timeout: 260 seconds]
HumanGeek has joined #crystal-lang
Human_G33k has quit [Ping timeout: 250 seconds]
<oprypin> whats a good way to write 2 specs that are, say, 10 and 11 lines each, and the only difference between them is one is missing 1 line of code? i could start with {%for and {%if but hmm
ur5us has joined #crystal-lang
<oprypin> well thats a new one. never would've expected `File.chmod(path, 0)` to cause OverflowError :D (this is windows)
<oprypin> aha it's just the constant `DWORD.new(-1)` being used :D instant overflow
kz82 has joined #crystal-lang
<kz82> ret = Hash(String, String | Array(Hash(String, String))).new
<kz82> ret["client_list"] << [{"d" => "d"}, {"g" => "g"}]
<kz82> how to add ?
<FromGitter> <spTorin> `ret["client_list"] = [{"d" => "d"}, {"g" => "g"}]`
<oprypin> kz82, seems like a misuse of Hash
<kz82> now to add to client_list array new hash ?
deavmi has quit [Quit: Eish! Load shedding.]
deavmi has joined #crystal-lang
ur5us has quit [Ping timeout: 260 seconds]
<oprypin> kz82, `ret["client_list"] << {"d" => "d"}`
<oprypin> kz82, `ret["client_list"].as(Hash) << {"d" => "d"}`
<kz82> ret["client_list"] << {"d" => "d"}
<kz82> Error: undefined method '<<' for String (compile-time type is (Array(Hash(String, String)) | String))
<oprypin> yea thats why i immediately provided the solution to that in my next message
<kz82> ret["client_list"].as(Hash) << {"d" => "d"}
<kz82> Error: can't cast (Array(Hash(String, String)) | String) to Hash(K, V)
<kz82> ret = Hash(String, String | Array(Hash(String, String))).new
<kz82> ret["client_list"] = [] of Hash(String, String)
<kz82> ret["client_list"].as(Array) << {"f" => "f"}
<kz82> ret["client_list"].as(Array) << {"d" => "d"}
<kz82> that works
<kz82> oprypin, thanks
kz82 has quit [Quit: Leaving]
<oprypin> oh yea, sorry
<Stephie> oprypin, I think the PID.new cast should probably be done inside Crystal::System
<Stephie> but thats just nitpicking
travis-ci has joined #crystal-lang
<travis-ci> crystal-lang/crystal#4be4e69 (master - Compiler: create Unless AST correctly instead of swapping If (#9024)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/673370745
travis-ci has left #crystal-lang [#crystal-lang]
<oprypin> Stephie, no, that doesn't play nicely with my implementation plan
<Stephie> how does it make a difference?
<oprypin> Stephie, well for one, Crystal::System::Process cannot rely on anything that is in Process
<Stephie> oh
<oprypin> so instead i chose to let it always deal with the native os pid type
<Stephie> mmh
<Stephie> so far, the `Crystal::System` stuff has *always* returned the same type
<oprypin> oh damn 😅
<Stephie> it's always had an identical type interface between platforms
<Stephie> it's kinda weird to mess that up to me
<Stephie> but i'm not *super* opposed if it's not feasible to change
<Stephie> i'd be fine with just like
<Stephie> alias Process::PID = Int64 just moved before the crystal/system/process require
<Stephie> lol
<oprypin> Stephie, the sufficient rule that i follow is that if one method returns A or B depending on system then other methods will accept A or B with 100% correspondence
<Stephie> yeah
<Stephie> hmm
<Stephie> one way to do it is to define `Crystal::System::Process::PID` inside `src/crystal/system/process.cr`
<Stephie> and reexport it
<Stephie> wow, that sucks
<Stephie> humm
<oprypin> so u can shoot it down but with good arguments pls
<Stephie> nah i dont hate this
<Stephie> carry on
<Stephie> as long as its not exposed to the user who cares
<Stephie> it's just
<Stephie> a little ugly
<oprypin> i'll link this conversation in the PR
<FromGitter> <ImAHopelessDev_gitlab> hello
<Stephie> coming up with example code is hard...
<oprypin> oof i just wrote `git resolve --mark`
<Stephie> what?
<oprypin> because `hg resolve --mark` is a thing
travis-ci has joined #crystal-lang
<travis-ci> crystal-lang/crystal#16eef48 (master - Parser: correctly parse `foo:"bar"` inside call or named tuple (#9033)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/673380628
travis-ci has left #crystal-lang [#crystal-lang]
<Stephie> oh
<Stephie> i never did mercurial
yxhuvud has quit [Remote host closed the connection]
hightower2 has joined #crystal-lang
<Stephie> why does windows have to be so difficult
<Stephie> why does it have to be so *different*
<Stephie> oprypin, look at what go does
<Stephie> they always quote the args
<FromGitter> <tenebrousedge> because Microsoft has actively worked against interop for decades
<Stephie> and then they provide an override
<Stephie> you can use
<Stephie> to manually override the quoting
<oprypin> Stephie, wait what? go doesnt have shell: true basically
<Stephie> yeah
<Stephie> but shell: true shouldnt mean what you say
<Stephie> idk what to do with windows
<oprypin> Stephie, i dont care about `shell: true` directly but the operator ` and system()
<Stephie> yeah
<Stephie> well
<Stephie> maybe it makes sense
<Stephie> it doesnt feel nice to me
<oprypin> maybe cmd /C will work, i have no idea
<Stephie> and im too tired to think today
<Stephie> i didnt get a good night sleep
<oprypin> haha neither did i
<Stephie> too hot
<Stephie> god damn summer already
<FromGitter> <deiv> Hi ! Any idea why this spec is failing ?
<FromGitter> <deiv> 1) HTTP::Cookie::Parser expired? by max-age=0 ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e9079ded021c45cc7d8ced3]
<FromGitter> <deiv> is the unique one with 0.34.0
<FromGitter> <Blacksmoke16> dont you need a date or something in there?
<FromGitter> <tenebrousedge> @Blacksmoke16 doubtful
<FromGitter> <Blacksmoke16> hm
<FromGitter> <tenebrousedge> I wonder how it's determining the time though
<FromGitter> <naqvis> either use `max-age` or `expires` property to set the expiry for cookie
<FromGitter> <tenebrousedge> @naqvis they're getting a failing test running crystal's tests
<FromGitter> <naqvis> thanks @tenebrousedge ,yeah saw that, but was trying to dig into code to see what could be the cause. Also did a quick test on 0.34.0 and its returning correct value ⏎ ⏎ ```HTTP::Cookie::Parser.parse_set_cookie("bla=1; max-age=0").try &.expired? # => true``` [https://gitter.im/crystal-lang/crystal?at=5e907e9cd021c45cc7d8dbdb]
<FromGitter> <tenebrousedge> well, either `Time.utc` isn't returning the correct value on their system, or `expires` is being set to something wonky
<FromGitter> <tenebrousedge> I wonder if somehow `to_i64` is wrapping
<FromGitter> <naqvis> that won't, or else it would have thrown overflow exception
<oprypin> +
<Stephie> cause it's the command
<Stephie> and it's just better to always quote that
<Stephie> for Reasons
<Stephie> idk
<Stephie> if you dont understand it dont copy it
<Stephie> then wait for the bug reports
<Stephie> then you'll understand it
<oprypin> python doesnt have it
<oprypin> Stephie, no pls
<Stephie> lol
<Stephie> does python handle the command like this too?
<Stephie> like, command_args is command + args
<oprypin> Stephie, it handles the command like this, to the point i thought u rewrote directly from python code
<Stephie> no
<oprypin> Stephie, python doesnt even have command in the first place, its always args[0]
<Stephie> oh
<Stephie> idk where i copied this from
<Stephie> i think some stackexchange
<Stephie> or i made it up
<Stephie> its been YEARS
<Stephie> im guessing
<FromGitter> <stronny> @oprypin hey
<oprypin> i think i'll drop `first_arg ||`
blassin has joined #crystal-lang
<oprypin> hi
<blassin> yelo
<FromGitter> <stronny> wanna discuss the signal thing here?
<FromGitter> <Blacksmoke16> @repo https://github.com/athena-framework/athena/compare/io-block-responses-calback?expand=1 this branch is in a working state if you wanted to try it out. just needs tests so prob merge this weekend
<oprypin> stronny, only if conforming to "policy that code that compiles on one platform will always compile on another."
<FromGitter> <stronny> okay, so ifdef will compile fine in both cases, why is that a problem?
<oprypin> it's about user code
<FromGitter> <Blacksmoke16> repo: I guess @ mentions work the same :p @repomaa
<oprypin> stronny, oh and i guess we're not allowed to require the user to ifdef either
<FromGitter> <stronny> I guess the whole windows thing is gonna be a huge fiasco in the end
<oprypin> could be
blassin has quit [Quit: The Lounge - https://thelounge.chat]
<oprypin> python ended up ok
alexherbo2 has joined #crystal-lang
<FromGitter> <stronny> python is interpreted
blassin has joined #crystal-lang
<FromGitter> <stronny> and ok may mean different things, and I dislike python
<FromGitter> <stronny> you can't write portable low level code without ifdefs
blassin has quit [Client Quit]
<oprypin> we're not forbidding ifdefs
<FromGitter> <deiv> @tenebrousedge @naqvis any clue about that cookie spec fail ?
<FromGitter> <stronny> my understanding is if you need a portable program, you either factor in ther differences in conditional blocks or factor out the common code into a lib and write two programs
travis-ci has joined #crystal-lang
travis-ci has left #crystal-lang [#crystal-lang]
<travis-ci> crystal-lang/crystal#f85bdb2 (master - Allow building compiler without 'playground', to avoid dependency on sockets (#9031)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/673438884
<FromGitter> <naqvis> @deiv is that the only test failing? can you re-run that particular test again and see if it behaves differently?
<FromGitter> <deiv> @naqvis yes, the only one... How can I run only this one ?
<FromGitter> <Blacksmoke16> add `focus: true`
<FromGitter> <Blacksmoke16> i.e. like `it "some desc", focus: true`
<FromGitter> <naqvis> `crystal spec spec/std/http/cookie_spec.cr:214`
<FromGitter> <Blacksmoke16> that would work too
ht_ has joined #crystal-lang
_ht has quit [Ping timeout: 265 seconds]
ht_ is now known as _ht
<FromGitter> <deiv> running it alone, works
<FromGitter> <tenebrousedge> huh
<FromGitter> <naqvis> can you double check the line number is correct for that particular case? interesting enough if spec can't find any `it` on provided line, it just reports all good 😆
<FromGitter> <deiv> Im running all on the spec file
<FromGitter> <deiv> but yes, the line is ok
<FromGitter> <deiv> deiv@Sephirot:~/dev-dinamic/debian/pkgs/crystal/crystal-lang$ crystal spec spec/std/http/cookie_spec.cr ⏎ ............................................ ⏎ ⏎ Finished in 2.43 milliseconds ⏎ 44 examples, 0 failures, 0 errors, 0 pending ... [https://gitter.im/crystal-lang/crystal?at=5e9091985b98016d6a28af81]
<FromGitter> <naqvis> are you building crystal from sources?
<FromGitter> <naqvis> curious to know on why you are running stdlib test suite
<FromGitter> <deiv> yep
<FromGitter> <deiv> Im running it, inside a chroot
<FromGitter> <straight-shoota> @deiv did you see https://github.com/crystal-lang/crystal/issues/9039#issuecomment-612070656 ?
<FromGitter> <deiv> @straight-shoota just commented now :)
<FromGitter> <straight-shoota> Does the failing spec fail consitently?
<FromGitter> <deiv> I just building it with this spec disabled for now (laters I will run again)
mps has joined #crystal-lang
olbat[m] has quit [*.net *.split]
olbat[m] has joined #crystal-lang
<mps> anyone know how to make dev package from https://github.com/crystal-lang/crystal-molinillo
<FromGitter> <stronny> dev package?
<mps> package for OS distribition
<mps> distribution*
<FromGitter> <stronny> does it build a program or is it a library?
<mps> I want to upgrade shards for Alpine linux, it now need crystal-molinillo
<mps> I build binary executable but have no idea how to make package
<mps> shards now need to access crystal-molinillo sources, iiuc
<FromGitter> <stronny> I still don't understand, sorry. Do you need to package your own binary?
<mps> no, I need to make crystal-molinillo as 'library' and 'include' files for distro
<FromGitter> <stronny> that's not a
<mps> I can build shards fine for my local use
<FromGitter> <stronny> Crystal isn't C, there are no system-wide include files and .so dlls
<mps> I know, but didn't seen how to make package for distro with source files
<FromGitter> <stronny> you vendor all your deps if you insist
<FromGitter> <stronny> or just fix a git commit and don't package sources
<mps> for OS distro?
<mps> no
<FromGitter> <stronny> okay, what distro
<mps> Alpine linux
<FromGitter> <stronny> why do you need to package sources?
<mps> because shards require them to be built
<mps> shards binary I mean
<FromGitter> <stronny> and `shards` will got clone them nicely
<FromGitter> <stronny> why package?
<mps> hmm
<mps> how to get 'shards' command on first place?
<FromGitter> <stronny> it comes standard with crystal binaries
<FromGitter> <stronny> how do you use crystal compiler?
<mps> are you sure
<FromGitter> <stronny> not 100%? but it does for me
<mps> no, shards package is separate
<FromGitter> <stronny> okay
<FromGitter> <stronny> it's a separate repo sure
<FromGitter> <stronny> but crystal .debs have shards along crystal
<mps> it is not built-in in crystal
<mps> in Alpine it is separate package
<FromGitter> <stronny> okay, so what's the problem?
<mps> how to make crystal-molinillo to be distro package
<FromGitter> <stronny> I give up
<mps> np :)
sz0 has quit [Ping timeout: 246 seconds]
<FromGitter> <j8r> mps: why?
<FromGitter> <j8r> nvm I read the above chat, I see
<mps> j8r: Hi, nice to see you again :)
juanfra_ has quit [Ping timeout: 246 seconds]
<mps> shards (binary) now (0.5.0) need crystal-molinillo sources to be built
juanfra_ has joined #crystal-lang
sz0 has joined #crystal-lang
<FromGitter> <j8r> mps: https://github.com/crystal-lang/shards/pull/344 would be required
<mps> I'm thinking of just copying them in alpine apk and put somewhere in system path, maybe /usr/lib/crystal/shards/
<FromGitter> <j8r> have you also updated the Crystal compiler package?!
<mps> yes, 0.34.0
<FromGitter> <j8r> Great :D
<mps> but only on x86_64 :(
<mps> had to disable aarch64, though we tried hard as you know
<FromGitter> <j8r> Yes ;(
<FromGitter> <stronny> I think I understand the problem now
<FromGitter> <stronny> Where does shards package come from?
<FromGitter> <j8r> mps: I'll ping the PR, so you would have just to use the updated Makefile
<FromGitter> <stronny> Just add the dependencies right there
<mps> j8r: ok, thanks
<FromGitter> <j8r> from a commit from master with the change
<oprypin> mps, just consider it part of shards sources?
<mps> oprypin: I did already locally, but I need to make proper distro package
<FromGitter> <stronny> why wouldn't it be proper?
<oprypin> i think arch is gonna do this `source=(shards-$pkgver.tar.gz::https://github.com/crystal-lang/shards/archive/v$pkgver.tar.gz molinillo-$_molinillo_ver.tar.gz::https://github.com/crystal-lang/crystal-molinillo/archive/v$_molinillo_ver.tar.gz)`
<mps> stronny: because then shards have to makedpends on self, which is not allowed for distro
<FromGitter> <stronny> no, that's not what we suggest
<oprypin> mps, i fail to see how it's makedepends
<mps> oprypin: yes, I have similar as this in current testing APKBUILD
<FromGitter> <stronny> you don't use shards to do `shards install` inside shards shard
<oprypin> right
<FromGitter> <stronny> you just clone the dependecies manually
<mps> you need shards to pull and make crystal-molinillo
<oprypin> no
<FromGitter> <stronny> no you don't
<oprypin> shards is just a fancy wget anyway 😂
<mps> true
<mps> sorry, I worded this not understandably
<FromGitter> <stronny> it would be harder if crystal-molinillo itself depended on something, but it's standalone
<mps> but anyway I need shards binary to pull crystal-molinillo
<FromGitter> <stronny> why?
<FromGitter> <stronny> what is it that shards do that you can't do without shards?
<mps> stronny: because crystal-molinillo is not shards source tree
<FromGitter> <j8r> Or just have molinillo, is some way
<mps> j8r: I already create molinillo binary apk
<oprypin> mps, now that's amazing how you create a binary out of a crystal library
<mps> oprypin: ah, thanks for link
<FromGitter> <j8r> mps: with https://github.com/crystal-lang/shards/pull/344 we'll just have to`make lib`
<mps> j8r: that is what I like :)
<FromGitter> <j8r> Ho, just noticed curl is used
<mps> yes
<FromGitter> <grkek> Hello, I wonder how do I call a function with a signature like this ```a(b, c, *, d)```
<FromGitter> <j8r> I'll suggest to fallback to wget to prevent having to install curl too, would be better
<FromGitter> <Blacksmoke16> `a(1, 2, 3, 4,5 d: 6)`
<FromGitter> <grkek> @Blacksmoke16 lovely, thank you !
<FromGitter> <Blacksmoke16> something like that
<mps> curl is fine for me, and for alpine
<FromGitter> <j8r> ok
<oprypin> mps, are downloads as part of the build actually acceptable
<oprypin> arch isnt gonna rely on that auto download i'm sure
<FromGitter> <Blacksmoke16> ```b = 1 ⏎ c = 2 ⏎ *args = 3, 4, 5 (be sure to give that splat arg a name) ⏎ d = 6``` [https://gitter.im/crystal-lang/crystal?at=5e90c01ec52b6a38abd9815e]
<mps> oprypin: it is ok, we download sources during build
<oprypin> Blacksmoke16, no, the star by itself is a different thing
<FromGitter> <Blacksmoke16> if the splat doesnt have a name, those values are essentially lost
<oprypin> no it's a different thing
<oprypin> theres no splat there
<FromGitter> <Blacksmoke16> star means args after have to be named
<oprypin> yea
<mps> though we 'cache' sources, but always checj hash and if they differ download again
<mps> s/checj/check/
<FromGitter> <Blacksmoke16> so without a name on the star, those values are lost, otherwise they get captured in that splat arg
<oprypin> that is incorrect, nothing can be lost, u just cant pass extra values
<oprypin> ```def f(a, b, *, c); end; f(1,2,3,c:4)``` doesnt work
<oprypin> ```f(1,2,c:4)``` works
<FromGitter> <Blacksmoke16> ah good point
<FromGitter> <grkek> Noted
<FromGitter> <neutrinog> Where should I go if I want to get some feedback on a crystal shard I've been working on? I have a 3D rendering engine that I think is stable enough to warrant some outside input https://github.com/neutrinog/prism
<oprypin> forum or here
<FromGitter> <neutrinog> Well then. Consider that a request for comments 😊
<oprypin> neutrinog, is that VSCode or what
<FromGitter> <neutrinog> Vscode
<oprypin> dang
<oprypin> sometimes i wish i wasnt locked into KDE ecosystem 😂
<FromGitter> <neutrinog> Gnome's where it's at 😉
<FromGitter> <kinxer> @neutrinog That looks really cool. I'm definitely going to try it out.
<FromGitter> <asterite> Nice! It works on mac too
<FromGitter> <j8r> It uses OpenGL?
claudiuinberlin has joined #crystal-lang
<claudiuinberlin> hello
<claudiuinberlin> on mac, trying to install crystal
<claudiuinberlin> and i have this now
<claudiuinberlin> ==> cmake -G Unix Makefiles .. -DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra;lld;lldb;openmp;polly -DLLVM_ENABLE_RUNTIMES=compiler-rt;libcxx;libunwind -DLIBOMP_ARCH=x86_64 -DL
<claudiuinberlin> for the last few hours :))
<claudiuinberlin> but i will not cancel now, i invest to much cpu cycles
<oprypin> claudiuinberlin, crystal doesnt have that. is this llvm?
<oprypin> yea it's surely llvm
<claudiuinberlin> 100%
<oprypin> do u have to compiel it yourself?
<claudiuinberlin> i guess
<FromGitter> <Blacksmoke16> you shouldnt
<claudiuinberlin> i hate install xcode, that has 10GB
<claudiuinberlin> any advice?
<claudiuinberlin> will try: xcode-select --install.
<claudiuinberlin> and see after that
<claudiuinberlin> so
<claudiuinberlin> ==> Installing dependencies for crystal: llvm and pcre
<claudiuinberlin> ==> Installing crystal dependency: llvm
<claudiuinberlin> it will download llvm, and start again to compile them
<claudiuinberlin> all good :). sorry to disturb
<claudiuinberlin> time to crystal!
<FromGitter> <Blacksmoke16> yea it should just download the bottle
<claudiuinberlin> my hope, make a lib in crystal -> load it in ruby :D
<FromGitter> <Blacksmoke16> :thinking:
<claudiuinberlin> will that will be nice
<claudiuinberlin> we are a ruby/python/javascript/go scho
<claudiuinberlin> i want to remove go :)
<claudiuinberlin> i dislike it
travis-ci has joined #crystal-lang
travis-ci has left #crystal-lang [#crystal-lang]
<travis-ci> crystal-lang/crystal#41f366c (master - Add `Regex#matches?` and `String#matches?` (#8989)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/673574560
claudiuinberlin has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
yxhuvud has joined #crystal-lang
_ht has quit [Quit: _ht]
<sorcus> neutrinog: Looks really cool ;-)
<FromGitter> <tenebrousedge> fuck yes
<FromGitter> <tenebrousedge> I've been wanting `match?` for so long
<sorcus> tenebrousedge: :-D
<FromGitter> <watzon> Hmm this new Log module doesn't work quite as expected
<sorcus> watzon: Why?
<FromGitter> <watzon> The only way I get output is if I use `Log.setup_from_env` and explicitly set a log level, even though the default level is `Info` and that's what I'm logging to. Also even if I do that, it fails to work if I try doing `Log.for("something").info`
<sorcus> watzon: Maybe this is a bug? X-)
<FromGitter> <watzon> Maybe
<FromGitter> <watzon> It's new so I don't expect it to be perfect, but it would be nice if it at least kind of worked
<FromGitter> <Blacksmoke16> how are you using it exactly?
<FromGitter> <Blacksmoke16> ```require "log" ⏎ ⏎ Log.setup_from_env ⏎ ⏎ Log.info { "Program started" }``` [https://gitter.im/crystal-lang/crystal?at=5e90e2e8f450c25cc8d098fc]
<FromGitter> <Blacksmoke16> works fine for me
<FromGitter> <watzon> Damn it, carc.in hasn't been updated to support 0.34.0 yet
<FromGitter> <Blacksmoke16> mhm
<sorcus> watzon: :-D
<FromGitter> <watzon> Try running this ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5e90e43efea5216d696f0e10]
<FromGitter> <watzon> From the documentation I feel like that should work
<FromGitter> <Blacksmoke16> hmm
<FromGitter> <watzon> Guess I'll make an issue
<sorcus> watzon: This print only `bar`.
<FromGitter> <watzon> Yes I know
<FromGitter> <watzon> That's the issue
<sorcus> Good night :-)
alexherbo2 has quit [Ping timeout: 240 seconds]
<oprypin> how to set stack size of the executable compiled by crystal....... cross-compiled for Windows if that matters
<oprypin> found my answer. `cl.exe /F10000000`
<oprypin> this is done at link time
<oprypin> sooo crystal during compilation knows the target platform. but what about the current platform?
<oprypin> first i was like flag?(:win32) ? `powershell Get-Date -Millisecond 0 -UFormat %s` : `date +%s`
<oprypin> but that broke it even earlier because the target os is win32 even if on linux
<FromGitter> <tenebrousedge> what about it?
<oprypin> cc Stephie,
<Stephie> uhh
<Stephie> fuck
<Stephie> there's no way to tell what the host is is from flags
<oprypin> yea
<Stephie> the compiler knows, but macros dont expose
<oprypin> ok so exposing default_target isn't that difficult i suppose but doing it nicely is another matter
<Stephie> host_flag?
<Stephie> maybe?
<oprypin> oh. yea that doesnt sound so bad
<oprypin> Stephie, oh god will that have to be rolled out across 2 releases