<FromGitter>
<sam0x17> @j8r it links to the github -- not sure how else to provide the source as for some reason docker hub doesn't list the dockerfile
<FromGitter>
<sam0x17> I'd be happy to make an changes that would make it more transparent I just dont know how
<FromGitter>
<sam0x17> *any
<FromGitter>
<fenicks> @j8r Thanks. I just realize that the cc command is to execute on target system. ⏎ It's not easy to find LLVM targets, but I found this one : aarch64-unknown-linux-gnu ⏎ 👌
<FromGitter>
<naqvis> @kingsleyh WS client is not conforming to the WS protocol. You are getting this error when Server expecting Termination request, but WS client sending different Opcode
<FromGitter>
<kingsleyh> oh I see - what is the best way to handle this?
<FromGitter>
<naqvis> Better to have right WS client, but if you believe WS client is conforming to WS protocol higher than what current implementation supports, then I would say you extend the current functionality and implement missing Protocol features
<FromGitter>
<sam0x17> @j8r apparently you can go through the change history on any prebuilt image like this: ⏎ `docker history durosoft/crystal-alpine:0.30.1 --no-trunc`
<FromGitter>
<sam0x17> good to know in general
rohitpaulk has quit [Ping timeout: 245 seconds]
devil_tux has joined #crystal-lang
<oprypin>
shouldn't "include Foo if not already included" be just `include Foo` ?
<FromGitter>
<tenebrousedge> but should including a module have side effects?
<FromGitter>
<sam0x17> in most cases it wont, but if it interacts with class variables that are used by other modules it could
<FromGitter>
<Blacksmoke16> well in that case it would since you're executing code that happens when you do it
<FromGitter>
<sam0x17> right, hence my example
<FromGitter>
<Blacksmoke16> other than that id imagine the 2nd would override the first
<FromGitter>
<tenebrousedge> that would be a good reason not to write code like that
<FromGitter>
<tenebrousedge> class variables are a great way to run into complicated state problems
<FromGitter>
<sam0x17> I would rather the compiler just prevents this or automatically only runs the first include
<FromGitter>
<sam0x17> off the top of my head I can't think of an easy way to write a guard macro that prevents this -- maybe it could key off a constant I dunno
<oprypin>
i think this is more about macro included
<oprypin>
that causes the duplication
<oprypin>
but good way to show it
<FromGitter>
<sam0x17> well I'm assuming all the module macros do that like finished as well
<FromGitter>
<sam0x17> the reason the behavior is this way is probably something to do with allowing people to monkey-patch the macro included section of modules
<FromGitter>
<sam0x17> but you could allow that without allowing this
devil_tux has quit [Ping timeout: 248 seconds]
ht_ has quit [Remote host closed the connection]
<FromGitter>
<j8r> @sam0x17 oh ok, so we can reproduce exactly the images you built - even the old ones?
<FromGitter>
<sam0x17> for any layer hash you can see the commands that produced that layer, so eventually yes but it takes some trepsing around
<FromGitter>
<sam0x17> its not perfect tho, the better way is to just automate it like you said, my only concern is I build when an update becomes available for the crystal package in the alpine package manager, so there is no git file change associated with that
<FromGitter>
<sam0x17> could I have it activate it off of a new tag being created maybe?
<FromGitter>
<sam0x17> as in, my module can do things like `Array(Self)` where `Self` is the class that included my module
<FromGitter>
<sam0x17> in this very obscure situation (defining procs at the class level that need to have references to the instances of the class that call them), it was extremely helpful
<FromGitter>
<j8r> you use generics?
<FromGitter>
<sam0x17> no
<FromGitter>
<j8r> you could do `include Foo(T)`
<FromGitter>
<sam0x17> ah that's good to know
devil_tux has joined #crystal-lang
devil_tux has quit [Ping timeout: 272 seconds]
<FromGitter>
<sam0x17> new question, is there a way to define a infinitely self-nestable type e.g.: ⏎ ⏎ ```alias MyType = Int32 | Int64 | Array(MyType)``` ⏎ ⏎ with the goal of allowing things like `Array(Array(Array(Array(Int64))))` etc ... [https://gitter.im/crystal-lang/crystal?at=5d59c4d4beba830fffbba20e]
<FromGitter>
<sam0x17> well I'll be damned, it actually works out of the box