RX14 changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.24.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> just implemented Crystal::System::Random for win32
<RX14> it's all of 6 lines of code
<RX14> it's great
<RX14> in some ways, windows is really done right
rohitpaulk has joined #crystal-lang
<RX14> 2550 specs running now
<RX14> time still appears broken
rohitpaulk has quit [Ping timeout: 264 seconds]
faustinoaq has quit [Ping timeout: 252 seconds]
<crystal-gh> [crystal] RX14 closed pull request #4903: Win: add Crystal::System::DirHandle (master...win-dir) https://git.io/v5WPq
<crystal-gh> [crystal] RX14 opened pull request #5539: Implement Crystal::System::Random for win32 (master...feature/windows-system-random) https://git.io/vNfjW
<FromGitter> <elorest> I like windows if all I need to do is click on Overwatch. For programming I feel really lost. I spent 2 weeks getting a python machine learning program that someone wrote in windows to run in linux a few weeks ago.
<FromGitter> <elorest> Windows is getting better but it still seems that that it's really hard to port between the two where as linux/osx/bsd seem to work fairly easily with the same code bases.
<RX14> well yeah
<RX14> thats because linux/osx/bsd have PISIX
<RX14> windows doesn't support posix
<FromGitter> <elorest> Good to know. I just got rid of my mac and have been using arch for the last month. I sort of planned on just using windows with docker, but ended up just installing linux.
<FromGitter> <elorest> It's been a since 2009 since my dev box was linux. It's really improved. A lot of things work way better than in OSX.
<RX14> i've been using arch since maybe 2014
<RX14> and it's been great all this time
<RX14> never failed me
faustinoaq has joined #crystal-lang
<RX14> my setup is fairly customized
<RX14> it's cool
<FromGitter> <elorest> I have an LG thunderbolt monitor and with my mac I can't change the volume or mute it but in arch it works perfectly with no configuration.
<FromGitter> <bew> "with no configuration" are we talking about arch here?
<FromGitter> <bew> ah no ok sry I mis-read your msg
<RX14> lol @bew I assume @elorest installed a desktop environment
<RX14> in that case a lot lot of things just work out of the box
<FromGitter> <elorest> No configuration other than installing gnome etc.
<RX14> heh
<FromGitter> <bew> yeah probably, I'm not used to it ^^
<RX14> gnome *is* a lot of configuration
<RX14> it's just not yours
<FromGitter> <elorest> No configuration related to the monitor.
<FromGitter> <elorest> I have configured gnome to work and look how I want.
<RX14> yeah I play it much more raw
<FromGitter> <bew> how does it look like?
<RX14> with just i3-wm
<RX14> and custom scripts
<FromGitter> <bew> <3
<RX14> just bothered to make the volume buttons on my laptop work
<RX14> after ~3 months
<RX14> oh, no 4
<FromGitter> <elorest> I used https://antergos.com/
<RX14> yeah antergos is nice if you want something that works
<FromGitter> <elorest> I used gentoo for a bit but it's package manager sucks.
<FromGitter> <elorest> I'm really used to debian and ubuntu but certain things annoyed me for a development box.
<RX14> yeah
<RX14> I think arch is fairly perfect for developers
<FromGitter> <elorest> Went to manjaro but it annoyed me how they only really support kde.
<RX14> i'd probably use kde if I had to use a DE
<FromGitter> <elorest> I tried arch manually but messed something up after it upgraded so I just installed antergos.
<crystal-gh> [crystal] RX14 opened pull request #5540: Add missing stub to IO::Decoder (master...feature/windows-decoder-stub) https://git.io/vNJeF
<RX14> lol
<RX14> @bew I don't understand your comment on my PR
<FromGitter> <elorest> I used KDE for a couple weeks with manjaro but hated the complexity of it all. It seemed sort of laggy at times too.
<FromGitter> <bew> I mean, I think it'll never enter the unless's body
<FromGitter> <elorest> Gnome is smooth but really simple.
<FromGitter> <elorest> Tooling seems a lot better.
<RX14> @bew oh yeah duh
<RX14> i was copying C code...
<FromGitter> <bew> lol that would have been a bad bug ^^
<Vexatos> something something cinnamon best DE
* Vexatos runs away
rohitpaulk has joined #crystal-lang
<FromGitter> <bew> #windows... `alias BOOL = Int32; alias BYTE = UChar; alias BOOLEAN = BYTE`
<FromGitter> <bew> and I guess `UChar` is an alias to `UInt8`
<FromGitter> <bew> so BOOL's type != BOOLEAN's type
<FromGitter> <bew> great type uniformisation 😂
<RX14> Yup
<FromGitter> <straight-shoota> Just wait for `SUPERBOOL = LONGLONG` and `HALF_TRUTH = WORD`
<RX14> Word.
justicefries has joined #crystal-lang
faustinoaq has quit [Read error: Connection reset by peer]
rohitpaulk has quit [Ping timeout: 240 seconds]
rohitpaulk has joined #crystal-lang
hightower2 has quit [Ping timeout: 265 seconds]
hightower2 has joined #crystal-lang
cbase has joined #crystal-lang
cbase has left #crystal-lang [#crystal-lang]
hightower2 has quit [Remote host closed the connection]
snowcras1 has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 256 seconds]
snowcras1 has quit [Quit: leaving]
faustinoaq has joined #crystal-lang
justicefries has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
faustinoaq has quit [Read error: Connection reset by peer]
faustinoaq has joined #crystal-lang
justicefries has joined #crystal-lang
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 264 seconds]
justicefries has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<FromGitter> <codenoid> helo
rohitpaulk has joined #crystal-lang
justicefries has joined #crystal-lang
justicefries has quit [Client Quit]
justicefries has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 248 seconds]
justicefries has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ashirase has quit [Ping timeout: 248 seconds]
ashirase has joined #crystal-lang
killer666 has joined #crystal-lang
justicefries has joined #crystal-lang
rohitpaulk has joined #crystal-lang
killer666 has quit [Quit: Leaving]
rohitpaulk has quit [Ping timeout: 248 seconds]
<livcd> i wonder how will Graal/Truffle/Substrate/Metropolis impact langs like Nim,Crystal,Go
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 264 seconds]
rohitpaulk has joined #crystal-lang
<Groogy> Morning! o/
justicefries has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alex`` has joined #crystal-lang
claudiuinberlin has joined #crystal-lang
mark_66 has joined #crystal-lang
<FromGitter> <imonmyown> morning all :)
<FromGitter> <sdogruyol> morning everyone
<vegai> livcd: I didn't recognize any of those names, what are they? :)
alex`` is now known as alexherbo2
alexherbo2 is now known as alex``
ashirase has quit [Ping timeout: 248 seconds]
ashirase has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 248 seconds]
<FromGitter> <marin117> hi there
<FromGitter> <marin117> is it better to check admin user in filter or in middleware on kemal?
jnyw has quit [Quit: WeeChat 2.0.1]
<FromGitter> <sdogruyol> @marin117 using a middleware would be a cleaner way
lachlan has joined #crystal-lang
rohitpaulk has joined #crystal-lang
<FromGitter> <marin117> thank you :)
faustinoaq has quit [Ping timeout: 248 seconds]
faustinoaq has joined #crystal-lang
hightower2 has joined #crystal-lang
<FromGitter> <bararchy> RX14 does Socket works in Windows?
<RX14> no
<FromGitter> <bararchy> and Process?
<RX14> not even File does
<RX14> Process, no
<FromGitter> <bararchy> oh
<FromGitter> <bararchy> I see
hightower3 has quit [Ping timeout: 255 seconds]
<FromGitter> <bararchy> thanks
<RX14> well Process.exit does
<RX14> but
<RX14> thats not what you want I think
<RX14> haha
<FromGitter> <bararchy> lol
<FromGitter> <bararchy> yeha, more like Process.new, run , etc..
<FromGitter> <bararchy> Does anyone using 0.24 got those errors ? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a4f658e29ec6ac311c01f95]
<crystal-gh> [crystal] RX14 closed pull request #5539: Implement Crystal::System::Random for win32 (master...feature/windows-system-random) https://git.io/vNfjW
<FromGitter> <asterite> RX14 what's missing for File?
<RX14> all of it IIRC
<RX14> not implemented at all
<FromGitter> <asterite> But is utf-16 needed for that and that's blocking it, or just lack of time?
<RX14> I think UTF-16 would be a great help
<RX14> windows defines A and W variants for all functions that take strings
<RX14> the A variant is traditional codepages, which suck
<RX14> and W variant deals with wchar, which is utf-16
<RX14> I don't want to spend the time later converting everything to wchar for unicode support
<RX14> so I want to do it right first time, which means UTF-16 whcar support
<FromGitter> <asterite> So we need UTF8 <-> UTF16 conversion, right?
<RX14> that basically means being able to create a String from a WCHAR* and concert Strign to WHAR*
<RX14> @asterite essentially
<RX14> but we have UTF8->codepoint
<FromGitter> <asterite> I can work on that. Should be fun.
<RX14> so we need codepoint<->UTF-16 more accurately
<RX14> don't worry about endianness for now
<RX14> because we just need a WCHAR*, not to actually write the UTF-16 to a file or disk
<RX14> thanks @asterite
<FromGitter> <asterite> Too bad we'll need to allocate memory for that. Maybe we can try to use part if the stack if a string is small, but probably an optimization for later
<FromGitter> <asterite> of the stack
<Groogy> RX14 yesterday we briefly talked about incremental compilation. Just so we are nto talking past each other, you mean you can compile compilation units?
<Groogy> just curious because we have distributed compilation now at work and cut down our compilation times from half an hour to ~3 minutes
<RX14> Groogy, just so we're clear, these are compilation units to LLVM only
<Groogy> you still need the entire context of the source right to actually compile? :/
<RX14> the majority of time you spend when compiling a non-release build is spent in the crystal compiler, not LLVM
<RX14> this bit needs the entire sourcecode
<RX14> there's no parallelism
<RX14> and everything's one big unit
<RX14> it's *only* when we get to actual codegen that we can split things up
<RX14> and cache things
<RX14> for the compiler, it's 20s to even get to the codegen stage
<RX14> so all you're doing is making codegen take 4s instead of 20s
<RX14> which is great
<RX14> you've shaved off 40%
<RX14> but no amount of parallelism is going to shave off more than 50%
<FromGitter> <asterite> RX14: could we use the A version of functions if the string is ascii only?
<RX14> yes @asterite
<RX14> but thats an optimization i'd like to leave until later
<RX14> plus some functions return strings
<RX14> and in that case you can't know beforehand
<travis-ci> crystal-lang/crystal#6611a66 (master - Implement Crystal::System::Random for win32 (#5539)): The build was broken. https://travis-ci.org/crystal-lang/crystal/builds/325413135
<DeBot> https://github.com/crystal-lang/crystal/pull/5539 (Implement Crystal::System::Random for win32)
<crystal-gh> [crystal] RX14 closed pull request #5540: Add missing stub to IO::Decoder (master...feature/windows-decoder-stub) https://git.io/vNJeF
<crystal-gh> [crystal] RX14 pushed 1 new commit to master: https://git.io/vNJD8
<crystal-gh> crystal/master 1d52841 Sijawusz Pur Rahnama: Add `Number#/(other : BigFloat)` overload (#5437)
<crystal-gh> [crystal] RX14 pushed 1 new commit to master: https://git.io/vNJDw
<crystal-gh> crystal/master 315d3c3 Sijawusz Pur Rahnama: Remove _invariant macro from Float::Printer::* modules (#5435)
Yxhuvud has joined #crystal-lang
lachlan has quit [Ping timeout: 255 seconds]
<travis-ci> crystal-lang/crystal#1d52841 (master - Add `Number#/(other : BigFloat)` overload (#5437)): The build was fixed. https://travis-ci.org/crystal-lang/crystal/builds/325422699
<DeBot> https://github.com/crystal-lang/crystal/pull/5437 (Add `Number#/(other : BigFloat)` overload)
faustinoaq has quit [Ping timeout: 240 seconds]
<travis-ci> crystal-lang/crystal#315d3c3 (master - Remove _invariant macro from Float::Printer::* modules (#5435)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325423482
<DeBot> https://github.com/crystal-lang/crystal/pull/5435 (Remove _invariant macro from Float::Printer::* modules)
<RX14> btw @asterite this work might interest you re: exception handling on windows https://github.com/txe/crystal-win/commits/win
<FromGitter> <straight-shoota> @RX14 I'm not sure I understand how your windows compile script works. You run it on WSL and connect to a local sshd? And how are these windows commands executed from within bash?
<RX14> @straight-shoota you run sshd on WSL
<RX14> and SSH into WSL running on Win10
<RX14> from there, you can execute any windows process as if it was a linux one
<RX14> just need to alter the path to include system32
<RX14> and youc an run cmd.exe
<RX14> and with cmd.exe you can source the compiler env batch script
<FromGitter> <straight-shoota> and you need ssh for this?
<RX14> and then you can compile
<RX14> yes
<RX14> you need to be able to SSH from your host into the VM WSL
<RX14> it's not hard to set up actually
<FromGitter> <straight-shoota> ah okay
<FromGitter> <straight-shoota> I'm already working directly in WSL
<RX14> just need to apt purge openssh-server; apt install openssh-server; edit /etc/ssh/sshd_config to change port and that
<RX14> @straight-shoota then it's even easier for you
<RX14> strip out all the stuff to do with ssh
<livcd> i am kinda worried that TruffleRuby on SubstrateVM will kill Crystal :S
<RX14> and just run the cmd.exe snippet
<RX14> livcd, don't be
<FromGitter> <sdogruyol> no livcd
<RX14> if speed was all crystal was then it'd already be dead
<livcd> then again i have the feeling we wont see a widely adopted TruffleRuby in 2 years
<Vexatos> isn't trufflerb not compiled?
<Yxhuvud> it is JITed.
<RX14> it gets you speed but not so much portability
<RX14> plus it's not "cool" lol
<Yxhuvud> I'm not worried about truffle, because I feel the type system in crystal is so helpful. I wouldn't mind truffle delivering though, as it could conceivably make the decade old rails-app at work more palatable
<livcd> "...not so much portability"..are you sure ?
<RX14> well program portability
<RX14> not platform portability
<FromGitter> <straight-shoota> seems like I have to upgrade WSL for that interoperability
<livcd> cuz the project metropolis sounds impressive
<RX14> @straight-shoota hmm
<RX14> @straight-shoota you don't get cmd.exe in your path by default...
<FromGitter> <straight-shoota> I know
<RX14> try just doing /mnt/c/Windows/System32/cmd.exe
<RX14> does that not work?
<FromGitter> <straight-shoota> `bash: /mnt/c/Windows/System32/cmd.exe: cannot execute binary file: Exec format error`
<RX14> rip
<RX14> it's super nice having that interop
<FromGitter> <straight-shoota> yeah
faustinoaq has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 240 seconds]
faustinoaq has quit [Client Quit]
faustinoaq has joined #crystal-lang
faustinoaq has quit [Ping timeout: 240 seconds]
<FromGitter> <asterite> RX14 I have very little idea how exceptions work. waj did all of that, plus the personality thing
<RX14> OK
<RX14> I'll probably just port it as-is then
<RX14> it at least works
faustinoaq has joined #crystal-lang
<crystal-gh> [crystal] RX14 pushed 1 new commit to master: https://git.io/vNJ5h
<crystal-gh> crystal/master 890a355 Sijawusz Pur Rahnama: Sanitize query property names in JSON/YAML.mapping (#5345)
<FromGitter> <codenoid> good night
faustinoaq has quit [Ping timeout: 264 seconds]
<FromGitter> <codenoid> how to install crystal with apt-get
<FromGitter> <codenoid> in 16.04.3 i cant do that
<FromGitter> <codenoid> why not register crystal to debian ppa ?
<Papierkorb> Because someone would have to maintain those, and also support ancient versions (which doesn't make much sense)
<travis-ci> crystal-lang/crystal#890a355 (master - Sanitize query property names in JSON/YAML.mapping (#5345)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325446997
<DeBot> https://github.com/crystal-lang/crystal/pull/5345 (Sanitize query property names in JSON/YAML.mapping)
rohitpaulk has joined #crystal-lang
justicefries has joined #crystal-lang
justicefries has quit [Client Quit]
justicefries has joined #crystal-lang
justicefries has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<FromGitter> <asterite> RX14: here's String <-> UTF-16 : https://gist.github.com/asterite/2ac6aeb59413e891d3f406072cd5e071 . If you can use it to map some window functions, you could include it in a next PR. I don't know whether to make it generally available, though. We'll probably use it just to interface with Windows. There's also `String#encode` and `String.decode` which already work with UTF-16 but don't do quite what we need
<FromGitter> ... (we need WCHAR*, not UInt8*)
<RX14> plus String#encode and String#decode are probably going to be slow
<RX14> since they use C bindings to iconv
<FromGitter> <asterite> actually, maybe faster since iconv might be super optimized
<FromGitter> <asterite> though there's no magic in utf-16
<RX14> @asterite I doubt it
<RX14> maybe on longer strings
<RX14> but I think iconv's startup overhead and conversion overhead will wipe that out for any reasonable string
<RX14> but it doesn't matter since iconv is a pain to cross-compile to windows
<RX14> so i'd live to avoid it for as long as possible
<RX14> @asterite I think you should PR it though
<RX14> it's your work
<FromGitter> <asterite> ``` iconv 2.01M (498.53ns) (± 1.27%) 177 B/op 11.35× slower``````
<FromGitter> <asterite> you are right :-P
<RX14> lol
<RX14> what's the difference in bytes/op
<FromGitter> <asterite> ok, I'll later send a pr
<RX14> i'll test it for you though @asterite
<RX14> thanks so much
<FromGitter> <asterite> it seems String#encode uses IO::Memory
<FromGitter> <asterite> Hm, and a few buffers are needed for iconv too
<FromGitter> <asterite> so inneficient :-P
<RX14> yup
greengriminal has joined #crystal-lang
alex`` has quit [Quit: WeeChat 1.9]
<crystal-gh> [crystal] asterite opened pull request #5541: Add UTF16 module (master...feature/utf16) https://git.io/vNUU2
<RX14> @asterite i'm not sure I like it being a seperate module
<RX14> we don't have a UTF8 module
<RX14> Perhaps String.from_utf16 and String#to_utf16 is a better interface?
<FromGitter> <asterite> Maybe, I don't know. We'll only use it internally for windows, so I'm not sure I'd like more methods on String just for this
<FromGitter> <asterite> but we can do it
<FromGitter> <asterite> should it be in string/utf16 then and required as such?
<FromGitter> <asterite> Now you see why I didn't want to send a PR :-P
<RX14> heh
<Papierkorb> UTF16 may also come in handy for Qt bindings
<RX14> well even if we use it only on windows, it's still generally useful
<Papierkorb> Second the String-method variant
<RX14> and it's not platform specific
<RX14> and if you don't use the methods they're not a problem
<RX14> I think putting them on string itself is just fine
<FromGitter> <asterite> but do we put them on string.cr?
<RX14> i'm fine with a string/utf16.cr
<Papierkorb> string/utf16.cr would be good imo
<FromGitter> <asterite> mmm...
<FromGitter> <asterite> i'm thinking that if you compile in windows, you'll have those methods available
<FromGitter> <asterite> but if not, no
<FromGitter> <asterite> so a same program can compile in windows but not in other platforms
<Papierkorb> Why not?
<RX14> well they should be always required
<RX14> there's no problem with that
<FromGitter> <asterite> because for non-windows we don't need utf16
<RX14> so?
<RX14> it's just another unused method
<FromGitter> <asterite> so it's not required
<Papierkorb> UTF16 has nothing to do with windows, except that the WinAPI uses it too. There are non-windows libs that use utf-16 too
<FromGitter> <asterite> yes, that's why I think it must be in string.cr... i mean, in prelude
<RX14> @asterite unused and untyped methods basically have 0 impact on anything
<FromGitter> <asterite> well, no, they increase memory usage
<RX14> well I meant in the prelude, but putting it in a new file is fine
<FromGitter> <asterite> for the compiler
<RX14> @asterite very little compared to one that's typed
<Papierkorb> As long I can manually require it I'm fine
<FromGitter> <asterite> probably, I don't know
<RX14> plus worrying about performance of the compiler for every change must get very boring
<FromGitter> <asterite> Papierkorb: you won't, it will be there always
<Papierkorb> asterite, on non-Windows platforms
<FromGitter> <asterite> I mean, now we'll have String#encode("UTF-16") and String#to_utf16
<FromGitter> <asterite> in the docs of String
<Papierkorb> Can't #encode short-circuit on UTF-16? In that case, I'd be fine with not having them as public methods
<FromGitter> <asterite> Papierkorb: they return different things
<Papierkorb> a char* and a wchar* are just a pointer cast apart
<RX14> depends on the endianness Papierkorb
<Papierkorb> UTF-16 should be host endianess, UTF-16LE/BE the specified
<FromGitter> <asterite> that's why I'd like to have specific UTF16 methods to interface with windows
<FromGitter> <asterite> that will use the correct endianess
<Papierkorb> And duplicate logic for that?
<FromGitter> <asterite> and the module can say "This is just for interfacing with windows"
<RX14> but windows doesn't care about endianness
<RX14> because it's just a WChar*
<FromGitter> <asterite> Ah, no?
<RX14> endianness doesn't matter
<RX14> it's always host endianness
<FromGitter> <asterite> but for surrogate pairs, what's the order?
<FromGitter> <asterite> Ah, I see what you mean
<RX14> always the same
<RX14> it *only* matters when you cast to UInt8*
<RX14> that's the definition of endinness
<FromGitter> <asterite> So... can't we have an internal stuff for converting to UTF-16 just for windows
<RX14> not the order of the WChars, how the WChars are represented in memory
<FromGitter> <asterite> we didn't have it before and it was fine
<wmoxam> ^^ thread
<FromGitter> <asterite> we just need it for windows
<RX14> @asterite but I don't see why we should hide it
<RX14> wchar exists on linux too
<FromGitter> <asterite> i need some use cases other than windows
<FromGitter> <asterite> where you pass wchar*
<livcd> go has this in syscall_windows i think :)
<Papierkorb> Qt
<Papierkorb> Which uses UTF-16 strings internally for historic reasons
<FromGitter> <asterite> but externally?
<FromGitter> <asterite> or how are you doing Qt now in crystal without this UTF16 module?
<Papierkorb> Whatever you want. If I have reliable, fast UTF16 conversions in Crystal, I can fast-path some codepaths to avoid copying data two times (not kidding)
<Papierkorb> QString -> reencoded to UTF8 by Qt (First copy) -> Crystal String (Second copy)
<Papierkorb> QString will happily give me its wchar* though, and with some guarantees I can check, I could drop the immediate UTF8 copy
<RX14> @asterite but I still don't see the downside of just making it available universally
<FromGitter> <asterite> Well, I have experience in this
<FromGitter> <asterite> The compiler needed Markdown so I made it public
<FromGitter> <asterite> but it's super complex and incomplete and a huge discussion spawned
<RX14> Markdown is super complex
<RX14> UTF-16 is not
<RX14> that's why
<FromGitter> <asterite> there's Levenshtein too but the interface is ugly, so it's considered for removal
<FromGitter> <asterite> and many other things
<FromGitter> <asterite> well, with UTF-16 you could get uint8* or uint16*
<Yxhuvud> levenstein is used for those lovely error messages though, right?
<RX14> Yxhuvud, yes but it should be internal to the compiler
<RX14> not in the stdlib
<FromGitter> <asterite> well, this utf-16 thing could be internal to the stdlib
<RX14> @asterite UTF-16 is always wchar*
<RX14> UTF-16LE is always char*
<RX14> UTF-16BE is always char*
<FromGitter> <asterite> well, I guess we can leave it then as to_utf16
<FromGitter> <asterite> in any case it's obvious from the signature that it's different from `encode`
<FromGitter> <asterite> I'll make the change
<RX14> if String#encode("UTF-16") with no endianness specified works
<RX14> then *that's* the problem
<RX14> that's confusing
<RX14> (imo)
<Papierkorb> My biggest gripe is it using a string over an enum constant or something
<RX14> yep Papierkorb
<Papierkorb> If it was, the user would type Encoding::UTF16, and the compiler would did you mean the LE and BE variant. How cool's that?
<RX14> indeed
<Yxhuvud> It is nice to be able to automatically output the platform default too, but perhaps it isn't a good default?
<FromGitter> <asterite> done
<FromGitter> <asterite> well, we can always implement all those encodings in crystal
<FromGitter> <asterite> instead of using iconv
mark_66 has quit [Remote host closed the connection]
<RX14> yeah
<RX14> I was considering doing that
<RX14> or putting it on my roadmap
<RX14> but somehow the thought of implementing 40 encoding schemes doesn't exite me
<Papierkorb> Should go through a #convert esque method in that case taking the encoding type as argument, to not spam String with billions of #to_kjs methods
<RX14> well #convert is to get a Slice of bytes back
<RX14> or idk
<RX14> not all encodings are to bytes Papierkorb
<RX14> so there would have to be some kind of utility to deal with that if we did that
<Papierkorb> But that's what you usually end up wanting
<RX14> not for UTF16
<RX14> in this case
<FromGitter> <bew> Maybe we should go the enum road, do our implementation of some encoding, and fallback to iconv for the others?
<RX14> @bew yup
<RX14> and make iconv optional
<RX14> manually required
<RX14> all it does is add more encodings
snsei has joined #crystal-lang
<Papierkorb> Most people, if they even need it, probably will only need utf8/16, maybe ascii and latin1. windows devs may be interested in the gazillion codepages.
<Papierkorb> everything beyond that can happily live in iconv. Or has anyone here used kjs at some point?
<FromGitter> <asterite> i think in japan they have an encoding they use all the time
<FromGitter> <asterite> well, in china it might be the same (not the same encoding, though :-P)
<Papierkorb> For legacy applications, yes. No idea about Japan, but the German codepage is basically dead in Germany
<Papierkorb> Other EU countries are probably similar
<RX14> iirc it's shift-jis @asterite
<RX14> and it's still fairly popular
<FromGitter> <asterite> yeah
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
<Yxhuvud> same in sweden, anything not utf8 is just for interacting with legacy stuff.
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
<crystal-gh> [crystal] RX14 pushed 1 new commit to master: https://git.io/vNUs5
<crystal-gh> crystal/master 5bdd279 Benoit de Chezelles: Remove `bin/crystal` usage for init tool specs (#5520)
<crystal-gh> [crystal] asterite opened pull request #5542: Include UUID in docs (master...bug/5478-uuid-docs) https://git.io/vNUsp
flaviodesousa has joined #crystal-lang
<crystal-gh> [crystal] RX14 closed pull request #5541: Add String#to_utf16 and String.from_utf16 (master...feature/utf16) https://git.io/vNUU2
rohitpaulk has quit [Ping timeout: 268 seconds]
<travis-ci> crystal-lang/crystal#5bdd279 (master - Remove `bin/crystal` usage for init tool specs (#5520)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325526017
<DeBot> https://github.com/crystal-lang/crystal/pull/5520 (Remove `bin/crystal` usage for init tool specs)
early has quit [Quit: Leaving]
early has joined #crystal-lang
snsei has joined #crystal-lang
flaviodesousa has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<travis-ci> crystal-lang/crystal#50b563c (master - Add String#to_utf16 and String.from_utf16 (#5541)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325529177
<DeBot> https://github.com/crystal-lang/crystal/pull/5541 (Add String#to_utf16 and String.from_utf16)
snsei has quit [Remote host closed the connection]
<crystal-gh> [crystal] RX14 closed pull request #5486: Add explanatory message to linker command output on link failure (master...feature/linker-errors) https://git.io/vbAJo
<FromGitter> <marksiemers> Just spend 10 minutes figuring out why `brew upgrade crystal` wasn't working... ⏎ For those of you who don't use brew - the `crystal` formula is something totally different.
<travis-ci> crystal-lang/crystal#3d7320d (master - Add explanatory message to linker command output on link failure (#5486)): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325546306
<DeBot> https://github.com/crystal-lang/crystal/pull/5486 (Add explanatory message to linker command output on link failure)
greengriminal has quit [Quit: Leaving]
crse[m] has quit [Ping timeout: 252 seconds]
cptaffe has quit [Ping timeout: 255 seconds]
zaiste has joined #crystal-lang
zaiste has quit [Client Quit]
zaiste has joined #crystal-lang
crse[m] has joined #crystal-lang
cptaffe has joined #crystal-lang
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 248 seconds]
alex`` has joined #crystal-lang
hightower3 has joined #crystal-lang
ua has quit [Excess Flood]
ua has joined #crystal-lang
zaiste has quit [Quit: Textual IRC Client: www.textualapp.com]
<jokke> hi
<jokke> can i somehow get the pointer of an object?
<RX14> pointerof(obj)
<jokke> ah
<RX14> but thats very unsafe
<jokke> yeah
<RX14> make sure you know what you're doing
<jokke> i need it for a c lib
<RX14> hmm
<jokke> i can't pass clojures as c callbacks but there's a "user_data" i can set. I'll set that as the pointer to the instance which i'll then dereference in the callback
<RX14> cool
<jokke> oh
<jokke> can't take pointerof(self)
<jokke> :(
<RX14> this = self
<RX14> pointerof(this)
<RX14> lel
<jokke> oh!
<jokke> lol
<jokke> hmm
<jokke> still no
<jokke> can't take address of this
<RX14> huh
<RX14> weird
<RX14> jokke, what is `self`
<RX14> is it a struct?
<jokke> a class
<jokke> or a class instance
<jokke> another thing: i know i can turn methods into procs by prepending with ->. This doesn't seem to work for methods of other classes like ->foo.bar.baz
<jokke> is there a workaround?
<wmoxam> jokke: you need to box it
<jokke> box it?
<jokke> wmoxam: nice!
<FromGitter> <asterite> you can: x = foo.bar; ->x.baz
<FromGitter> <asterite> just one single dot allowed there
<FromGitter> <asterite> just a silly limitation
<jokke> oh
<jokke> wmoxam: box is very cool! much cleaner!
<wmoxam> 👍🏻
<crystal-gh> [crystal] asterite pushed 1 new commit to master: https://git.io/vNUwf
<crystal-gh> crystal/master 2b60437 Serdar Dogruyol: Remove LLVM update comments
<FromGitter> <paulcsmith> Hmm, a few people are running into an issue that I can figure out: https://github.com/luckyframework/lucky_cli/issues/147 I've tried uninstalling and reinstall both lucky and crystal and both work for me on macOS. Has anyone seen that error before or have any ideas where to start?
<FromGitter> <paulcsmith> Looks like it is coming from here: https://github.com/crystal-lang/crystal/blob/3a5fde09879fb2624a058421a9c6937336c65e5d/src/process.cr#L210 but I can't see that in the stacktraces and it seems strange a Process error would be called when requiring
<FromGitter> <asterite> I saw that error yesterday while working on something
<FromGitter> <asterite> I have no idea why it happened, though
<FromGitter> <asterite> and I'm on mac
<RX14> needs to get ex.backtrace printed
<RX14> so it can be tracked down
<RX14> i'm guessing it's some constant initialization
<FromGitter> <asterite> it happens if you do something like `Process.run("foo qux", ["bar", "baz"], shell: true)`
<FromGitter> <asterite> so there's a space in the command, plus commands, plus shell: true
<FromGitter> <asterite> maybe it happens if there's a space in the path
<FromGitter> <asterite> and you run a macro run
<FromGitter> <asterite> or in the cache path... i don't know
<FromGitter> <asterite> so it probably happens if the compiler/standard-library are installed in a path that has spaces
<RX14> should be easy enough to find given a backtrace
<FromGitter> <asterite> and you use stuff like ECR
<RX14> and then we fix it
<FromGitter> <asterite> which uses macro run with a file in that path, which will have spaces
<RX14> hmm
<RX14> shouldn't we just be quoting/escaping then?
<FromGitter> <asterite> the ' ' check is probably wrong... the full executable...
<FromGitter> <asterite> yes, that's what I was going to say
<RX14> well actually
<FromGitter> <tommyschaefer> Hi there! I decided to try Lucky out today and ran into this issue when running Lucky's `bin/setup` script in `/Users/tommyschaefer/Dropbox (Work)/code`, when I run it in `/Users/tommyschaefer` it works though
<RX14> we need both
<FromGitter> <asterite> we should put the full executable in double quotes, I guess
<FromGitter> <asterite> well, there's a space in that path :)
<RX14> if it's an executable you want quoting behaviour with shell: true
<RX14> if it's a command sequence you don't
<FromGitter> <tommyschaefer> Seems like the space in the path caused the issue for me, anyway :)
<RX14> you actually want a Process.shell_escape
<RX14> and then piece the command together yourself
<FromGitter> <asterite> we don't have shell_escape
<RX14> well I think either we need it or we need to stop passing shell: true somewhere
<RX14> thing is shell escapes don't fix spaces
<RX14> it's just "\ "
<RX14> which still contains a space
<RX14> or "path/ to /executable"
<RX14> which contains spaces
<FromGitter> <paulcsmith> @tommyschaefer Awesome. So if you changed the directory (renamed the folder to stop using spaces) it worked?
<RX14> looks like spaces are the issue
<FromGitter> <paulcsmith> If so I'll leave a comment on the issue that the other dev opened so he can get started in the mean time
<FromGitter> <asterite> I don't know why we are passing `shell: true` there, makes no sense
<RX14> yeah
<FromGitter> <asterite> the command is the executable produced by crystal
<FromGitter> <tommyschaefer> @paulcsmith That's correct! :)
ua_ has joined #crystal-lang
ua has quit [Ping timeout: 265 seconds]
<FromGitter> <asterite> RX14: there's another `shell: true` here: https://github.com/crystal-lang/crystal/blob/master/src/compiler/crystal/compiler.cr#L367 . Do we need it?
<RX14> yes
<RX14> we use "${@}"
<RX14> manually
<RX14> in the linker command
<RX14> well
<RX14> it'll break on windows @asterite
<RX14> but thats not... really a problem
<RX14> yet
<RX14> until we cross-compile the compiler
<RX14> and thats a ways off
<FromGitter> <jwaldrip> @asterite is Manas in office today?
<FromGitter> <jwaldrip> or rather you or any of the core members?
<RX14> and all that requires is making Process know that %* is the same as "${@}" on sh
<FromGitter> <jwaldrip> Im having a gift dropped off.
<FromGitter> <asterite> :o
<FromGitter> <asterite> I guess they are in the office, yes
<FromGitter> <asterite> I can tell them if you want
<livcd> is there any list of what is required to be implemented on windows ?
<FromGitter> <jwaldrip> Are you not in that office too?
<FromGitter> <asterite> Mmm... no. I don't work at Manas anymore
<livcd> oh ok i guess lots of it hides behind the System
<FromGitter> <jwaldrip> Bummer @asterite... I hope it was a good separation.
<FromGitter> <asterite> Of course! Next week we'll play soccer together :-D
<livcd> i saw some people left Manas
<livcd> or were forced to leave ?
<FromGitter> <asterite> just personal decision
<FromGitter> <asterite> Manas is an excellent workplace
<FromGitter> <paulcsmith> Eres de boca o de river? Soy de River (better colors 😄 )
<FromGitter> <asterite> :D
<FromGitter> <asterite> Bueno, en mi familia son de Atlanta. Mi mujer es de Boca :-P
<FromGitter> <jwaldrip> Well anyway @asterite, let them know I am having something dropped by. Who should I ask for?
<FromGitter> <paulcsmith> Jaja genial. Disfrute del partido
<FromGitter> <asterite> Gracias! Muy buen español :-)
<FromGitter> <jwaldrip> One of my employees works across the street, and is dropping off a bottle of vino.
<FromGitter> <asterite> Well, I work two blocks away from Manas
<FromGitter> <paulcsmith> Oh that's awesome!
<FromGitter> <asterite> so I could pick up that bottle...
<FromGitter> <asterite> and then of course send it to Manas
<FromGitter> <asterite> (evil face)
<RX14> hahaha
<livcd> asterite: who do you work for ? :D
<FromGitter> <jwaldrip> lol @asterite
<FromGitter> <paulcsmith> Gracias Ary! Vivi in Argnetina por dos anos. Extrano el asado (y milanesa)
<FromGitter> <paulcsmith> @jwaldrip Is your team/co using Crystal in production, or just playing around with it for now?
<FromGitter> <jwaldrip> Well, not for the application itself.
<FromGitter> <jwaldrip> but we use that every single day for deploying to kubernetes.
<FromGitter> <jwaldrip> Written in Crystal
<livcd> that's interesting
<FromGitter> <jwaldrip> If we were predominately a ruby shop, I would introduce it.
<FromGitter> <paulcsmith> That's awesome. I enjoy Crystal for CLIs a lot. If it can include everything like Go it will be just about perfect.
<livcd> actually i saw some interesting stuff written in Crystal
<FromGitter> <paulcsmith> Even still, it's awesome
<travis-ci> crystal-lang/crystal#2b60437 (master - Remove LLVM update comments): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325583559
<livcd> like...kernel exploits..
<FromGitter> <jwaldrip> If you like crystal for CLIs check out Admiral
<FromGitter> <paulcsmith> Nice. Been looking at something like that for Lucky's CLI
<FromGitter> <paulcsmith> Was going to try mosop/cli but it isn't really being maintained. Admiral might be a good bet
<livcd> Crystal still relies on some shared libs to be present on the system right ?
<RX14> yep
<RX14> the state of CLI DSLs in crystal is a bit too magic imho
<livcd> will that change or is it a too big of a problem to tackle ?
<RX14> they're extremely macro-heavy
<RX14> livcd, unlikely to change significantly
<RX14> we'll probably drop libgc
<FromGitter> <asterite> :-o
<RX14> but openssl, libc, pcre we'll probably always have
<livcd> ah so we cant expect a selfcontained binaries like Go,Nim,CoreRT ?
<RX14> @asterite yeah ysbaddaden has some interesting repositories
<RX14> you should check them out
<FromGitter> <jwaldrip> livcd, RX14: Never say never, its just not a priority right now.
<RX14> he messaged on the manas slack that he got his immix gc working
<FromGitter> <asterite> I saw them. But from that to dropping gc there's a long road
<RX14> well I didn't mean soon
<RX14> i meant like
<RX14> we'll probably drop libgc eventually
<FromGitter> <asterite> i guess so
<RX14> which I think is very likely
<FromGitter> <jwaldrip> RX14, admiral is macro heavy :-(
<RX14> yeah
<FromGitter> <asterite> could we statically link at least the libs that the std needs? like at least pcre
<RX14> I dislike it
<livcd> jwaldrip: i mean i know that anything is possible but I guess we are constrained by the manpower and $$$ here :)
<FromGitter> <paulcsmith> Macro DSL in CLI can be nice for defining options and flags in a type safe way. Not sure if there is a better way to do that
<FromGitter> <jwaldrip> RX14, thanks i'll tell the author.
<RX14> @asterite everything but glibc and openssl plays pretty well with static
<RX14> and we can always -Wl,--dynamic it
<FromGitter> <asterite> yeah, openssl is complex
<RX14> i'd really love to drop it
<RX14> I have so many things on my crystal bucket list...
<RX14> PR in a load of qol fixes on IO
<RX14> replace most of File.xxx and Dir.xxx methods with a Path class
<RX14> replace OpenSSL with TLS, Digest, etc modules
<RX14> and have easilly switchable implementations
rohitpaulk has joined #crystal-lang
<RX14> the last two need major API design work
<RX14> which will probably turn into a long discussion...
<FromGitter> <asterite> well, small issues already turn into long discussions, so... :-)
<FromGitter> <asterite> but yes, there's so many things to do (or possible to improve)
<RX14> yeah
<livcd> i saw on reddit that a guy working on Truffle/SubstrateVM/Graal was interested in benchmarking against Crystal
<FromGitter> <paulcsmith> Switching out OpenSSL would be awesome. I spent a few days trying to figure out how to safely connect to google over SLL :S
<FromGitter> <paulcsmith> But I realize that's a ton of work too, and probably not the highest priority
<FromGitter> <asterite> livcd: it was done a long time ago too: https://github.com/smarr/are-we-fast-yet
<livcd> oh
<FromGitter> <asterite> truffle/graal look good, but iirc they need a lot of memory to be able to optimize stuff, but otherwise were excellent
rohitpaulk has quit [Ping timeout: 268 seconds]
<livcd> asterite: you mean even TruffleRuby running on SVM ?
<RX14> they should benchmark again
<RX14> would be nice to see results
<FromGitter> <asterite> i don't know, maybe the whole combo
<livcd> i think SVM has a smaller memory footprint and starts really fast
<livcd> need to check it out
<FromGitter> <asterite> looks promising
cyberarm_ has quit [Ping timeout: 256 seconds]
<FromGitter> <jwaldrip> @paulcsmith Did you ever get a change to see if Oak would work with lucky?
<FromGitter> <bcardiff> @asterite did you already got the present from @jwaldrip ? Or I shall intercede ;-) I am at the office for a little longer. Not too much thou. Thanks @jwaldrip :-) !
<FromGitter> <jwaldrip> @bcardiff I am asking Facundo now... he dropped offline.
<FromGitter> <paulcsmith> @jwaldrip I did not. I've got a few other things I need to do first, but I'm definitely going to try it out when I get around to supporting globs in routes 👍
cyberarm has joined #crystal-lang
<FromGitter> <jwaldrip> Cool. I have started on the next piece of Obsidian... probably going to be in the depths for a few more weeks on it.
<FromGitter> <paulcsmith> Nice! I didn't notice you were creating a framework. What are your goals for it?
<FromGitter> <jwaldrip> Good question... rails inspired but as modular as possible.
<FromGitter> <jwaldrip> I couldnt find a router that I was pleased with, so I wrote Orion.
<FromGitter> <jwaldrip> I like what I am seeing the the various ORM's but want to take a stab at one for obsidian as well.
<FromGitter> <jwaldrip> like rails, a pluggable generators framework.
<livcd> guys these names :-)...googlin crystal orion gave me pictures of tractor
<FromGitter> <jwaldrip> oh wow
<FromGitter> <jwaldrip> thats funny
<FromGitter> <jwaldrip> https://github.com/obsidian/orion
<FromGitter> <jwaldrip> There is a theme to the naming for the components in the obsidian project... dumb as it may be
<FromGitter> <jwaldrip> everything starts with an O
<RX14> now this framework readme starts off right
<RX14> no "install this CLI tool"
<RX14> no project generator
<RX14> just add this shard and require it
<livcd> no worries i guess we are running out of good names anyway
<FromGitter> <jwaldrip> RX14, obsidian itself will be a CLI with generators... but its not the only way
<FromGitter> <jwaldrip> Orion is just the routing component.
<RX14> as long as the generator is strictly there for helping enforce structure it's fine
<RX14> but I really dislike frameworks that just launch into install this and run that
<FromGitter> <jwaldrip> Well thank you then :-)
<RX14> I should be able to try out a framework in a single file
<FromGitter> <jwaldrip> Glad I can do it right
<FromGitter> <jwaldrip> You can with orion
<RX14> not have to generate 30 of them tog et started
<RX14> which is what amber does
<FromGitter> <jwaldrip> its as easy as `kemal` when it comes to trying it.
<RX14> thanks
<RX14> few macros as well
<RX14> which is always a very good sign
<FromGitter> <jwaldrip> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a4fe9ab0505ad8b45bc79f0]
<RX14> I wish you luck
<RX14> i hope you have fun building obsidian
<FromGitter> <jwaldrip> Ditto, feel free to contribute. :-)
<RX14> hah
<FromGitter> <jwaldrip> I hope people will find it to be something worth using.
<RX14> i have enough on my hands...
<FromGitter> <jwaldrip> True
<RX14> with crystal and university and loads of other stuff
<FromGitter> <jwaldrip> Well one day you will graduate. :-)
<RX14> hopefully
<FromGitter> <jwaldrip> certainly
<RX14> i could drop out if I get a really good job offer :)
<RX14> unlikely though
<Vexatos> @jwaldrip I am compelled to notify you that obsidian is not a crystal but a glass
<FromGitter> <jwaldrip> I know
<FromGitter> <jwaldrip> it cools to quickly to crystalize
<FromGitter> <jwaldrip> I just really like the name.
<FromGitter> <jwaldrip> amber is also not a crystal
<Vexatos> indeed
<livcd> i like "nuumite"
<Vexatos> It feels wrong
<Vexatos> Nuummite looks really pretty
<Vexatos> black minerals generally do
<livcd> what about marmite Vexatos ?
<Vexatos> That's not a mineral, and subjectively tastes worse than most
<Vexatos> Although I haven't eaten many rocks lately
<FromGitter> <jwaldrip> Does crystal have a defacto BDFL?
<RX14> no
cyberarm has quit [Ping timeout: 264 seconds]
cyberarm has joined #crystal-lang
<FromGitter> <bew> Ary was for a long time, by not anymore
rohitpaulk has joined #crystal-lang
<livcd> nim c -r "/Users/mscasny/Documents/Test/hello.nim"
<livcd> oops wrong copy paste
rohitpaulk has quit [Ping timeout: 248 seconds]
<ua_> ban for shilling
cptaffe is now known as cptaffe1
<crystal-gh> [crystal] asterite opened pull request #5543: Compiler: remove extra `shell` argument when executing macro run (master...bug/macro-run-extra-shell) https://git.io/vNU9N
<crystal-gh> [crystal] asterite closed pull request #5542: Include UUID in docs (master...bug/5478-uuid-docs) https://git.io/vNUsp
<crystal-gh> [crystal] asterite opened pull request #5544: CLI: remove deps command (master...refactor/remove-crystal-deps) https://git.io/vNUHO
jwaldrip has joined #crystal-lang
<travis-ci> crystal-lang/crystal#a06bf0f (master - Include UUID in docs): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325626136
alex`` has quit [Ping timeout: 265 seconds]
<travis-ci> crystal-lang/crystal#e1680dd (release/0.24 - Include UUID in docs): The build passed. https://travis-ci.org/crystal-lang/crystal/builds/325633787
<crystal-gh> [crystal] Sija opened pull request #5545: Use (U)Int128 literals if possible (master...int-128-followup) https://git.io/vNUND
<FromGitter> <marksiemers> @Vexatos - Amber and Obsidan aren't scientifically or molecularly crystals. They are crystals in the hippie world of "healing crystals" : http://www.universalonehealing.com/healing-resource/crystal-healing/crystal-list/ ⏎ Just like tomatoes are considered a fruit botanically, but considered a vegetable both legally (in the US) and culinarily.
rohitpaulk has joined #crystal-lang
<RX14> mythology is hardly the spirit of crystal or computer science
<Vexatos> That's like comparing astrology to astonomy :P
<Vexatos> astronomy*
<jwaldrip> lol
rohitpaulk has quit [Ping timeout: 260 seconds]
<FromGitter> <marksiemers> Sure, I just think with shard names, if people stick to the strictest definition of crystals, we'll run out too quickly.
<RX14> or just
<RX14> be more creative than naming after a limited pool of "crystals"?
<crystal-gh> [crystal] Sija opened pull request #5546: Remove TODOs related to Crystal 0.22 (master...remove-todos-after-crystal-0.22) https://git.io/vNUpm
<FromGitter> <marksiemers> Starting with a list of names helps with one of the two hardest things in software development. ⏎ And sometimes it works out - "garnet-spec" was picked cause garnet is usually red but sometimes green. ⏎ That said, I agree, a little more creativity in naming would help a lot.
<FromGitter> <jwaldrip> I named one of my Crystal project's Oak.
<FromGitter> <jwaldrip> Because it's and implementation of a Radix Tree...
<FromGitter> <jwaldrip> (drums and high hat)
<FromGitter> <drujensen> haha
ashirase has quit [Ping timeout: 264 seconds]
<Yxhuvud> I named my parser cabbage because it is an earley parser and it kind of have lots of potentially overlapping parses.
<Vexatos> RX14, the list of crystalline minerals is very, very long
ashirase has joined #crystal-lang
<Vexatos> In fact, I could just go and synthesize a new type of crystal if I wanted to
<FromGitter> <marksiemers> Were any other names considered before `shards` was chosen?
<FromGitter> <jwaldrip> I would like to point out that no one has started a crystal library project called diamond yet.
<FromGitter> <marksiemers> This is very loosely related, but this convo reminded of this: https://twitter.com/daisyowl/status/841802094361235456
<FromGitter> <marksiemers> @jwaldrip - Maybe people are afraid of the high expectations.
<FromGitter> <marksiemers> It would be funny if you had a shard that hoarded lots of information (for some reason) and called it `diamond` or `debeers`
<FromGitter> <jwaldrip> ;p;
<FromGitter> <marksiemers> Have it allocate enough memory that your program has to use swap, so the cost of any processing is always artificially high.
<Vexatos> could call it Lonsdalelite
<Vexatos> or lonsdaleite
<Vexatos> however you write it in English