00:10
canhtak has joined #crystal-lang
00:26
asterite has joined #crystal-lang
00:30
asterite has quit [Client Quit]
00:35
<
crystal-gh >
crystal/master f4c38f5 Zamith: Uses correct Dir method for static file handler
00:35
<
crystal-gh >
crystal/master c36da37 Ary Borenszweig: Merge pull request #409 from zamith/master...
00:39
<
crystal-gh >
crystal/master d4e17eb Ary Borenszweig: Added some typeof specs for HTTP::Sever and handlers
00:46
zamith has quit [Quit: Be back later ...]
00:47
canhtak has quit [Quit: canhtak]
01:04
<
travis-ci >
manastech/crystal#1956 (master - c36da37 : Ary Borenszweig): The build passed.
01:33
waj has joined #crystal-lang
01:35
waj has quit [Client Quit]
02:08
weskinner has joined #crystal-lang
02:14
weskinner has quit [Ping timeout: 264 seconds]
02:44
endou has joined #crystal-lang
02:52
endou_ has quit [*.net *.split]
02:55
shama has quit [Quit: (╯°□°)╯︵ɐɯɐɥs]
03:55
<
crystal-gh >
[crystal] weskinner opened pull request #410: change Dir.list to Dir.foreach (master...fix-1)
http://git.io/NnBZ
05:53
ismaelga has quit [Remote host closed the connection]
07:21
canhtak has joined #crystal-lang
07:36
canhtak has quit [Quit: canhtak]
08:10
canhtak has joined #crystal-lang
09:33
zamith has joined #crystal-lang
09:37
asterite has joined #crystal-lang
09:37
zamith_ has joined #crystal-lang
09:37
<
crystal-gh >
crystal/master 4985484 Ary Borenszweig: The magic variables '$~' and '$?' are now method-local and concurrent-safe. 'Tuple' is now correctly considered a struct. 'Pointer' is now correctly considered a struct. Renamed 'Function' to 'Proc'.
09:41
zamith has quit [Ping timeout: 250 seconds]
09:49
asterite has quit [Quit: Page closed]
09:58
<
travis-ci >
manastech/crystal#1959 (master - 4985484 : Ary Borenszweig): The build was broken.
10:03
leafybasil has quit [Remote host closed the connection]
10:19
asterite has joined #crystal-lang
10:24
leafybasil has joined #crystal-lang
10:30
<
crystal-gh >
crystal/master b740fc9 Ary Borenszweig: Remaining changes from 0.5.10
11:15
<
travis-ci >
manastech/crystal#1960 (master - b740fc9 : Ary Borenszweig): The build was fixed.
11:49
<
crystal-gh >
[crystal] akaufmann opened pull request #411: Crypto::Blowfish (master...blowfish)
http://git.io/NCWi
12:25
canhtak has quit [Quit: canhtak]
12:26
canhtak has joined #crystal-lang
12:48
<
crystal-gh >
crystal/master 301db0e Ary Borenszweig: Fixed #412: ! method only callable as !obj, not obj.!
13:13
asterite has quit [Ping timeout: 246 seconds]
14:35
<
crystal-gh >
crystal/master 3d406e0 Ary Borenszweig: Fixed a bug where a typed-def type has un underlying type that has an included generic module
14:35
<
crystal-gh >
crystal/master 9795e90 Ary Borenszweig: Don't wrap "default" and "ignore" signal handlers. Related to #408
14:35
ismaelga has joined #crystal-lang
14:39
bcardiff has joined #crystal-lang
15:23
waj has joined #crystal-lang
15:44
weskinner has joined #crystal-lang
16:16
waj1 has joined #crystal-lang
16:18
waj has quit [Ping timeout: 252 seconds]
16:57
<
crystal-gh >
crystal/master f3c4600 Ary Borenszweig: Signal: don't create wrapper function if a block is not a closure. Related to #408
17:03
waj has joined #crystal-lang
17:06
waj1 has quit [Ping timeout: 265 seconds]
17:20
zamith_ has quit [Read error: Connection reset by peer]
17:20
zamith_ has joined #crystal-lang
17:24
<
weskinner >
BufferedIO.gets seems to be getting stuck in an infinite loop
17:27
<
travis-ci >
manastech/crystal#1963 (master - 9795e90 : Ary Borenszweig): The build passed.
17:28
zamith__ has joined #crystal-lang
17:28
zamith_ has quit [Ping timeout: 264 seconds]
17:33
canhtak has quit [Quit: canhtak]
17:34
<
weskinner >
how is accept defined twice in TCPServer?
17:35
<
weskinner >
ahh, the yield in the second def makes it an overload I guess
17:44
asterite has joined #crystal-lang
17:44
zamith__ is now known as zamith
17:45
<
zamith >
having a yield counts to the signature of a method
17:46
<
travis-ci >
manastech/crystal#1964 (master - f3c4600 : Ary Borenszweig): The build passed.
17:48
leafybasil has quit [Remote host closed the connection]
17:50
<
weskinner >
trying to debug inside of BufferedIO with puts but puts seems to be rebound? Instead of going to the console it's going into the result of io.gets?
17:56
<
asterite >
weskinner: puts inside an io prints to that io, use ::puts instead to refer to the top-level method that will print to STDOUT
17:56
<
asterite >
It's a common gotcha when debugging IO :)
17:57
<
weskinner >
ahh ok, thanks!
18:01
<
asterite >
For the http server, you can try invoking listen_fork instead of listen... but I don't know much about HTTP::Server's implementation
18:02
shama has joined #crystal-lang
18:10
zamith has quit [Ping timeout: 245 seconds]
18:20
bcardiff1 has joined #crystal-lang
18:23
bcardiff has quit [Ping timeout: 245 seconds]
18:25
<
asterite >
weskinner: but even with that, HTTP::Sever has some pending features and things, so...
18:33
zamith has joined #crystal-lang
18:35
<
weskinner >
when the request tries to read from it's TCPSocket's fd io on the 2nd asset request it hangs
18:55
ismaelga has quit [Remote host closed the connection]
19:15
<
asterite >
weskinner: with evented io this won't be a problem anymore, but right now it is. @waj said to me that the check for keep alive that zamith was pointing must probably not be done in non-evented mode
19:15
<
asterite >
It was a premature, but naive, optimization on our side
19:17
<
waj >
yup, basically HTTP::Server is attending one request at a time, so it doesn't make sense to obey keep alives
19:19
<
weskinner >
I sort of follow :)
19:19
<
weskinner >
haven't touched the C socket api in a long time
19:21
<
weskinner >
where is the keep alive code you mention?
19:36
waj1 has joined #crystal-lang
19:38
waj has quit [Ping timeout: 245 seconds]
19:40
<
weskinner >
so it's getting stuck there?
19:40
<
weskinner >
asterite:
19:42
<
asterite >
The "unless request.keep_alive?" must be removed
19:43
<
asterite >
(but we will later do it conditionally based on a compile-time flag, I guess)
19:44
<
weskinner >
the issue still occurs for me with that line removed
19:48
<
asterite >
If you curl all the urls individually, does it work?
19:48
bcardiff1 has quit [Quit: Leaving.]
19:48
<
asterite >
It might be that the browser doesn't close the connection, or something... I've seen chrome do this
19:48
<
asterite >
But... not sure
19:49
<
weskinner >
curling works
19:49
<
weskinner >
yeah you could be right
19:50
canhtak has joined #crystal-lang
19:50
<
weskinner >
it's like the socket returned from accept occasionally doesn't get filled
19:53
<
asterite >
I think the only solution for that might be to have an http server in evented mode, but for that you'll have to wait a bit
19:53
<
asterite >
I wonder why it works for zamith, though... he has assets
19:57
<
weskinner >
he squashes them into one asset
19:57
<
weskinner >
which seems to never fail
19:57
<
asterite >
Yes, I just tried it and with two assets it hangs
20:00
ismaelga has joined #crystal-lang
20:02
<
weskinner >
has any work gone into switching to evented IO yet?
20:02
<
zamith >
yes, the problem is the second asset being served on each request
20:02
<
zamith >
I only ever had one
20:03
<
zamith >
weskinner: you cannot remove the line, just the condition, the break must still be there
20:04
<
zamith >
does that fix it?
20:06
<
weskinner >
ahh yeah that does it
20:07
<
weskinner >
hmm, I don't see why that's causing the io.read to block. it's all in a single thread right?
20:08
<
zamith >
the reason behind the issue I not sure, waj should be able to answer that better
20:14
bcardiff has joined #crystal-lang
20:20
bcardiff has quit [Quit: Leaving.]
20:44
asterite has quit [Quit: Page closed]
20:57
weskinner has quit [Ping timeout: 252 seconds]
21:00
ismaelga has quit [Remote host closed the connection]
21:14
ismaelga has joined #crystal-lang
21:16
ismaelga has quit [Remote host closed the connection]
21:17
weskinner has joined #crystal-lang
21:21
zamith has quit [Quit: Be back later ...]
21:22
weskinner has quit [Ping timeout: 246 seconds]
21:24
weskinner has joined #crystal-lang
21:27
<
crystal-gh >
crystal/master fdcb5aa Ary Borenszweig: Removed MatchData::last and Process::Status::last
21:30
<
waj1 >
to fix the issue don't just remove the line…. leave the break or remove the while loop as well
21:33
weskinner_ has joined #crystal-lang
21:33
weskinner has left #crystal-lang [#crystal-lang]
21:46
leafybasil has joined #crystal-lang
22:03
<
travis-ci >
manastech/crystal#1965 (master - fdcb5aa : Ary Borenszweig): The build passed.
22:04
<
weskinner_ >
waj1: how should we handle the keepalive issue for now?
22:05
<
weskinner_ >
can we remove that test from the server loop until we move to the evented model?
22:06
waj1 has quit [Quit: Leaving.]
22:06
waj has joined #crystal-lang
22:07
<
waj >
Try commenting the "unless" in the http server while loop to see if that solves the issue. Leave the break.
22:09
<
weskinner_ >
yeah that fixes it. is that something that should be merged into master right now though?
22:18
weskinner_ has quit [Ping timeout: 252 seconds]
22:21
weskinner has joined #crystal-lang
22:23
<
weskinner >
computer died. Not sure if you responded waj
22:23
<
waj >
no… I didn't. I don't know yet. I'd like to have support for keep alives even in non-evented mode
22:31
waj has quit [Quit: Leaving.]
22:36
zamith has joined #crystal-lang
22:43
<
weskinner >
I would think chrome would send Connection: close on the last request instead of keep-alive
22:43
<
weskinner >
I guess it wants the connection to stay around for requests that might be generated via javascript?
22:45
canhtak has quit [Quit: canhtak]
23:01
weskinner has quit [Quit: Leaving]
23:03
weskinner has joined #crystal-lang
23:12
<
zamith >
http 1.1 defaults to keep-alive
23:12
<
zamith >
maybe because of that
23:47
ismaelga has joined #crystal-lang