jhass changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.7.3 | Paste > 3 lines of text to https://gist.github.com | GH: https://github.com/manastech/crystal - Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Logs: http://irclog.whitequark.org/crystal-lang
NeverDie has quit [Max SendQ exceeded]
NeverDie has joined #crystal-lang
NeverDie_ has joined #crystal-lang
NeverDie has quit [Read error: Connection reset by peer]
NeverDie_ is now known as NeverDie
vikaton has quit [Quit: Connection closed for inactivity]
<crystal-gh> [crystal] datanoise closed pull request #757: Improve performance of File#each_line iterator. (master...master) http://git.io/vIlaR
waj has quit [Quit: waj]
datanoise has quit [Ping timeout: 256 seconds]
waj has joined #crystal-lang
waj has quit [Quit: waj]
havenwood has joined #crystal-lang
datanoise has joined #crystal-lang
waj has joined #crystal-lang
datanoise has quit [Ping timeout: 264 seconds]
waj has quit [Quit: waj]
shama has quit [Quit: (╯°□°)╯︵ɐɯɐɥs]
waj has joined #crystal-lang
asterite has joined #crystal-lang
<asterite> jhass: your playground is a success
<asterite> it's now famous in Japan: http://tbpgr.hatenablog.com/entry/2015/06/18/235914 :-)
<asterite> I think there are more articles about Crystal in Japanese than in English right now :-P
waj has quit [Quit: waj]
asterite has quit [Quit: Page closed]
NeverDie has quit [Quit: I'm off to sleep. ZZZzzz…]
datanoise has joined #crystal-lang
daneb has joined #crystal-lang
daneb has quit [Remote host closed the connection]
datanoise has quit [Ping timeout: 276 seconds]
daneb has joined #crystal-lang
daneb has quit [Remote host closed the connection]
BlaXpirit has joined #crystal-lang
bcardiff has joined #crystal-lang
datanoise has joined #crystal-lang
Ven has joined #crystal-lang
havenwood has quit [Ping timeout: 276 seconds]
daneb_ has joined #crystal-lang
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jhass> asterite: hehe, yeah I noticed quite some interest from the japanese
datanoise has quit [Ping timeout: 276 seconds]
Ven has joined #crystal-lang
bcardiff has quit [Quit: Leaving.]
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
daneb_ has quit [Remote host closed the connection]
daneb has joined #crystal-lang
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
<daneb> does Crystal support "for"? I am working with benchmark.cr and I see ruby docs use it as part of the benchmarking
<daneb> I see it's in the lexer_spec.cr but upon use I get an error around terminating character
<BlaXpirit> daneb, uhh i tried many things but looks like for loops don't work
<daneb> BlaXpirit thanks for the confirmation. Will log an issue
<strcmp1> i saw this come up on github recently, youre correct its not possible and thats intentional
<BlaXpirit> daneb, what would the issue say?
<strcmp1> because, there's iteratorzzzzzzzzzz
<BlaXpirit> i hope you don't think this was overlooked
<daneb> BlaXpirit oh...if not overlooked then why is the a lexical keyword for it?
<strcmp1> blast from the past perhaps
<daneb> so you guys don't recommend I report the issue and necessitate a discussion or a really short answer (of it's intentional)?
<daneb> if intentional, it should be removed from lexer?
<BlaXpirit> what does it do in lexer?
<BlaXpirit> just a reserved word, i assume
<BlaXpirit> it being reserved is also intentional
<BlaXpirit> or is there something else?
<daneb> ah! So if ruby supports it, are we making a choice to avoid having to do so because of iterators?
<daneb> thanks for link BlaXpirit
<strcmp1> but open an issue if you think it should be removed :)
<daneb> I think I will just add a comment, thanks for the feedback guys
<daneb> or ladies ;)
<strcmp1> np
<daneb> dammit, it's closed. ok going to open an issue to ask if we are intending to ignore "for" as a design decision. It's going to impact the documentation of stdlib hence the verification needed
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
the_asterite has joined #crystal-lang
havenwood has joined #crystal-lang
<the_asterite> daneb: there is for in macros
<the_asterite> it's intentionally left out outside macros
<daneb> the_asterite: ah! so how would I go about using it then? would I have to write my own macro or is it just a require?
<the_asterite> you can't, there's no for
<the_asterite> use each
<the_asterite> I'll reply later in the issue :)
the_asterite has quit [Quit: qicr for android: faster and better]
jonahR has joined #crystal-lang
waj has joined #crystal-lang
Ven has joined #crystal-lang
NeverDie has joined #crystal-lang
waj has quit [Quit: waj]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 276 seconds]
asterite has joined #crystal-lang
<asterite> jhass: I don't know where did you get the "gives a better visual distinction between the macro language and the code it generates" from, but you are absolutely correct :-P
<jhass> because it's obvious? :P
daneb has quit [Remote host closed the connection]
<asterite> :-P
<asterite> I actually like how "for" looks, pretty clean, but I guess we should keep things simple
daneb has joined #crystal-lang
<asterite> there's also the thing that for in macros feels a bit more dynamic (like macros), where you always can get the index of the iteration, but a regular for wouldn't do that
<jhass> I don't like for :P
asterite has quit [Ping timeout: 246 seconds]
<crystal-gh> [crystal] asterite pushed 1 new commit to master: http://git.io/vLwpW
<crystal-gh> crystal/master 4e60e2e Ary Borenszweig: Say to use double quotes for strings in the "unterminated char literal" error
NeverDie has quit [Quit: I'm off to sleep. ZZZzzz…]
wuehlmaus has quit [Quit: Lost terminal]
<daneb> jhass: I am trying to create a PR for my change to benchmark.cr in gh-pages (documentaiton added). But when I push the commit it's got all the prior commits in it as well instead of just my change?
<jhass> mmh? I don't see any of your commits at all in https://github.com/daneb/crystal/tree/master
<daneb> I will make the PR now...one sec
<daneb> it's there can you check git
<daneb> alternatively if not visible on manastech/crystal then https://github.com/daneb/crystal
<jhass> daneb: oh, you merged gh-pages into master somehow?
<jhass> daneb: gh-pages and master have distinct commit histories, they should never be merged
<jhass> gh-pages contains the generated API docs and gitbook for crystal-lang.org
<jhass> but the API docs are generated from inline docs in the master branch
<daneb> jhass: ah!
<jhass> gh-pages just contains the generation result, don't worry Ary will update it as necessary
<jhass> so it looks like we just need to drop 099e1c4034245c94cf083d884f2912f4f4e999fb from your branch and all is good
<jhass> I'll just throw you a bunch of commands that'll do that if you don't mind
<daneb> jhass: all I did was fork, create branch
<daneb> urrgh....type
<daneb> typo, SURE ;)
<jhass> assuming you're inside your local clone
<daneb> yip
<jhass> git remote add upstream git://github.com/manastech/crystal.git
<jhass> git fetch upstream
<jhass> git branch -m db_benchmark_doc db_benchmark_doc_bak
<jhass> git checkout -b db_benchmark_doc upstream/master
<jhass> git cherry-pick 144790ab9da976c6868dc9a98bbab0202273439a
<jhass> git push -f origin db_benchmark_doc # assuming you did git clone from your fork
<jhass> and then it should be fine
<daneb> *done*
<jhass> looking good
<daneb> awesome jhass! thank you
<crystal-gh> [crystal] daneb opened pull request #831: Documenting of benchmark (master...db_benchmark_doc) http://git.io/vLrLk
<daneb> *bam* done, thanks
<jhass> daneb: in the future if you want to contribute to the standard library or the API docs, do git fetch upstream; git checkout -b my_awesome_thing upstream/master; if you want to contribute to stuff in crystal-lang.org/doc/ do git fetch upstream; git checkout -b blub upstream/gh-pages
<jhass> and in the latter case make sure to select gh-pages as target when opening a pull request
NeverDie has joined #crystal-lang
<daneb> right!
waj has joined #crystal-lang
<daneb> so that's where I went wrong, I used gh-pages
<daneb> much appreciated
<jhass> any time, you're welcome
unshadow has joined #crystal-lang
<unshadow> Does each time I get "Error: you've found a bug in the Crystal compiler. Please open an issue: https://github.com/manastech/crystal/issues"
<unshadow> means it is really a compiler bug ?
<jhass> yes, it should never happen
<unshadow> Ok.. so I got it, but I think it is becuase I used instance veriable inside a class, I remmber Ary saying those are not supported or something ?
<unshadow> changing the veriable to @@ from @ fixed the issue
<unshadow> should I still open a bug ?
<jhass> that might be but crystal should inform you of that fact instead of crashing
<unshadow> Ok
wuehlmaus has joined #crystal-lang
<daneb> jhass: I notice there is functionality missing from benchmark.cr that ruby has, functions -> benchmark.bmbm (used for minimizing affects of GC overheads) and benchmark.bm(7) label width for reporting. Are we looking to introduce this functionality, as I am considering it?
<thor77> is there some advise available how to structure a libary the right away?
<thor77> and is there smth like PythonPackageIndex to share libs?
<jhass> daneb: can never hurt
<jhass> crystal is very open to including stuff into stdlib
<jhass> daneb: I think shipping something like benchmark-ips would be nice too
<jhass> thor77: run crystal init lib foo
<thor77> yeah, but the libs included in your bot have their files in src/<libname>/.cr-files
<jhass> both works
<thor77> but init creates src/<libname>.cr src/<libname>/version.cr
<thor77> i'm very confused
<jhass> require "foo" searches relative to the load path for foo.cr and foo/foo.cr
<jhass> also keep in mind that my bot predates crystal init :P
<thor77> and whats the right way to link my lib to other projects?
<thor77> create a libs folder and link src/ to that?
<jhass> create a Projectfile and add a github or path entry and then run crystal deps
<jhass> or adopt https://github.com/ysbaddaden/shards which will probably replace that
<daneb> jhass: thanks!
<thor77> jhass: where can i find docs about Projectfile?
<jhass> mmh, I'm not sure if we have any
<thor77> http://crystal-lang.org/docs/ nothing there
<thor77> maybe it shouldn't init with "deps do; end"
<jhass> why not?
<thor77> because i have still no idea how the file should look like
<jhass> deps do
<jhass> github "example/libary"
<jhass> path "/foo/bar"
<jhass> end
<thor77> oh...
daneb_ has joined #crystal-lang
<thor77> thanks :)
daneb_ has quit [Remote host closed the connection]
<thor77> maybe this should be included on the docs-page
daneb has quit [Ping timeout: 252 seconds]
asterite has joined #crystal-lang
<asterite> shards will definitely be adopted, once we get the "lock file" funcionality
<asterite> it's already so much better than crystal deps
<asterite> thor77: read this about require and project structure: http://crystal-lang.org/docs/syntax_and_semantics/requiring_files.html
datanoise has joined #crystal-lang
<asterite> but shard will probably replace that
<thor77> oh, thanks :)
Ven has quit [Disconnected by services]
bcardiff has joined #crystal-lang
Doug_ has joined #crystal-lang
Doug_ has left #crystal-lang [#crystal-lang]
Ven_ has joined #crystal-lang
BlaXpirit has quit [Quit: Quit Konversation]
<thor77> i'm still missing smth... my dir looks like this: http://pastie.org/private/jaozzixdosievtcreheiq
<thor77> how can i now import my lib from mybin.cr?
<thor77> require "mylib" doen't work
<thor77> and is it important where i exec crystal run mybin.cr?
<asterite> require "../src/mylib"
BlaXpirit has joined #crystal-lang
<asterite> But, wait
<asterite> What's mylib?
veelenga has joined #crystal-lang
<asterite> Is it a library you installed with `crystal deps`?
<thor77> no
<thor77> i created the symlink myself
<thor77> because crystal deps did weird things
<asterite> What's the real "mylib"?
<thor77> the name?
<asterite> yes
<thor77> simple_irc
<asterite> is it in github or just a local path?
<thor77> just local path
<thor77> /home/thor77/simple_irc/
<thor77> simple_irc.cr is in /home/thor77/simple_irc/src/
<asterite> and you did `deps do; path "/home/thor77/simple_irc/"; end` ?
<asterite> (in the Projecfile)
<thor77> no i did "cd libs; ln -s /home/thor77/simple_irc ."
<asterite> Ok, you should use a Projectfile, it will simplify things
<asterite> Also make sure to have /home/thor77/simple_irc/src/simple_irc.cr
<thor77> the projectfile created a link to ../home/thor77/simple_irc/src ...
<asterite> Good
<thor77> not good
<asterite> Do you have the simple_irc.cr file inside that src directory?
<thor77> uhm, not rly. i thought i can just create one file for each class, so i have only connection.cr atm
<thor77> is simple_irc.cr required?
<asterite> Ok, so that's not how things work. We strongly use convention over configuration here
<asterite> the convention is to have mylib contain src/mylib.cr, then you do require "mylib" and it works
<asterite> If you use `crystal init` for a project, and you use a Projectfile, it should work out smoothly
<asterite> I know you loose a bit of freedom, but that way all projects look the same and it makes it much easier to browse them and require them
<thor77> okey fine, i will create that file
<thor77> but whats about the Projectfile-think
<thor77> *thing
<thor77> the symlink to ../home/....... is invalid
<thor77> it should be /home/ not ../home
wuehlmaus has quit [Remote host closed the connection]
<asterite> but you used an absolute path?
<thor77> now i broke it completely....
<asterite> maybe delete .deps and .deps.lock if you had something before
<thor77> still the same error
<thor77> removed .deps and .deps.lock
<asterite> I don't know, it works for me, both if the path is a git repo and if not :(
<thor77> also if path is a absolute path?
<thor77> just removed both folders and recreated them with "crystal new app"/"crystal new lib"
<thor77> still the same error
<asterite> what happens if you execute `git -C . rev-parse HEAD 2>/dev/null` in the simple_irc directory?
<thor77> >> "HEAD"
<DeBot> thor77: # => "HEAD" - http://carc.in/#/r/41m
Ven_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
benjreinhart has joined #crystal-lang
jonahR has quit [Quit: Nos vemos corillo!]
vikaton has joined #crystal-lang
<thor77> "git -C . rev-parse HEAD 2>/dev/null" > HEAD
<thor77> still the same error with "crystal deps"
asterite has quit [Quit: Page closed]
<veelenga> Hi guys. I've created a list of crystal useful apps: http://veelenga.github.io/awesome-crystal/ Enjoy ;)
<veelenga> seems like this is a second one. I was not very efficient in search. Sorry for that
<thor77> if i click some topic (for example "Database Drivers") it highlights the topic below ("Data Generators"
<thor77> )
<thor77> sometimes two topics below
<veelenga> yes, this because of theme. It a feature :) I do not like it too and going to change
<veelenga> yes, this because of theme. It is a feature :) I do not like it too and going to change
<veelenga> *it is
<veelenga> f*cking web irc
<veelenga> but i am not sure, this is a default flatdoc theme. Maybe i missed something. Will check.
<veelenga> btw, thanks
NeverDie has quit [Quit: I'm off to sleep. ZZZzzz…]
NeverDie has joined #crystal-lang
NeverDie has quit [Max SendQ exceeded]
NeverDie has joined #crystal-lang
benjreinhart has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
waj_ has joined #crystal-lang
daneb has joined #crystal-lang
waj has quit [Ping timeout: 264 seconds]
waj_ is now known as waj
ponga has joined #crystal-lang
<ponga> damn how did i forget to join this channel
<jhass> shitty client? :P
<ponga> you are on the right track lol
<ponga> but plz jhass you have to agree that http://i.imgur.com/8SmhH9I.png its gist integration is beautiful
<jhass> one pro, so many cons...
<jhass> and in theory I could write a weechat plugin that does that in my terminal
<ponga> ;( k..
<thor77> whats that client?
<ponga> irccloud
nietzschette has joined #crystal-lang
<nietzschette> do you have to call them 'shards'??
<jhass> got something better?
<ponga> hello
<nietzschette> can crystal use native threads?
<nietzschette> no, nothing comes to mind!
<jhass> yes, though stdlib will no longer provide it in the short term
<jhass> but you can just write a new pthread binding
<ponga> jhass: can i ask how many years you've been into coding
<ponga> if you prefer not to answer ,ok
<jhass> started with about 14 I think
<ponga> 14 years wow
<jhass> nah, turning 24 this year
<jhass> so 10 years
<jhass> though I'm not sure I count the first 3-4 years
<ponga> ah hah
<ponga> i just got into my second year since i bought my first book and read it
<ponga> and im still in missing child condition
<BlaXpirit> looking for feedback on https://github.com/BlaXpirit/crystalize.py
asterite has joined #crystal-lang
<ponga> hi
<jhass> BlaXpirit: run it on... uh... QT5? :P
<BlaXpirit> that's pretty pointless
<BlaXpirit> first of all, it's only for C, and Qt isn't even C++
<ponga> jhass: can i ask how your first 3-4 years were like? i guess its off-topic tho
<jhass> it's hard to recall
<jhass> I think it's very different for everybody and even more so across ages, so not sure we'd gain anything by comparing anyhow ;)
<ponga> thanks
waj has quit [Remote host closed the connection]
waj has joined #crystal-lang
<nietzschette> RPGM - FTW
<thor77> is there a module to dump a crystal-obj into a file and load it later from it?
<thor77> (like marshal https://docs.python.org/3/library/marshal.html for python)
<BlaXpirit> probably not possible to implement this in userland
shadeslayer has quit [Ping timeout: 264 seconds]
<crystal-gh> [crystal] kostya opened pull request #832: Little faster base64 encode (master...faster_encode) http://git.io/vLoAO
shadeslayer has joined #crystal-lang
BlaXpirit has quit [Quit: Quit Konversation]
BlaXpirit has joined #crystal-lang
benjreinhart has joined #crystal-lang
nietzschette has left #crystal-lang ["Leaving"]
<asterite> thor77: waj was doing marshal the other day
waj_ has joined #crystal-lang
waj has quit [Ping timeout: 276 seconds]
waj_ is now known as waj
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
veelenga has quit [Ping timeout: 246 seconds]
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
<thor77> i'm trying to rewrite my ai-bot in crystal => i need some kind of data-storage. i choose json. https://github.com/Thor77/CryAI/blob/master/src/cryai.cr#L6-L34 but the compiler still thinks f could be "Nil", which test do i have to add to prevent that?
<jhass> a plain if f should suffice
<jhass> but actually File.read isn't even nilable, no?
<jhass> >> x = File.read("/etc/passwd"); typeof(x)
<DeBot> jhass: # => String - http://carc.in/#/r/41v
<jhass> maybe put the error output you get into a gist
<jhass> so it doesn't complain that f is nil
<jhass> JSON.parse returns a union that includes nil
<jhass> so that's why @words may be nil
<jhass> >> JSON.parse("null")
<DeBot> jhass: Error in line 4: undefined constant JSON - http://carc.in/#/r/41w
<jhass> >> require "json"; JSON.parse("null")
<DeBot> jhass: # => nil - http://carc.in/#/r/41x
<jhass> btw you should add a getter for words
<jhass> the foo.@bar style is like .instance_variable_get in Ruby, conceptually
<jhass> it's not intended for general use
<thor77> but if i use a getter to get the words, i also need a method to check if key in words
<thor77> -> 4 more methods
<thor77> but i could do a check there, if @words is nil
<jhass> ?
<jhass> a getter would just return @words
<jhass> it's no different to accessing it directly
<thor77> oh
<thor77> you meant "getter @words"?
<jhass> getter words or getter :words
<jhass> which are just macros to generate def words; @words; end;
jua_ has joined #crystal-lang
<thor77> i think it's pretty sure, it can't be nil now, but now the compiler complains about the array in @words...
<jhass> yes, JSON.parse has to return a union of everything the json could be
asterite has quit [Ping timeout: 246 seconds]
<jhass> hence json_mapping exists ;)
<thor77> yeah, seems like i should use that
<jhass> or if it's something simple you can use Array(String).from_json or similar
<thor77> @words should be {String => [{Int32, String}]} and @lines should be {Int32 => {Int32, String}}
<jhass> >> require "json"; Hash(String, Array({Int32, String})).from_json %({"foo": [[1, "bar"], [2, "baz"]]})
<DeBot> jhass: # => {"foo" => [{1, "bar"}, {2, "baz"}]} - http://carc.in/#/r/420
Codcore has joined #crystal-lang
<Codcore> Good evening! Is there a way how to determine namespace that class is in? For example, if I have Foo::BarClass, how BarClass can figure out that it is inside a Foo:: ?
veelenga has joined #crystal-lang
flaviu has quit [Read error: Connection reset by peer]
BlaXpirit has quit [Quit: Quit Konversation]
BlaXpirit has joined #crystal-lang
<thor77> jhass: thank you very much, it looks awful <3 but i will use it anyway ;)
<jhass> heh
<jhass> Codcore: Ruby has nesting, but I don't think we got something like that yet
<jhass> so you'll have to parse the .class.name
<jhass> >> module Foo; class Bar; def baz; self.class.name.split("::"); end; end; Foo::Bar.new.baz
<DeBot> jhass: Syntax error in eval:11: expecting identifier 'end', not 'EOF' - http://carc.in/#/r/421
<jhass> >> module Foo; class Bar; def baz; self.class.name.split("::"); end; end; end; Foo::Bar.new.baz
<DeBot> jhass: # => ["Foo", "Bar"] - http://carc.in/#/r/422
<Codcore> jhass, thank you a lot, don't know what I'd do without you ;)
waj_ has joined #crystal-lang
<jhass> >> module Foo; class Bar; def baz; {{@type.name.split("::")}}; end; end; end; Foo::Bar.new.baz
<DeBot> jhass: # => ["Foo", "Bar"] - http://carc.in/#/r/423
<jhass> available at compile time that way
waj has quit [Ping timeout: 246 seconds]
waj_ is now known as waj
<thor77> huh, any idea why this doesn't work? http://carc.in/#/r/424
<jhass> I'm surprised that json parses
<jhass> anyway, I believe object keys are always strings
<thor77> damn
jua_ has quit [Quit: Vision[0.9.7-H-20140108]: i've been blurred!]
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
daneb has quit [Remote host closed the connection]
daneb has joined #crystal-lang
daneb has quit [Remote host closed the connection]
<crystal-gh> [crystal] asterite pushed 1 new commit to master: http://git.io/vLKj7
<crystal-gh> crystal/master 487b6e1 Ary Borenszweig: Allow pointerof class variable
ponga has quit [Quit: Connection closed for inactivity]
<BlaXpirit> wha
<BlaXpirit> why are there stray {{ }} in your example?
<BlaXpirit> how does that even work
Codcore has quit [Quit: Page closed]
<strcmp1> hey jhass
<strcmp1> u there
flaviu has joined #crystal-lang
_unshadow_ has joined #crystal-lang
_unshadow_ has quit [Client Quit]
<jhass> strcmp1: sup?
<strcmp1> jhass, can you roughly translate this song: https://www.youtube.com/watch?v=ACKdv_YFNL4
<crystal-gh> [crystal] asterite pushed 1 new commit to master: http://git.io/vL6Cg
<crystal-gh> crystal/master 6417eec Ary Borenszweig: Allow pointerof global variable
<jhass> strcmp1: nope, the GEMA fucked that video
<jhass> "This video is not available in your country"
<jhass> might actually be an uploader restriction
<strcmp1> its Sleipnir - Opa ich vermisse Dich
<strcmp1> would be weird if germans couldnt watch it haha
<jhass> google "Gema youtube"
<strcmp1> yeah i heard it come up before
datanoise has quit [Ping timeout: 276 seconds]
bcardiff has quit [Quit: Leaving.]
benjreinhart has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
BlaXpirit has quit [Quit: Quit Konversation]
Excureo has quit [Remote host closed the connection]
datanoise has joined #crystal-lang
havenwood has quit [Ping timeout: 272 seconds]
NeverDie has quit [Quit: I'm off to sleep. ZZZzzz…]
vikaton has quit [Quit: Connection closed for inactivity]
datanoise has quit [Ping timeout: 264 seconds]
veelenga has quit [Ping timeout: 246 seconds]
NeverDie has joined #crystal-lang
waj has quit [Quit: waj]