snsei has quit [Remote host closed the connection]
sz0 has quit [Quit: Connection closed for inactivity]
zipR4ND has quit [Ping timeout: 260 seconds]
LastWhisper____ has joined #crystal-lang
LastWhisper____ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
snsei has joined #crystal-lang
rohitpaulk has joined #crystal-lang
snsei has quit [Remote host closed the connection]
<FromGitter>
<bew> About codegen, iirc the compiler generate *a lot of* duplicate code: for a method that that is used by multiple types, the generated method is copy/pasted for each types using it... will this change?
<FromGitter>
<megatux> even with --release flag? :/
<FromGitter>
<bew> I don't know, I've read that somewhere.. But iirc, the `--release` flag only remove debug from generated LLVM IR (and maybe other things too), and enable optimization during LLVM compilation.. But the defs codegen method doesn't change imo
rohitpaulk has quit [Ping timeout: 245 seconds]
LastWhisper____ has joined #crystal-lang
sz0 has joined #crystal-lang
<FromGitter>
<drosehn> Thanks for the live Crystal Q&A. Unfortunately for me I was too busy to follow it live, but I did watch it a short time after it was finished.
LastWhisper____ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
rohitpaulk has joined #crystal-lang
king1978 has joined #crystal-lang
king1978 has left #crystal-lang [#crystal-lang]
king1978 has joined #crystal-lang
king1978 has left #crystal-lang [#crystal-lang]
rohitpaulk has quit [Ping timeout: 255 seconds]
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 240 seconds]
rohitpaulk has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 260 seconds]
Raimondii has joined #crystal-lang
Raimondi has quit [Ping timeout: 268 seconds]
Raimondii is now known as Raimondi
tilpner has quit [Remote host closed the connection]
tilpner has joined #crystal-lang
statikowsky has quit [Quit: Connection closed for inactivity]
zipR4ND has joined #crystal-lang
rohitpaulk has joined #crystal-lang
<FromGitter>
<sdogruyol> hey everyone
rohitpaulk has quit [Ping timeout: 268 seconds]
<RX14>
hi @sdogruyol
<FromGitter>
<sdogruyol> hey @RX14 how you doing
<FromGitter>
<bararchy> Hi Guys, how did the 3AM Q&A go ? XD
<FromGitter>
<sdogruyol> it's good
<FromGitter>
<emilebosch_twitter> Hey all, any dutch crystal fans wanting to meet up?
rohitpaulk has joined #crystal-lang
<FromGitter>
<RX14> @sdogruyol I'm doing fine! I didn't try and stay up for the Q&A this time :) I was about half way through then I had to go out.
<FromGitter>
<sdogruyol> We talked about you
<FromGitter>
<RX14> Yeah I heard.
<FromGitter>
<RX14> I watched the first half of it
<FromGitter>
<RX14> This morning that is
<FromGitter>
<sdogruyol> Cool
rohitpaulk has quit [Remote host closed the connection]
splitty__ has joined #crystal-lang
splitty_ has joined #crystal-lang
splitty___ has quit [Ping timeout: 260 seconds]
splitty__ has quit [Ping timeout: 258 seconds]
<FromGitter>
<bararchy> I'll watch it later today , any talk regarding concurrency ?
<FromGitter>
<bew> hmm maybe declare it before the measure block as nil, then use `not_nil!` after when accessing it?
<FromGitter>
<bcardiff> `foo = uninitialized Foo` before the block
<FromGitter>
<bew> :+1:
<FromGitter>
<straight-shoota> Wouldn't it be easier if `Benchmark.measure` was a macro?
<FromGitter>
<straight-shoota> But thanks, that uninitialized works
daemonwrangler has quit [Ping timeout: 240 seconds]
daemonwrangler has joined #crystal-lang
<FromGitter>
<straight-shoota> Still thinking about it... any reason for `Benchmark.measure` *not* to be a macro?
<FromGitter>
<mverzilli> why would it?
LastWhisper____ has joined #crystal-lang
rohitpaulk has joined #crystal-lang
<FromGitter>
<straight-shoota> Because then the block would be expanded in the current lexical scope and you wouldn't need `uninitialized` to assign values inside the measure block: https://carc.in/#/r/249m
<FromGitter>
<straight-shoota> Maybe it's a bit far fetched and not worth the additional effort for macro expansion.
<FromGitter>
<mverzilli> yes, that last thing is why I asked... to my eyes using variables outside their lexical scopes looks a bit ugly
<FromGitter>
<mverzilli> plus we generally try to avoid using macros unless they provide a lot of value... in this case we would be using a macro to sort of "break" lexical scopes
<FromGitter>
<straight-shoota> This looks even better, without the yield there isn't even a need to initialize the variable beforehand: https://carc.in/#/r/249x
<FromGitter>
<straight-shoota> But your probably right...
<FromGitter>
<straight-shoota> The effort for macro expansion seems not worth to put it in stdlib
<FromGitter>
<straight-shoota> Returning a tuple would not require macros: `time, foo = MyBenchmark.measure { "hello" }`...
zipR4ND has quit [Ping timeout: 268 seconds]
snsei has joined #crystal-lang
zipR4ND has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
LastWhisper____ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
snsei has quit [Remote host closed the connection]
duckqlz has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 260 seconds]
LastWhisper____ has joined #crystal-lang
snsei has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 245 seconds]
rohitpaulk has joined #crystal-lang
wontruefree has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 258 seconds]
rkeene has left #crystal-lang [#crystal-lang]
wontruefree has quit [Ping timeout: 272 seconds]
wontruefree has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
bmcginty has quit [Ping timeout: 255 seconds]
zipR4ND has quit [Ping timeout: 260 seconds]
bmcginty has joined #crystal-lang
snsei has quit [Remote host closed the connection]
vegax87 has joined #crystal-lang
wontruefree has quit [Quit: Is gone... Just plain old gone]
wontruefree has joined #crystal-lang
<FromGitter>
<elorest> Is there an existing way to get the time that a HTTP::Request is initialized for more accurate logging?
<FromGitter>
<elorest> Everyone including kemal seems to start the time in the first handler but that’s actually skipping a decent amount of data processing time.
<FromGitter>
<sdogruyol> @elorest how would you access context outside of handlers?
wontruefree has quit [Quit: Is gone... Just plain old gone]
<FromGitter>
<eliasjpr> The best way that I can think of getting accurate http request/response lifecycle would be to initialize the server with a block and timing the content of the block
duckqlz has joined #crystal-lang
<FromGitter>
<elorest> @sdogruyol I’m not saying that you should access the context ourside of handlers, but the time starts well before context gets passed to the first handler. this leads to drastically different times when benchmarking vs log output.
<FromGitter>
<elorest> @sdogruyol The idea that’s stuck in my head is saving the time that HTTP::Request is initialized on the request and then comparing it in the log handler.
<FromGitter>
<sdogruyol> Makes sense but IDK if it's worth it
<FromGitter>
<elorest> Probably not. If i have nothing better to do some day I’ll probably take a stab at it.
<FromGitter>
<elorest> I’m looking through the rails loggers now