<FromGitter>
<mjago> @aemadrid Sorry I meant avconv ~ aconv is something else π
hightower3 has quit [Ping timeout: 240 seconds]
hightower2 has quit [Ping timeout: 245 seconds]
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 264 seconds]
beizhia has joined #crystal-lang
<FromGitter>
<aisrael> @ysbaddaden No `ysbaddaden/crystal-alpine:0.25.0` yet?
<FromGitter>
<megatux> Hi again, sorry if this was answered before. Is kemal v 0.23 compatible with Crystal 0.24.2 ? I have a compiler error and had to set v0.22.0 explicitly
akaiiro has quit [Ping timeout: 256 seconds]
<FromGitter>
<aisrael> (The good news is I was able to build Crystal 0.25.0 from within `ysbaddaden/crystal-alpine:0.24.2` :) )
<FromGitter>
<S-YOU> Try with llvm5 `brew install llvm@5`?
<FromGitter>
<icyleaf> yeah, i was installed llvm@4, llvm@5, llvm6, and it was throwed error when uninstall llvm 6 (use llvm@5), it still not found x86_64. it happened since crystal 0.25.0.
beizhia has quit [Quit: ERC (IRC client for Emacs 26.1)]
<FromGitter>
<aisrael> @icyleaf Yeah I couldn't compile 0.25.0 on my Mac either, but had other things to do
<FromGitter>
<bcardiff> does `$ make clean deps` works?
<FromGitter>
<icyleaf> π it works! thanks
<FromGitter>
<bcardiff> :-) changing the llvm in the middle left an unusable llvm_ext.o which is linked later.
<FromGitter>
<bcardiff> for succcesive compilation from a clean crystal compilatio of the compiler you can use `$ make clean_crystal crystal` that way the deps are not rebuilt, but you not use the compiled compiler to build a new compiler.
<FromGitter>
<bcardiff> I am not sure @faustinoaq but maybe the binary is not picking the expected openssl lib, I had used `--link-flags -L/usr/local/opt/openssl/lib` in some apps for that.
<FromGitter>
<faustinoaq> @bcardiff Oh ok, so should I create/replace the link manually?
<FromGitter>
<bcardiff> since you are installing an openssl from brew that might be the case.
<FromGitter>
<aisrael> What version of Crystal are you using?
<oprypin>
umutuluer, it's obviously some mismatch between the version of crystal (backwards incompatible change) and the version of the library (possibly not even updated yet)
<crystal-gh>
[crystal] bcardiff closed pull request #6152: Use Char instead of String at escape sequences (master...improvements) https://git.io/vhWVr
Raimondii has joined #crystal-lang
<FromGitter>
<umutuluer> i tried 20 days ago but i have no problem
<FromGitter>
<bcardiff> @faustinoaq I think so. I use only one app that is affected by that, unless I built it and run in in docker, that line is mandatory.
<FromGitter>
<aisrael> @umutuluer Yeah. I'm guessing you just ran `shards update` and managed to pick up mysql 0.5.0 which I believe has been updated for Crystal 0.25.0
<FromGitter>
<umutuluer> im trying in crystal play, i cant access Time::Location
<FromGitter>
<umutuluer> @aisrael ok, i will upgrade crystal and mysql package
<FromGitter>
<bcardiff> @umutuluer if you want to stay in 0.24.2 then you need to stay in crystal-mysql 0.4.0.
<FromGitter>
<faustinoaq> @bcardiff Oh ok, How can I use `--link-flags` with `crystal spec`? π
Raimondi has quit [Ping timeout: 256 seconds]
Raimondii is now known as Raimondi
<FromGitter>
<bcardiff> I think you should
<FromGitter>
<bcardiff> all the build options are forwarded in spec cli
<FromGitter>
<bendietze_twitter> @icyleaf nice game with Halite π Maybe i can use it for server development without need of browser or curl? Mean: Halite.get... directly before kemal get "/" do ... so without the need for client browser? This would be terribly fast for development in many cases π I just have to output both sides, change parameters or whatever and run snippets again π should be possible?
<FromGitter>
<umutuluer> @bcardiff thanks, i upgraded crystal to 0.25, problem was fixed
<FromGitter>
<aisrael> (Except that crystal 0.25.0 comes with its own set of new problems... :D )
<crystal-gh>
[crystal] bcardiff closed pull request #6230: update manas link in README (master...update-manas-link-in-readme) https://git.io/fCxqQ
rohitpaulk has quit [Ping timeout: 276 seconds]
rohitpaulk has joined #crystal-lang
<FromGitter>
<bendietze_twitter> @icyleaf i mean, this would be crazy for test of cookies, sql, userdata ... Surely just must be done via fiber with some waittime.. But that should be possible... Is it possible to output raw response without parsing before?
<FromGitter>
<bendietze_twitter> I would need to things @icyleaf first is get the raw response (to be sure) and multipart/form-data including input multiple tag were nice :)
<FromGitter>
<bendietze_twitter> Wow! This is nice :) π
<FromGitter>
<faustinoaq> @bcardiff Yeah, I used that command and I got: `Unhandled exception: Invalid option: --link-flags (OptionParser::InvalidOption)` β β Can you reproduce this? π
<FromGitter>
<bendietze_twitter> @icyleaf i am not at home so not possible for me to check things out but nice to talk about :)
<FromGitter>
<bcardiff> @faustinoaq as a workaround if it does not work for you, you can build the specs with build and then run them.
<FromGitter>
<bendietze_twitter> @icyleaf maybe output is raw - i just have seen Halite possibilities - must try at home these days :)
<FromGitter>
<faustinoaq> @bcardiff Yeah, I'll try that, BTW, looks like `crystal spec` is using `setup_simple_compiler_options`, so, it doesn't support all flags π
<FromGitter>
<bendietze_twitter> @icyleaf next possibility could be easy running 1000 concurrent fibers with random data without many typing and such things - coool π
<FromGitter>
<bcardiff> @faustinoaq ooops . I guess the specs of the project I am mock the ssl connections.
<FromGitter>
<bendietze_twitter> @icyleaf and - as you done - cumulated test specs or fibers to run everything at least with one click - just for test after big changes - great :)
<FromGitter>
<bendietze_twitter> You could fork to HaliteX with capabilities for this π
<FromGitter>
<aisrael> Oooh... in `alpine:edge` you can just `apk add crystal` and get 0.25.0. Neat!
<FromGitter>
<icyleaf> @bendietze_twitter welcome any issues :) β @aisrael awesome!
<FromGitter>
<bendietze_twitter> I will go and check out these days :)
<FromGitter>
<bendietze_twitter> @icyleaf sorry, in your spawn snippet above Halite should be spawned as the server must completely be loaded, but, don't want to discuss about, nice you try it for me π thx
<FromGitter>
<faustinoaq> @bcardiff `crystal run --link-flags -L/usr/local/opt/openssl/lib spec/amber_spec.cr` did the trick, thanks you! π π
<FromGitter>
<bendietze_twitter> btw... I got very service oriented and customer friendly response from bountysource, but since i started last month everything there is hanging. If i would not talk to them via email, i would drop every support because its extrem laggy and mostly no good experience to start sponsoring Crystal π this system is irritating
rocx has quit [Quit: "but first, you'll have to catch me!" rocx throws a smoke bomb at his feet. when the smoke dissipates, he's gone.]
<FromGitter>
<bararchy> @faustinoaq no swap here and I'm all fine :)
<FromGitter>
<faustinoaq> @bararchy Oh, ok, Can you compile crystal from source without swap as well?
<FromGitter>
<bararchy> yeha, I do have 32Gb ram though
<FromGitter>
<faustinoaq> Oh π
<FromGitter>
<faustinoaq> How much RAM do circle-ci and travis have?
<FromGitter>
<bendietze_twitter> Maybe they are scaled?
<FromGitter>
<faustinoaq> I think the Crystal CI is able to compile and test crystal without too many RAM. right?
<FromGitter>
<j8r> even with low ram, if you are root on a recent Linux system you can compress the RAM with zswap
<FromGitter>
<aisrael> I don't get it. I keep getting β β ```Outdated shard.lock (cql requirements changed). Please run shards update instead.``` β β Even after `shards update` completes successfully. I've removed `shard.lock` and emptied `lib/` and I *still* get the error (Crystal 0.25.0, shards 0.8.0 in an `alpine:edge` Docker container) [https://gitter.im/crystal-lang/crystal?at=5b2b886c467bd7268c26ab4c]
<FromGitter>
<aisrael> The same project builds successfully with no issues under macOS High Sierra
<FromGitter>
<j8r> then copy it e.g. /usr/local/bin
<FromGitter>
<faustinoaq> Hey, BTW, a quick question, Is RAM more important than CPU on a VPS?
<FromGitter>
<bendietze_twitter> should depend on swap ;) the one is limited, the other slow xD
<crystal-gh>
[crystal] MakeNowJust opened pull request #6232: Macro: add missing document for ArrayLiteral#push and #unshift (master...fix/macro/add-doc-for-array-mutational-methods) https://git.io/fWbrS
<FromGitter>
<j8r> @faustinoaq depends on what you do
<FromGitter>
<aisrael> I took the lazy way out and just used `crystal build --release src/main.cr`
<FromGitter>
<j8r> if this is a personal VPS, maybe RAM is the most important to have the most apps possible
<FromGitter>
<hmans> What is up, Crystal friends
<FromGitter>
<bendietze_twitter> Has anyone experience or knowledge about connecting some cloudservers as a cluster via IP? What could be the best option? Via TCP only websocket i think (frame size is unreachable) or is there a better way to transfer data with minimal overhead between and fast response? I mean only written in Crystal itself :)
<FromGitter>
<hmans> @bendietze_twitter I didn't get the context of your Bountysource topic... did you run into issues with them? Because I did, too (and ended up opening that issue about it on Github). It's frustrating, I want to put some money into Crystal, but I absolutely do not want to do it through Bountysource.
<FromGitter>
<faustinoaq> @j8r Ok π
<FromGitter>
<bendietze_twitter> I just want to talk about because others could have left already
<crystal-gh>
[crystal] MakeNowJust opened pull request #6233: doc: use `bind_tcp` in doc correctly (master...fix/use-bind-tcp-in-doc-correctly) https://git.io/fWbiJ
<crystal-gh>
[crystal] bcardiff opened pull request #6234: Handle File.extname edge case (master...fix/6215-file-extname) https://git.io/fl34N
<jokke>
heya!
<jokke>
wasn't there a macro for included and inherited? can't seem to find the docs
Guest57596 has quit [Ping timeout: 260 seconds]
<FromGitter>
<asterite> @MakeNowJust Lexer running on formatting is good. I just meant there's a lot of duplicate code. When I started implementing rufo ( https://github.com/ruby-formatter/rufo ) I did it more nicely, reusing a lot of code, extracting functions, thinking more clearly (I also had experience from Crystal's formatter). But, yeah, it's about doing it in the same way but without so much code duplication and little flags
<FromGitter>
<asterite> jokke: it's not documented, but it's just `macro included`, `macro extended`, etc.
<jokke>
ah thanks
<jokke>
asterite: i'm trying to add mass assignment to JSON.mapper enabled classes
<jokke>
asterite: for some reason @type.instance_vars is empty though after having run JSON.mapping
<jokke>
@asterite: is this a compiler bug or am i missing something here...?
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<FromGitter>
<straight-shoota> @jokke `include` (and `included` macro) is evaluated before `JSON.mapping` is expanded.
<FromGitter>
<straight-shoota> you could probably work around that using `finished`, but it's probably better to just move to `@JSON::Field` annotation-based mappings available in 0.25.0.
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<jokke>
ooh
<jokke>
what's that?
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<FromGitter>
<drum445> Hi Guys, how would I get this to work in crystal
duane has quit [Read error: Connection reset by peer]
<FromGitter>
<drum445> read up on the reflection docs but I can't see an equivalent to send in ruby or get_attr in python
<jokke>
@straight-shoota thanks!
<FromGitter>
<straight-shoota> @drum445 There aren't. Ruby and python are interpreted, but Crystal is compiled and doesn't have the required information available at runtime to do arbitrary method calls.
<FromGitter>
<drum445> It's not a method call it's an attribute getter by name
<jokke>
oooh thats very nice!
<FromGitter>
<drum445> Go allows this with it's reflection package
<FromGitter>
<straight-shoota> jokke, the main reason for this is to solve exactly such problems depending on order of execution as you've encountered. And it makes JSON properties easily expandable in subclasses.
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<jokke>
yeah!
<jokke>
it's awesome
<jokke>
hm but still it seems that the included macro is executed first..
duane has quit [Read error: Connection reset by peer]
<jokke>
@straight-shoota any ideas? :)
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
akaiiro has joined #crystal-lang
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
sz0 has joined #crystal-lang
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
<FromGitter>
<asterite> jokke: instance vars info is only available inside methods, after the top-level is resolved
duane has quit [Read error: Connection reset by peer]
snsei has joined #crystal-lang
<FromGitter>
<asterite> Basically, there's no way to do what you want. Or maybe yes, you could always have `def initialize(**args)` and then inside that method traverse the instance vars... but I think it won't work.
<FromGitter>
<asterite> And I don't think mass assignment is something good
<FromGitter>
<asterite> I think Crystal should implement runtime reflection and drop compile-time reflection. Maybe also drop nil detection and go for the usual "null pointer exception". It will make the language both simpler and more powerful (null pointer exception is really not that terrible). But I don't know how would all of that look like in Crystal...
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<oprypin>
k
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
kosmonaut has joined #crystal-lang
kosmonaut has quit [Client Quit]
kosmonaut has joined #crystal-lang
kosmonaut has quit [Client Quit]
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
<FromGitter>
<asterite> I mean it. Runtime reflection is superior to compile-time reflection. Right now for every type you get a loooot of duplicated code to parse/serialize it from/to JSON. With runtime reflection it's just one method. Maybe a bit slower, but not significantly slower (or, people don't really care about that kind of performance when you put together a lot more things into your program). And then because values don't
<FromGitter>
... have a default value (zero for numbers, null for references) you can't instantiate instances generically. Well, you can, but then you would get horrible segfaults. So someone really has to prove the merits of compile-time reflection and strong nullability check.
kosmonaut has joined #crystal-lang
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
kosmonaut has quit [Client Quit]
kosmonaut has joined #crystal-lang
duane has joined #crystal-lang
duane has quit [Read error: Connection reset by peer]
duane has joined #crystal-lang
gewo has quit [Ping timeout: 265 seconds]
duane has quit [Read error: Connection reset by peer]
DTZUZO has quit [Ping timeout: 248 seconds]
<FromGitter>
<bararchy> @asterite runtime nil exception is high in the reason list for why I left Ruby for Crystal
<FromGitter>
<bararchy> Having this abominations shoved into Crystal is a very bad idea
DTZUZO has joined #crystal-lang
<crystal-gh>
[crystal] bcardiff closed pull request #6233: doc: use `bind_tcp` in doc correctly (master...fix/use-bind-tcp-in-doc-correctly) https://git.io/fWbiJ
<FromGitter>
<j8r> agree with @bararchy π
wontruefree has joined #crystal-lang
wontruefree has quit [Quit: bye]
snsei has quit [Remote host closed the connection]
<FromGitter>
<S-YOU> With runtime reflection, you need type field for every types including numbers, and bool, right. I am not sure LLVM can optimized to plain value when type is not needed.
<92AADE06N>
[crystal] bcardiff pushed 1 new commit to master: https://git.io/flFrM
<7JTAEMC0U>
[crystal] bcardiff closed pull request #6218: Add missing JSON field to docs generator output for constants (master...jm/fix/6202) https://git.io/fJKws
<92AADE06N>
crystal/master 666c192 Johannes MΓΌller: Add missing JSON field to docs generator output for constants (#6218)
snsei has quit [Remote host closed the connection]
duane has joined #crystal-lang
rocx has joined #crystal-lang
pwned has quit [Ping timeout: 240 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
<FromGitter>
<BenDietze> @icyleaf hey, just trying at this moment - works perfectly as aspected - simply spawn halite with commandos at top of file - when server starts listening the scheduler runs halite π π₯ π
<FromGitter>
<BenDietze> benchmarks himself π
<FromGitter>
<BenDietze> i can go sleep :)
<FromGitter>
<BenDietze> oh, yes - and is already raw output π
<FromGitter>
<confact> Hi! the old Shoutcast server have their own headers of http status, instead of HTTP 200 they have `ICY 200 OK` - How can I let http client to accept these headers?
<RX14>
well its not HTTP
<RX14>
so you'll have to piece together the parts from the existing stdlib http implementation
<RX14>
shouldnt be too hard
<RX14>
@confact HTTP.parse_headers_and_body parses everything in a request apart from the initial status link