ChanServ changed the topic of #crystal-lang to: The Crystal programming language | | Crystal 0.21.1 | Fund Crystal's development: | Paste > 3 lines of text to | GH: | Docs: | API: | Logs:
<FromGitter> <jipiboily> Whoever re-did the crystal-lang-org site: good job!
<FromGitter> <jipiboily> nice and clean :)
<crystal-gh> [crystal] RX14 opened pull request #4182: Added compile progress tracker (master...feature/progress)
<wmoxam> oh wow
<wmoxam> it does look great
<FromGitter> <Zhomart> Crystal doesn't show lines on error, is this correct behaviour? ⏎ ⏎ ```code paste, see link``` []
alibby has joined #crystal-lang
DaleK5whr has joined #crystal-lang
DaleK5whr has quit [Quit: Leaving]
alibby has quit [Quit: Leaving.]
alibby has joined #crystal-lang
alibby has quit [Quit: Leaving.]
alibby has joined #crystal-lang
alibby has quit [Quit: Leaving.]
alibby has joined #crystal-lang
foca has quit [Ping timeout: 245 seconds]
foca has joined #crystal-lang
alibby has quit [Quit: Leaving.]
alibby has joined #crystal-lang
<FromGitter> <Sija> @Zhomart try using `—default` flag
<FromGitter> <Sija> bleh, i mean `—debug`
bjz has joined #crystal-lang
alibby has quit [Quit: Leaving.]
alibby has joined #crystal-lang
alibby has quit [Client Quit]
alibby has joined #crystal-lang
alibby has quit [Client Quit]
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<FromGitter> <Zhomart> @Sija the same
<FromGitter> <Sija> `crystal build … --debug`?
<FromGitter> <Sija> you might need to run `dsymutil --flat ./path/to/bin` if you’re on macOS
<FromGitter> <Zhomart> I'm running specs. Should I compile first?
<FromGitter> <Sija> yep
<FromGitter> <Zhomart> it doesn't show full stack
<FromGitter> <Zhomart> only last line
<FromGitter> <Sija> could you paste (gist or sth) the full stacktrace?
bjz has joined #crystal-lang
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
akwiatkowski has joined #crystal-lang
bjz has joined #crystal-lang
ChickeNES has joined #crystal-lang
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bjz has joined #crystal-lang
mark_66 has joined #crystal-lang
akwiatkowski has quit [Ping timeout: 246 seconds]
A124 has quit [Quit: '']
<FromGitter> <KCreate> Is there a reason why crystal doesn't run dsymutil on the binary after compilation? Only if you're on mac of course?
A124 has joined #crystal-lang
A124 has quit [Client Quit]
A124 has joined #crystal-lang
Ven has joined #crystal-lang
Ven is now known as Guest14586
A124 has quit [Client Quit]
A124 has joined #crystal-lang
fenicks has joined #crystal-lang
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bjz has joined #crystal-lang
Kug3lis has joined #crystal-lang
Kug3lis has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Guest14586 has quit [Ping timeout: 268 seconds]
Kug3lis has joined #crystal-lang
<fenicks> hi
<fenicks> Anyone have an issue with the crystal Debian/Ubuntu repo ?
alibby has joined #crystal-lang
akwiatkowski has joined #crystal-lang
alibby has quit [Quit: Leaving.]
Kug3lis_ has joined #crystal-lang
Kug3lis has quit [Ping timeout: 258 seconds]
akwiatkowski has quit [Remote host closed the connection]
<FromGitter> <Sija> @KCreate I was thinking about that today and the only sensible answers coming to my head were a) not everyone would like to have `.dwarf` files being created from default b) no one implemented it yet
<FromGitter> <Sija> I’d suggest to open an issue regarding this topic so it can be discussed at large
bjz has quit [Ping timeout: 246 seconds]
bjz_ has joined #crystal-lang
bjz has joined #crystal-lang
bjz_ has quit [Ping timeout: 260 seconds]
A124 has quit [Quit: '']
A124 has joined #crystal-lang
Ven has joined #crystal-lang
Ven is now known as Guest63163
<FromGitter> <bew> @asterite @faustinoaq about #4136 , what do you mean by array literal in C, I got this to work: is it what you meant ?
<DeBot> (Stored value type does not match pointer operand type)
Kug3lis_ has quit [Ping timeout: 258 seconds]
A124 has quit [Quit: '']
A124 has joined #crystal-lang
Kug3lis has joined #crystal-lang
Kug3lis_ has joined #crystal-lang
Kug3lis has quit [Ping timeout: 256 seconds]
<FromGitter> <lhz> Is it possible to assign new macro variables inside a macro? I am looking for a way to access the value of `key` inside the `def` here to avoid duplication (not much, but still): ⏎ ⏎ ```code paste, see link``` []
<FromGitter> <KCreate> @Sija Would you want to open the issue regarding the `dsymutil` tool?
<FromGitter> <Sija> @lhz yep, you can do `{% key = %}`
<FromGitter> <Sija> and then use it as `{{key}}` l8r on
<FromGitter> <lhz> brilliant, thanks both!
<FromGitter> <Sija> @KCreate can do
<FromGitter> <bew> @Sija what do you mean by `l8r` in your answer ?
<FromGitter> <KCreate> l83 means "later"
<FromGitter> <Sija> l8r = later :)
<FromGitter> <bew> ahah nice shortcut ^^
<FromGitter> <Sija> same for gr8 = great
<FromGitter> <bew> I was thinking it was something similar to i18n, but... not really :smile:
<FromGitter> <KCreate> but if you overuse these, messages start to look kinda weird
<FromGitter> <Sija> @KCreate opened as #4186
<DeBot> (Execute dsymutil on build with --debug on macOS)
<FromGitter> <KCreate> nice
<FromGitter> <Sija> yep, too much l33t sp34k m1gh7 fry ur br41n ;)
<FromGitter> <KCreate> What's with the `.dwarf` files? I've never used dsymutil so I don't know exactly what it does.
<FromGitter> <KCreate> Does dsymutil create them? Or does the compiler have to generate these files?
<FromGitter> <Sija> `dsymutil` does that
<FromGitter> <KCreate> Alright, I'll have to check that out on my Mac once I'm home
<FromGitter> <KCreate> Isn't it somehow possible to incorporate the debug info into the binary itself? (on mac) And how does linux handle that?
Guest63163 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven has joined #crystal-lang
Ven is now known as Guest67847
Guest67847 has quit [Client Quit]
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
mark_66 has quit [Ping timeout: 264 seconds]
mark_66 has joined #crystal-lang
Ven has joined #crystal-lang
Ven is now known as Guest28837
greengriminal has joined #crystal-lang
Svenskunganka has joined #crystal-lang
<crystal-gh> [crystal] MakeNowJust opened pull request #4188: reduce formatter's spec requires (master...fix/crystal-format/spec-reduce-dependency)
<FromGitter> <sdogruyol> 2 Crystal articles on the front page of HN :+1:
<FromGitter> <jwoertink> noice
<FromGitter> <fridgerator> :thumbsup:
<Svenskunganka> That's nice :D
Guest28837 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Svenskunganka> The lack of a Windows target seems to come up in almost every "quick look" at Crystal, and the progress on that front is a bit slow as none of the core members are in on it yet
<FromGitter> <jwoertink> Yeah, it sucks, but then again... who's using windows? :trollface:
greengriminal has quit [Quit: This computer has gone to sleep]
<Svenskunganka> I personally think it would be wise to make it a priority similar to parallelism
<Svenskunganka> I'm on Windows... :D
<FromGitter> <jwoertink> I'm sorry for your loss :D
<FromGitter> <jwoertink> lmao
<FromGitter> <KCreate> haha
<FromGitter> <jwoertink> j/k
<Svenskunganka> Well, I have a old PC in my house running Linux so I'm good
<FromGitter> <jwoertink> but I agree, it is pretty important
<FromGitter> <jwoertink> just for the strength of the language
<FromGitter> <KCreate> BTW, windows support is a key feature they want to implement
greengriminal has joined #crystal-lang
<Svenskunganka> Parallelism and Windows seems to be the two main reasons people are stuck in the "Waiting and see..." stage
<FromGitter> <jwoertink> My 2 main stuck things are the DNS resolution speed, and http client proxy support
<FromGitter> <mverzilli> it's not true that no one in the core team is working on Windows support
<FromGitter> <mverzilli> Brian is on that
<FromGitter> <mverzilli> he's currently working on making exceptions work in Windows
<FromGitter> <jwoertink> GO BRIAN GO! :shipit:
<FromGitter> <KCreate> What branch is he working on?'
<FromGitter> <KCreate> Because the `windows` branch wasn't updated in the last two years
<FromGitter> <mverzilli> he's working on his fork
<Svenskunganka> @mverzilli Oh really? I have completely missed that. I've been following the PR & Issue since they were created and it looks like it is mainly a community effort and but reviewed by the core team
<Svenskunganka> But that is great
Kug3lis_ has quit [Ping timeout: 258 seconds]
<FromGitter> <mverzilli> it is one of the major goals :)
<Svenskunganka> I remember reading an exchange between Serdar and RX I think about Windows support not making it this year. Dangit that the IRCLog is down
<FromGitter> <jwoertink> Well, the best way we can all chip in is to donate! let's do our part
<FromGitter> <KCreate> Will windows only be supported in some kind of posix environment such as mingw?
<Svenskunganka> The PR aims to bring native Windows support as far as I'm aware
<FromGitter> <mverzilli> no, the idea is to treat it as a first class citizen
<FromGitter> <mverzilli> yes, as Svenskunganka said
<FromGitter> <KCreate> nice
<FromGitter> <sdogruyol> @jwoertink well said :+1:
<FromGitter> <mverzilli> @RX14 is doing some awesome and super important foundation work by preparing much more powerful CI harnesses, because we're going to need a huge target matrix (permutations of LLVM versions, OSs, C libs, architectures, etc.)
greengriminal has quit [Quit: This computer has gone to sleep]
greengriminal has joined #crystal-lang
<FromGitter> <sdogruyol> yeah
<FromGitter> <sdogruyol> @RX14 has also started building Crane which is a Crystal toolchain installer much like rustup
<FromGitter> <KCreate> Is @RX14 part of the core team?
greengriminal has quit [Client Quit]
mark_66 has quit [Remote host closed the connection]
<FromGitter> <sdogruyol> no
<FromGitter> <sdogruyol> but he's a great fellow
<Svenskunganka> rofl, his github profile says he lives in a docker container. Made me giggle :D
<Svenskunganka> This comment on the HN thread peaked my interest:
<Svenskunganka> I wonder if used like that would interest some of the larger users of Ruby, like GitLab?
<FromGitter> <sdogruyol> probably
<RX14> so many crystal HN posts
<adam12> Yep :)
<Svenskunganka> It's like Christmas :D
<adam12> Nice to see.
<RX14> i hope crystal actually takes off
fenicks has quit [Quit: - A hand crafted IRC client]
<RX14> and gets some traction before 1.0
<FromGitter> <fridgerator> me too
<RX14> all I hear is "i'll wait for 1.0"
<RX14> yet that means that crystal has no large feedback pool until 1.0
<RX14> which is after we've locked in the API
<RX14> it's sad
<FromGitter> <drosehn> It takes such a long time and a lot of work to get a new language off the ground, because there are so many different things that people will want from it.
<txdv> since this is ruby like
<txdv> and c like
<txdv> they want web apps at the speed of c
<RX14> the key to popularity in that crowd is having a winning web framework
<RX14> which we don't have
<txdv> rails has already won that
<txdv> :D
<RX14> yeah well
<RX14> rails is too magic
<txdv> its sad, but ruby is relevant only because rails eists
<FromGitter> <dreyks> big chunk of it yes
<FromGitter> <dreyks> but not whole
<FromGitter> <dreyks> ow there's a trend towards nonrails ruby
<FromGitter> <dreyks> *now
greengriminal has joined #crystal-lang
<txdv> elixir with phoenix
<txdv> their marketing is ruby like syntax with awesome web framework
<RX14> i'd sort of like crystal not to get too webby
<FromGitter> <fridgerator> less spiderman, more silver surfer?
<FromGitter> <fridgerator> was a pun on "webby", sorry, continue
<txdv> but the future is the web
<Svenskunganka> Imagine a Meteor but for Crystal by utilizing WebAssembly. Isomorphic Crystal web apps would be really cool, but not sure how much of a fairy tale it would be to actually get there.
<Yxhuvud> I disagree that rails is too magic, but I *really* disagree with some parts of it. Such as the callbacks in AR.
<Yxhuvud> which is not a case of magic (they are pretty simple), but of inducing spaghetti where spaghetti shouldn't be.
<RX14> my opinion on magic (macros, lets be honest) is the same as asterite's
<RX14> do it without first
<RX14> find the smallest posssible macro scope
<RX14> and execute that
<RX14> magic should be limited in scope and targeted
<RX14> so you understand exactly what your magic compiles down to
<FromGitter> <dreyks> yes callback he'll is frowned upon in many places
<FromGitter> <dreyks> that's where interactors/operations/services/younameit came into play
<RX14> at least we're not nodejs
<FromGitter> <dreyks> although i know what are this callbacks compiled to this is still suboptimal code
<FromGitter> <crisward> @sdogruyol I made sure I up-voted them. Good to see Crystal getting the attention it deserves.
<Yxhuvud> I imagine that what macros are actually needed will be shown as time goes by and being restrictive with them until a clear need is shown is probably a good idea.
<Yxhuvud> or macro capabilities, rather.
<FromGitter> <bew> I just hope the `run` macro method will never be removed :smile:
<FromGitter> <bew> @RX14 although I now agree with asterite's macros opinion, I think it's not clearly written down in the docs or I-don't-know-where, because until the advanced macros video I saw on Vimeo from Ary, I thought the macro language was meant to be over-used.
<RX14> yeah
<RX14> that talk really solidified a lot of my opinions I already had about macros
<RX14> I knew I didn't like overusing them, and knew overuse when I saw it but that talk really makes not abusing macros a step by step solution
<FromGitter> <bew> I don't know what you think (or others) on the `run` macro method, but I kinda like it over my "macro overuse thinking" because it's still crystal code (with minimal macro usage) that is being executed in the end, and stuff we might want to do with macro-overusage is still doable (not sure it's a "good" way to do it though..)
<RX14> run is mostly used for templating languages
<RX14> where you take a file of some sort, and compile it to crystal
<RX14> i'm glad people are using make with crystal though
<RX14> i hope that trend contrinues instead of the use of overthought tools
Raimondii has joined #crystal-lang
Raimondi has quit [Ping timeout: 268 seconds]
Raimondii is now known as Raimondi
<FromGitter> <KCreate> stuff like gulp or grunt comes to mind...
<Svenskunganka> How is the compatibility between Make on Linux and Windows?
<Svenskunganka> Oh nvm there is nmake with some differences
greengriminal has quit [Quit: This computer has gone to sleep]
greengriminal has joined #crystal-lang
<FromGitter> <bew> what is the possible usage of this file src/ ( ?
<RX14> it's for --prelude=empty
<RX14> it's the minimal code needed for a working crystal
<RX14> a main function and the primitives for int, etc
<FromGitter> <bew> oh nice, interesting thanks!
<FromGitter> <bew> is it technically possible to write a GC library for crystal in crystal (by redefining parts of the sdtlib we're using in the lib to use low level memory allocation methods)
<RX14> yeah of course
<FromGitter> <bew> soo cool #nerdgasm
<RX14> you could use the GC in the GC even
<RX14> you'd probably want to avoid that
<FromGitter> <bew> didn't understood your before-last reply
<RX14> never mind
<FromGitter> <bew> oh I finally got it, yeah, it's not a behavior I'd like to have in the GC x)
<FromGitter> <KCreate> when doing --prelude=empty, is the GC also removed?
<RX14> yes
<RX14> everything is
<RX14> no raise
<RX14> no strings
<RX14> most everything on Int
<RX14> no division
<RX14> :P
<FromGitter> <KCreate> lol why would division be dependent on the stdlib?
<RX14> you'd have to use unsafe_div
<FromGitter> <KCreate> ah nice so crystal has some more safe guards in place
<FromGitter> <bew> where is unsafe_div defined ?
<FromGitter> <bew> found it
<FromGitter> <bew> in
<FromGitter> <bew> well it's not defined here, but it's another story
<FromGitter> <bew> from src/ ( where does the `GC` comes from ? I can't find any definition of it from the files defined above `require "string"` in the normal `` file...
<RX14> here
<RX14> there are some ordering dependencies in the prelude, but that's not because of class definition order
<RX14> that doesn't matter
<FromGitter> <bew> why ?
<RX14> why what/
<FromGitter> <bew> why is there some ordering dependencies if it's not because of class definition order ? and why the require ordering doesn't matter ?
michael_campbell has quit [Quit: ZNC 1.6.1 -]
<FromGitter> <bew> nvm I got part of my answer from the commen ton top of prelude file
<FromGitter> <bew> comment*
<FromGitter> <bew> on*
<RX14> i have no idea about those ordering depndencioes
<RX14> i wouldn't be surprised if some of the ordering dependencies don't exist
<RX14> and have just not been touched
<FromGitter> <bew> from the prelude documentation:
<FromGitter> <bew> Entries to this file should only be ordered if macros are involved - macros need to be defined before they are used. A first compiler pass gathers all classes and methods, removing the requirement to place these in load order.
<RX14> oh
<RX14> yeah
<RX14> forgot about macros lol
<FromGitter> <KCreate> @sdogruyol Have you thought about notifying the people featured in your weekly recap? Because I remember when Charly was featured back in January I didn't even know about it ^^
<crystal-gh> [crystal] jwoertink opened pull request #4190: Adding put_form to HTTP::Client. Fixes #4181 (master...feature/http_client_put_form)
sz0 has quit [Quit: Connection closed for inactivity]
<FromGitter> <Freezerburn> So maybe this is kind of an odd usecase, but: I have a command-line Crystal program that builds a shell command that is basically of the form "find . -not (repo stuff) | xargs -P 4 grep #{some_text}". I use this via cmd, shell: true, redirecting output and error to a custom IO which filters some of the output, and writes everythign else to STDOUT. When run normally, everything seems to be fine. But
<FromGitter> ... output of the Crystal program to grep, it only gets through part of the search and then ends with "grep: write error", and I have no idea why
<FromGitter> <Freezerburn> (actually, running it a couple more times, it seems to be cutting off some of the output even without piping to grep)
<FromGitter> <Freezerburn> I'm sure I could rewrite the command in pure Crystal, just figured it was an easy win to basically use the same shell command I have been for a bit until I found the time to do so
<FromGitter> <bew> you should open an issue or a question on stackoverflow, you'll get a bit more replies than here I think
<FromGitter> <Freezerburn> StackOverflow it is then. Thanks
Raimondii has joined #crystal-lang
Raimondi has quit [Ping timeout: 268 seconds]
Raimondii is now known as Raimondi
Raimondii has joined #crystal-lang
Raimondi has quit [Ping timeout: 268 seconds]
Raimondii is now known as Raimondi
Raimondi has quit [Remote host closed the connection]
Raimondi has joined #crystal-lang
greengriminal has quit [Quit: This computer has gone to sleep]
Raimondi has quit [Ping timeout: 268 seconds]
<FromGitter> <Zhomart> Hi, I cannot do `NamedTuple.to_h` because class `Time` doesn't have method `clone`. ⏎ ⏎ ⏎ Shouldn't it be `self[{{key.symbolize}}].dup` there? []
Raimondi has joined #crystal-lang
<FromGitter> <bew> `Time#clone` has been added a day ago with
<FromGitter> <Zhomart> Ah, ok :)
Raimondi has quit [Quit: WeeChat 1.6-dev]
<FromGitter> <steveklabnik> Hey all! Quick question: the new website is absolutely beautiful; how did you all go about getting that done? Did someone contribute it, did you hire someone, that kind of thing.
<RX14> @steveklabnik it was designed by someone at manas iirc
<FromGitter> <steveklabnik> ahhh that would make sense
<RX14> @steveklabnik you can check out the git log :) steveklabnik
<RX14> oops
<RX14> forgot what was in my paste buffer lol
<FromGitter> <steveklabnik> it's all good :)
<FromGitter> <steveklabnik> i do that all the time
<RX14> too easy with it just being copy/middle click on linux
<FromGitter> <steveklabnik> i hear you; i'm in the middle of an OS transition and so all of my muscle memory is wrong now :)
<RX14> i miss that so much on windows
<FromGitter> <steveklabnik> anyway, i am generally interested in open source + design and how all that works
<FromGitter> <steveklabnik> and crystal has (in my opinion) been consistently good at that
<RX14> it seems that manas have some really good designers
<RX14> and that way they can just do it for cheap-ish
<FromGitter> <steveklabnik> yeah
<FromGitter> <steveklabnik> one thing i've found interesting is the governance of it, like, do you just have some people who do it or do you try to do it open
<RX14> the site was developed in the open too, was nice seeing it come together on the branch noone noticed
<FromGitter> <steveklabnik> python had a huuuuuuge thing about this in years past
<FromGitter> <steveklabnik> ah, sweet
<RX14> it was open but not advertised
<RX14> so it doesn't really get publicity
<FromGitter> <steveklabnik> makes sense
<RX14> you could say it was practically just dropped
<FromGitter> <steveklabnik> cool. that pretty much answers all the questions i had
<FromGitter> <steveklabnik> keep rockin', crystal is neat :smile:
<RX14> so is rust :)
<RX14> been meaning to try it out... one day
<FromGitter> <sdogruyol> @steveklabnik welcome :)
<FromGitter> <sdogruyol> nice to see a long time Rubyist here
<FromGitter> <elorest> Is there a better way to get just the current filename inside of a macro? I'm doing `file = __FILE_; file.split("/").last`
<FromGitter> <Sija> you’re missing 2nd underscore from the suffix, proper const name is `__FILE__`
<FromGitter> <elorest> typo in gitter. sorry.
<FromGitter> <Sija> there’s also `__DIR__` if you’d need that
<FromGitter> <elorest> What I need is the macro equivelant of `File.basename(__FILE__)`
<FromGitter> <elorest> instead of "/home/deploy/project/src/" i just need ""
<FromGitter> <bew> this works: ` {% puts *FILE*[(__DIR__.size + 1)..-1] %}`
<FromGitter> <Sija> `{{__FILE__.split('/').last}}`
<FromGitter> <elorest> That's what I'm doing. i just thought their might be a cleaner way. Thanks.
<FromGitter> <elorest> That @bew. That's interesting.
<FromGitter> <bew> you're welcome
<crystal-gh> [crystal] konovod opened pull request #4191: Adds non-allocating random_bytes method to SecureRandom. Fixes #4049 (master...master)
Raimondi has joined #crystal-lang
<FromGitter> <elorest> I'm thinking we could make some really awesome animated crystal stickers with this:
<FromGitter> <elorest> Do you know if there's an animated gif of the crystal logo spinning anywhere?
<FromGitter> <khepin> Hi everyone, can private methods be re-defined when re-opening a class definition? ⏎ Even from the standard library? ⏎ ⏎ I’m trying to redefine this method: ⏎ ... []
<FromGitter> <khepin> hah! yes it works, I forgot to include my code within the class at first
<FromGitter> <elorest> Got to love those sort of bugs lol
<FromGitter> <elorest> Seriously though with crystal having that animated logo it could be the coolest laptop sticker ever with lenticular printing.
<FromGitter> <khepin> At least the part I love is that I can test an updated version of the standard lib without having to recompile the whole language!
bjz has joined #crystal-lang
sustained has quit [Quit: I Retire Chat]
<FromGitter> <fridgerator> @elorest I would buy one
<BlaXpirit> i was intrigued by the idea. it's certainly possible to scale the rotating logo and make timed screenshots of it. i gave up on that for now
<BlaXpirit> to start: and in console `document.write("<canvas id=l width=500 height=500></canvas>"); model = new Viewer3D(document.getElementById("l")); model.shader("flat", 255, 255, 255); model.insertModel("/xml/polyhedron/icosahedron.xml"); model.contrast(0.90);`
<FromGitter> <elorest> @fridgerator <BlaXpirit> Thanks. I'll look into that further this weekend. So is the code camp thing in may just a different name for a conference or is it different somehow?
<kodo[m]> is there a way to add deps to project from console?
<RX14> no
<kodo[m]> we need something like yarn for crystal heh
<RX14> why?
<kodo[m]> I was joking
<RX14> there's support for what you want in the works