ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.23.1 | 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
<RX14> too many issues opened today
<RX14> i came back after going out for 6h and bam i had over a page of stuff
<RX14> not that thats a bad thing lol
<Papierkorb> Surprising, LLVM doesn't collapse binary AND operations that follow on one another. So `a = x & (~3) & (~4)` turns into two ANDs
<RX14> huh
<RX14> you'd think it'd go
<RX14> (~3) & (~4) lol thats a constant
<RX14> and done
<Papierkorb> That there isn't Crystal code
<Papierkorb> Just to show
<Papierkorb> otoh I can barely make out what the original code was, it's doing a good job none the less
<RX14> yeah i figured it's C Papierkorb
<RX14> even if that's a rare expression valid in both C and crystal
<Papierkorb> It completely 'skips' the code to write the register and jumps straight to writing the constant value lol
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 272 seconds]
aroaminggeek is now known as aroaminggeek[awa
sotrhraven has quit [Quit: sotrhraven]
snsei has joined #crystal-lang
sz0 has quit [Quit: Connection closed for inactivity]
snsei has quit [Ping timeout: 240 seconds]
aroaminggeek[awa is now known as aroaminggeek
sz0 has joined #crystal-lang
reblunk is now known as TIMEBONEZ
ashirase has quit [Ping timeout: 268 seconds]
ashirase has joined #crystal-lang
snsei has joined #crystal-lang
aroaminggeek is now known as aroaminggeek[awa
snsei has quit [Ping timeout: 240 seconds]
aroaminggeek[awa is now known as aroaminggeek
snsei has joined #crystal-lang
aroaminggeek is now known as aroaminggeek[awa
aroaminggeek[awa is now known as aroaminggeek
aroaminggeek is now known as aroaminggeek[awa
aroaminggeek[awa is now known as aroaminggeek
aroaminggeek is now known as aroaminggeek[awa
aroaminggeek[awa is now known as aroaminggeek
aroaminggeek has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
aroaminggeek has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei_ has joined #crystal-lang
snsei has quit [Ping timeout: 265 seconds]
rohitpaulk has joined #crystal-lang
<FromGitter> <jwaldrip> Travis has failing specs on 24.1, is that expected?
snsei_ has quit [Remote host closed the connection]
sz0 has quit [Quit: Connection closed for inactivity]
rohitpaulk has quit [Ping timeout: 264 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 240 seconds]
<FromGitter> <sdogruyol> @jwaldrip travis is broken for that
<FromGitter> <jwaldrip> bummer
p0p0pr37 has joined #crystal-lang
rohitpaulk has joined #crystal-lang
<FromGitter> <bararchy> what's a good way to find every JS in an HTML page?
<FromGitter> <bararchy> I know I can regex `/\<script\>(.*?)\<\/script\>/` but maybe something using HTTP, or XML
<aroaminggeek> @bararchy would Crystalgiri https://github.com/madeindjs/Crystagiri meet that need? Seems like it would -- it's the analog to ruby's nokogiri
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 272 seconds]
<FromGitter> <bararchy> aroaminggeek yeha I used it quite alot, the thing is, it's not that easy to find the scripts in the body, using at_tag will produce all meta tags
<FromGitter> <lukeholder> ducks head... http://jmp.sh/H0Ymb0F
alex`` has joined #crystal-lang
alex`` is now known as alexherbo2
alexherbo2 is now known as alex``
<Yxhuvud> I just found out that stopping with break Enumerable#count doesn't return the count, but rather the argument to break. That surprised me.
<FromGitter> <bararchy> @lukeholder looks good :)
<FromGitter> <lukeholder> thanks @bararchy
<FromGitter> <lukeholder> unsolicited but fun
<alex``> What is the equivalent of Thor from Ruby?
<alex``> I need type for options
<alex``> Hash and Array
<alex``> They are not supported in OptionParser?
<alex``> Use case is to provide a command definition from the command-line
<alex``> bulk edit --commands foo:'foo %{input} %{output}' bar:'bar %{input} %{output}'
<alex``> Thanks !
<alex``> By the way it’s shame that OptionParser enforces GNU option format
<alex``> There is no way to define options like this:
<alex``> my-command -foo 1 -bar 2
flaviodesousa has joined #crystal-lang
<alex``> @lukeholder I don’t found the Hash support in them
aroaminggeek has left #crystal-lang ["Textual IRC Client: www.textualapp.com"]
claudiuinberlin has joined #crystal-lang
mark_66 has joined #crystal-lang
<FromGitter> <sdogruyol> what's the hash support?
<FromGitter> <yxhuvud> alex: Yes, the builtin is very bare bones.
rohitpaulk has quit [Read error: Connection reset by peer]
rohitpaulk has joined #crystal-lang
<FromGitter> <bararchy> @sdogruyol Ever had this issue? https://github.com/crystal-lang/crystal/issues/5407
rohitpaulk has quit [Ping timeout: 264 seconds]
rohitpaulk has joined #crystal-lang
<FromGitter> <sdogruyol> @bararchy nope
<FromGitter> <bararchy> Hm... tracked it down to a faulty Regex https://github.com/crystal-lang/crystal/issues/5407#issuecomment-352681811
<FromGitter> <sdogruyol> yup
<FromGitter> <sdogruyol> I was just looking at the same :P
<FromGitter> <bararchy> FF has no problem parsing this cookie string, meaning it's really a bug and not some wierd issue with Wix :) ⏎ ⏎ I'm playing around with the regex, I'm sure there is a better way to parse it then this huge Regex :/
<FromGitter> <bararchy> I guess this is what Ruby uses or something
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 252 seconds]
A124 has quit [Ping timeout: 240 seconds]
alex`` has quit [Quit: WeeChat 2.0]
alex`` has joined #crystal-lang
A124 has joined #crystal-lang
alex`` has quit [Client Quit]
A124 has quit [Ping timeout: 264 seconds]
A124 has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 240 seconds]
alex`` has joined #crystal-lang
<crystal-gh> [crystal] bararchy opened pull request #5408: Fixed set-cookie regex to allow whitespace (master...master) https://git.io/vbXqU
<FromGitter> <bararchy> @sdogruyol Managed to fix it :)
<FromGitter> <sdogruyol> good job 👍
<FromGitter> <bararchy> Thanks :) I hate HTTP wierd usecases hahah
<FromGitter> <bararchy> let's hope this thing gets into 24
<FromGitter> <sdogruyol> 24?
<FromGitter> <bew> @bararchy not 0.24.1 at any case, maybe 0.24.2!
<FromGitter> <bararchy> also good :)
<FromGitter> <bararchy> I already changed it on my local sources, so not that terrible from my side
snsei has joined #crystal-lang
<FromGitter> <bew> RX14 do you need help with the binaries & packages for 0.24.1?
snsei has quit [Ping timeout: 252 seconds]
yopp has quit [Ping timeout: 240 seconds]
early has quit [Quit: Leaving]
rohitpaulk has joined #crystal-lang
early has joined #crystal-lang
<FromGitter> <sdogruyol> hey everyone, we're on the front page of HN, please upvote :) https://news.ycombinator.com/item?id=15945262
<foxxx0> what default error classes are there in crystal?
<foxxx0> e.g. like in ruby I could do: class GridOutOfBoundsError < StandardError
<foxxx0> thanks :)
rohitpaulk has quit [Ping timeout: 248 seconds]
<RX14> I think this error message should be improved, it doesn't really say anything about what's wrong: https://carc.in/#/r/39cg
<Papierkorb> If the Block was typed, maybe it could tell you that the block result is bogus
<RX14> Papierkorb, it should provide more info than that anyway
<RX14> the function actually does match the last overload shown
<RX14> and then it should tell me that it typed yield as Int32 but it should be UInt32
<Papierkorb> that's what I meant, if the &block was typed it wouldn't. No idea if the compiler does something useful with that error, but it could do so somewhat easily
<RX14> it should give a better error if the block is typed or not
<RX14> that Pointer(UInt32)[]= cannot take a UInt32
<RX14> Int32*
<Papierkorb> Yeah that function does what I meant with typing. The compiler could complain "somewhat easily"
<Papierkorb> Complain with a reasonable/good error message that is
<RX14> at the moment it just seems to pick the first overload in the list which is nowhere even close to compatible with what I wanted and complain about that
<RX14> with no useful information
rohitpaulk has joined #crystal-lang
<crystal-gh> [crystal] straight-shoota opened pull request #5409: Normalize and add error messages for unterminated literals (master...jm-fix-unterminated-literals) https://git.io/vbXga
<foxxx0> i'm failing to understand the =~ operator on Chars: https://play.crystal-lang.org/#/r/39fp
<foxxx0> no matter what i try, the result is always nil
<foxxx0> do i really need to do .to_s first?
<foxxx0> or should i create another Array(Char) containing the allowed chars, and then do: (my_char & ALLOWED_CHARS).any?
<Papierkorb> `{ 'a', 'b', 'c' }.includes?(the_char)`
<foxxx0> so there is no way to use regex on chars?
<Papierkorb> Dunno. Doesn't make much sense to me.
alex`` has quit [Quit: WeeChat 2.0]
<Papierkorb> Why's =~ defined for everything? https://crystal-lang.org/api/0.23.1/Object.html#%3D~%28other%29-instance-method
<FromGitter> <imonmyown> @oprypin couldn't figure out how to fix `make` error on crsfml build: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Could you help, please? [https://gitter.im/crystal-lang/crystal?at=5a391139c65707ba2b6e6611]
<Papierkorb> foxxx0: `('a'..'z').includes?(foo)` should also do if you're actually trying to do a range match
<foxxx0> well the actual regex is: /[a-zA-Z\-\|\+]+/
<FromGitter> <imonmyown> @oprypin seems like again an artifact from the previous installation probably...
<Papierkorb> That trailing + doesn't make sense. It's a single Char.
<foxxx0> so i guess i'll just concat some ('a'..'z') << ('A'..'Z') stuff together
<Papierkorb> foxxx0: If you're trying to match a string, why are you working with chars?
<foxxx0> []+ denotes that it should have at least 1 match within [] while []* can also be empty
<foxxx0> at least that is my regex understanding
<Papierkorb> [] denotes exactly one, which is the only thing that would make sense in the case of a Char, if Regex would make sense for Char
<Papierkorb> There is no empty char either
<Papierkorb> foxxx0: It still looks like you're actually trying to match a sequence. Why not use a String?
<foxxx0> i'm not, it is chars
<Papierkorb> Why is it 'chars'?
<FromGitter> <imonmyown> @foxxx0 is there a simple way to describe what you're trying to accomplish?
<foxxx0> i want so see if the char matches a certain expression
<foxxx0> i'm now using a lookup array
<foxxx0> with whitelisted/allowed chars inside
<FromGitter> <imonmyown> under expression you mean a number of chars or what?
<FromGitter> <imonmyown> so you want to check if a certain char is in a given list of chars?
<RX14> foxxx0, so you want to check if every character in the string is in a set?
<foxxx0> no, i want to check a single char
<foxxx0> and based on what that char is, i want to do $stuff
<RX14> just use case then
<RX14> case char; when 'a'..'z'; do x; when '+'; do y; end
<foxxx0> yeah
alex`` has joined #crystal-lang
alex`` is now known as alexherbo2
alexherbo2 is now known as alex``
<crystal-gh> [crystal] RX14 pushed 1 new commit to master: https://git.io/vbXKA
<crystal-gh> crystal/master 993916a Johannes Müller: Normalize and add error messages for unterminated literals (#5409)
<travis-ci> crystal-lang/crystal#993916a (master - Normalize and add error messages for unterminated literals (#5409)): The build is still failing. https://travis-ci.org/crystal-lang/crystal/builds/318643976
<DeBot_> https://github.com/crystal-lang/crystal/pull/5409 (Normalize and add error messages for unterminated literals)
flaviodesousa has quit [Ping timeout: 272 seconds]
Guest84787 has quit [Quit: Leaving]
hightower2 has joined #crystal-lang
hightower2 has quit [Changing host]
hightower2 has joined #crystal-lang
sotrhraven has joined #crystal-lang
<FromGitter> <yxhuvud> papierkorb: =~ behaves like that because ruby. See also https://bugs.ruby-lang.org/issues/13312 that will be inlcuded in 2.5
<Papierkorb> Yeah i saw that, awful change
<Papierkorb> We should get rid of that rubyism. `[foo] =~ /bar/` doesn't make any sense at all
<FromGitter> <yxhuvud> I sortof agree, though there are other cases where a more permissive comparison is nice to have, like for === and ==.
<Papierkorb> #== makes sense, `1 == "1"` should work. Same for threequals. But =~ is pretty specific to regex, and so only makes sense when called on regex-matchable things
<Papierkorb> (should work in the sense that it compiles, even if it's a falsy no-op like in the sample)
<FromGitter> <bew> RX14: about https://github.com/crystal-lang/crystal/pull/5409#issuecomment-352797755 I agree, but looking at the code, if the Spec runner exited with 1, whenever the at_exit raise or not should not change the resulting status code
<RX14> look at how the spec runner gets called in the first place
<RX14> hint: it's an at_exit handler
<FromGitter> <bew> ah lol ok
<FromGitter> <bew> didn't thought about that x)
<RX14> spec registers an at_exit handler, the whole program runs normally, each it function call executes the block and pushes the results to a global array
<RX14> the at_exit handler gathers those results and reports on them
<FromGitter> <bew> oh ok, makes sense
<RX14> and if any failed we exit 1
<FromGitter> <bew> from the at_exit handler? weird no?
<RX14> no
<RX14> well how else would you do it?
<FromGitter> <bew> maybe we should add a way for an at_exit handler to change the final status code? (if it's still 0)
<Papierkorb> bew, Someone has a finish-the-job function. Without at_exit (Which does feel weird), you'd have to do that yourself at the correct time
<Papierkorb> *has to call
<Papierkorb> You should be able to call #exit!(new_error), but that could be dangerous.
hightower3 has joined #crystal-lang
hightower2 has quit [Ping timeout: 260 seconds]
<crystal-gh> [crystal] straight-shoota opened pull request #5410: Fixup #5409: Add missing lexer specs (master...jm-fix-unterminated-literals) https://git.io/vbXd4
<FromGitter> <bew> yeah I looked at the code, and remembered the specs are actual code, I understand the problem now... But with a way to change the status code it should work? (maybe change `exit` so it can detect when it's called in a at_exit, and allow to just continue the other handlers but with the status code updated
<RX14> the worst thing about adding windows support is needing to use windows
<FromGitter> <sdogruyol> where's txe?
<RX14> i don't know
<FromGitter> <sdogruyol> he just popped out of nowhere and left in an instant
<Papierkorb> Though running Crystal/Qt on Windows will be pretty neat
<FromGitter> <sdogruyol> weird
<RX14> yup Papierkorb
<RX14> Papierkorb, did you ever do the libevent work?
<Papierkorb> RX14: Never had the time for it
<RX14> :(
<Papierkorb> Last month I barely wanted to do anything (the Switch didn't help), and right now I'm working on my bachelor thesis project so I have less to do when it actually starts lul
<FromGitter> <sdogruyol> I'm too afraid to boot into my windows partition
aroaminggeek has joined #crystal-lang
<FromGitter> <sdogruyol> don't want to lose my whole day on damn updates...
<Papierkorb> RX14: There's code on github by someone who did the integration in C++. But I'd prefer an implementation in Crystal. It could be ported probably, with some trickery we might get the Qt tests for it running for verification. I tried it once what would be needed, but a MVP snippet went nuts. So ..
aroaminggeek has left #crystal-lang [#crystal-lang]
<Papierkorb> sdogruyol, put it into a VM
<RX14> yeah lol you need a VM
<FromGitter> <sdogruyol> I don't have that much free RAM..
<RX14> or at least wsl
<Papierkorb> No partition mess, and Windows is the slave it should be
<RX14> heh, yeah 16gb ram is required
<FromGitter> <sdogruyol> have to admit that 8GB is barely enough for doing modern web development..which is crazy
<Papierkorb> Yup
<RX14> well I typically stay under 4gb idle
<RX14> which is fairly good
<Papierkorb> sdogruyol, that must be the "Ah it won't be too inefficient, just don't bother" we always hear about
<Papierkorb> Let's see. 4,8GiB. Atom consumes too much RAM for what it does. Chromium is fine, never got what people do to make their browser consume tens of gigs of ram
<RX14> well Papierkorb all_spec.cr takes 8GiB to compile
<RX14> Papierkorb, more than 5 tabs with more thna 5 extensions
<FromGitter> <sdogruyol> it all adds up..you won't notice until you get a frozen OS :P
<RX14> frozen?
<FromGitter> <sdogruyol> unresponsive*
<RX14> yes
<RX14> i guess you have swap?
<FromGitter> <sdogruyol> last night, I tried to compile Crystal and it actually froze lol
<FromGitter> <sdogruyol> even though I have 4GBs of swap, it did not work at all
<Papierkorb> 30-ish tabs, simple addons, 1GiB. Acceptable
<RX14> swap is generally a bad idea I find
<RX14> Papierkorb, is that 1GiB for every chromium process summed?
<Papierkorb> RX14: Though right now I'm on my notebook. I won't compile Crystal on this thing anyway, too slow for that
<RX14> that's crazy
<Papierkorb> RX14: That's a summed estimation from chromes task manager
<Papierkorb> Sadly it doesn't show a total
<RX14> yeah well firefox says the same for me
<FromGitter> <sdogruyol> wish Firefox quantum actually worked lol
<Papierkorb> Quantum has a weird bug in their layout engine
<FromGitter> <sdogruyol> it's fast but everything is practically broken..
<Papierkorb> Surprisingly enough Github consumes about 50M a tab, while Reddit takes tripple. I don't even want to know.
<FromGitter> <sdogruyol> how about Gitter :P
<RX14> I reckon more like 2GiB
<RX14> based off htop
<RX14> instead of firefox's 1GiB
<RX14> what salvor
<RX14> oops
<RX14> what @sdogruyol
<Papierkorb> RX14: you can't just sum RES as it should contain the COWed memory
<RX14> firefox quantum was seamless to me
<FromGitter> <sdogruyol> I was responding to papierkorb
<RX14> I never saw a single regression for layout compred to previous
<FromGitter> <sdogruyol> Gitter consumes more than all of those lol
<RX14> Papierkorb, no i didn't do that
<Papierkorb> I'm missing tons of QoL addons with Quantum. It's a joke. Can't even scroll on the tab bar to change the current tab. How can people do without?
<Yxhuvud> and lets not talk about how much slack uses.
<RX14> I took used memory reported by the kernel and subtracted everything not firefox
<RX14> Papierkorb, I fixed that
<FromGitter> <bew> @sdogruyol slack is worse, about 160M ><
<RX14> it's a small patch to firefox
<RX14> and then 1h40 of recompiling firefox
<RX14> it's pain but it works
<Papierkorb> Yeah no, I was eyeing Vivaldi anyway
<Papierkorb> Opera12 best browser
<RX14> everything else is pretty much fine
<RX14> I thought i'd hate it more but no tab scroll is the only thing i'm really missing
<FromGitter> <bew> @Papierkorb I use vivaldi since Quantum broke my plugins, it's great ;)
<Papierkorb> I'm also missing the SuperStart addon
<RX14> it's strictly better than chrome anyway since you can install chrome plugins into firefox now
<RX14> isn't vivaldi closed source?
<Papierkorb> Though I'm using Chrome on my notebook cause it gets me more battery life (measured before quantum though), and runs faster. I have more RAM than CPU resources on this machine, so yeah
<Papierkorb> RX14: It sadly is, as Opera was
<FromGitter> <sdogruyol> are we getting a release before Christmas :/
<FromGitter> <bew> RX14 kind of, but it's just JS and you can find them somewhere in the FS
<RX14> no
<RX14> thats not good enough
<Papierkorb> Opera was so good that I didn't even care much tbh, it was simply superior in functionality
<Papierkorb> Without loading hacky addons that never really played ball with one another
<Papierkorb> bew, that's not (F)OSS :P
<FromGitter> <sdogruyol> @RX14 great https://news.ycombinator.com/item?id=15961436
<RX14> honestly firefox quantum isn't that bad and you can always stick on 56 until stuff is fixed
<RX14> the tab scroll patch comes from a mozilla employee
<RX14> so I have hopes for it making it into master soon enough
<Papierkorb> But FF is currently messing up a LOT
<Papierkorb> Cliqz disaster, and just last week, their MrRobot advertisment junk
<Papierkorb> So while it's OSS, that behaviour is simply not acceptable
<RX14> @sdogruyol tell manas that!
<Yxhuvud> I have treestyle tabs working properly in FF 57.0, that is enough for me!
<RX14> Papierkorb, it's unfortunate that mozilla is doing this
rohitpaulk has quit [Ping timeout: 272 seconds]
<RX14> but did you see that that mr robot addon was open source and it didn't do anything until you edited about:config
<RX14> it's still dumb but at least it wasn't actually dangerous
<Papierkorb> RX14: the actual issue was that it was pushed like this at all
<RX14> true
<Papierkorb> If they had a button "Hey wanna emerge in MrRobot" on their new new-tab site, that would've been fine
<Yxhuvud> sigh, I wish github had a 'view all commits in one page', with the first commit with message and diff at the top, then the second commit etc.
<FromGitter> <bew> true, you can still view them one by one, and goto next/previous with the buttons at the top right
<Yxhuvud> If that use the same order as the commit-list ordering, then it is often totally different compared to the eventual order in the history. It would also be really nice to be able to comment on the commit message..
<Yxhuvud> oh well. </rant>
<Papierkorb> I wish you could view just 'theirs', but on a function/context basis, not the whole file
<FromGitter> <bew> I have a fix for the at_exit handlers, and the changing status code, I make a PR later today so we can discuss this
<FromGitter> <bew> I'll*
rohitpaulk has joined #crystal-lang
mark_66 has quit [Remote host closed the connection]
<FromGitter> <jwaldrip> RX14: Great job on comments here... https://news.ycombinator.com/item?id=15945262
<FromGitter> <jwaldrip> but I think the community is right, if we don't see a change in how the project is managed... crystal will die.
<FromGitter> <jwaldrip> people have clearly also been pulling their money from bounty source too...
<FromGitter> <jwaldrip> Not a good sign
<FromGitter> <jwaldrip> How can we get manas to shift things in the right direction? Or can we simply advocate to externalize the core team from manas and get corporate hands out of the way.
<FromGitter> <sdogruyol> We're try to change that
<FromGitter> <sdogruyol> Hopefully 2018 will be awesome!
<FromGitter> <jwaldrip> What can I do to help?
<FromGitter> <jwaldrip> Rather what can the community do to help?
<Papierkorb> To help, the other party must want the help
<FromGitter> <jwaldrip> manas?
<Papierkorb> In this case, yes
<FromGitter> <jwaldrip> Can we fly down to argentina and knock on their door?
<Papierkorb> Technically, yes
<FromGitter> <imonmyown> Yeah manas kinda seems disconnected from the communication
<FromGitter> <imonmyown> Can we get some of their presence in IRC/Gitter?
<FromGitter> <jwaldrip> Has anyone talked to anyone from manas directly recently?
<oprypin> RX14 probably
<FromGitter> <jwaldrip> Chris? Have you talked to anyone over there?
<RX14> yes
<FromGitter> <jwaldrip> What is your perspective?
<FromGitter> <sdogruyol> I did too
<RX14> we got an internal slack recently
<RX14> so there's a lot more communication in the core team
<oprypin> whats the point of the secrecy btw?
<RX14> @jwaldrip that HN comment *is* my perspective
<FromGitter> <jwaldrip> > The consensus in this thread is that Crystal has lost a lot of steam recently and little is being done. In fact, it's been nearly 6 months since the last release. As a member of the core team, I'll be honest: this is correct. ⏎ Manas, Crystal's main commercial backer has had a very tough year and has been unable to donate as much manpower to the project as previous years. The non-manas members of the core
<FromGitter> ... team have had difficulty finding time too. This has been a low point in the project, but it's very possible that 2018 will be a different story. Development is picking up right now, extremely basic windows support is just a few days from being merged into master, and the 0.24.1 release is imminent. There will be a blog post ... [https://gitter.im/crystal-lang/crystal?at=5a394e1f0163b02810572090]
<FromGitter> <sdogruyol> There's a blog post incoming, tldr is that Manas didn't have a great year and that reflected to Crystal
<Papierkorb> Honestly, IMHO for a v1.0 multi threading isn't that important, stable windows support would be great for marketing, and then a dedicated effort to get it multi-threaded nicely for a 1.5 or 2.0
sotrhraven has quit [Quit: sotrhraven]
<RX14> Papierkorb, perhaps but the impression is that it's neccesary
<Papierkorb> Well "for marketing" sounds a bit off. It's a selling point to many.
<FromGitter> <imonmyown> Well I hope to see things change for the better both for manas and the community. And for crystal of course.
<FromGitter> <sdogruyol> Because it's stated before to be a major goal for 1.0
<Papierkorb> RX14: It is necessary, but my point was that doing multi-threading and getting the API right (sharing resources) is really complex
<RX14> yes
<RX14> and the API is why we need to do it before 1.0
<Papierkorb> With emphasis on the API
<oprypin> RX14, wouldn't it be better for people to see the communication? what's happening in that slack that needs hiding?
<FromGitter> <marksiemers> My feeling is that Manas *wants* to continue supporting and even be better at communicating, but they just can't right now. ⏎ This came from an e-mail I got from one of their members on November 17th: ⏎ ⏎ > Thanks for reaching out and for the offer to help! ⏎ > Yes, it is true that we won’t release 1.0 at the end of the day. That commitment last year was made too lightly without looking at the
<FromGitter> ... hard numbers (hours and $), we learned the lesson. ... [https://gitter.im/crystal-lang/crystal?at=5a394efc1a4e6c82232b0d20]
ashirase has quit [Ping timeout: 272 seconds]
<Papierkorb> oprypin: Probably intern chatter that may simply not be polished (as not intended) for public consumption
<oprypin> eh the beans are kinda spilled at this point
ashirase has joined #crystal-lang
<RX14> oprypin, its not really so much about secrecy per se
<RX14> it's more about confortability
<RX14> comfortability*
<oprypin> still not a word, probably
<oprypin> oh it is
<Papierkorb> Yeah it's like your boss is looking above your shoulder all the time, except it's not your boss, it's every random person on eartth
<RX14> smaller groups and smaller chatrooms mean we can all be a bit freer
<RX14> even if that wasnt the case
<RX14> the manas people simply don't pop by this place often
<RX14> and the slack channel is in the manastech slack server
<RX14> which they are obviously monitoring as part of their job
<oprypin> too bad
<RX14> plus having a dedicated channel for just the administration stuff seperates it from the normal noise
<RX14> i wouldn't mind opening the channel logs up to the public
<RX14> but thats for everyone to agree on
<oprypin> that's just weird
<RX14> what is?
<oprypin> if logs are real time, at least, then the separate channel is basically pointless
<FromGitter> <imonmyown> how about someone briefs us on what is discussed and the final decisions if disclosure of the full log is not appropriate?
<oprypin> thats kinda what is happening this very moment
<FromGitter> <imonmyown> @oprypin yeah but only after we asked for it
<FromGitter> <imonmyown> I mean something on a regular basis
<RX14> oprypin, no it's not since a) it's readonly and b) it's got much less traffic than gitter
<FromGitter> <imonmyown> @oprypin, btw I asked you a question above on crsfml, can you take a look, please?
<RX14> oprypin, the reality was there wasn't communication happening before this channel and now there is, perhaps we could do better but i'll take what I can get
<FromGitter> <marksiemers> @RX14 - It seems like parallelism is both the toughest challenge and the biggest feature to get to 1.0 ⏎ Is there anyone in the greater FOSS community to reach out to that has expertise in that?
<oprypin> imonmyown, what else can i tell you if it says a file from sfml is missing
<FromGitter> <sdogruyol> Actually this slack channel just started to be alive
<RX14> as in since I joined @sdogruyol
<FromGitter> <sdogruyol> I've been there for a long time and it's great to see some real conversations going on
<RX14> well before it was just you and manas, now it's you and the whole core team
<FromGitter> <sdogruyol> Yeah I mean it even started for a whole different purpose, but hey we are just starting out! It's going to be awesome I think
<FromGitter> <marksiemers> @RX14 - At least as far as gitter/irc goes, you definitely seem to be the "face" of the language, at least the last few months.
<RX14> yeah because i'm unemployed and have all this free time to complain about crystal in
<FromGitter> <marksiemers> I'm assuming that's by choice
<RX14> i'm a student in uni
<RX14> so yes I guess
<FromGitter> <sdogruyol> It's great to have @RX14 around :)
<oprypin> sigh
<FromGitter> <sdogruyol> Just to make it clear
<FromGitter> <sdogruyol> I'm really hopeful about 2018, we're gonna have at least 2 books on Crystal. much more communication between the core team and community. And more sustainable development pace
<oprypin> uh huh
<FromGitter> <bew> \o/
<FromGitter> <imonmyown> well let's all hope for the better :)
<FromGitter> <marksiemers> Is Manas afraid to add more people to the core team and lose some control over the direction of the project, or are there not enough people looking to contribute significantly?
<oprypin> maybe people are looking to contribute but not actually doing it :p
<oprypin> thats really what matters
<RX14> i mean the core team isn't small
<RX14> there's loads of people on the manas side
<RX14> it's just that they're all busy
<RX14> and jhass is largely busy
<RX14> and ysbaddaden is nearly as busy
<FromGitter> <imonmyown> @oprypin I think the problem is to organize it. Rust for instance has some kind of mentoring program for people who want to contribute and have some people assigned to issues that can be fixed by an interested member of the community
<FromGitter> <imonmyown> Not sure crystal's community can self-organize up to that
<oprypin> individual knowledge is what's lacking
<oprypin> and when it's there, time is lacking
<FromGitter> <bew> What does that mean oprypin?
<oprypin> i mean that we dont have many people who can make meaningful changes to compiler internals
<RX14> well makenowjust seems to do fairly well
<RX14> and he's presumably only learned from feedback on PRs and hacking on it
<RX14> I honestly haven't been bothered to venture beyond the parser
<FromGitter> <bew> Next year I'll probably have more time, I'll be in the US for 7 months (in university), I hope to get down in the internals more :)
<RX14> but i'm sure if I really wanted something done I could hack it through - although the knowledge to review patches is mostly with ary and the rest of manas
<oprypin> s/rest of//
<RX14> :(
<FromGitter> <imonmyown> Oh, well, reinstalling sfml did the trick. Have you tried? (https://media.giphy.com/media/F7yLXA5fJ5sLC/giphy.gif)
<RX14> got libgc support working on windows I think
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
<RX14> I just needed to remove the GC.set_handle_fork call on windows lol
<RX14> because it aborts becaise windows doesn't have fork
<RX14> and due to libgc being terrible, it's ABORT() function literally opens a messagebox
<RX14> meaning you need to link in gui code to get it to link...
<Papierkorb> Isn't the gui stuff part of user32.dll or some other random windows standard dll?
<oprypin> sure, probably
<RX14> yup it's user32.dll
<RX14> we typically dont link it though Papierkorb
<RX14> at least not yet
<wmoxam> ~
Ven`` has joined #crystal-lang
<crystal-gh> [crystal] bew opened pull request #5413: Fix exit in at_exit handlers (master...fix-exit-in-at_exit-handlers) https://git.io/vb1OG
<wmoxam> Is anyone looking into the IPv6 spec errors on TravisCI? (ex: https://travis-ci.org/crystal-lang/crystal/jobs/318702154)
<wmoxam> It's because TravisCI does not officially support IPv6 :D
<FromGitter> <marksiemers> For deprecating a method, is this the preferred way to do it? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a39646300d569114bc693e6]
<RX14> thats not deprecating
<RX14> thats removing i guess
<RX14> but typically we don't want to do that
<oprypin> definitely not correct
<RX14> just rip it our
<RX14> just rip it out
<FromGitter> <marksiemers> Right, I was looking for an example of deprecating, for the whole `key` to `key_for` issue.
<RX14> we don't have any examples of deprecating
<RX14> because we don't do it
<FromGitter> <marksiemers> But since it isn't a stable release, maybe deprecation isn't necessary
<FromGitter> <marksiemers> So the question is, when changing a method's name - just remove it, or add this type of `raise` statement?
<RX14> if it's a shard do what you want but I recommend just noting it in the changelog
<RX14> just rename it
<FromGitter> <marksiemers> This change would be to crystal's Hash
<RX14> yes I remember the discussion
<FromGitter> <marksiemers> So just rename it - let the compiler catch when people use the old method?
<FromGitter> <bew> yep
rohitpaulk has quit [Ping timeout: 256 seconds]
claudiuinberlin has joined #crystal-lang
GoldenBear has joined #crystal-lang
<crystal-gh> [crystal] wmoxam opened pull request #5414: Skip IPv6 specs on Travis, adds more IPv4 coverage (master...fix-ipv6-errors-on-travis) https://git.io/vb1sS
<wmoxam> :/
<wmoxam> Blerg I can't get it to pass
ylluminate has joined #crystal-lang
ylluminate has quit [Client Quit]
Ven`` has quit [Read error: Connection reset by peer]
ylluminate has joined #crystal-lang
Ven`` has joined #crystal-lang
danielpclark has quit [Quit: Leaving]
ua has quit [Read error: Connection reset by peer]
<crystal-gh> [crystal] jhass pushed 1 new commit to master: https://git.io/vb1EB
<crystal-gh> crystal/master 449cb77 Johannes Müller: Fixup #5409: Add missing lexer specs
<travis-ci> crystal-lang/crystal#449cb77 (master - Fixup #5409: Add missing lexer specs): The build is still failing. https://travis-ci.org/crystal-lang/crystal/builds/318837781
<DeBot_> https://github.com/crystal-lang/crystal/pull/5409 (Normalize and add error messages for unterminated literals)
<RX14> I think the windows PR is un-WIP
<RX14> which is pretty cool
<Papierkorb> +1
<Papierkorb> Part of 0.24.1?
<RX14> hmm?
<RX14> 0.24.1 is already tagged
<RX14> nothing new will be in it
<RX14> perhaps 0.24.2 or 0.25.0
<FromGitter> <HCLarsen> Does that mean 0.24.1 is ready to be used?
<oprypin> HCLarsen, if you have a good way to install from source, yes
ua has joined #crystal-lang
sz0 has joined #crystal-lang
<FromGitter> <HCLarsen> Ahh, so I couldn't install with apt-get on Linux, or Homebrew on Mac?
<Papierkorb> Will look later or tomorrow if I can find a more powerful machine to compile 0.24.1, and also for a Win10 VM.
<oprypin> i dunno - maybe with brew because it builds from source (does it?)
ilbelkyr has left #crystal-lang [#crystal-lang]
<FromGitter> <HCLarsen> I'm not sure if it does.
<FromGitter> <HCLarsen> Other question, how does one define an empty Hash if they want the value to be Any Type?
<FromGitter> <Fryguy> you can build from head with brew
<FromGitter> <Fryguy> but you can't specify a tag from what I can tell
<FromGitter> <Fryguy> `brew install crystal-lang --HEAD`
<FromGitter> <HCLarsen> Ok, thanks @Fryguy
<FromGitter> <Fryguy> seeing if it will build now FWIW :)
Ven`` has quit [Read error: Connection reset by peer]
Ven`` has joined #crystal-lang
<FromGitter> <Fryguy> ...aaaaand success
<FromGitter> <Fryguy> > crystal -v ⏎ Crystal 449cb77 (2017-12-19)
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
<FromGitter> <HCLarsen> Alright. Time to get Crystal on my Mac then. :D
<FromGitter> <Fryguy> 449cb77 is only a dozen commits or so ahead of 0.24.1
<FromGitter> <foritstep> Hello everyone! I want open new websocket on my localhost.
<FromGitter> <foritstep> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a398e8fa2be466828c091b7]
<FromGitter> <HCLarsen> Now, does anyone have an answer to my Hash question?
<Papierkorb> HCLarsen, "anything" is no type, not possible
<Papierkorb> HCLarsen, what do you need that for?
<Yxhuvud> it should be possible to create really wide types though. Would Value|Reference work? (of course, types that wide tend to be utterly useless, but that is another question :)
<Papierkorb> No
<Papierkorb> Reference could be allowed, as those are all same in size. Value is the problem, as suddenly, your variable (due to the union type) is friggin-huge(tm)
<Yxhuvud> nah, both are disallowed, just tried.
<Papierkorb> They are
<Papierkorb> I meant Reference could be changed to be allowed
<FromGitter> <HCLarsen> What I need it for is a long story
<FromGitter> <HCLarsen> But why is it allowed as an argument type for a method, but not on its own?
<oprypin> HCLarsen, for each argument type a separate method is generated
<oprypin> have you worked with C++?
<Yxhuvud> HCLarsen: What are you actually trying to accomplish?
<FromGitter> <HCLarsen> What?
<Papierkorb> Your use-case
<FromGitter> <HCLarsen> That's not what I said what to.
<FromGitter> <HCLarsen> I said what to oprypin's comment that each argument type generates a separate method.
<FromGitter> <HCLarsen> Are you telling me that my method that takes an argument of `params : Hash(String, _)` actually generates multiple methods with the same code?
<Papierkorb> It instantiate them, yes, of course. For every one used
<Papierkorb> Much like C++ templates, hence oprypin asking if you know C++
<oprypin> if you think about it, the type of a variable is never Any when in a method. methods don't give a damn about types. it's storing the data that's problematic
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<oprypin> nice
<FromGitter> <HCLarsen> Hey gang, can anyone figure out why I'm getting this error? It's proper JSON, so I don't see why it's not parsing.
<Papierkorb> That's not JSON, that's .. ruby Hash#inspect notation?
<Papierkorb> "foo": "bar" is JSON, "foo" => "bar" is Ruby
<Papierkorb> (or Crystal)
<Papierkorb> HCLarsen
<FromGitter> <HCLarsen> That's what the web API gives.
<FromGitter> <HCLarsen> Wait, no. That's what Crystal gave me when I outputted the response from the web API.
<FromGitter> <foritstep> yaml?
<FromGitter> <HCLarsen> So, Crystal will output using =>, but won't accept it?
<Papierkorb> Crystal won't. Check your web frameworks docs on how to make it output JSON
<Papierkorb> That there is neither JSON nor YAML
<FromGitter> <HCLarsen> Well dude, that came from a Crystal puts command. I copied and pasted it into my code.
<Papierkorb> Why do you expect #puts to output JSON?
<Papierkorb> It never has, and it shouldn't.
<FromGitter> <HCLarsen> Why would I expect puts to output a JSON object in JSON format?
<Papierkorb> define "JSON object".
<Papierkorb> Also, please clarify on what you're actually doing.
<FromGitter> <HCLarsen> An object having a Class of JSON::Any.
<FromGitter> <HCLarsen> If puts won't output a JSON::Any object in JSON format, is there another way to do that?
<Papierkorb> Probably calling .. #to_json on it.
<FromGitter> <HCLarsen> Got it.
<FromGitter> <HCLarsen> Thanks.
<FromGitter> <HCLarsen> For the record, what I'm actually doing is trying to grab the output from this web API so that I can reuse it in my testing code.