ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.23.1 | Fund Crystal's development: http://is.gd/X7PRtI | GH: https://github.com/crystal-lang/crystal | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Gitter: https://gitter.im/crystal-lang/crystal
<Papierkorb> ... libunwind should really do a few more checks. I just got it to go OOM by itself
rohitpaulk has joined #crystal-lang
<crystal-gh> [crystal] straight-shoota opened pull request #5422: Implement Crystal::System::Time for win32 (master...jm-windows-time) https://git.io/vbyTC
<RX14> :O
<RX14> yay
rohitpaulk has quit [Ping timeout: 240 seconds]
greengriminal has joined #crystal-lang
<oprypin> again i'm wondering, how does one do that at the moment, does windows work already?
<Papierkorb> Yes
<Papierkorb> Great, now that we've that covered, next question please.
<oprypin> Papierkorb, hm why do you need type id?
<Papierkorb> Because I need to know later on when the user wants to get the value out again what I actually have there
<oprypin> Papierkorb, do you plan to allow any crystal type as QVariant or what
<Papierkorb> Correct
<oprypin> thaaat's crazy
bew has joined #crystal-lang
<RX14> oprypin, didn't you know we merged extremely basic windows support into master?
<oprypin> i knew that but apparently it's not extremely extremely basic
<RX14> it can print hello world
<RX14> what more do you need to be able to print the current time
<bew> Heyy, after some hard time recovering this account it works ;)
<RX14> and do checks on monotonic time
<RX14> and basically run Time specs
<oprypin> RX14, where are instructions to compile it?
<oprypin> cuz you need to like bootstrap and get libs
<RX14> yeah
<RX14> it's spread out in the old monolithic windows PR
<oprypin> do you still need a hacked libgc?
<RX14> I linked it in a comment how @txe described how to compile the libs
<RX14> oprypin, yes but it's adding 2 files
<oprypin> this is not spread out
<RX14> after you have the libs, (and obviously installed msvc)
<RX14> you just open x64 msvc prompt
<oprypin> you can actually link this stuff when people ask, from what you're saying it may not be outdated
<RX14> and then copy the linker command the compiler spits at you
<oprypin> jjust need to switch the repo to the main one
<RX14> --cross-compile --target x86_64-pc-windows-msvc
<RX14> and you need the pc bit
<oprypin> yeah i've got that all at the link
<RX14> otherwise llvm decides you get an ELF
<RX14> oprypin, i'll probably write something in the wiki about it
<RX14> or i'm not sure where else
<RX14> but i need to sleep now
bew has quit [Quit: WeeChat 2.0]
<oprypin> let's gooooo
greengriminal has quit [Quit: This computer has gone to sleep]
greengriminal has joined #crystal-lang
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 256 seconds]
yllumina_ has joined #crystal-lang
ylluminate has quit [Ping timeout: 268 seconds]
greengriminal has quit [Quit: This computer has gone to sleep]
sz0 has quit [Quit: Connection closed for inactivity]
dtcristo1 has joined #crystal-lang
hightower2 has quit [*.net *.split]
ashirase has quit [*.net *.split]
bazaar has quit [*.net *.split]
dtcristo has quit [*.net *.split]
raz has quit [*.net *.split]
jeromegn has quit [*.net *.split]
nathanj has quit [*.net *.split]
DeBot_ has quit [*.net *.split]
raz has joined #crystal-lang
raz has quit [Changing host]
raz has joined #crystal-lang
hightower2 has joined #crystal-lang
bazaar_ has joined #crystal-lang
ashirase has joined #crystal-lang
nathanj has joined #crystal-lang
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 264 seconds]
<FromGitter> <achou11> Does anyone know that this means? I'm assuming it had something to do with with an OSX update on my computer: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5a3b1fc35355812e57fe3d63]
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 240 seconds]
jeromegn has joined #crystal-lang
sz0 has joined #crystal-lang
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 264 seconds]
swav has quit [Ping timeout: 248 seconds]
swav has joined #crystal-lang
lvmbdv has quit [Ping timeout: 255 seconds]
lvmbdv has joined #crystal-lang
rohitpaulk has joined #crystal-lang
ashirase has quit [Ping timeout: 264 seconds]
ashirase has joined #crystal-lang
yllumina_ has quit [Quit: Textual IRC Client: www.textualapp.com]
sz0 has quit [Quit: Connection closed for inactivity]
jeromegn has quit [Ping timeout: 252 seconds]
maxpowa has quit [*.net *.split]
andrewzah has quit [Ping timeout: 260 seconds]
Vexatoast has quit [Ping timeout: 260 seconds]
Vexatos has joined #crystal-lang
andrewzah has joined #crystal-lang
maxpowa has joined #crystal-lang
Vexatos has quit [Ping timeout: 240 seconds]
Vexatos has joined #crystal-lang
maxpowa has quit [*.net *.split]
<oprypin> achou11, try reinstalling brew package
alex`` has joined #crystal-lang
<FromGitter> <achou11> Still doesn’t work when I uninstall and reinstall crystal-lang in Homebrew :/
<FromGitter> <achou11> @oprypin
<oprypin> do that for the mentioned lib then
maxpowa has joined #crystal-lang
<FromGitter> <bararchy> How would I do Matrix multiplaction in Crystal? Ruby has it's own Matrix class which Crystal lacks, is there any shard or any way to easily do it?
<FromGitter> <bararchy> Just found https://github.com/Nephos/matrix_extend
<FromGitter> <bararchy> did Crystal had Matrix and then lost it?
<oprypin> yes
<oprypin> exilor/matrix iirc
<oprypin> was previously part of Crystal
<oprypin> @bararchy
<FromGitter> <bararchy> Oh, why was it put out?
<FromGitter> <bararchy> it seems like kinda useful thing
<oprypin> git log src/matrix.cr
<oprypin> not as frequently useful as other things
<oprypin> what are you trying to do?
<oprypin> hash of tuples or array of arrays can work nicely
<FromGitter> <bararchy> I need Matrix multiplaction for a Neural Network implamentation :)
<oprypin> ok nevermind then
flaviodesousa has joined #crystal-lang
happycoder has joined #crystal-lang
happycoder has quit [Client Quit]
happycoder has joined #crystal-lang
happycoder2 has joined #crystal-lang
claudiuinberlin has joined #crystal-lang
jeromegn has joined #crystal-lang
happycoder2 has quit [Ping timeout: 248 seconds]
happycoder has quit [Ping timeout: 252 seconds]
mark_66 has joined #crystal-lang
<FromGitter> <simenge> Does anyone have any experience with Crystal on Windows (Bash on Ubuntu on Windows/Linux subsystem)? I can compile stuff just fine, but I run into problems with dependencies, shards and specs. I assume it has something to do with bash env variables, but I don't have a clue where to even begin to address it.
<FromGitter> <bararchy> Does Hash have some kind of #.uniq! ability ?
<crystal-gh> [crystal] trofi opened pull request #5423: Makefile: allow passing through LDFLAGS to final link phase (master...master) https://git.io/vby1B
<FromGitter> <straight-shoota> @simenge Yes, works like a charm
<crystal-gh> [crystal] MakeNowJust opened pull request #5424: Fix to work formatting `foo.[bar] = baz` (master...fix/crystal-format/work-dot-bracket-equal) https://git.io/vbyDs
greengriminal has joined #crystal-lang
<crystal-gh> [crystal] MakeNowJust opened pull request #5425: Fix a tiny typo in comment (master...fix/crystal/type-in-comment) https://git.io/vbyDg
<FromGitter> <bew> @RX14 I did the same "mistake" of commenting on the commit instead of the pr (on the phone), it's when you click on a specific commit message in the pr's conversation view, you go on the commit page (and can comment here), to comment on the pr's diff you need to go on the "Changes" tab, and comment there..
<RX14> yeah I realised after I did it
<FromGitter> <bew> Not sure what the "correct" way to do it, now that I think about it, probably none, let's just be careful ˆˆ
<FromGitter> <bew> Are on IRC on your phone? If yes, which client are you using?
<Yxhuvud> bararchy: what would such a method do?
<FromGitter> <bararchy> well, nothing good now that I think about it becasue Hash already overwrite former similar entries
<FromGitter> <bararchy> XD
<FromGitter> <bararchy> ignore what I asked lol, brain fart time
<FromGitter> <bew> Ty RX14 i'll check it ou later
<FromGitter> <bew> out*
<RX14> it's by far the best IRC client for android
<RX14> for years all the irc clients have been rubbish
<RX14> and then this open source one comes along and blows them all out of the water
<RX14> It's not well known - I only know if it through a friend who is friends with the water
<RX14> with the author*
<RX14> ...
<FromGitter> <bew> ˆˆ ok cool :)
<Papierkorb> > (Unreleased)
<RX14> yeah Papierkorb but it's by far more stable and well designed than any released app
<Papierkorb> That's a weirdly chosen term by google for something that looks released, but in beta
happycoder has joined #crystal-lang
happycoder has quit [Ping timeout: 252 seconds]
happycoder has joined #crystal-lang
happycoder has quit [Ping timeout: 240 seconds]
<FromGitter> <mverzilli> @bararchy you can use this: https://github.com/mverzilli/crystalla/blob/master/spec/matrix_spec.cr#L235
<FromGitter> <mverzilli> it uses BLAS under the hood and performs quite well: https://github.com/mverzilli/crystalla/blob/master/src/crystalla/blas_helper.cr#L2
happycoder has joined #crystal-lang
danielpclark has joined #crystal-lang
Ppz has joined #crystal-lang
Ppz has quit [Client Quit]
bew has joined #crystal-lang
<bew> The motd on the irc channel still mention 0.23.1 as the current release
bew has quit []
bew has joined #crystal-lang
<RX14> yes
<RX14> because technically it is
<bew> Ok you're waiting the full release of bonaries and stuff I suppose then
bew has quit [Ping timeout: 260 seconds]
happycoder has quit [Read error: Connection reset by peer]
happycoder has joined #crystal-lang
happycoder has quit [Ping timeout: 264 seconds]
<RX14> yes
<RX14> hopefully today
<RX14> hopefully...
<FromGitter> <bararchy> has someone started working on WebDriver in Crystal? (https://w3c.github.io/webdriver/webdriver-spec.html#protocol)
<RX14> google it
<RX14> it's usually the best way to find crystal libraries
<Papierkorb> Why doesn't sizeof() work in macros >_>
<RX14> which has a note "WARNING: this shard initialy implemented the now obsolete JsonWireProtocol, but should be compatible with the W3C Webdriver spec."
<FromGitter> <bararchy> Just found it with you, thanks RX14
<RX14> Papierkorb, because macros run before you can possibly now the size of things?
<Papierkorb> sizeof(Void*) should be well known
<RX14> yes there are some cases where it's possible
<RX14> theoretically
<RX14> but that doesn't mean we can allow it in all cases
<RX14> why do you need that in a macro anyway Papierkorb ?
<Papierkorb> cause size notation for lib unions is broken and doesn't allow for a constant right under it scope-wise containing that
<Papierkorb> Without a macro
<RX14> what do you mean size notation?
<Papierkorb> >> A = sizeof(Void*); lib B; union C; f : UInt8[A]; end; end;
<RX14> doesn't UInt8[sizeof(Void*)] work?
<Papierkorb> > BUG: unknown node in TypeLookup: sizeof(::Pointer(Void)) SizeOf
<Papierkorb> I take that as "no"
<RX14> oops
<RX14> Papierkorb, you'll just have to use bits32 and bits64 to define constants as a workaround
<RX14> and avoid sizeof entirely
<Papierkorb> Interestingly enough, it can't access constants from a sibling module/class either, but if the constant is in a parent scope, that's fine
<Yxhuvud> papierkorb: do you need that actual size in macro time or could you wrap it in a regular method that you use in the macro?
<RX14> Papierkorb, I'm not sure it's possible that the size of one structure can depend on a sizeof call
<RX14> it makes me think of all the edge cases
<Papierkorb> RX14: Sure it's possible for most types. You can restrict in lib on basic types, and those have well known sizes
<RX14> Papierkorb, did you try using :: to specify the full constant path
<Papierkorb> It's not like I want a sizeof(MyArbitraryType)
<RX14> Papierkorb, yeah sizeof() for basic scalars is definitely doable
<RX14> we just need to encode that rule
<Papierkorb> Oh and allowing constant calculations as part of integer generic values would be great
<RX14> Papierkorb, i suggest you open an issue
<RX14> allow sizeof() on simple scalars inside type definitions and macros
<RX14> and wherever they're not allowed
Guest19095 has joined #crystal-lang
happycoder has joined #crystal-lang
alex`` has quit [Ping timeout: 246 seconds]
<Guest19095> so quiet in crystal land
alex`` has joined #crystal-lang
<Papierkorb> People are coding stuff .. or buying stuff
<Guest19095> haha, i have some story
<Guest19095> i have been develop some large app
<Guest19095> with crystal
<Guest19095> and i was sick on middle of my app development
<Guest19095> and there is nobody can doing stuff with crystal
<FromGitter> <simenge> @straight-shoota, how did you manage to get shards and spec to work? When I try to install dependencies, "require" can't find them, and when I try to run spec, I get the error message /usr/bin/ld: cannot find -lxml2". I've tried sudo apt-get install libxml2, but still, so it is present on the system, but ld cannot find it
<FromGitter> <straight-shoota> Have you followed this guide? https://crystal-lang.org/docs/installation/on_bash_on_ubuntu_on_windows.html
<FromGitter> <straight-shoota> and installed the required libraries? https://github.com/crystal-lang/crystal/wiki/All-required-libraries
<FromGitter> <straight-shoota> You need `libxml2-dev`, not just `libxml2`
<FromGitter> <simenge> I believe I followed all the steps - like I said, I can compile just fine, I just can't get shards or spec to work - but I might have missed some necessary step
<FromGitter> <straight-shoota> spec needs `libxml2-dev`
<FromGitter> <simenge> Gonna give it a try and see if it works
happycoder has quit [Ping timeout: 252 seconds]
<FromGitter> <straight-shoota> shards should work out of the box. Do the depencies get installed in the `./lib` folder?
<FromGitter> <simenge> Yes they do. But I can't get them to work, even if I try to require them via an absolute path
happycoder has joined #crystal-lang
<FromGitter> <straight-shoota> I'm not sure require supports absolute paths
<FromGitter> <simenge> Weird. I removed all the code that didn't work, so I'll have to try and reproduce the issue later. First I'll see if I can get spec working
<FromGitter> <straight-shoota> try relative : `require "./lib/<name>/src/<name>"`
<FromGitter> <simenge> will do
<FromGitter> <simenge> I did, but not in quite that format
<FromGitter> <simenge> it was more like "require 'minitest/minitest'" which I copied from a tutorial
danielpclark has quit [Quit: Leaving]
<FromGitter> <simenge> Spec now works! Nice, thanks a lot @straight-shoota. It was apparently the missing dev version of libxml2 that was the culprit
bew has joined #crystal-lang
happycoder has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
happycoder has joined #crystal-lang
<crystal-gh> [crystal] RX14 opened pull request #5428: Use shards version in crystal init tool (master...feature/template-shards-version) https://git.io/vbSUS
rohitpaulk has quit [Ping timeout: 240 seconds]
swav has quit [Ping timeout: 248 seconds]
rrr has joined #crystal-lang
swav has joined #crystal-lang
fiete has quit [Ping timeout: 248 seconds]
rrr has quit [Client Quit]
dostoyevsky has quit [Ping timeout: 248 seconds]
dostoyevsky has joined #crystal-lang
fiete has joined #crystal-lang
happycoder has quit [Ping timeout: 248 seconds]
<Guest19095> yup
<crystal-gh> [crystal] cotsog opened pull request #5429: Enable IPv6 in Docker (master...patch-1) https://git.io/vbSY8
hightower3 has joined #crystal-lang
hightower2 has quit [Ping timeout: 265 seconds]
mark_66 has quit [Quit: Leaving.]
sz0 has joined #crystal-lang
Guest19095 has quit [Ping timeout: 272 seconds]
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
rohitpaulk has joined #crystal-lang
ua has quit [Read error: Connection reset by peer]
rohitpaulk has quit [Ping timeout: 268 seconds]
<FromGitter> <straight-shoota> Great!
<FromGitter> <straight-shoota> The linker errors should be more informative to let people know what exactly is missing...
<FromGitter> <straight-shoota> see #5291
vivus has joined #crystal-lang
<greenbigfrog> What would cause https://bpaste.net/show/ac3f0fa98054 ? just running `DB.open(...)` works, but not inside my project
flaviodesousa has quit [Ping timeout: 240 seconds]
<FromGitter> <MrSorcus> Why it doesn't work? ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ Error in line 8: undefined method '<<' for String (compile-time type is (Array(Int32) | String)) ... [https://gitter.im/crystal-lang/crystal?at=5a3be732e43a7a150c8ff473]
<Papierkorb> Because there's no String#<<. But that snippet doesn't look like a good usage of Hash.
pabs has quit [Ping timeout: 248 seconds]
<FromGitter> <MrSorcus> > **<Papierkorb>** Because there's no String#<<. But that snippet doesn't look like a good usage of Hash. ⏎ ⏎ Why?
<Papierkorb> It using Symbol as key alone is a give-away. Why do you use Symbol?
<FromGitter> <MrSorcus> > **<Papierkorb>** It using Symbol as key alone is a give-away. Why do you use Symbol? ⏎ ⏎ Because i can :-D ⏎ Ok, replace key symbol to string, but still works only with `.as(Type)` [https://gitter.im/crystal-lang/crystal?at=5a3beb545355812e57024e8a]
alex`` has quit [Quit: WeeChat 2.0]
<Papierkorb> That doesn't answer the question why you're using Hash
<Papierkorb> Using Symbol is a good indicator that a newbie is doing things wrong, shooting their own foot
<FromGitter> <bew> What are you trying to store?
greengriminal has quit [Quit: This computer has gone to sleep]
<FromGitter> <MrSorcus> This just an example. ⏎ Add strings or integers for get something like this - `@hash={"string" => "Hello World", "array" => [1, 2, 3, 4, 5, 6]}`
alex`` has joined #crystal-lang
<Papierkorb> For that, .as is the answer. And it feels wrong, which is why you want to avoid it. Static typing helps you to reason about your program, don't "disable" it if you don't have to
<Papierkorb> Hash is mainly a DTO (Data Transfer Object) to communicate with remote or internal clients. The only moment it's useful as DSO (S = Storage) is when you actually do need its dynamic nature. Lookup-Hashes are such a use-case. But even there you want to get back into the world of static types as fast as you can.
<FromGitter> <MrSorcus> I don't want to disable it. But I thought that pointing `Array(Int32)` & `String` in the property hash would be enough...
<Papierkorb> No, the compiler can't know that your key really does point to an array in all cases
<Papierkorb> This is true for dynamic languages as well. So Crystal just saved you from a potentional bug before it could even happen
<FromGitter> <MrSorcus> Ok, thank for your answers. :-)
<Papierkorb> Meanwhile on the mailing list, people founded a slack channel to split the community further
bew has quit [Quit: Quit]
<FromGitter> <mverzilli> what? where?
greengriminal has joined #crystal-lang
<Papierkorb> https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/crystal-lang/p60KAtJe73A/vI9O_3HJCwAJ Oh that's already quite old, someone just bumped it. Bararchy already said "please don't." some time ago.
rohitpaulk has joined #crystal-lang
<FromGitter> <mverzilli> yes, I was checking on that, glad it didn't pick up :P
rohitpaulk has quit [Ping timeout: 240 seconds]
<RX14> wasn't there originally a slack?
<crystal-gh> [crystal] mverzilli pushed 1 new commit to master: https://git.io/vbSBl
<crystal-gh> crystal/master 9196a0d Dominic Jodoin: Enable IPv6 in Docker (#5429)
<crystal-gh> [crystal] mverzilli closed pull request #5429: Enable IPv6 in Docker (master...patch-1) https://git.io/vbSY8
<FromGitter> <mverzilli> I think there was at some time, but we didn't want to incentivize it for the reasons Papierkorb mentioned
<RX14> oh I thought the slack channel was "official" at the beginning before I was here
<RX14> i must have heard my history wrong
<crystal-gh> [crystal] mverzilli closed pull request #5397: Add default argument to Number#round (master...number-round-default-arg) https://git.io/vb6J9
greengriminal has quit [Quit: This computer has gone to sleep]
<FromGitter> <mverzilli> I don't remember who started it
<RX14> what was the first IM system for contributors? IRC
<RX14> chanserv says sept 9 2013
<FromGitter> <mverzilli> definitely irc
<RX14> we should really have a bot to milestone merged issues for us
<RX14> because we forget all the time
greengriminal has joined #crystal-lang
<FromGitter> <mverzilli> An Argentinian company which specializes in cryptocurrency stuff (https://zeppelinos.org/) half-jokingly wants to launch a Bitcoin fork and one of the names they're considering is Bitcoin Crystal (https://twitter.com/maraoz/status/943894675659874304)
greengriminal has quit [Quit: This computer has gone to sleep]
<FromGitter> <mverzilli> we should knock on their doors and demand some cryptoroyalties :P
<greenbigfrog> mverzilli that status you linked doesn't exist
<travis-ci> crystal-lang/crystal#2d799c7 (master - Add default argument to Number#round): The build was fixed. https://travis-ci.org/crystal-lang/crystal/builds/319825419
<travis-ci> crystal-lang/crystal#9196a0d (master - Enable IPv6 in Docker (#5429)): The build was fixed. https://travis-ci.org/crystal-lang/crystal/builds/319823956
<FromGitter> <mverzilli> the closing bracket for some reason got picked up as part of the link
<greenbigfrog> actually it's only weecchat being stupid, and including the trailing `)` as the URL
<FromGitter> <mverzilli> yeah, that
<greenbigfrog> :)
rohitpaulk has joined #crystal-lang
<FromGitter> <jwaldrip> Can we expect the 0.24.1 release before Christmas?
<FromGitter> <jwaldrip> ...or do we really have to wait until 2018 till we can start seeing an improvement from the core team and manas?
rohitpaulk has quit [Ping timeout: 256 seconds]
<FromGitter> <bew> RX14 said earlier today "hopefully today ... hopefully"
<FromGitter> <bew> @jwaldrip ˆ
<FromGitter> <mverzilli> @jwaldrip we're working on the release since last week
<FromGitter> <mverzilli> I'm sorry the work isn't visible to you
<FromGitter> <mverzilli> we're aware of all that's not gone great this year, but I'd reflect on whether throwing innuendos helps in any way
pabs has joined #crystal-lang
<FromGitter> <jwaldrip> @mverzilli sorry, just a bad day and looking for a ray of sunshine.
<FromGitter> <mverzilli> no prob, we all are :)
claudiuinberlin has joined #crystal-lang
<crystal-gh> [crystal] RX14 opened pull request #5431: Always print backtrace on error inside fork (master...bugfix/fork-exception-handler) https://git.io/vbSPj
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 252 seconds]
Guest19095 has joined #crystal-lang
<jsn-> if I want to index an array by a enum, do I have to use .value, no way around it?
<Papierkorb> Yes. Why do you need that?
<Papierkorb> is that data constant or dynamic?
<jsn-> not sure; i guess i want something like this: i have a enum for directions [North, West, South, East], and i want the type checker to make sure i only index e.g. some logic lookup tables only using that enum as an index
<jsn-> not sure if i'm expressing it clearly
<FromGitter> <bew> So you have a hash with 0 to 4 entries?
<jsn-> like, i think nim can use ranges as index-type when defining arrays, which is probably close
<jsn-> no, i have a StaticArray with 4 entries, why would i want hash for that?
<Papierkorb> jsn-: Is that data dynamic? Do you need to change the data?
<jsn-> Papierkorb, what data do you mean?
<Papierkorb> Does the data need change, or is it basically constant? from what data is the array constructed?
<jsn-> o_O data in the arrays changes, yes
<jsn-> why does it matter?
<Papierkorb> Because most likely an array is not what you need, and if you help me help you you can actually get a decent solution out of it.
<Papierkorb> Use a case statement.
<FromGitter> <Fryguy> jsn-: are you saying you want to do `some_array[Directions::West.value]` but want to avoid the `.value` part of the syntax?
<FromGitter> <Fryguy> assuming that North is always the 0 index, West is always index 1, etc ?
<jsn-> Fryguy, more or less, yes; ideally, i also want a compile error when i try to use some_array[1] instead of some_array[West]
<FromGitter> <Fryguy> You *could* use a Tuple of 4 Directions (but that doesn't solve the indexing issue), or maybe a NamedTuple if you don't really need a literal enum for anything else
<jsn-> Papierkorb, i don't know; imagine I have a robot on a rectangular grid, behaviour encoded in (mutable) set of rules for each direction it might be facing, worldview represented as a set of adjacent object in each direction, state includes current direction, etc
<Papierkorb> [22:18] <Papierkorb> Use a case statement.
<jsn-> Fryguy, yeah, tuple doesn't change much, and with named i lose the ability to store a direction in a var?
<jsn-> Papierkorb, what, each time I need a lookup?
<Papierkorb> That's what a function is for?
<Papierkorb> `when North then {x, y-1}` is nice and clean. replace it with logic as needed.
<jsn-> that obviously won't work with (dynamic) behaviour tables above?
<Papierkorb> Of course what would work?
<Papierkorb> How is it harder to write a case statement than it is to write an array containing all logic, while a case only calculates what's needed
<jsn-> integers would work, of course
<jsn-> an array containing all logic is a given, it comes from the outside world, i don't write it, it's dynamic, i can't write it as a static case statement
<Papierkorb> Then what's your issue now? You reject the notion of using statically checkable code structures, you reject hashes.
<Papierkorb> This is a XY if I ever saw one
rohitpaulk has joined #crystal-lang
<Papierkorb> Most logic isn't that dynamic as you first might think. Pretty much almost everything dynamic can be described in OOP patterns. Giving you stability, reasonability, testability and debugability. Hence why I'll always recommend using code structures over dynamic structures.
<jsn-> https://forum.nim-lang.org/t/3042 , see the first answer
<Papierkorb> Ok?
<Papierkorb> You can easily build your own type doing just that if you so insist.
<jsn-> it's pretty easy; with that, i get type error if i try to index 'capital' by integers, i can store country in a var, and the array access is as efficient as a usual array
<Papierkorb> I'm out, really. I don't think whatever I say will have an impact, and thus, I'll cede.
rohitpaulk has quit [Ping timeout: 256 seconds]
<Papierkorb> Build such a (generic) structure yourself, it's trivial in Crystal. Others n' me gave other solutions on top of that.
<jsn-> building it myself was obvious from the start, i never asked if i can do that, really :)
<jsn-> i was asking if there's any builtin thing that can do that, and a simple no satisfies my curiousity perfectly, thanks :)
<FromGitter> <Fryguy> yeah, enums cannot be used directly as Array indexes :)
vivus has left #crystal-lang ["Leaving"]
<jsn-> Fryguy, yeah, i figured as much :)
greengriminal has joined #crystal-lang
greengriminal has quit [Client Quit]
<FromGitter> <CodeTrooperMC> This project looks awesome. Is it coming for Windows anytime soon?
<FromGitter> <bew> it's coming, yes!
<RX14> if you want to follow along with the status
<RX14> it's coming, maybe it'll be ready in 3-6 months
<Papierkorb> Interesting timing for someone new asking about Windows support
<RX14> @straight-shoota BTW I modified your wiki page a bit
<Papierkorb> CodeTrooperMC, besides using a Linux VM, iirc people have had success using Crystal through WSL if you want to try it before it getting "full" windows support
<RX14> and yes this
<FromGitter> <CodeTrooperMC> Good to hear! What do you mean about my timing?
<oprypin> CodeTrooperMC, initial Windows support was merged yesterday
<Papierkorb> CodeTrooperMC, Early stage Windows support was just merged yesterday into master
<oprypin> :|
<RX14> yesterday?
<RX14> seems longer than that
<RX14> lol
<FromGitter> <jwaldrip> @straight-shoota how do you do the JSON output for docs?
<RX14> it's in master @jwaldrip
<RX14> well
<RX14> 0.24.0/0.24.1
<FromGitter> <jwaldrip> im using master. whats the command?
<RX14> it's always generated
<RX14> into docs/index.json
<FromGitter> <jwaldrip> ah okay
<FromGitter> <jwaldrip> now i see it
<RX14> i think json doc explicitly is coming later
<RX14> or maybe its already in
<RX14> nope
<RX14> it's not in
<crystal-gh> [crystal] bew opened pull request #5434: Fix formatting of lib's fun starting with uppercase letter (master...fix-uppercase-fun-formatting) https://git.io/vbSFF
rohitpaulk has joined #crystal-lang
greengriminal has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 260 seconds]
claudiuinberlin has quit [Quit: Textual IRC Client: www.textualapp.com]
greengriminal has quit [Quit: This computer has gone to sleep]
<FromGitter> <vectorselector> my apologies if this is the wrong place to drop this: ⏎ Interesting strategic analysis of WEBASM for the Rust community... being a fellow LLVM language it could be interesting vis-a-vis Crystal lang: ⏎ https://mgattozzi.com/rust-wasm
<crystal-gh> [crystal] Sija opened pull request #5435: Remove _invariant macro from Float::Printer::* modules (master...remove-disguised-assert) https://git.io/vbSx9
greengriminal has joined #crystal-lang
greengriminal has quit [Client Quit]
<Papierkorb> We're pretty different to Rust. There are plenty things keeping Crystal from being wasm-able in the current state of wasm.
<oprypin> rust no gc no fibers
_whitelogger has joined #crystal-lang
<crystal-gh> [crystal] Sija opened pull request #5436: Let Complex inherit from Number (master...make-complex-a-number) https://git.io/vbSjl
rohitpaulk has joined #crystal-lang
DTZUZO has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 248 seconds]
<crystal-gh> [crystal] Sija opened pull request #5437: Add `Number#/(other : BigFloat)` overload (master...number-div-with-bigfloat) https://git.io/vbSjb