/
2013-10-23.txt
1456 lines (1456 loc) · 183 KB
/
2013-10-23.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{"nick":"ircretary","reason":"Remote host closed the connection","date":"2013-10-23T00:00:00.526Z","type":"quit"}
{"nick":"ircretary","date":"2013-10-23T00:00:07.333Z","type":"join"}
{"nick":"trevnorris","message":"hey, is this \"beforeExit\" event going to fire when there's an error?","date":"2013-10-23T00:00:19.766Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: ^ ?","date":"2013-10-23T00:00:22.761Z","type":"message"}
{"nick":"trevnorris","message":"othiym23: if process._exiting === true, should I bother to run any error callbacks. i.e. if the process.on('exit'... callback throws?","date":"2013-10-23T00:02:20.772Z","type":"message"}
{"nick":"othiym23","message":"so what's the overall goal here?","date":"2013-10-23T00:03:03.563Z","type":"message"}
{"nick":"trevnorris","message":"i dunno. this feature is because you requested it ;)","date":"2013-10-23T00:03:18.929Z","type":"message"}
{"nick":"othiym23","message":"this seems like a bunch of new changes to me","date":"2013-10-23T00:03:19.142Z","type":"message"}
{"nick":"trevnorris","message":"i'm just the implementor.","date":"2013-10-23T00:03:22.815Z","type":"message"}
{"nick":"othiym23","message":"hmmmmmmmmmmmmm","date":"2013-10-23T00:03:42.253Z","type":"message"}
{"nick":"tjfontaine","message":"I'm not sure we're going to land beforeExit :)","date":"2013-10-23T00:04:17.325Z","type":"message"}
{"nick":"othiym23","message":"I feel like we don't want to do anything unexpected if we're in the process of bringing the process down","date":"2013-10-23T00:04:26.854Z","type":"message"}
{"nick":"othiym23","message":"so no?","date":"2013-10-23T00:04:31.990Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: thanks :)","date":"2013-10-23T00:04:43.540Z","type":"message"}
{"nick":"trevnorris","message":"beforeExit was meant to help revive a process in case it ran out of \"refs\", but never discussed how it might affect error handling.","date":"2013-10-23T00:05:15.586Z","type":"message"}
{"nick":"ISAACS","new_nick":"isaacs","date":"2013-10-23T00:05:46.467Z","type":"nick"}
{"nick":"isaacs","message":"trevnorris: pong","date":"2013-10-23T00:05:49.117Z","type":"message"}
{"nick":"trevnorris","message":"isaacs: question about error handling from the error callbacks. um. othiym23 think you can give a short summary?","date":"2013-10-23T00:06:28.737Z","type":"message"}
{"nick":"trevnorris","message":"i suck at doing that.","date":"2013-10-23T00:06:33.643Z","type":"message"}
{"nick":"isaacs","message":"ok, i see","date":"2013-10-23T00:07:01.386Z","type":"message"}
{"nick":"trevnorris","message":"othiym23: fyi, doing that causes three of your tests to fail.","date":"2013-10-23T00:07:16.538Z","type":"message"}
{"nick":"isaacs","message":"i think if the error handler throws, then let it crash","date":"2013-10-23T00:07:27.496Z","type":"message"}
{"nick":"isaacs","message":"trevnorris: ie, no try/catch around errorHandler(er)","date":"2013-10-23T00:07:41.508Z","type":"message"}
{"nick":"trevnorris","message":"isaacs: well, problem there is then process.on('exit' won't fire","date":"2013-10-23T00:07:57.260Z","type":"message"}
{"nick":"isaacs","message":"hmm.","date":"2013-10-23T00:08:02.454Z","type":"message"}
{"nick":"trevnorris","message":"that's what got me started into all this in the first place.","date":"2013-10-23T00:08:04.817Z","type":"message"}
{"nick":"isaacs","message":"why not?","date":"2013-10-23T00:08:06.355Z","type":"message"}
{"nick":"othiym23","message":"those are groundwater_'s tests, not mine","date":"2013-10-23T00:08:18.156Z","type":"message"}
{"nick":"trevnorris","message":"because it's like throwing from _fatalException.","date":"2013-10-23T00:08:25.334Z","type":"message"}
{"nick":"groundwater_","message":"othiym23: lol","date":"2013-10-23T00:08:28.458Z","type":"message"}
{"nick":"isaacs","message":"trevnorris: ok","date":"2013-10-23T00:08:28.935Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: is it just the error-in-error test that's failling?","date":"2013-10-23T00:08:58.197Z","type":"message"}
{"nick":"isaacs","message":"trevnorris: threw=true; try { handleError(er);threw=false; } finally { if(threw) process.emit('exit', process.exitCode || 8) }","date":"2013-10-23T00:09:23.346Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: it's throw-in-before-multiple, throw-in-before and throw-in-after","date":"2013-10-23T00:09:27.909Z","type":"message"}
{"nick":"groundwater_","message":"ahh, interesting because those used to pass","date":"2013-10-23T00:09:57.681Z","type":"message"}
{"nick":"groundwater_","message":"why don't i have a look at your latest changes later","date":"2013-10-23T00:10:09.824Z","type":"message"}
{"nick":"groundwater_","message":"i can also try to writeup a summary of the edge case behavior ","date":"2013-10-23T00:10:57.079Z","type":"message"}
{"nick":"trevnorris","message":"isaacs: it's possible to run through the error callbacks one more time, which I thought might be useful to debug if one of your error callbacks throws.","date":"2013-10-23T00:11:04.824Z","type":"message"}
{"nick":"trevnorris","message":"which i've implemented (wasn't hard) but also othiym23 wanted a custom error message that would print like \"Error handler threw: <stacktrace> when handling error: <stacktrace>\"","date":"2013-10-23T00:11:49.342Z","type":"message"}
{"nick":"othiym23","message":"trevnorris, isaacs: everybody is confused when a domain handler throws and they get the original stacktrace that was handed to the domain handler","date":"2013-10-23T00:13:21.572Z","type":"message"}
{"nick":"trevnorris","message":"yeah. so just allow the errorHandler to throw and that'll be it.","date":"2013-10-23T00:14:05.172Z","type":"message"}
{"nick":"trevnorris","message":"if they need extra information then you can listen for 'exit' event and check the status code.","date":"2013-10-23T00:14:23.330Z","type":"message"}
{"nick":"dshaw_","date":"2013-10-23T00:14:25.969Z","type":"join"}
{"nick":"trevnorris","message":"othiym23: i think it'd just be helpful if we didn't loose the stacktrace when getting into _fataException, then they'd have the stack that got them there as well.","date":"2013-10-23T00:17:31.798Z","type":"message"}
{"nick":"trevnorris","message":"that should be enough.","date":"2013-10-23T00:17:36.594Z","type":"message"}
{"nick":"othiym23","message":"not sure what behavior you're describing here","date":"2013-10-23T00:17:56.121Z","type":"message"}
{"nick":"trevnorris","message":"... screw it. need to head out.","date":"2013-10-23T00:20:53.254Z","type":"message"}
{"nick":"trevnorris","message":"isaacs: for some reason I'm loosing the stack trace when I'm entering _fatalException. if you have any ideas why, it'd be appreciated.","date":"2013-10-23T00:21:27.819Z","type":"message"}
{"nick":"isaacs","message":"trevnorris: i'll dig into it tomorrow","date":"2013-10-23T00:23:17.795Z","type":"message"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2013-10-23T00:26:35.904Z","type":"quit"}
{"nick":"bradleymeck","date":"2013-10-23T00:27:25.754Z","type":"join"}
{"nick":"jmar777","reason":"Remote host closed the connection","date":"2013-10-23T00:29:49.192Z","type":"quit"}
{"nick":"jmar777","date":"2013-10-23T00:30:26.733Z","type":"join"}
{"nick":"FROGGS","date":"2013-10-23T00:30:58.182Z","type":"join"}
{"nick":"jmar777","reason":"Ping timeout: 240 seconds","date":"2013-10-23T00:34:38.516Z","type":"quit"}
{"nick":"AvianFlu","reason":"Remote host closed the connection","date":"2013-10-23T00:37:59.534Z","type":"quit"}
{"nick":"AvianFlu","date":"2013-10-23T00:38:27.960Z","type":"join"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2013-10-23T00:42:36.415Z","type":"quit"}
{"nick":"AvianFlu","reason":"Ping timeout: 272 seconds","date":"2013-10-23T00:43:33.721Z","type":"quit"}
{"nick":"pachet","reason":"Quit: leaving","date":"2013-10-23T00:49:39.890Z","type":"quit"}
{"nick":"dshaw_","date":"2013-10-23T00:50:42.766Z","type":"join"}
{"nick":"bradleymeck","reason":"Quit: bradleymeck","date":"2013-10-23T00:53:25.900Z","type":"quit"}
{"nick":"dshaw_","reason":"Ping timeout: 240 seconds","date":"2013-10-23T00:55:02.513Z","type":"quit"}
{"nick":"FROGGS","reason":"Ping timeout: 272 seconds","date":"2013-10-23T00:55:57.207Z","type":"quit"}
{"nick":"jmar777","date":"2013-10-23T00:56:34.724Z","type":"join"}
{"nick":"Ralith","reason":"Ping timeout: 240 seconds","date":"2013-10-23T00:57:26.523Z","type":"quit"}
{"nick":"TooTallNate","reason":"Quit: [\"Textual IRC Client: www.textualapp.com\"]","date":"2013-10-23T01:01:18.415Z","type":"quit"}
{"nick":"dshaw_","date":"2013-10-23T01:13:33.327Z","type":"join"}
{"nick":"dshaw_1","date":"2013-10-23T01:15:21.396Z","type":"join"}
{"nick":"dshaw_","reason":"Read error: Connection reset by peer","date":"2013-10-23T01:15:34.623Z","type":"quit"}
{"nick":"dshaw_1","reason":"Ping timeout: 245 seconds","date":"2013-10-23T01:19:36.635Z","type":"quit"}
{"nick":"kenansulayman","reason":"Ping timeout: 264 seconds","date":"2013-10-23T01:23:52.378Z","type":"quit"}
{"nick":"kenansulayman","date":"2013-10-23T01:25:12.534Z","type":"join"}
{"nick":"Ralith","date":"2013-10-23T01:27:06.721Z","type":"join"}
{"nick":"inolen","date":"2013-10-23T01:35:46.732Z","type":"join"}
{"nick":"abraxas","date":"2013-10-23T01:37:19.350Z","type":"join"}
{"nick":"kazupon","date":"2013-10-23T01:38:44.471Z","type":"join"}
{"nick":"kazupon","reason":"Remote host closed the connection","date":"2013-10-23T01:45:49.505Z","type":"quit"}
{"nick":"FROGGS","date":"2013-10-23T01:48:10.730Z","type":"join"}
{"nick":"kazupon","date":"2013-10-23T01:55:19.992Z","type":"join"}
{"nick":"kenansulayman","reason":"Quit: ≈ and thus my mac took a subtle yet profound nap ≈","date":"2013-10-23T02:13:27.426Z","type":"quit"}
{"nick":"kazupon","reason":"Read error: Connection timed out","date":"2013-10-23T02:21:34.408Z","type":"quit"}
{"nick":"FROGGS","reason":"Ping timeout: 272 seconds","date":"2013-10-23T02:28:03.741Z","type":"quit"}
{"nick":"FROGGS","date":"2013-10-23T02:28:30.873Z","type":"join"}
{"nick":"kazupon","date":"2013-10-23T02:31:08.714Z","type":"join"}
{"nick":"AvianFlu","date":"2013-10-23T02:37:55.731Z","type":"join"}
{"nick":"FROGGS","reason":"Ping timeout: 272 seconds","date":"2013-10-23T02:38:27.869Z","type":"quit"}
{"nick":"FROGGS","date":"2013-10-23T02:51:08.197Z","type":"join"}
{"nick":"kazupon","reason":"Read error: Connection timed out","date":"2013-10-23T02:55:53.753Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T03:01:49.093Z","type":"join"}
{"nick":"FROGGS","reason":"Ping timeout: 272 seconds","date":"2013-10-23T03:33:01.222Z","type":"quit"}
{"nick":"kazupon","reason":"Read error: Operation timed out","date":"2013-10-23T03:44:07.676Z","type":"quit"}
{"nick":"FROGGS","date":"2013-10-23T03:49:51.532Z","type":"join"}
{"nick":"kazupon","date":"2013-10-23T03:50:08.754Z","type":"join"}
{"nick":"AvianFlu","reason":"Remote host closed the connection","date":"2013-10-23T04:07:33.264Z","type":"quit"}
{"nick":"AvianFlu","date":"2013-10-23T04:08:03.059Z","type":"join"}
{"nick":"AvianFlu","reason":"Remote host closed the connection","date":"2013-10-23T04:08:30.985Z","type":"quit"}
{"nick":"kazupon","reason":"Read error: Connection timed out","date":"2013-10-23T04:08:44.092Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T04:10:14.348Z","type":"join"}
{"nick":"mikeal","date":"2013-10-23T04:10:28.858Z","type":"join"}
{"nick":"AvianFlu","date":"2013-10-23T04:12:03.857Z","type":"join"}
{"nick":"kazupon","reason":"Read error: Connection reset by peer","date":"2013-10-23T04:12:14.853Z","type":"quit"}
{"nick":"abraxas_","date":"2013-10-23T04:16:24.386Z","type":"join"}
{"nick":"AvianFlu","reason":"Remote host closed the connection","date":"2013-10-23T04:16:36.280Z","type":"quit"}
{"nick":"AvianFlu","date":"2013-10-23T04:17:05.406Z","type":"join"}
{"nick":"abraxas","reason":"Ping timeout: 272 seconds","date":"2013-10-23T04:17:59.197Z","type":"quit"}
{"nick":"AvianFlu","reason":"Ping timeout: 272 seconds","date":"2013-10-23T04:21:47.189Z","type":"quit"}
{"nick":"brson","reason":"Ping timeout: 272 seconds","date":"2013-10-23T04:30:33.950Z","type":"quit"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2013-10-23T04:34:56.833Z","type":"quit"}
{"nick":"mikeal","date":"2013-10-23T04:35:05.221Z","type":"join"}
{"nick":"FROGGS","reason":"Ping timeout: 240 seconds","date":"2013-10-23T04:43:02.518Z","type":"quit"}
{"nick":"avalanche123","date":"2013-10-23T04:52:37.765Z","type":"join"}
{"nick":"avalanche123","reason":"Client Quit","date":"2013-10-23T04:54:52.894Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T04:59:49.583Z","type":"join"}
{"nick":"kazupon","reason":"Read error: Connection timed out","date":"2013-10-23T05:19:47.553Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T05:21:32.097Z","type":"join"}
{"nick":"paddybyers","date":"2013-10-23T05:34:59.727Z","type":"join"}
{"nick":"defunctzombie_zz","new_nick":"defunctzombie","date":"2013-10-23T05:57:16.752Z","type":"nick"}
{"nick":"paddybyers","reason":"Quit: paddybyers","date":"2013-10-23T06:10:28.497Z","type":"quit"}
{"nick":"paddybyers","date":"2013-10-23T06:16:49.662Z","type":"join"}
{"nick":"defunctzombie","new_nick":"defunctzombie_zz","date":"2013-10-23T06:23:28.756Z","type":"nick"}
{"nick":"MI6","message":"\u0002nodejs-v0.10-windows\u0002: #277 \u00037UNSTABLE\u000f windows-ia32 (10/603) windows-x64 (11/603) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/277/","date":"2013-10-23T06:41:11.888Z","type":"message"}
{"nick":"dominictarr","date":"2013-10-23T06:43:15.374Z","type":"join"}
{"nick":"dominictarr","reason":"Quit: dominictarr","date":"2013-10-23T06:54:50.156Z","type":"quit"}
{"nick":"FROGGS","date":"2013-10-23T07:03:33.385Z","type":"join"}
{"nick":"kazupon","reason":"Read error: Connection reset by peer","date":"2013-10-23T07:05:19.926Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T07:11:07.848Z","type":"join"}
{"nick":"rendar","date":"2013-10-23T07:12:31.126Z","type":"join"}
{"nick":"jmar777","reason":"Remote host closed the connection","date":"2013-10-23T07:36:20.992Z","type":"quit"}
{"nick":"indutny","message":"heya","date":"2013-10-23T07:43:34.873Z","type":"message"}
{"nick":"c4milo","reason":"Read error: Connection reset by peer","date":"2013-10-23T07:51:05.550Z","type":"quit"}
{"nick":"c4milo","date":"2013-10-23T07:51:40.414Z","type":"join"}
{"nick":"paddybyers","reason":"Quit: paddybyers","date":"2013-10-23T07:54:14.886Z","type":"quit"}
{"nick":"c4milo","reason":"Remote host closed the connection","date":"2013-10-23T07:55:32.197Z","type":"quit"}
{"nick":"c4milo","date":"2013-10-23T07:56:05.383Z","type":"join"}
{"nick":"c4milo","reason":"Ping timeout: 245 seconds","date":"2013-10-23T08:00:26.679Z","type":"quit"}
{"nick":"indutny","message":"oh ben","date":"2013-10-23T08:03:57.951Z","type":"message"}
{"nick":"indutny","message":"tjfontaine: yt?","date":"2013-10-23T08:04:40.094Z","type":"message"}
{"nick":"paddybyers","date":"2013-10-23T08:07:14.625Z","type":"join"}
{"nick":"bnoordhuis","date":"2013-10-23T08:11:20.972Z","type":"join"}
{"nick":"kazupon","reason":"Read error: Connection reset by peer","date":"2013-10-23T08:12:08.687Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T08:23:09.194Z","type":"join"}
{"nick":"kenansulayman","date":"2013-10-23T08:31:13.621Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: heya","date":"2013-10-23T08:42:21.498Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: remember you removed my code from 0.10","date":"2013-10-23T08:42:28.182Z","type":"message"}
{"nick":"indutny","message":"because it was hanging and failing on 10.9?","date":"2013-10-23T08:42:33.621Z","type":"message"}
{"nick":"indutny","message":"osx","date":"2013-10-23T08:42:38.728Z","type":"message"}
{"nick":"indutny","message":"looks like the latter one was your fault, actually","date":"2013-10-23T08:42:51.386Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: https://github.com/joyent/libuv/blob/master/src/unix/fsevents.c#L555","date":"2013-10-23T08:43:05.301Z","type":"message"}
{"nick":"MI6","message":"\u0002joyent/libuv:\u0002 \u00033Fedor Indutny\u000f \u00037master\u000f * \u00020fdd99f\u0002 : fsevents: increase stack size for OSX 10.9 - http://git.io/x36sDw","date":"2013-10-23T08:50:03.058Z","type":"message"}
{"nick":"indutny","message":"saghul: thanks","date":"2013-10-23T08:50:37.970Z","type":"message"}
{"nick":"saghul","message":"indutny welcome. I'll re-check the other one a bit later, gotta work now ;-)","date":"2013-10-23T08:51:08.017Z","type":"message"}
{"nick":"indutny","message":"thank you! :)","date":"2013-10-23T08:51:16.204Z","type":"message"}
{"nick":"indutny","message":"you did a lot","date":"2013-10-23T08:51:18.402Z","type":"message"}
{"nick":"MI6","message":"\u0002libuv-master\u0002: #299 \u00037UNSTABLE\u000f windows (3/196) smartos (2/195) http://jenkins.nodejs.org/job/libuv-master/299/","date":"2013-10-23T08:53:57.353Z","type":"message"}
{"nick":"MI6","message":"\u0002libuv-master-gyp\u0002: #240 \u00034FAILURE\u000f windows-x64 (3/196) windows-ia32 (3/196) http://jenkins.nodejs.org/job/libuv-master-gyp/240/","date":"2013-10-23T08:55:36.200Z","type":"message"}
{"nick":"MI6","message":"\u0002libuv-node-integration\u0002: #284 \u00034FAILURE\u000f http://jenkins.nodejs.org/job/libuv-node-integration/284/","date":"2013-10-23T09:01:43.303Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: i'll go out on a limb and say it's apple's fault","date":"2013-10-23T09:20:33.470Z","type":"message"}
{"nick":"bnoordhuis","message":"if it's anyone's fault","date":"2013-10-23T09:20:44.455Z","type":"message"}
{"nick":"indutny","message":"haha :)","date":"2013-10-23T09:21:46.800Z","type":"message"}
{"nick":"indutny","message":"why","date":"2013-10-23T09:21:47.893Z","type":"message"}
{"nick":"indutny","message":"because they started using a bit more stack?","date":"2013-10-23T09:21:53.095Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: so, why not merge it back into v0.10?","date":"2013-10-23T09:22:12.301Z","type":"message"}
{"nick":"indutny","message":"is there any reasons?","date":"2013-10-23T09:22:14.742Z","type":"message"}
{"nick":"indutny","message":"I know at least one problem that my changes in FSEvents are fixing","date":"2013-10-23T09:22:27.063Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: btw, what is your opinion on this https://github.com/joyent/libuv/pull/958/files#diff-c5e4480a66af872d6425f7f6ecd55e02R141","date":"2013-10-23T09:22:57.321Z","type":"message"}
{"nick":"indutny","message":"I'd like to run close callbacks in loop_delete","date":"2013-10-23T09:23:07.228Z","type":"message"}
{"nick":"indutny","message":"if closes are happening in platform dependent code","date":"2013-10-23T09:23:15.212Z","type":"message"}
{"nick":"bnoordhuis","message":"hrm, i'm not that comfortable with big changes in stable branches","date":"2013-10-23T09:23:29.511Z","type":"message"}
{"nick":"bnoordhuis","message":"landing all those fsevents changes was, in retrospect, not a great idea","date":"2013-10-23T09:23:44.926Z","type":"message"}
{"nick":"indutny","message":"there was a lot of buggy stuff in libuv","date":"2013-10-23T09:24:03.166Z","type":"message"}
{"nick":"indutny","message":"and not the most of it was produced by my hands","date":"2013-10-23T09:24:10.018Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T09:24:13.236Z","type":"message"}
{"nick":"indutny","message":"I think its ok to have problems and ok to solve them","date":"2013-10-23T09:24:26.856Z","type":"message"}
{"nick":"indutny","message":"removing features because of some rare failures is not a reason for it","date":"2013-10-23T09:24:44.893Z","type":"message"}
{"nick":"indutny","message":"though, I must admit that we've pretty awkward tests for fsevents in general","date":"2013-10-23T09:25:12.484Z","type":"message"}
{"nick":"indutny","message":"not just osx side","date":"2013-10-23T09:25:14.872Z","type":"message"}
{"nick":"bnoordhuis","message":"fixing bugs is one thing but i need to be fairly confident it won't cause regressions elsewhere","date":"2013-10-23T09:25:52.638Z","type":"message"}
{"nick":"bnoordhuis","message":"with 500+ line patches that's hard to verify","date":"2013-10-23T09:25:52.853Z","type":"message"}
{"nick":"bnoordhuis","message":"btw, you can't run close callbacks in uv__loop_delete(), that's asking for trouble","date":"2013-10-23T09:26:37.307Z","type":"message"}
{"nick":"bnoordhuis","message":"and you know, i'm not sure i'm a fan of #958","date":"2013-10-23T09:27:59.315Z","type":"message"}
{"nick":"bnoordhuis","message":"lots of complexity, lots of potential for performance problems","date":"2013-10-23T09:28:23.633Z","type":"message"}
{"nick":"bnoordhuis","message":"i guess my biggest beef is that it hides the fact that libuv may decide to switch from something that's O(1) to something that's O(n) or worse","date":"2013-10-23T09:28:50.735Z","type":"message"}
{"nick":"indutny","message":"it doesn't","date":"2013-10-23T09:29:37.610Z","type":"message"}
{"nick":"indutny","message":"apple will throw a couple of stderr lines","date":"2013-10-23T09:29:44.235Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T09:29:44.959Z","type":"message"}
{"nick":"indutny","message":"haha","date":"2013-10-23T09:29:48.836Z","type":"message"}
{"nick":"indutny","message":"if you want my opinion - I don't like it either","date":"2013-10-23T09:29:54.436Z","type":"message"}
{"nick":"indutny","message":"but I know that its important for people","date":"2013-10-23T09:30:03.792Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I dislike calling close callbacks in loop_delete() too","date":"2013-10-23T09:30:23.824Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: but I need to close a uv_async_t handle","date":"2013-10-23T09:30:36.027Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: which is allocated loop state","date":"2013-10-23T09:30:45.638Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: should I just pretend that I know internals and free structure immediately after uv_close()?","date":"2013-10-23T09:31:02.717Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: right now, there won't be any problems with this","date":"2013-10-23T09:31:14.405Z","type":"message"}
{"nick":"bnoordhuis","message":"no, because that's not very maintainable","date":"2013-10-23T09:31:15.597Z","type":"message"}
{"nick":"indutny","message":"indeed","date":"2013-10-23T09:31:19.176Z","type":"message"}
{"nick":"bnoordhuis","message":"but closing handles in uv__loop_delete() has the same issue","date":"2013-10-23T09:31:36.374Z","type":"message"}
{"nick":"bnoordhuis","message":"the moment libuv's internals change, things start breaking left and right","date":"2013-10-23T09:31:51.223Z","type":"message"}
{"nick":"indutny","message":"not that much","date":"2013-10-23T09:31:56.319Z","type":"message"}
{"nick":"indutny","message":"its a core thing","date":"2013-10-23T09:31:59.532Z","type":"message"}
{"nick":"indutny","message":"its hard to change internals that much without changing","date":"2013-10-23T09:32:08.344Z","type":"message"}
{"nick":"indutny","message":"but tracking all platform-dependent changes is really hard","date":"2013-10-23T09:32:24.987Z","type":"message"}
{"nick":"indutny","message":"anyway","date":"2013-10-23T09:32:35.582Z","type":"message"}
{"nick":"indutny","message":"I'm open to any other suggestions","date":"2013-10-23T09:32:40.671Z","type":"message"}
{"nick":"indutny","message":"and that's the main reason for asking you there ;)","date":"2013-10-23T09:32:47.781Z","type":"message"}
{"nick":"bnoordhuis","message":"let me think about that for a bit","date":"2013-10-23T09:32:53.608Z","type":"message"}
{"nick":"indutny","message":"thank you","date":"2013-10-23T09:33:17.055Z","type":"message"}
{"nick":"bnoordhuis","action":"is afk for a bit","date":"2013-10-23T09:35:38.188Z","type":"action"}
{"nick":"bnoordhuis","reason":"Ping timeout: 260 seconds","date":"2013-10-23T09:40:27.993Z","type":"quit"}
{"nick":"bnoordhuis","date":"2013-10-23T10:06:16.586Z","type":"join"}
{"nick":"abraxas_","reason":"Remote host closed the connection","date":"2013-10-23T10:10:34.285Z","type":"quit"}
{"nick":"abraxas","date":"2013-10-23T10:11:08.518Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: so what's your approach about?","date":"2013-10-23T10:22:25.608Z","type":"message"}
{"nick":"indutny","message":"did you mean waiting in uv__fs_event_close?","date":"2013-10-23T10:22:37.916Z","type":"message"}
{"nick":"Kakera","date":"2013-10-23T10:23:35.878Z","type":"join"}
{"nick":"kenansulayman","reason":"Quit: ≈ and thus my mac took a subtle yet profound nap ≈","date":"2013-10-23T10:28:50.248Z","type":"quit"}
{"nick":"bnoordhuis","message":"indutny: just commented","date":"2013-10-23T10:29:55.562Z","type":"message"}
{"nick":"indutny","message":"thanks","date":"2013-10-23T10:29:59.233Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: just commented too :)","date":"2013-10-23T10:30:56.858Z","type":"message"}
{"nick":"bnoordhuis","message":"and commented again :)","date":"2013-10-23T10:37:52.059Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: haha","date":"2013-10-23T10:39:54.336Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I think it'd be faster to continue here","date":"2013-10-23T10:40:01.761Z","type":"message"}
{"nick":"bnoordhuis","message":"will upgrading xcode break everything? (my mac is bugging me about software updates)","date":"2013-10-23T10:40:06.887Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: otherwise it looks like a slow-mo chat","date":"2013-10-23T10:40:09.014Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I'm not sure","date":"2013-10-23T10:40:14.996Z","type":"message"}
{"nick":"indutny","message":"you probably going to start to live with lldb","date":"2013-10-23T10:40:21.435Z","type":"message"}
{"nick":"indutny","message":"if you already didn't","date":"2013-10-23T10:40:26.660Z","type":"message"}
{"nick":"bnoordhuis","message":"they removed gdb?!","date":"2013-10-23T10:40:29.440Z","type":"message"}
{"nick":"indutny","message":"in osx 10.9","date":"2013-10-23T10:40:33.626Z","type":"message"}
{"nick":"indutny","message":"not sure about xcode","date":"2013-10-23T10:40:37.621Z","type":"message"}
{"nick":"bnoordhuis","message":"waaaaaaaaaaa?","date":"2013-10-23T10:40:38.309Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, that means i'm staying on 10.8 forever","date":"2013-10-23T10:41:09.486Z","type":"message"}
{"nick":"indutny","message":"hahaha","date":"2013-10-23T10:41:12.550Z","type":"message"}
{"nick":"indutny","message":"well, lldb is not that bad, actually","date":"2013-10-23T10:41:22.357Z","type":"message"}
{"nick":"indutny","message":"anyway, returning to FSEvents","date":"2013-10-23T10:41:26.038Z","type":"message"}
{"nick":"bnoordhuis","message":"yes","date":"2013-10-23T10:41:57.310Z","type":"message"}
{"nick":"bnoordhuis","message":"so, i'm still not in love with the current approach","date":"2013-10-23T10:42:06.190Z","type":"message"}
{"nick":"bnoordhuis","message":"i mean that in a general sense, not talking particulars here","date":"2013-10-23T10:42:29.508Z","type":"message"}
{"nick":"bnoordhuis","message":"i'm leaning towards telling the user when fsevents fails so they have a chance to do polling themselves","date":"2013-10-23T10:43:07.148Z","type":"message"}
{"nick":"bnoordhuis","message":"which is pretty straightforward to implement in node, i think","date":"2013-10-23T10:43:32.514Z","type":"message"}
{"nick":"indutny","message":"hm...","date":"2013-10-23T10:44:12.532Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I see where it goes","date":"2013-10-23T10:47:10.212Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-v0.10\u0002: #1551 \u00037UNSTABLE\u000f smartos-x64 (4/603) smartos-ia32 (4/603) osx-ia32 (1/603) http://jenkins.nodejs.org/job/nodejs-v0.10/1551/","date":"2013-10-23T10:48:26.162Z","type":"message"}
{"nick":"bnoordhuis","message":"you agree that's a better approach or ?","date":"2013-10-23T10:48:30.258Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: let me think about it for a bit","date":"2013-10-23T10:49:57.969Z","type":"message"}
{"nick":"indutny","message":"I agree that polling in node is simplier","date":"2013-10-23T10:50:03.827Z","type":"message"}
{"nick":"indutny","message":"but polling in C is as hard as it is","date":"2013-10-23T10:50:29.606Z","type":"message"}
{"nick":"indutny","message":"though","date":"2013-10-23T10:50:35.888Z","type":"message"}
{"nick":"indutny","message":"requires no changes to event-loop","date":"2013-10-23T10:50:40.456Z","type":"message"}
{"nick":"indutny","message":"and handled only by user","date":"2013-10-23T10:50:45.235Z","type":"message"}
{"nick":"indutny","message":"also, considering that its not recursive right now","date":"2013-10-23T10:51:03.161Z","type":"message"}
{"nick":"indutny","message":"yeah, I think I agree with you","date":"2013-10-23T10:51:10.201Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, cool :)","date":"2013-10-23T10:51:14.816Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: should I just invoke handle->cb with status=-1 ?","date":"2013-10-23T10:51:25.903Z","type":"message"}
{"nick":"indutny","message":"in case if Start() fails","date":"2013-10-23T10:51:32.587Z","type":"message"}
{"nick":"bnoordhuis","message":"well... something like, i don't know, -EBUSY?","date":"2013-10-23T10:51:47.481Z","type":"message"}
{"nick":"bnoordhuis","message":"and document in uv.h that it means that fsevents is at max capacity","date":"2013-10-23T10:52:18.238Z","type":"message"}
{"nick":"bnoordhuis","message":"maybe -EMFILE is a better status code but i'll leave that to your good taste","date":"2013-10-23T10:52:37.503Z","type":"message"}
{"nick":"indutny","message":"-EMFILE sounds like a better approach","date":"2013-10-23T10:52:51.136Z","type":"message"}
{"nick":"indutny","message":"bad thing is that I'll need to call it on all handles","date":"2013-10-23T10:52:58.978Z","type":"message"}
{"nick":"bnoordhuis","message":"you do? does fsevents stop working altogether when you hit that rpc error?","date":"2013-10-23T10:53:23.123Z","type":"message"}
{"nick":"bnoordhuis","message":"i thought that's only for new handles?","date":"2013-10-23T10:53:39.388Z","type":"message"}
{"nick":"indutny","message":"yes","date":"2013-10-23T10:53:52.106Z","type":"message"}
{"nick":"indutny","message":"because we're using single shared FSEventStream","date":"2013-10-23T10:54:01.831Z","type":"message"}
{"nick":"bnoordhuis","message":"oh. that sucks","date":"2013-10-23T10:54:21.628Z","type":"message"}
{"nick":"indutny","message":"using new FSEventStream for each handle sucks even more","date":"2013-10-23T10:54:34.419Z","type":"message"}
{"nick":"indutny","message":"because it fails really early :)","date":"2013-10-23T10:54:42.296Z","type":"message"}
{"nick":"bnoordhuis","message":"yeah, i can imagine","date":"2013-10-23T10:54:48.441Z","type":"message"}
{"nick":"indutny","message":"so","date":"2013-10-23T10:54:52.338Z","type":"message"}
{"nick":"indutny","message":"probably I should try to create new stream first","date":"2013-10-23T10:55:00.448Z","type":"message"}
{"nick":"indutny","message":"no","date":"2013-10-23T10:55:04.979Z","type":"message"}
{"nick":"indutny","message":"it won't work","date":"2013-10-23T10:55:06.584Z","type":"message"}
{"nick":"indutny","message":"ok","date":"2013-10-23T10:55:08.714Z","type":"message"}
{"nick":"indutny","message":"just throw all errors to user","date":"2013-10-23T10:55:15.021Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T10:55:15.616Z","type":"message"}
{"nick":"bnoordhuis","message":"and let the user deal with it, yeah","date":"2013-10-23T10:55:26.494Z","type":"message"}
{"nick":"kazupon","reason":"Remote host closed the connection","date":"2013-10-23T11:03:56.236Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T11:04:24.892Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: sounds like a plan","date":"2013-10-23T11:06:03.264Z","type":"message"}
{"nick":"kazupon","reason":"Ping timeout: 245 seconds","date":"2013-10-23T11:08:46.696Z","type":"quit"}
{"nick":"indutny","message":"oh god","date":"2013-10-23T11:12:12.624Z","type":"message"}
{"nick":"indutny","message":"I just found that I'm traversing handles without mutex","date":"2013-10-23T11:13:08.267Z","type":"message"}
{"nick":"indutny","message":"in FSEvents thread","date":"2013-10-23T11:13:12.127Z","type":"message"}
{"nick":"indutny","message":"to say that its terrible is to say nothing","date":"2013-10-23T11:16:27.129Z","type":"message"}
{"nick":"bnoordhuis","message":"hah","date":"2013-10-23T11:19:02.620Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I think I'm almost done with it","date":"2013-10-23T11:24:56.304Z","type":"message"}
{"nick":"MI6","message":"\u0002joyent/node:\u0002 \u00033Ben Noordhuis\u000f \u00037v0.10\u000f * \u000291a0e52\u0002 : src: IsInt64() should return bool, not int - http://git.io/5WPGsg","date":"2013-10-23T11:27:08.818Z","type":"message"}
{"nick":"bnoordhuis","message":"$ make test-gc","date":"2013-10-23T11:34:32.139Z","type":"message"}
{"nick":"bnoordhuis","message":"touch out/Makefile","date":"2013-10-23T11:34:32.432Z","type":"message"}
{"nick":"bnoordhuis","message":"/usr/bin/python tools/gyp_node -f ninja","date":"2013-10-23T11:34:32.971Z","type":"message"}
{"nick":"bnoordhuis","message":"^ seriously, who thought that was a good idea?","date":"2013-10-23T11:34:39.761Z","type":"message"}
{"nick":"bnoordhuis","message":"at least in master it no longer eats your config.gypi, like it used to","date":"2013-10-23T11:35:32.634Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-v0.10\u0002: #1552 \u00037UNSTABLE\u000f smartos-x64 (5/603) smartos-ia32 (4/603) linux-x64 (1/603) linux-ia32 (1/603) http://jenkins.nodejs.org/job/nodejs-v0.10/1552/","date":"2013-10-23T11:37:32.072Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: are you read? :)","date":"2013-10-23T11:40:22.021Z","type":"message"}
{"nick":"indutny","message":"s","date":"2013-10-23T11:40:31.253Z","type":"message"}
{"nick":"indutny","message":"s/read/ready/","date":"2013-10-23T11:40:34.098Z","type":"message"}
{"nick":"bnoordhuis","message":"well-read even","date":"2013-10-23T11:41:43.724Z","type":"message"}
{"nick":"bnoordhuis","message":"if you're asking, do i have time to review a PR?, well, i'm already reviewing something else","date":"2013-10-23T11:42:10.646Z","type":"message"}
{"nick":"bnoordhuis","message":"fixing something else, really","date":"2013-10-23T11:42:17.066Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-v0.10-windows\u0002: #278 \u00037UNSTABLE\u000f windows-ia32 (11/603) windows-x64 (9/603) http://jenkins.nodejs.org/job/nodejs-v0.10-windows/278/","date":"2013-10-23T11:42:22.132Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: tadam https://github.com/joyent/libuv/pull/965","date":"2013-10-23T11:42:51.904Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: we all do :)","date":"2013-10-23T11:43:03.944Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: still trying to review trevor's stuff","date":"2013-10-23T11:49:03.672Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: i'm not sure how to describe it without making myself vulnerable to your \"that's what she said jokes\"","date":"2013-10-23T11:49:31.797Z","type":"message"}
{"nick":"bnoordhuis","message":"now i'm curious what that description would be :)","date":"2013-10-23T11:53:17.004Z","type":"message"}
{"nick":"indutny","message":"haha","date":"2013-10-23T11:54:53.273Z","type":"message"}
{"nick":"indutny","message":"no way I'll tell you","date":"2013-10-23T11:54:58.115Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: two star? :0","date":"2013-10-23T11:57:41.793Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: you do approx. -> if (p == NULL) { list->head = p; } else { p->next = p; }","date":"2013-10-23T11:58:30.669Z","type":"message"}
{"nick":"indutny","message":"err","date":"2013-10-23T11:58:42.143Z","type":"message"}
{"nick":"indutny","message":"that was a mistake :)","date":"2013-10-23T11:58:44.647Z","type":"message"}
{"nick":"indutny","message":"it should be list->tail = p","date":"2013-10-23T11:58:52.302Z","type":"message"}
{"nick":"indutny","message":"not","date":"2013-10-23T11:58:53.820Z","type":"message"}
{"nick":"indutny","message":"p->next = p","date":"2013-10-23T11:58:55.594Z","type":"message"}
{"nick":"indutny","message":"ah","date":"2013-10-23T11:59:15.146Z","type":"message"}
{"nick":"bnoordhuis","message":"okay. wait, let me comment on the issue","date":"2013-10-23T11:59:18.413Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T11:59:21.602Z","type":"message"}
{"nick":"indutny","message":"refresh page","date":"2013-10-23T11:59:26.665Z","type":"message"}
{"nick":"indutny","message":"I've added one commit to PR","date":"2013-10-23T11:59:31.713Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, good","date":"2013-10-23T11:59:56.538Z","type":"message"}
{"nick":"bnoordhuis","message":"the two star is something else though :)","date":"2013-10-23T12:00:08.002Z","type":"message"}
{"nick":"bnoordhuis","message":"wait, i'll post an example","date":"2013-10-23T12:00:13.538Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T12:00:20.676Z","type":"message"}
{"nick":"indutny","message":"like p = **x","date":"2013-10-23T12:00:27.001Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T12:00:28.219Z","type":"message"}
{"nick":"indutny","message":"void** res;","date":"2013-10-23T12:00:40.700Z","type":"message"}
{"nick":"indutny","message":"if (p == NULL)","date":"2013-10-23T12:00:44.703Z","type":"message"}
{"nick":"indutny","message":"res = something","date":"2013-10-23T12:00:47.108Z","type":"message"}
{"nick":"indutny","message":"else","date":"2013-10-23T12:00:47.589Z","type":"message"}
{"nick":"indutny","message":"res = something-else","date":"2013-10-23T12:00:49.651Z","type":"message"}
{"nick":"indutny","message":"*res = p","date":"2013-10-23T12:00:50.909Z","type":"message"}
{"nick":"indutny","message":"this?","date":"2013-10-23T12:00:52.659Z","type":"message"}
{"nick":"bnoordhuis","message":"https://github.com/joyent/libuv/pull/965/files#r7154685 <- that","date":"2013-10-23T12:02:25.839Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T12:02:33.606Z","type":"message"}
{"nick":"indutny","message":"close to what I thought","date":"2013-10-23T12:02:38.594Z","type":"message"}
{"nick":"bnoordhuis","message":"two star programming. i think it's linus who came up with that phrase","date":"2013-10-23T12:03:16.858Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T12:03:46.468Z","type":"message"}
{"nick":"indutny","message":"anyway","date":"2013-10-23T12:03:48.885Z","type":"message"}
{"nick":"indutny","message":"added two star code","date":"2013-10-23T12:04:08.323Z","type":"message"}
{"nick":"indutny","message":"specially for you","date":"2013-10-23T12:04:13.198Z","type":"message"}
{"nick":"indutny","message":"any other comments? :)","date":"2013-10-23T12:04:53.063Z","type":"message"}
{"nick":"bnoordhuis","message":"left another comment regarding if statements with negation","date":"2013-10-23T12:09:58.034Z","type":"message"}
{"nick":"bnoordhuis","message":"i don't mind that one too much though","date":"2013-10-23T12:10:06.224Z","type":"message"}
{"nick":"bnoordhuis","message":"btw, can you add commits rather than rebase+force-push?","date":"2013-10-23T12:10:20.112Z","type":"message"}
{"nick":"bnoordhuis","message":"oh btw, you could move the err = -ENOMEM out of the critical section","date":"2013-10-23T12:10:57.463Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I add them","date":"2013-10-23T12:11:26.791Z","type":"message"}
{"nick":"indutny","message":"you're just commenting on PR","date":"2013-10-23T12:11:32.449Z","type":"message"}
{"nick":"indutny","message":"that's why things are disappearing","date":"2013-10-23T12:11:38.144Z","type":"message"}
{"nick":"bnoordhuis","message":"oh right, github again","date":"2013-10-23T12:11:55.951Z","type":"message"}
{"nick":"bnoordhuis","message":"yeah, i'm looking at the PR as a whole, not individual commits","date":"2013-10-23T12:12:11.153Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T12:12:48.688Z","type":"message"}
{"nick":"indutny","message":"so, I pushed final commit","date":"2013-10-23T12:12:54.403Z","type":"message"}
{"nick":"indutny","message":"please take a peek look again","date":"2013-10-23T12:13:00.088Z","type":"message"}
{"nick":"indutny","message":"should be all clear now","date":"2013-10-23T12:13:06.291Z","type":"message"}
{"nick":"indutny","message":"and then I think we should merge libuv in node master","date":"2013-10-23T12:13:16.820Z","type":"message"}
{"nick":"indutny","message":"to make it work on 10.9","date":"2013-10-23T12:13:28.005Z","type":"message"}
{"nick":"bnoordhuis","message":"there's no regression test though","date":"2013-10-23T12:15:02.928Z","type":"message"}
{"nick":"indutny","message":"and it couldn't be there","date":"2013-10-23T12:15:12.886Z","type":"message"}
{"nick":"indutny","message":"as this error isn't usually reproducible","date":"2013-10-23T12:15:24.284Z","type":"message"}
{"nick":"bnoordhuis","message":"it'll happen eventually right? just keep adding enough watchers until you hit that rpc limit","date":"2013-10-23T12:15:44.190Z","type":"message"}
{"nick":"indutny","message":"no, it won't","date":"2013-10-23T12:17:29.120Z","type":"message"}
{"nick":"indutny","message":"we're using one stream","date":"2013-10-23T12:17:32.323Z","type":"message"}
{"nick":"indutny","message":"I'll need to spawn 400-1000 processes","date":"2013-10-23T12:17:47.533Z","type":"message"}
{"nick":"indutny","message":"each creating it's own stream","date":"2013-10-23T12:17:54.997Z","type":"message"}
{"nick":"indutny","message":"are you ok with this?","date":"2013-10-23T12:18:11.393Z","type":"message"}
{"nick":"bnoordhuis","message":"how do people manage to trigger that error with only a handful of node processes?","date":"2013-10-23T12:18:16.475Z","type":"message"}
{"nick":"indutny","message":"perhaps they've dropbox or something else watching directories","date":"2013-10-23T12:18:31.425Z","type":"message"}
{"nick":"bnoordhuis","message":"btw, i think you could two-star that head/tail code as well","date":"2013-10-23T12:18:38.250Z","type":"message"}
{"nick":"indutny","message":"you know number of FSEventStreams is limited on system-level","date":"2013-10-23T12:18:41.769Z","type":"message"}
{"nick":"bnoordhuis","message":"hrm, okay","date":"2013-10-23T12:18:47.378Z","type":"message"}
{"nick":"bnoordhuis","message":"well, balls","date":"2013-10-23T12:18:50.162Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: yes, but why?","date":"2013-10-23T12:18:50.375Z","type":"message"}
{"nick":"bnoordhuis","message":"because branchless code is easier to understand than branching code","date":"2013-10-23T12:19:11.625Z","type":"message"}
{"nick":"indutny","message":"oh gosh","date":"2013-10-23T12:19:24.876Z","type":"message"}
{"nick":"bnoordhuis","message":"compilers usually generate slightly better code too","date":"2013-10-23T12:19:33.522Z","type":"message"}
{"nick":"indutny","message":"I'll still have a branch for head","date":"2013-10-23T12:19:50.227Z","type":"message"}
{"nick":"bnoordhuis","message":"how so? you can do foo** next = &head; right?","date":"2013-10-23T12:20:51.032Z","type":"message"}
{"nick":"indutny","message":"no, it won't eliminate branches at all","date":"2013-10-23T12:20:53.046Z","type":"message"}
{"nick":"indutny","message":"well, head could be NULL","date":"2013-10-23T12:21:00.024Z","type":"message"}
{"nick":"indutny","message":"at the end of the loop","date":"2013-10-23T12:21:02.587Z","type":"message"}
{"nick":"indutny","message":"if there're no matched events","date":"2013-10-23T12:21:05.943Z","type":"message"}
{"nick":"indutny","message":"I don't think two star will improve situation","date":"2013-10-23T12:21:23.012Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, but that's outside the inner loop","date":"2013-10-23T12:21:23.224Z","type":"message"}
{"nick":"indutny","message":"yes...","date":"2013-10-23T12:21:34.843Z","type":"message"}
{"nick":"bnoordhuis","message":"it's not a big thing","date":"2013-10-23T12:21:38.801Z","type":"message"}
{"nick":"indutny","message":"well, I'm curious","date":"2013-10-23T12:21:46.361Z","type":"message"}
{"nick":"indutny","message":"please continue :)","date":"2013-10-23T12:21:48.673Z","type":"message"}
{"nick":"bnoordhuis","message":"but you want to become the greatest programmer in the world, right, fedor?","date":"2013-10-23T12:21:51.209Z","type":"message"}
{"nick":"indutny","message":"hahaha","date":"2013-10-23T12:21:56.161Z","type":"message"}
{"nick":"indutny","message":"not really","date":"2013-10-23T12:21:58.396Z","type":"message"}
{"nick":"indutny","message":"I just like to learn more","date":"2013-10-23T12:22:01.790Z","type":"message"}
{"nick":"bnoordhuis","message":"i used two star pointers to some effect in that heapify-timers PR","date":"2013-10-23T12:23:35.194Z","type":"message"}
{"nick":"bnoordhuis","message":"which imo improves readability compared to having if/then/else statements all over the place","date":"2013-10-23T12:24:02.235Z","type":"message"}
{"nick":"bnoordhuis","message":"but only insofar that data structure code can be readable, of course","date":"2013-10-23T12:24:22.295Z","type":"message"}
{"nick":"bnoordhuis","message":"we should require that all libuv PRs come with proofs of correctness written in coq!","date":"2013-10-23T12:25:09.376Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, i digress a little","date":"2013-10-23T12:25:42.407Z","type":"message"}
{"nick":"indutny","message":"I agree","date":"2013-10-23T12:25:50.849Z","type":"message"}
{"nick":"indutny","message":"haha","date":"2013-10-23T12:26:00.379Z","type":"message"}
{"nick":"indutny","message":"so LGTY?","date":"2013-10-23T12:26:04.232Z","type":"message"}
{"nick":"bnoordhuis","message":"about the proofs or that i'm digressing? :)","date":"2013-10-23T12:26:06.406Z","type":"message"}
{"nick":"bnoordhuis","message":"yeah, i guess so","date":"2013-10-23T12:26:32.780Z","type":"message"}
{"nick":"bnoordhuis","message":"i don't spot any obvious bugs, at least","date":"2013-10-23T12:26:48.678Z","type":"message"}
{"nick":"bnoordhuis","message":"ho!","date":"2013-10-23T12:27:26.838Z","type":"message"}
{"nick":"bnoordhuis","message":"../../src/unix/fsevents.c: In function ‘uv__fsevents_push_event’:","date":"2013-10-23T12:27:27.299Z","type":"message"}
{"nick":"bnoordhuis","message":"../../src/unix/fsevents.c:196: warning: assignment from incompatible pointer type","date":"2013-10-23T12:27:27.512Z","type":"message"}
{"nick":"bnoordhuis","message":"../../src/unix/fsevents.c:198: warning: assignment from incompatible pointer type","date":"2013-10-23T12:27:27.512Z","type":"message"}
{"nick":"bnoordhuis","message":"[133/133] LINK run-benchmarks, POSTBUILDS","date":"2013-10-23T12:27:27.512Z","type":"message"}
{"nick":"bnoordhuis","message":"you didn't spot that, fedor?","date":"2013-10-23T12:28:07.175Z","type":"message"}
{"nick":"indutny","message":"haha","date":"2013-10-23T12:29:00.870Z","type":"message"}
{"nick":"indutny","message":"nope","date":"2013-10-23T12:29:03.120Z","type":"message"}
{"nick":"indutny","message":"new compiler","date":"2013-10-23T12:29:05.499Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: fixed","date":"2013-10-23T12:30:17.794Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: (void**) => (uv_fsevents_event_t**)","date":"2013-10-23T12:30:30.133Z","type":"message"}
{"nick":"kazupon","date":"2013-10-23T12:30:31.767Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: pushed fixes to PR","date":"2013-10-23T12:31:33.239Z","type":"message"}
{"nick":"bnoordhuis","message":"also this:","date":"2013-10-23T12:31:54.249Z","type":"message"}
{"nick":"bnoordhuis","message":"../src/unix/fsevents.c: In function 'uv__cf_loop_cb':","date":"2013-10-23T12:31:55.905Z","type":"message"}
{"nick":"bnoordhuis","message":"../src/unix/fsevents.c:384:7: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized]","date":"2013-10-23T12:31:56.120Z","type":"message"}
{"nick":"bnoordhuis","message":" int i;","date":"2013-10-23T12:31:59.262Z","type":"message"}
{"nick":"bnoordhuis","message":" ^","date":"2013-10-23T12:32:01.766Z","type":"message"}
{"nick":"bnoordhuis","message":"../src/unix/fsevents.c:440:14: warning: 'paths' may be used uninitialized in this function [-Wmaybe-uninitialized]","date":"2013-10-23T12:32:04.273Z","type":"message"}
{"nick":"bnoordhuis","message":" cf_paths = pCFArrayCreate(NULL, (const void**) paths, path_count, NULL);","date":"2013-10-23T12:32:07.278Z","type":"message"}
{"nick":"bnoordhuis","message":"the compiler is right, too","date":"2013-10-23T12:33:15.488Z","type":"message"}
{"nick":"indutny","message":"that's is a lie","date":"2013-10-23T12:34:05.394Z","type":"message"}
{"nick":"indutny","message":"at least 440","date":"2013-10-23T12:34:07.365Z","type":"message"}
{"nick":"bnoordhuis","message":"well, the other one isn't","date":"2013-10-23T12:34:20.996Z","type":"message"}
{"nick":"indutny","message":"except i = 0","date":"2013-10-23T12:34:25.153Z","type":"message"}
{"nick":"bnoordhuis","message":"it's not, check the first goto statement","date":"2013-10-23T12:34:52.546Z","type":"message"}
{"nick":"indutny","message":"yes","date":"2013-10-23T12:35:01.694Z","type":"message"}
{"nick":"indutny","message":"I need to add i = 0","date":"2013-10-23T12:35:07.564Z","type":"message"}
{"nick":"bnoordhuis","message":"if (state->fsevent_need_reschedule == 0) { <- that one","date":"2013-10-23T12:35:10.172Z","type":"message"}
{"nick":"bnoordhuis","message":"indeed","date":"2013-10-23T12:35:14.165Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: please take another look :)","date":"2013-10-23T12:35:35.870Z","type":"message"}
{"nick":"indutny","message":"my compiler is playing bad games with me","date":"2013-10-23T12:35:41.048Z","type":"message"}
{"nick":"bnoordhuis","message":"still the same warnings...","date":"2013-10-23T12:36:10.060Z","type":"message"}
{"nick":"indutny","message":"yeah","date":"2013-10-23T12:36:26.367Z","type":"message"}
{"nick":"indutny","message":"but this time I'm cool","date":"2013-10-23T12:36:30.122Z","type":"message"}
{"nick":"indutny","message":"and compiler is stupid","date":"2013-10-23T12:36:33.051Z","type":"message"}
{"nick":"indutny","message":"ah","date":"2013-10-23T12:36:44.065Z","type":"message"}
{"nick":"indutny","message":"no","date":"2013-10-23T12:36:45.228Z","type":"message"}
{"nick":"indutny","message":"hahaha","date":"2013-10-23T12:37:04.031Z","type":"message"}
{"nick":"indutny","message":"shit","date":"2013-10-23T12:37:05.486Z","type":"message"}
{"nick":"indutny","message":"pushed out another fix","date":"2013-10-23T12:37:08.371Z","type":"message"}
{"nick":"bnoordhuis","message":"with all due respect, fedor, but next time please spend a little more time on your patches before asking me to review them","date":"2013-10-23T12:37:22.434Z","type":"message"}
{"nick":"bnoordhuis","message":"this is taking up time that could've been spent better","date":"2013-10-23T12:37:40.875Z","type":"message"}
{"nick":"bnoordhuis","message":"still complaining about paths","date":"2013-10-23T12:38:10.625Z","type":"message"}
{"nick":"indutny","message":"yeah, noted","date":"2013-10-23T12:38:14.731Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, i'm taking a lunch break","date":"2013-10-23T12:38:15.086Z","type":"message"}
{"nick":"indutny","message":"and pushed fix for paths","date":"2013-10-23T12:39:12.105Z","type":"message"}
{"nick":"indutny","message":"gosh","date":"2013-10-23T12:39:44.381Z","type":"message"}
{"nick":"indutny","message":"I need to work on my attention to details","date":"2013-10-23T12:39:56.984Z","type":"message"}
{"nick":"indutny","message":"I mean, now it looks good","date":"2013-10-23T12:40:02.428Z","type":"message"}
{"nick":"bnoordhuis","reason":"Ping timeout: 240 seconds","date":"2013-10-23T12:54:14.579Z","type":"quit"}
{"nick":"jmar777","date":"2013-10-23T13:16:25.396Z","type":"join"}
{"nick":"bnoordhuis","date":"2013-10-23T13:17:26.707Z","type":"join"}
{"nick":"bnoordhuis","message":"and back","date":"2013-10-23T13:17:58.594Z","type":"message"}
{"nick":"FROGGS","reason":"Quit: Verlassend","date":"2013-10-23T13:24:00.038Z","type":"quit"}
{"nick":"bnoordhuis","message":"https://news.ycombinator.com/news <- libuv's on the home page. everyone upvote!","date":"2013-10-23T13:27:22.089Z","type":"message"}
{"nick":"bnoordhuis","message":"also this: http://www.nrc.nl/nieuws/2013/10/23/europarlement-stemt-voor-opschorting-swift-verdrag-met-vs/ <- as of today, the EU no longer lets the USA view EU bank transactions","date":"2013-10-23T13:32:25.857Z","type":"message"}
{"nick":"kazupon","reason":"Remote host closed the connection","date":"2013-10-23T13:37:11.815Z","type":"quit"}
{"nick":"kazupon","date":"2013-10-23T13:37:38.340Z","type":"join"}
{"nick":"inolen","reason":"Read error: Connection reset by peer","date":"2013-10-23T13:40:07.036Z","type":"quit"}
{"nick":"inolen","date":"2013-10-23T13:40:14.203Z","type":"join"}
{"nick":"kazupon","reason":"Ping timeout: 245 seconds","date":"2013-10-23T13:42:05.149Z","type":"quit"}
{"nick":"c4milo","date":"2013-10-23T13:46:31.309Z","type":"join"}
{"nick":"wavded","date":"2013-10-23T13:48:54.345Z","type":"join"}
{"nick":"c4milo","reason":"Ping timeout: 240 seconds","date":"2013-10-23T13:51:02.552Z","type":"quit"}
{"nick":"indutny","message":"haha","date":"2013-10-23T13:57:39.018Z","type":"message"}
{"nick":"indutny","message":"already did","date":"2013-10-23T13:57:40.695Z","type":"message"}
{"nick":"indutny","message":"oh","date":"2013-10-23T13:57:45.434Z","type":"message"}
{"nick":"indutny","message":"last thing is pretty interesting","date":"2013-10-23T13:57:52.586Z","type":"message"}
{"nick":"bnoordhuis","message":"yeah. i guess the EU got pissed off about NSA spying","date":"2013-10-23T13:58:52.665Z","type":"message"}
{"nick":"indutny","message":"oh god","date":"2013-10-23T13:59:10.398Z","type":"message"}
{"nick":"indutny","message":"its NSA again :)","date":"2013-10-23T13:59:15.582Z","type":"message"}
{"nick":"indutny","message":"so anyway","date":"2013-10-23T14:00:15.278Z","type":"message"}
{"nick":"indutny","message":"LGTY?","date":"2013-10-23T14:00:17.577Z","type":"message"}
{"nick":"jmar777","reason":"Read error: Connection reset by peer","date":"2013-10-23T14:01:12.436Z","type":"quit"}
{"nick":"jmar777","date":"2013-10-23T14:01:37.342Z","type":"join"}
{"nick":"bnoordhuis","message":"i've come up with a brilliant new rule for reviewing","date":"2013-10-23T14:02:22.237Z","type":"message"}
{"nick":"bnoordhuis","message":"i only look at a PR once a day","date":"2013-10-23T14:02:28.740Z","type":"message"}
{"nick":"bnoordhuis","message":"if there are issues, you get a full day to fix them up, think through the consequences, etc. :)","date":"2013-10-23T14:02:52.559Z","type":"message"}
{"nick":"bnoordhuis","message":"win all around, right?","date":"2013-10-23T14:03:00.468Z","type":"message"}
{"nick":"indutny","message":"ok","date":"2013-10-23T14:03:03.754Z","type":"message"}
{"nick":"indutny","message":"see you tomorrow then?","date":"2013-10-23T14:03:07.443Z","type":"message"}
{"nick":"pachet","date":"2013-10-23T14:03:23.261Z","type":"join"}
{"nick":"bnoordhuis","message":"yes. your PR is the first thing i'll look at tomorrow :)","date":"2013-10-23T14:04:45.741Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T14:06:34.494Z","type":"message"}
{"nick":"indutny","message":"ok","date":"2013-10-23T14:06:35.044Z","type":"message"}
{"nick":"indutny","message":"any suggestions for next stuff?","date":"2013-10-23T14:09:06.028Z","type":"message"}
{"nick":"indutny","message":"except reviewing trevnorris :)","date":"2013-10-23T14:09:09.989Z","type":"message"}
{"nick":"indutny","message":"which I'm trying to do right now","date":"2013-10-23T14:09:15.325Z","type":"message"}
{"nick":"bnoordhuis","message":"hrm, let's see","date":"2013-10-23T14:10:32.132Z","type":"message"}
{"nick":"indutny","message":"there's interesting epoll bug","date":"2013-10-23T14:11:27.809Z","type":"message"}
{"nick":"indutny","message":"related to cluster","date":"2013-10-23T14:11:30.447Z","type":"message"}
{"nick":"indutny","message":"right?","date":"2013-10-23T14:11:45.462Z","type":"message"}
{"nick":"bnoordhuis","message":"https://github.com/joyent/libuv/issues/826 <- there's this which i'm reasonably sure is still an issue","date":"2013-10-23T14:12:02.348Z","type":"message"}
{"nick":"indutny","message":"you think that epoll has some events left after passing fd to another process?","date":"2013-10-23T14:12:03.990Z","type":"message"}
{"nick":"kazupon","date":"2013-10-23T14:12:11.417Z","type":"join"}
{"nick":"indutny","message":"yeah, I think its it","date":"2013-10-23T14:12:22.579Z","type":"message"}
{"nick":"bnoordhuis","message":"hah, great minds - that's the same issue :)","date":"2013-10-23T14:12:25.449Z","type":"message"}
{"nick":"bnoordhuis","message":"there's also a node issue somewhere","date":"2013-10-23T14:12:30.730Z","type":"message"}
{"nick":"bnoordhuis","message":"god, github's search is so awful","date":"2013-10-23T14:13:24.074Z","type":"message"}
{"nick":"bnoordhuis","message":"https://github.com/joyent/node/issues/6222","date":"2013-10-23T14:13:42.166Z","type":"message"}
{"nick":"indutny","message":"yes","date":"2013-10-23T14:14:23.747Z","type":"message"}
{"nick":"indutny","message":"so is that what you think about it?","date":"2013-10-23T14:14:31.831Z","type":"message"}
{"nick":"indutny","message":"anyway","date":"2013-10-23T14:14:50.993Z","type":"message"}
{"nick":"bnoordhuis","message":"#6222 is because the sending process closes the fd too quickly, i think","date":"2013-10-23T14:15:00.326Z","type":"message"}
{"nick":"indutny","message":"as far as I understand - it could happen only in one condition","date":"2013-10-23T14:15:04.945Z","type":"message"}
{"nick":"indutny","message":"fd is closed in epoll callback","date":"2013-10-23T14:15:14.840Z","type":"message"}
{"nick":"indutny","message":"and opened in another one","date":"2013-10-23T14:15:19.643Z","type":"message"}
{"nick":"indutny","message":"in the same loop","date":"2013-10-23T14:15:22.466Z","type":"message"}
{"nick":"indutny","message":"if that's the case","date":"2013-10-23T14:15:25.127Z","type":"message"}
{"nick":"Petka","date":"2013-10-23T14:15:31.149Z","type":"join"}
{"nick":"indutny","message":"limiting number of reported epoll events should fix it","date":"2013-10-23T14:15:38.752Z","type":"message"}
{"nick":"indutny","message":"(just as experiment)","date":"2013-10-23T14:15:42.574Z","type":"message"}
{"nick":"indutny","message":"right?","date":"2013-10-23T14:15:47.973Z","type":"message"}
{"nick":"bnoordhuis","message":"possibly","date":"2013-10-23T14:15:52.173Z","type":"message"}
{"nick":"bnoordhuis","message":"i commented that i suspect it's a stale event for a fd descriptor that was recently closed","date":"2013-10-23T14:16:22.242Z","type":"message"}
{"nick":"indutny","message":"indeed","date":"2013-10-23T14:16:27.115Z","type":"message"}
{"nick":"bnoordhuis","message":"when a new fd then comes in with recvmsg(), it gets assigned the same fd number","date":"2013-10-23T14:16:33.359Z","type":"message"}
{"nick":"indutny","message":"I just think that it'd be cool if those people would try this out","date":"2013-10-23T14:16:37.165Z","type":"message"}
{"nick":"indutny","message":"oooooh","date":"2013-10-23T14:16:48.689Z","type":"message"}
{"nick":"indutny","message":"well","date":"2013-10-23T14:16:51.135Z","type":"message"}
{"nick":"Petka","message":"how would node take completely rehauling EventEmitter internals like https://github.com/petkaantonov/FastEmitter","date":"2013-10-23T14:17:15.061Z","type":"message"}
{"nick":"indutny","message":"we have loop->watchers","date":"2013-10-23T14:17:17.122Z","type":"message"}
{"nick":"indutny","message":"and all the stuff","date":"2013-10-23T14:17:19.527Z","type":"message"}
{"nick":"indutny","message":"Petka: there was a couple of attempts in doing that","date":"2013-10-23T14:17:37.126Z","type":"message"}
{"nick":"indutny","message":"Petka: why yours is better?","date":"2013-10-23T14:17:58.766Z","type":"message"}
{"nick":"Petka","message":"you mean why is it faster or why is it better?","date":"2013-10-23T14:18:19.197Z","type":"message"}
{"nick":"indutny","message":"I think both :)","date":"2013-10-23T14:18:32.164Z","type":"message"}
{"nick":"indutny","message":"anyway","date":"2013-10-23T14:18:37.661Z","type":"message"}
{"nick":"Petka","message":"it's not better in the sense that it implements the node API and semantics of course","date":"2013-10-23T14:18:39.755Z","type":"message"}
{"nick":"indutny","message":"my general opinion on this topic","date":"2013-10-23T14:18:43.497Z","type":"message"}
{"nick":"indutny","message":"if it works as EventEmitter","date":"2013-10-23T14:18:50.592Z","type":"message"}
{"nick":"indutny","message":"isn't breaking any tests","date":"2013-10-23T14:19:01.974Z","type":"message"}
{"nick":"indutny","message":"when replacing it","date":"2013-10-23T14:19:06.026Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: to illustrate what i think happens: libuv calls epoll_wait(), it gets a bunch of events. say the first event results in libuv closing fd 42. the second one makes it call recvmsg() which returns a new fd 42. the third event in the list is for the _old_ fd 42","date":"2013-10-23T14:19:08.025Z","type":"message"}
{"nick":"indutny","message":"and faster than it is right now","date":"2013-10-23T14:19:10.676Z","type":"message"}
{"nick":"bnoordhuis","message":"bam! you're dead","date":"2013-10-23T14:19:12.001Z","type":"message"}
{"nick":"Petka","message":"well the test suite is exactly what is in node core","date":"2013-10-23T14:19:14.897Z","type":"message"}
{"nick":"spion","date":"2013-10-23T14:19:15.370Z","type":"join"}
{"nick":"indutny","message":"Petka: it might be a good idea to replace it","date":"2013-10-23T14:19:18.328Z","type":"message"}
{"nick":"Petka","message":"but it could have its own bugs ofc :)","date":"2013-10-23T14:19:19.610Z","type":"message"}
{"nick":"indutny","message":"Petka: sure","date":"2013-10-23T14:19:26.763Z","type":"message"}
{"nick":"Petka","message":"I am just gauging response right now, there is some work to do still","date":"2013-10-23T14:19:42.724Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: oh god","date":"2013-10-23T14:19:44.308Z","type":"message"}
{"nick":"bnoordhuis","message":"Petka: what's better about it?","date":"2013-10-23T14:19:49.946Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I think it could be solved if inserting fd into watchers list only after the loop pass","date":"2013-10-23T14:20:02.597Z","type":"message"}
{"nick":"Petka","message":"nothing's better, it's the same api and semantics literally but using different data structure and algorithms to gain perf","date":"2013-10-23T14:20:13.249Z","type":"message"}
{"nick":"indutny","message":"but","date":"2013-10-23T14:20:18.743Z","type":"message"}
{"nick":"indutny","message":"its not that simple :)","date":"2013-10-23T14:20:21.774Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: maybe make sure first whether that's actually what happens :)","date":"2013-10-23T14:20:25.849Z","type":"message"}
{"nick":"indutny","message":"because it happens outside of that loop","date":"2013-10-23T14:20:27.965Z","type":"message"}
{"nick":"indutny","message":"I think I know how to fix it","date":"2013-10-23T14:20:35.116Z","type":"message"}
{"nick":"bnoordhuis","message":"Petka: okay, so it's faster but everything else is the same?","date":"2013-10-23T14:20:48.770Z","type":"message"}
{"nick":"Petka","message":"yes","date":"2013-10-23T14:20:55.518Z","type":"message"}
{"nick":"Petka","message":"I use the node core test suite with drop-in replacement","date":"2013-10-23T14:21:05.745Z","type":"message"}
{"nick":"bnoordhuis","message":"faster all around or just in some cases?","date":"2013-10-23T14:21:10.052Z","type":"message"}
{"nick":"bnoordhuis","message":"faster is better but not if it regresses some workloads","date":"2013-10-23T14:21:20.899Z","type":"message"}
{"nick":"Petka","message":"the benchmarks test 1 event and 3 different events with 3 different handlers","date":"2013-10-23T14:21:49.514Z","type":"message"}
{"nick":"Petka","message":"and 6","date":"2013-10-23T14:21:57.285Z","type":"message"}
{"nick":"Petka","message":"speed is 10-200% faster","date":"2013-10-23T14:22:03.684Z","type":"message"}
{"nick":"Petka","message":"of course if you have huge amount of separate listeners then that workload is slower","date":"2013-10-23T14:22:18.848Z","type":"message"}
{"nick":"Petka","message":"I imagine ","date":"2013-10-23T14:22:26.963Z","type":"message"}
{"nick":"bnoordhuis","message":"how well does it work when EventEmitter goes megamorphic?","date":"2013-10-23T14:22:32.645Z","type":"message"}
{"nick":"Petka","message":"what is the max amoutn of distinc event types usually?","date":"2013-10-23T14:22:33.104Z","type":"message"}
{"nick":"bnoordhuis","message":"i guess that's the main issue with EE in real programs","date":"2013-10-23T14:22:41.549Z","type":"message"}
{"nick":"bnoordhuis","message":"there's so many call sites that v8 stops trying to optimize it","date":"2013-10-23T14:22:55.123Z","type":"message"}
{"nick":"Petka","message":"I will make a jsperf with that","date":"2013-10-23T14:23:25.344Z","type":"message"}
{"nick":"bnoordhuis","message":"max amount... it varies. anywhere from < 10 to millions","date":"2013-10-23T14:23:32.140Z","type":"message"}
{"nick":"Petka","message":"I mean max amount of different parallel event types on the emitter at the same time","date":"2013-10-23T14:24:04.277Z","type":"message"}
{"nick":"bnoordhuis","message":"btw, we prefer plain old benchmarks. just drop some scripts in benchmark/","date":"2013-10-23T14:24:14.671Z","type":"message"}
{"nick":"Petka","message":"for example the GC test is no problem because they are not there at the same time even if it's 250k different","date":"2013-10-23T14:24:20.513Z","type":"message"}
{"nick":"bnoordhuis","message":"you mean events on a single instance?","date":"2013-10-23T14:24:38.260Z","type":"message"}
{"nick":"bnoordhuis","message":"*different event types","date":"2013-10-23T14:24:43.677Z","type":"message"}
{"nick":"Petka","message":"yes I mean active unique event types on a single instance","date":"2013-10-23T14:25:03.193Z","type":"message"}
{"nick":"bnoordhuis","message":"see above, there's no real upper bound","date":"2013-10-23T14:25:12.643Z","type":"message"}
{"nick":"bnoordhuis","message":"for example, there's this mongodb module that emits fields as events","date":"2013-10-23T14:25:25.416Z","type":"message"}
{"nick":"bnoordhuis","message":"i'm not making this up","date":"2013-10-23T14:25:48.166Z","type":"message"}
{"nick":"Petka","message":"yea actually I could transition to hash table in that case","date":"2013-10-23T14:26:02.923Z","type":"message"}
{"nick":"indutny","message":"have I missed something?","date":"2013-10-23T14:27:16.258Z","type":"message"}
{"nick":"bnoordhuis","message":"Petka: sounds interesting. open a PR if you want","date":"2013-10-23T14:28:33.325Z","type":"message"}
{"nick":"rendar","message":"what is the EventEmitter? a class that receives callback replies from libuv and calls v8 stuff, whcih in turns calls js code callbacks?","date":"2013-10-23T14:29:10.328Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: no, it's a pure js struct","date":"2013-10-23T14:29:22.883Z","type":"message"}
{"nick":"rendar","message":"oh, i see","date":"2013-10-23T14:29:28.501Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: what do you mean by \"making this up\"","date":"2013-10-23T14:29:52.112Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: basically, you call emit('event', data, moredata) and the eventemitter passes that on to all subscribed listeners","date":"2013-10-23T14:29:55.479Z","type":"message"}
{"nick":"rendar","message":"i see","date":"2013-10-23T14:30:04.082Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: sorry, just want to understand this phrase :) and I hear it for the first time","date":"2013-10-23T14:30:04.806Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: it's basically the observer pattern","date":"2013-10-23T14:30:06.996Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: oh, that there's a module out there that emits database fields as events","date":"2013-10-23T14:30:23.368Z","type":"message"}
{"nick":"rendar","message":"Petka, which data structures makes that better/faster, specifically?","date":"2013-10-23T14:30:25.614Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ah, I missed the message","date":"2013-10-23T14:30:40.232Z","type":"message"}
{"nick":"rendar","message":"bnoordhuis, yeah i see, basically like those signal/slot stuff of Qt (more or less) :)","date":"2013-10-23T14:30:43.111Z","type":"message"}
{"nick":"indutny","message":"rendar: sort of","date":"2013-10-23T14:30:49.591Z","type":"message"}
{"nick":"indutny","message":"rendar: but it uses string keys","date":"2013-10-23T14:30:54.238Z","type":"message"}
{"nick":"indutny","message":"instead of objects","date":"2013-10-23T14:30:59.339Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: i was expressing astonishment at that fact","date":"2013-10-23T14:30:59.776Z","type":"message"}
{"nick":"rendar","message":"indutny, yeah, right","date":"2013-10-23T14:31:02.607Z","type":"message"}
{"nick":"Petka","message":"rendar array","date":"2013-10-23T14:31:36.016Z","type":"message"}
{"nick":"rendar","message":"Petka, an array?","date":"2013-10-23T14:31:50.311Z","type":"message"}
{"nick":"Petka","message":"yes, where you store everything side by side to lessen indirection","date":"2013-10-23T14:32:11.824Z","type":"message"}
{"nick":"rendar","message":"Petka, hmm, i see, so the string 'event_name' is mapped (with an hash table?) to an array of objects \"connected\" to that particular 'event_name' ?","date":"2013-10-23T14:32:56.507Z","type":"message"}
{"nick":"Petka","message":"in fact the external array is slowing it down by 15% in the single emit case.... I was initially using the Properties[] array of the event emitter object","date":"2013-10-23T14:33:09.980Z","type":"message"}
{"nick":"rendar","message":"hmm, i see","date":"2013-10-23T14:33:18.458Z","type":"message"}
{"nick":"Petka","message":"hmm not Properties[].. I mean Elements[] lol","date":"2013-10-23T14:33:42.442Z","type":"message"}
{"nick":"Petka","message":"e.g this[i] instead of this._events[i]","date":"2013-10-23T14:33:55.917Z","type":"message"}
{"nick":"Petka","message":"but it could be considered incompatible in that case since it would create all those array indices on the event emitter object itself","date":"2013-10-23T14:34:41.606Z","type":"message"}
{"nick":"Petka","message":"the array structure is like [\"event_name\", function, function, undefined, undefined, \"event_name2\", undefined, undefined, undefined, undefined] for example","date":"2013-10-23T14:35:15.000Z","type":"message"}
{"nick":"Petka","message":"where event_name2 will be claimed next since it doesn't have listeners","date":"2013-10-23T14:35:32.097Z","type":"message"}
{"nick":"Petka","message":"and \"event_name\" has 2 listeners","date":"2013-10-23T14:35:43.757Z","type":"message"}
{"nick":"indutny","message":"Petka: if I got it right - it won't scale","date":"2013-10-23T14:36:12.970Z","type":"message"}
{"nick":"rendar","message":"hmm, i see","date":"2013-10-23T14:36:14.279Z","type":"message"}
{"nick":"indutny","message":"I mean in the most of the times we've a couple of events","date":"2013-10-23T14:36:22.170Z","type":"message"}
{"nick":"Petka","message":"the structure is really tight initially and resizes when necessary","date":"2013-10-23T14:36:38.761Z","type":"message"}
{"nick":"rendar","message":"isn't that O(m) where m=number of clients \"connected\" to the event?","date":"2013-10-23T14:36:39.232Z","type":"message"}
{"nick":"indutny","message":"but some people use one eventemitter for communication between different parts of app","date":"2013-10-23T14:36:39.785Z","type":"message"}
{"nick":"bnoordhuis","message":"even node does that internally in a few places :)","date":"2013-10-23T14:36:58.017Z","type":"message"}
{"nick":"indutny","message":"yes :)","date":"2013-10-23T14:37:07.334Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: so what do you think about sorting epoll_wait() results by fd? :)","date":"2013-10-23T14:37:23.940Z","type":"message"}
{"nick":"Petka","message":"yes, huge amount of different event types on active at the same time is not good for this structure","date":"2013-10-23T14:37:32.015Z","type":"message"}
{"nick":"indutny","message":"hahahaha","date":"2013-10-23T14:37:34.929Z","type":"message"}
{"nick":"indutny","message":"Petka: that was for my last message, not yours","date":"2013-10-23T14:37:45.258Z","type":"message"}
{"nick":"bnoordhuis","message":"it's a good thing i know you're not serious :)","date":"2013-10-23T14:37:52.709Z","type":"message"}
{"nick":"bnoordhuis","message":"btw, are tests are not very good at closing fds","date":"2013-10-23T14:38:01.533Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: erm?","date":"2013-10-23T14:38:09.279Z","type":"message"}
{"nick":"bnoordhuis","message":"[% 100|+ 184|- 11|T 0|S 0]: Done. <- that's after adding a file descriptor leak check","date":"2013-10-23T14:38:10.592Z","type":"message"}
{"nick":"bnoordhuis","message":"err, *our tests","date":"2013-10-23T14:38:18.168Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: oh gosh","date":"2013-10-23T14:38:19.298Z","type":"message"}
{"nick":"indutny","message":"not good","date":"2013-10-23T14:38:25.411Z","type":"message"}
{"nick":"indutny","message":"it might be tests themselves","date":"2013-10-23T14:38:32.451Z","type":"message"}
{"nick":"bnoordhuis","message":"not unlikely. but i'll dig in","date":"2013-10-23T14:38:47.832Z","type":"message"}
{"nick":"indutny","message":"ok","date":"2013-10-23T14:38:56.809Z","type":"message"}
{"nick":"indutny","message":"see you on other side","date":"2013-10-23T14:39:00.199Z","type":"message"}
{"nick":"rendar","message":"bnoordhuis, i have just fast read the problem of before, how recvmsg can return an fd (42) of the same number of another fd?","date":"2013-10-23T14:39:01.371Z","type":"message"}
{"nick":"FROGGS","date":"2013-10-23T14:39:14.209Z","type":"join"}
{"nick":"Petka","message":"indutny yes bnoordhuis brought up that some use cases have huge amount of different listener types active at the same time on a single emitter... so I was thinking to detect that case and just transition to hash table. But still be fast for the usual cases","date":"2013-10-23T14:39:17.265Z","type":"message"}
{"nick":"indutny","message":"Petka: ok, looking forward for benchmarks ;)","date":"2013-10-23T14:40:12.851Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: read more closely :) the issue is that there may be events in the list returned by epoll_wait() that were for the previous fd 42","date":"2013-10-23T14:40:23.375Z","type":"message"}
{"nick":"rendar","message":"Petka, the current implementation is fast with a bunch of listeners connected to the same event?","date":"2013-10-23T14:40:26.451Z","type":"message"}
{"nick":"Petka","message":"sure :)","date":"2013-10-23T14:40:29.920Z","type":"message"}
{"nick":"rendar","message":"bnoordhuis, oh..","date":"2013-10-23T14:40:38.039Z","type":"message"}
{"nick":"Petka","message":"rendar, yes if you have multiple listeners for the same event then the event emitter has been 3x faster than the current one in node","date":"2013-10-23T14:40:59.604Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: it's still to be determined if that is what actually happens","date":"2013-10-23T14:41:10.473Z","type":"message"}
{"nick":"Petka","message":"the amount of same listeners for some event doesn't affect the data structure performance","date":"2013-10-23T14:41:15.926Z","type":"message"}
{"nick":"Petka","message":"only different event types","date":"2013-10-23T14:41:24.213Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: but it's the only explanation i can come up with that's faintly plausible","date":"2013-10-23T14:41:25.182Z","type":"message"}
{"nick":"rendar","message":"bnoordhuis, you mean that when fd 42 is closed and so it instantly removed from epoll queue, it btw could also still exist in the array that epoll_wait() read from the kernel","date":"2013-10-23T14:41:58.229Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: what about adding field to watcher?","date":"2013-10-23T14:42:53.017Z","type":"message"}
{"nick":"indutny","message":"meh, that won't work out","date":"2013-10-23T14:43:04.993Z","type":"message"}
{"nick":"indutny","message":"ok","date":"2013-10-23T14:43:06.225Z","type":"message"}
{"nick":"indutny","message":"gtg","date":"2013-10-23T14:43:06.803Z","type":"message"}
{"nick":"rendar","message":"Petka, no, what i meant is: if you use an array, so if event 'event' is emitted you have to traverse all the clients connected stored in an array?","date":"2013-10-23T14:43:26.703Z","type":"message"}
{"nick":"rendar","message":"Petka, ^ this is yours implementation right?","date":"2013-10-23T14:43:35.561Z","type":"message"}
{"nick":"Petka","message":"if event \"event\" is emitted, it will go through the sentinels until it finds undefined or \"event\"","date":"2013-10-23T14:44:47.822Z","type":"message"}
{"nick":"Petka","message":"when it finds a sentinel, the next indices contain possible listeners","date":"2013-10-23T14:44:57.684Z","type":"message"}
{"nick":"wavded","reason":"Ping timeout: 245 seconds","date":"2013-10-23T14:45:25.161Z","type":"quit"}
{"nick":"Petka","message":"so if you have 10 listeners for the event \"event\" the array might look like this: [\"event\", fn, fn, fn, fn, fn, fn, fn, fn, ....]","date":"2013-10-23T14:46:52.212Z","type":"message"}
{"nick":"wavded","date":"2013-10-23T14:47:20.277Z","type":"join"}
{"nick":"bnoordhuis","message":"rendar: yes, correct","date":"2013-10-23T14:48:05.563Z","type":"message"}
{"nick":"Petka","message":"and yea it's my implementation, just a funny experiment","date":"2013-10-23T14:48:34.750Z","type":"message"}
{"nick":"bnoordhuis","message":"rendar: and when a new fd 42 comes in through recvmsg(SCM_RIGHTS), well, bad things happen","date":"2013-10-23T14:48:35.820Z","type":"message"}
{"nick":"abraxas","reason":"Remote host closed the connection","date":"2013-10-23T14:59:41.863Z","type":"quit"}
{"nick":"dshaw_","date":"2013-10-23T15:07:18.080Z","type":"join"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2013-10-23T15:08:47.392Z","type":"quit"}
{"nick":"AvianFlu","date":"2013-10-23T15:09:52.159Z","type":"join"}
{"nick":"AvianFlu_","date":"2013-10-23T15:10:27.129Z","type":"join"}
{"nick":"tjfontaine","message":"indutny: here","date":"2013-10-23T15:10:39.619Z","type":"message"}
{"nick":"AvianFlu","reason":"Ping timeout: 265 seconds","date":"2013-10-23T15:14:36.851Z","type":"quit"}
{"nick":"defunctzombie_zz","new_nick":"defunctzombie","date":"2013-10-23T15:14:59.562Z","type":"nick"}
{"nick":"tjfontaine","message":"indutny: if your \"yt\" was about the 10.9 issue, do you want me to test or do a libuv release? we can probably do a libuv release without much concern","date":"2013-10-23T15:20:48.742Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-master\u0002: #636 \u00037UNSTABLE\u000f smartos-ia32 (5/648) smartos-x64 (8/648) linux-ia32 (1/648) http://jenkins.nodejs.org/job/nodejs-master/636/","date":"2013-10-23T15:20:53.586Z","type":"message"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2013-10-23T15:21:58.223Z","type":"quit"}
{"nick":"AvianFlu_","new_nick":"AvianFlu","date":"2013-10-23T15:25:42.701Z","type":"nick"}
{"nick":"dominictarr","date":"2013-10-23T15:27:40.836Z","type":"join"}
{"nick":"isaacs","message":"bnoordhuis: 11 tess are leaking fd's?","date":"2013-10-23T15:30:48.840Z","type":"message"}
{"nick":"isaacs","message":"bnoordhuis: is that in libuv, or node? it's not very many tests.","date":"2013-10-23T15:31:10.911Z","type":"message"}
{"nick":"bnoordhuis","message":"libuv","date":"2013-10-23T15:31:22.133Z","type":"message"}
{"nick":"bnoordhuis","message":"i'm going over them one by one. so far it's just lack of cleanup in the test, not a real leak in libuv","date":"2013-10-23T15:31:59.508Z","type":"message"}
{"nick":"bnoordhuis","message":"but i still have 5 or 6 to go","date":"2013-10-23T15:32:14.197Z","type":"message"}
{"nick":"defunctzombie","new_nick":"defunctzombie_zz","date":"2013-10-23T15:32:25.309Z","type":"nick"}
{"nick":"isaacs","message":"kewl","date":"2013-10-23T15:50:44.365Z","type":"message"}
{"nick":"kenansulayman","date":"2013-10-23T15:56:27.571Z","type":"join"}
{"nick":"c4milo","date":"2013-10-23T15:58:02.600Z","type":"join"}
{"nick":"tjfontaine","message":"isaacs: thanks for filing #6402","date":"2013-10-23T15:58:09.073Z","type":"message"}
{"nick":"isaacs","message":"np","date":"2013-10-23T16:16:33.100Z","type":"message"}
{"nick":"dshaw_","date":"2013-10-23T16:21:53.243Z","type":"join"}
{"nick":"dlw","date":"2013-10-23T16:22:29.112Z","type":"join"}
{"nick":"dlw","reason":"Client Quit","date":"2013-10-23T16:23:47.929Z","type":"quit"}
{"nick":"abraxas","date":"2013-10-23T16:30:42.010Z","type":"join"}
{"nick":"mikeal","date":"2013-10-23T16:33:24.539Z","type":"join"}
{"nick":"indutny","message":"tjfontaine: yeah, it would be cool","date":"2013-10-23T16:39:02.958Z","type":"message"}
{"nick":"bnoordhuis","reason":"Ping timeout: 245 seconds","date":"2013-10-23T16:39:11.660Z","type":"quit"}
{"nick":"piscisaureus_","date":"2013-10-23T16:45:12.415Z","type":"join"}
{"nick":"piscisaureus_","message":"hello","date":"2013-10-23T16:45:19.420Z","type":"message"}
{"nick":"Ralith","reason":"Ping timeout: 245 seconds","date":"2013-10-23T16:45:51.696Z","type":"quit"}
{"nick":"indutny","message":"hello","date":"2013-10-23T16:50:07.064Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: how is beer?","date":"2013-10-23T16:50:11.469Z","type":"message"}
{"nick":"indutny","message":":)","date":"2013-10-23T16:50:17.242Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: I'm in california","date":"2013-10-23T16:50:25.771Z","type":"message"}
{"nick":"indutny","message":"oh","date":"2013-10-23T16:50:28.564Z","type":"message"}
{"nick":"indutny","message":"awful then","date":"2013-10-23T16:50:30.753Z","type":"message"}
{"nick":"piscisaureus_","message":"it's a bit early for beer now :)","date":"2013-10-23T16:50:30.962Z","type":"message"}
{"nick":"piscisaureus_","message":"not too early though","date":"2013-10-23T16:50:36.615Z","type":"message"}
{"nick":"inolen","reason":"Quit: Leaving.","date":"2013-10-23T16:50:47.530Z","type":"quit"}
{"nick":"indutny","message":"are you on some conference?","date":"2013-10-23T16:50:51.863Z","type":"message"}
{"nick":"indutny","message":"or just staying?","date":"2013-10-23T16:50:58.360Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: no all-hands","date":"2013-10-23T16:51:02.256Z","type":"message"}
{"nick":"tjfontaine","message":"piscisaureus_: it's always after noon somewhere","date":"2013-10-23T16:51:12.986Z","type":"message"}
{"nick":"rendar","message":"piscisaureus_, cool, palo alto?","date":"2013-10-23T16:51:18.168Z","type":"message"}
{"nick":"rendar","message":":)","date":"2013-10-23T16:51:19.040Z","type":"message"}
{"nick":"piscisaureus_","message":"rendar: no san mateo atm","date":"2013-10-23T16:51:26.237Z","type":"message"}
{"nick":"rendar","message":":-)","date":"2013-10-23T16:51:43.928Z","type":"message"}
{"nick":"paulfryzel","date":"2013-10-23T16:56:11.772Z","type":"join"}
{"nick":"kazupon","reason":"Remote host closed the connection","date":"2013-10-23T16:59:41.018Z","type":"quit"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2013-10-23T17:03:24.960Z","type":"quit"}
{"nick":"piscisaureus_","message":"trevnorris: hey, why is the async listener unload callback not called when the async listener throws?","date":"2013-10-23T17:06:29.312Z","type":"message"}
{"nick":"AvianFlu","reason":"Remote host closed the connection","date":"2013-10-23T17:11:15.253Z","type":"quit"}
{"nick":"AvianFlu","date":"2013-10-23T17:19:52.963Z","type":"join"}
{"nick":"octetcloud","date":"2013-10-23T17:25:32.471Z","type":"join"}
{"nick":"Ralith","date":"2013-10-23T17:26:23.757Z","type":"join"}
{"nick":"dominictarr","reason":"Quit: dominictarr","date":"2013-10-23T17:33:35.441Z","type":"quit"}
{"nick":"rendar","reason":"Ping timeout: 245 seconds","date":"2013-10-23T17:40:00.176Z","type":"quit"}
{"nick":"c4milo","reason":"Remote host closed the connection","date":"2013-10-23T17:40:09.448Z","type":"quit"}
{"nick":"TooTallNate","date":"2013-10-23T17:42:11.011Z","type":"join"}
{"nick":"bnoordhuis","date":"2013-10-23T17:43:48.810Z","type":"join"}
{"nick":"trevnorris","message":"piscisaureus_: i'm still working on throwing behavior. we had discussion about it yesterday and something's going to change.","date":"2013-10-23T17:45:07.495Z","type":"message"}
{"nick":"trevnorris","message":"i'm working on that now","date":"2013-10-23T17:45:16.407Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: ping","date":"2013-10-23T17:46:42.113Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: pong","date":"2013-10-23T17:46:47.699Z","type":"message"}
{"nick":"groundwater_","message":"i found why the tests were failing off your latest commit, i'm just commenting in github now","date":"2013-10-23T17:47:05.103Z","type":"message"}
{"nick":"groundwater_","message":"i think it's just a small fix","date":"2013-10-23T17:47:16.722Z","type":"message"}
{"nick":"c4milo","date":"2013-10-23T17:47:21.713Z","type":"join"}
{"nick":"trevnorris","message":"don't bother w/ my latest commit. still working out a bug","date":"2013-10-23T17:47:36.516Z","type":"message"}
{"nick":"groundwater_","message":"ahh, well i commented anyways","date":"2013-10-23T17:48:06.118Z","type":"message"}
{"nick":"trevnorris","message":"if the \"error\" callback throws, it happens synchronously, so whatever called the \"error\" callback should be in the call stack","date":"2013-10-23T17:48:07.112Z","type":"message"}
{"nick":"trevnorris","message":"but it's not","date":"2013-10-23T17:48:09.234Z","type":"message"}
{"nick":"bnoordhuis","reason":"Ping timeout: 248 seconds","date":"2013-10-23T17:48:43.779Z","type":"quit"}
{"nick":"tjfontaine","message":"TooTallNate: what are your thoughts on the node-weak in tree modifications, are you ok with us floating for now until you decide to add some #ifdef's or nan it?","date":"2013-10-23T17:49:46.327Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: what did you and othiym23 decide on for throwing in an error? i don't think i have any tests around the call stacks yet","date":"2013-10-23T17:51:20.259Z","type":"message"}
{"nick":"inolen","date":"2013-10-23T17:51:54.339Z","type":"join"}
{"nick":"trevnorris","message":"groundwater_: we're going to throw from the error callback, so it's easy to see where it threw. but the call stack _should_ also contain the function that originally caused the error callback to fire.","date":"2013-10-23T17:52:37.140Z","type":"message"}
{"nick":"trevnorris","message":"which it isn't. so i'm working on that.","date":"2013-10-23T17:52:44.549Z","type":"message"}
{"nick":"trevnorris","message":"with that call stack you'll be able to debug two things at once. why your error callback threw, and what caused it to fire in the first place.","date":"2013-10-23T17:53:12.639Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: okay awesome, i'll fill in a test when that's working","date":"2013-10-23T17:53:20.755Z","type":"message"}
{"nick":"MI6","message":"\u0002libuv-master\u0002: #300 \u00037UNSTABLE\u000f windows (3/196) smartos (2/195) http://jenkins.nodejs.org/job/libuv-master/300/","date":"2013-10-23T17:53:23.651Z","type":"message"}
{"nick":"TooTallNate","message":"tjfontaine: floating sounds fine to me","date":"2013-10-23T17:54:07.723Z","type":"message"}
{"nick":"TooTallNate","message":"tjfontaine: i believe there's already some patches being floated previously :p","date":"2013-10-23T17:54:48.398Z","type":"message"}
{"nick":"tjfontaine","message":"heh ok, just wanted to make sure that was ok :)","date":"2013-10-23T17:55:04.594Z","type":"message"}
{"nick":"tjfontaine","message":"trevnorris going to land the v8 upgrade, so you can play with your eternals in 0.11","date":"2013-10-23T17:55:33.430Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: thanks. i'm excited to try those out and see what performance improvements they offer.","date":"2013-10-23T17:56:03.974Z","type":"message"}
{"nick":"MI6","message":"\u0002joyent/node:\u0002 \u00033Ben Noordhuis\u000f \u00037master\u000f * \u00020079e57\u0002 : test: fix up weakref.cc after v8 api change (+3 more commits) - http://git.io/Nswvew","date":"2013-10-23T17:56:06.712Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: wow, not a single conflict. i'm impressed.","date":"2013-10-23T17:57:21.180Z","type":"message"}
{"nick":"tjfontaine","message":"it's pretty low touch for our code","date":"2013-10-23T17:57:36.443Z","type":"message"}
{"nick":"tjfontaine","message":"I do have a follow up question for you though","date":"2013-10-23T17:57:41.854Z","type":"message"}
{"nick":"trevnorris","message":"shoot","date":"2013-10-23T17:57:47.087Z","type":"message"}
{"nick":"tjfontaine","message":"the array buffer allocator, there is now Allocate and AllocateUnitialized","date":"2013-10-23T17:57:56.001Z","type":"message"}
{"nick":"tjfontaine","message":"in our implementation for Allocate we were not memset'ing","date":"2013-10-23T17:58:10.550Z","type":"message"}
{"nick":"trevnorris","message":"you mean for ArrayBuffer?","date":"2013-10-23T17:58:29.979Z","type":"message"}
{"nick":"tjfontaine","message":"yes, ArrayBuffer::Allocator","date":"2013-10-23T17:58:36.625Z","type":"message"}
{"nick":"trevnorris","message":"we should be. that's why they introduced the ArrayBuffer::AllocateUninitialized() api","date":"2013-10-23T17:59:18.525Z","type":"message"}
{"nick":"trevnorris","message":"but maybe we don't care. i'll trust ben's decision on implementation over mine.","date":"2013-10-23T17:59:43.737Z","type":"message"}
{"nick":"trevnorris","message":"anyway. sorry, your question?","date":"2013-10-23T17:59:57.349Z","type":"message"}
{"nick":"tjfontaine","message":"heh, well I originally asked isaacs and he deferred to you :)","date":"2013-10-23T17:59:58.484Z","type":"message"}
{"nick":"tjfontaine","message":"that's the question","date":"2013-10-23T18:00:02.424Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: how are you appending the stack traces together? string concat?","date":"2013-10-23T18:00:10.910Z","type":"message"}
{"nick":"brson","date":"2013-10-23T18:00:15.791Z","type":"join"}
{"nick":"kazupon","date":"2013-10-23T18:00:21.959Z","type":"join"}
{"nick":"tjfontaine","message":"in our previous version we were *not* memset'ing, but now there are two paths, should we be memset'ing to match what people expect or do we not care","date":"2013-10-23T18:00:23.178Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: we shouldn't have to. if the stack traces worked properly they should show everything from the last asynchronous event. which it's not doing right now.","date":"2013-10-23T18:00:55.822Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: so there's a bug in how our stack trace is being generated.","date":"2013-10-23T18:01:07.380Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: we should take a look and see the implementation details. I don't even understand when AllocateUninitialized would be called. i.e. if the programmer has control over that.","date":"2013-10-23T18:01:58.534Z","type":"message"}
{"nick":"tjfontaine","message":"that should be knowable","date":"2013-10-23T18:03:40.407Z","type":"message"}
{"nick":"trevnorris","message":"nod","date":"2013-10-23T18:03:47.153Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: check this: https://gist.github.com/trevnorris/7123545","date":"2013-10-23T18:04:42.888Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: cool thanks","date":"2013-10-23T18:05:04.691Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: see how the originating point of the error is _fatalException. it _should_ be setImmediate callback.","date":"2013-10-23T18:05:05.546Z","type":"message"}
{"nick":"hz","date":"2013-10-23T18:05:11.230Z","type":"join"}
{"nick":"tjfontaine","message":"SetupArrayBufferAllocatingData if (allocated_length != 0) and if (initialize) is false","date":"2013-10-23T18:05:20.760Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: awesome. that was fast. so how is \"initialized\" set?","date":"2013-10-23T18:06:00.411Z","type":"message"}
{"nick":"superjoe","date":"2013-10-23T18:06:17.553Z","type":"join"}
{"nick":"tjfontaine","message":"gonna link you to source on it, just found it","date":"2013-10-23T18:06:19.126Z","type":"message"}
{"nick":"tjfontaine","message":"it has a block comment :)","date":"2013-10-23T18:06:22.688Z","type":"message"}
{"nick":"trevnorris","message":"thanks :)","date":"2013-10-23T18:06:31.359Z","type":"message"}
{"nick":"hz","reason":"Client Quit","date":"2013-10-23T18:06:34.686Z","type":"quit"}
{"nick":"tjfontaine","message":"https://github.com/joyent/node/blob/master/deps/v8/src/runtime.cc#L957-L964","date":"2013-10-23T18:06:54.019Z","type":"message"}
{"nick":"superjoe","message":"hopefully this channel will forgive a v8 question... I'm calling object->Get and getting Undefined when I expected to get an object instance which I ->Set earlier","date":"2013-10-23T18:07:14.544Z","type":"message"}
{"nick":"superjoe","message":"is this a commonly understood phenomenon?","date":"2013-10-23T18:07:23.764Z","type":"message"}
{"nick":"tjfontaine","message":"superjoe: gist?","date":"2013-10-23T18:07:37.210Z","type":"message"}
{"nick":"superjoe","message":"hmm good point I should put together a minimal test case","date":"2013-10-23T18:08:11.251Z","type":"message"}
{"nick":"kazupon","reason":"Ping timeout: 248 seconds","date":"2013-10-23T18:08:37.730Z","type":"quit"}
{"nick":"tjfontaine","message":"please and thank you","date":"2013-10-23T18:08:44.996Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: doesn't the stack unwind because of the first thrown exception?","date":"2013-10-23T18:09:01.662Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-master-windows\u0002: #429 \u00034FAILURE\u000f http://jenkins.nodejs.org/job/nodejs-master-windows/429/","date":"2013-10-23T18:09:09.978Z","type":"message"}
{"nick":"groundwater_","message":"error handlers are called from within _fatalException","date":"2013-10-23T18:09:10.208Z","type":"message"}
{"nick":"tjfontaine","message":"sigh. windows...","date":"2013-10-23T18:09:35.405Z","type":"message"}
{"nick":"trevnorris","message":"groundwater_: it all happens synchronously. so there's no technical reason why it has to unwind.","date":"2013-10-23T18:09:46.329Z","type":"message"}
{"nick":"bnoordhuis","date":"2013-10-23T18:09:50.906Z","type":"join"}
{"nick":"bajtos","date":"2013-10-23T18:10:28.397Z","type":"join"}
{"nick":"tjfontaine","message":"bnoordhuis: hey, how goes?","date":"2013-10-23T18:10:35.154Z","type":"message"}
{"nick":"c4milo","reason":"Remote host closed the connection","date":"2013-10-23T18:10:47.894Z","type":"quit"}
{"nick":"groundwater_","message":"trevnorris: hmm… maybe i'm not familiar with how _fatalException works, but I would expect the stack to unwind because the exception propagates all the way up","date":"2013-10-23T18:10:51.654Z","type":"message"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2013-10-23T18:10:56.575Z","type":"quit"}
{"nick":"groundwater_","message":"i thought _fatalException was kind of like a top-level 'catch' but done in a much more clever way","date":"2013-10-23T18:12:11.074Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: thanks for pulling all that out. right now i'm going to trust ben's implementation, but i'll have a look when there are brain cells to spare.","date":"2013-10-23T18:12:12.654Z","type":"message"}
{"nick":"tjfontaine","message":"well technically it was me masquerading as ben :)","date":"2013-10-23T18:12:27.399Z","type":"message"}
{"nick":"trevnorris","message":"hehe, ok","date":"2013-10-23T18:12:39.251Z","type":"message"}
{"nick":"tjfontaine","message":"so the implementation as it is right now is just \"make it compile but keep roughly the same behavior\"","date":"2013-10-23T18:13:04.946Z","type":"message"}
{"nick":"tjfontaine","message":"with the follow up of: \"is this really what we meant\"","date":"2013-10-23T18:13:16.357Z","type":"message"}
{"nick":"tjfontaine","message":"as it is right now the build is broken on windows -- because ... MSVC hates my freedom","date":"2013-10-23T18:14:08.379Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: if i slap a debugger statement in the middle of _fatalException I get#0 node.js:457:11","date":"2013-10-23T18:15:10.721Z","type":"message"}
{"nick":"groundwater_","message":"#1 process._fatalException node.js:225:20","date":"2013-10-23T18:15:10.933Z","type":"message"}
{"nick":"trevnorris","message":"imo that's a problem. we should be getting the stack that caused _fatalException to be called.","date":"2013-10-23T18:15:50.474Z","type":"message"}
{"nick":"trevnorris","message":"it's a lot less useful w/o it","date":"2013-10-23T18:16:09.938Z","type":"message"}
{"nick":"groundwater_","message":"oh agreed, but I'm not sure how, that's v8 voodoo","date":"2013-10-23T18:16:24.650Z","type":"message"}
{"nick":"tjfontaine","message":"g:\\jenkins\\workspace\\nodejs-master-windows\\eec653f3\\deps\\v8\\include\\v8.h(477): error C2440: '=' : cannot convert from 'v8::Primitive *' to 'v8::Object *volatile ' [g:\\jenkins\\workspace\\nodejs-master-windows\\eec653f3\\node.vcxproj]","date":"2013-10-23T18:16:51.637Z","type":"message"}
{"nick":"groundwater_","message":"because isn't the call stack captured explicitly by 'new Error()' ","date":"2013-10-23T18:16:52.860Z","type":"message"}
{"nick":"tjfontaine","message":" Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast","date":"2013-10-23T18:16:55.670Z","type":"message"}
{"nick":"tjfontaine","message":" g:\\jenkins\\workspace\\nodejs-master-windows\\eec653f3\\deps\\v8\\include\\v8.h(473) : see reference to function template instantiation 'void v8::NonCopyablePersistentTraits<T>::Uncompilable<v8::Object>(void)' being compiled","date":"2013-10-23T18:16:58.725Z","type":"message"}
{"nick":"isaacs","message":"tjfontaine: i spoke too soon. yes, it is related to ssl, afaict","date":"2013-10-23T18:17:16.722Z","type":"message"}
{"nick":"groundwater_","message":"so, if you choose to throw something without a stack trace, you're SOL","date":"2013-10-23T18:17:23.910Z","type":"message"}
{"nick":"isaacs","action":"was getting confused because the test was too fancy","date":"2013-10-23T18:17:30.273Z","type":"action"}
{"nick":"tjfontaine","message":"isaacs: ok, alright -- I felt like we would be seeing all sorts of problems if this was general fs issue, but I was deferring to your experience on it","date":"2013-10-23T18:18:26.626Z","type":"message"}
{"nick":"isaacs","message":"tjfontaine: that'll teach you to do that","date":"2013-10-23T18:18:41.362Z","type":"message"}
{"nick":"isaacs","message":";)","date":"2013-10-23T18:18:43.931Z","type":"message"}
{"nick":"tjfontaine","message":"heh","date":"2013-10-23T18:18:56.719Z","type":"message"}
{"nick":"tjfontaine","message":"piscisaureus_: ping?","date":"2013-10-23T18:19:15.874Z","type":"message"}
{"nick":"MI6","message":"\u0002libuv-node-integration\u0002: #285 \u00034FAILURE\u000f http://jenkins.nodejs.org/job/libuv-node-integration/285/","date":"2013-10-23T18:19:49.340Z","type":"message"}
{"nick":"mikeal","date":"2013-10-23T18:20:14.892Z","type":"join"}
{"nick":"trevnorris","message":"groundwater_: regardless of the implementation details, imo the following stack trace should start with the callback called by setImmediate: https://gist.github.com/trevnorris/7123545","date":"2013-10-23T18:20:51.036Z","type":"message"}
{"nick":"trevnorris","message":"and, I just got an idea of how to do this.","date":"2013-10-23T18:20:58.984Z","type":"message"}
{"nick":"trevnorris","message":"one moment.","date":"2013-10-23T18:21:03.603Z","type":"message"}
{"nick":"isaacs","message":"tjfontaine: the weird thing is that it's specifically a SSL->FS issue, which is super strange.","date":"2013-10-23T18:21:22.339Z","type":"message"}
{"nick":"isaacs","message":"tjfontaine: ssl->synthetic works fine, synthetic->fs works fine","date":"2013-10-23T18:21:30.649Z","type":"message"}
{"nick":"groundwater_","message":"trevnorris: +1","date":"2013-10-23T18:21:46.936Z","type":"message"}
{"nick":"tjfontaine","message":"isaacs: hrm","date":"2013-10-23T18:21:55.815Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-master\u0002: #637 \u00037UNSTABLE\u000f osx-x64 (1/648) smartos-ia32 (12/648) smartos-x64 (12/648) linux-ia32 (1/648) http://jenkins.nodejs.org/job/nodejs-master/637/","date":"2013-10-23T18:23:06.382Z","type":"message"}
{"nick":"bnoordhuis","message":"tjfontaine: hey, you rang?","date":"2013-10-23T18:27:00.253Z","type":"message"}
{"nick":"tjfontaine","message":"bnoordhuis: ya, unfortunately the v8 upgrade broke on windows, I'm trying to decipher the msvc compiler error","date":"2013-10-23T18:27:27.351Z","type":"message"}
{"nick":"bnoordhuis","message":"is that the error you posted some 20 lines up?","date":"2013-10-23T18:27:52.377Z","type":"message"}
{"nick":"tjfontaine","message":"yes","date":"2013-10-23T18:28:22.079Z","type":"message"}
{"nick":"tjfontaine","message":"full log http://jenkins.nodejs.org/job/nodejs-master-windows/429/DESTCPU=ia32,label=windows/consoleFull","date":"2013-10-23T18:28:30.473Z","type":"message"}
{"nick":"bnoordhuis","message":"thanks","date":"2013-10-23T18:28:36.133Z","type":"message"}
{"nick":"tjfontaine","message":"I'm wondering if there's just a gyp flag we've missed","date":"2013-10-23T18:28:50.109Z","type":"message"}
{"nick":"superjoe","message":"tjfontaine, d'oh - I typo'd and used args[0] instead of args.This(). thank you for telling me to create a test case","date":"2013-10-23T18:30:16.099Z","type":"message"}
{"nick":"bnoordhuis","message":"it's v8's TYPE_CHECK macro msvc is complaining about","date":"2013-10-23T18:30:16.319Z","type":"message"}
{"nick":"dominictarr","date":"2013-10-23T18:30:29.809Z","type":"join"}
{"nick":"tjfontaine","message":"superjoe: no problem","date":"2013-10-23T18:30:32.321Z","type":"message"}
{"nick":"tjfontaine","message":"bnoordhuis: it's not related to the non copyable traits stuff?","date":"2013-10-23T18:30:53.516Z","type":"message"}
{"nick":"bnoordhuis","message":"yes, NonCopyablePersistentTraits triggers it","date":"2013-10-23T18:31:20.033Z","type":"message"}
{"nick":"tjfontaine","message":"just confused how they're not seeing this, or if they're only on 2012 or something","date":"2013-10-23T18:31:53.038Z","type":"message"}
{"nick":"dominictarr","reason":"Client Quit","date":"2013-10-23T18:31:53.258Z","type":"quit"}
{"nick":"tjfontaine","message":"where they is v8","date":"2013-10-23T18:32:02.677Z","type":"message"}
{"nick":"bnoordhuis","message":"hrm, i guess that's possible","date":"2013-10-23T18:32:56.587Z","type":"message"}
{"nick":"tjfontaine","message":"or if there's some magic flag to msvc we're not triggering","date":"2013-10-23T18:33:19.631Z","type":"message"}
{"nick":"bnoordhuis","message":"i wonder if we're using a persistent wrong in some windows-only code","date":"2013-10-23T18:33:21.568Z","type":"message"}
{"nick":"tjfontaine","message":"this is just compiling v8 itself right now, isnt' it?","date":"2013-10-23T18:33:47.338Z","type":"message"}
{"nick":"tjfontaine","message":"regexp-macro-assembler-ia32.cc","date":"2013-10-23T18:33:56.507Z","type":"message"}
{"nick":"tjfontaine","message":"ah no","date":"2013-10-23T18:34:12.316Z","type":"message"}
{"nick":"tjfontaine","message":"ok","date":"2013-10-23T18:34:13.092Z","type":"message"}
{"nick":"isaacs","message":"ah, ok, reproduced wth just ssl. back to this being strictly an ssl bug.","date":"2013-10-23T18:34:15.912Z","type":"message"}
{"nick":"isaacs","message":"that's comforting :)","date":"2013-10-23T18:34:21.091Z","type":"message"}
{"nick":"tjfontaine","message":"isaacs: heh for one level of comfort :)","date":"2013-10-23T18:34:34.093Z","type":"message"}
{"nick":"isaacs","message":"tjfontaine: well, it means that it's not likely to exist in 0.8 or 0.10","date":"2013-10-23T18:34:47.189Z","type":"message"}
{"nick":"isaacs","message":"andit's not (afaict) specifically a streams2 or streams3 bug","date":"2013-10-23T18:35:01.140Z","type":"message"}
{"nick":"tjfontaine","message":"right, I'm fairly sure it's just tls_wrap","date":"2013-10-23T18:35:06.480Z","type":"message"}
{"nick":"isaacs","message":"the magic number is 32768 bytes.","date":"2013-10-23T18:35:14.551Z","type":"message"}
{"nick":"isaacs","message":"if you pipe through more than 32768 bytes, but not a round multiple of 1024, then it will drop the last chunk","date":"2013-10-23T18:35:36.661Z","type":"message"}
{"nick":"bnoordhuis","message":"tjfontaine: looking at the log, it looks like ObjectWrap is the culprit","date":"2013-10-23T18:35:36.876Z","type":"message"}
{"nick":"isaacs","message":"32769 is the smallest value that fails.","date":"2013-10-23T18:35:44.220Z","type":"message"}
{"nick":"tjfontaine","message":"bnoordhuis: hrm, I guess we're still #include'ing but not using it?","date":"2013-10-23T18:35:58.974Z","type":"message"}
{"nick":"tjfontaine","message":"isaacs: ah interesting","date":"2013-10-23T18:36:24.080Z","type":"message"}
{"nick":"tjfontaine","message":"bnoordhuis: Explicitly instantiate some template classes, so we're sure they will be <-- that stuff maybe?","date":"2013-10-23T18:36:46.313Z","type":"message"}
{"nick":"bnoordhuis","message":"it's possible. i never understood why msvc needs that in the first place","date":"2013-10-23T18:38:10.570Z","type":"message"}
{"nick":"MI6","message":"\u0002nodejs-master-windows\u0002: #430 \u00034FAILURE\u000f http://jenkins.nodejs.org/job/nodejs-master-windows/430/","date":"2013-10-23T18:38:27.666Z","type":"message"}
{"nick":"bnoordhuis","message":"it's not liking the Persistents in src/env.h either for some reason","date":"2013-10-23T18:38:33.127Z","type":"message"}
{"nick":"dshaw_","date":"2013-10-23T18:39:12.166Z","type":"join"}
{"nick":"bnoordhuis","message":"tjfontaine: i give up, i don't understand why msvc is complaining. maybe have sblom look at it or else revert the upgrade","date":"2013-10-23T18:41:42.678Z","type":"message"}
{"nick":"tjfontaine","message":"ya, I'm going to ping him and see if he has some cycles for it","date":"2013-10-23T18:42:00.586Z","type":"message"}
{"nick":"isaacs","message":"indutny: ping","date":"2013-10-23T18:43:44.846Z","type":"message"}
{"nick":"trevnorris","message":"is it v8 that generates the <script>:<line> <code> message when an error is thrown, or do we do that?","date":"2013-10-23T18:48:33.315Z","type":"message"}
{"nick":"tjfontaine","message":"if I understand your question, it's v8","date":"2013-10-23T18:49:17.293Z","type":"message"}
{"nick":"paulfryz_","date":"2013-10-23T18:49:33.152Z","type":"join"}
{"nick":"octetcloud","reason":"Ping timeout: 245 seconds","date":"2013-10-23T18:50:11.463Z","type":"quit"}
{"nick":"piscisaureus_","message":"trevnorris: do you have time to talk to me?","date":"2013-10-23T18:50:35.531Z","type":"message"}
{"nick":"trevnorris","message":"tjfontaine: thanks. I almost have this operating how I'd like, except that's reporting the incorrect location.","date":"2013-10-23T18:50:38.686Z","type":"message"}
{"nick":"trevnorris","message":"piscisaureus_: sure","date":"2013-10-23T18:50:40.737Z","type":"message"}
{"nick":"piscisaureus_","message":"trevnorris: on skype or something?","date":"2013-10-23T18:50:48.928Z","type":"message"}
{"nick":"piscisaureus_","message":"or hangouts?","date":"2013-10-23T18:51:03.165Z","type":"message"}
{"nick":"tjfontaine","message":"does piscisaureus_ have time to help debug msvc? :)","date":"2013-10-23T18:51:06.316Z","type":"message"}
{"nick":"trevnorris","message":"sure, just give me a minute. my usb headset hasn't been working since my pulseaudio update.","date":"2013-10-23T18:51:29.446Z","type":"message"}
{"nick":"piscisaureus_","message":"tjfontaine: I submitted a PR to redmond","date":"2013-10-23T18:51:50.521Z","type":"message"}
{"nick":"paulfryzel","reason":"Ping timeout: 240 seconds","date":"2013-10-23T18:52:15.328Z","type":"quit"}
{"nick":"tjfontaine","message":"heh","date":"2013-10-23T18:53:13.268Z","type":"message"}
{"nick":"TooTallNate","message":"guys, there seems to be a problem with process.title...","date":"2013-10-23T18:56:18.176Z","type":"message"}
{"nick":"TooTallNate","message":"https://cloudup.com/cIKf2lX9DNQ","date":"2013-10-23T18:56:19.206Z","type":"message"}
{"nick":"trevnorris","message":"piscisaureus_: ok, think I got my headset working.","date":"2013-10-23T18:56:35.934Z","type":"message"}
{"nick":"TooTallNate","message":"my initial theory is that our method of setting the process name marks the process as a GUI app in Activity Monitor","date":"2013-10-23T18:56:49.877Z","type":"message"}
{"nick":"tjfontaine","message":"oh is that why the not-responding thing?","date":"2013-10-23T18:57:10.429Z","type":"message"}
{"nick":"tjfontaine","message":"nice find TooTallNate ","date":"2013-10-23T18:57:16.744Z","type":"message"}
{"nick":"TooTallNate","message":"tjfontaine: yes, that thing :p","date":"2013-10-23T18:57:29.321Z","type":"message"}
{"nick":"TooTallNate","message":"people have been pissed","date":"2013-10-23T18:57:32.441Z","type":"message"}
{"nick":"TooTallNate","message":"hahah","date":"2013-10-23T18:57:33.208Z","type":"message"}
{"nick":"tjfontaine","message":"silly","date":"2013-10-23T18:58:23.500Z","type":"message"}
{"nick":"amartens","date":"2013-10-23T18:58:23.709Z","type":"join"}
{"nick":"tjfontaine","message":"but yes, that seems likely this is a byproduct of the hacks necessary to do set_title on osx","date":"2013-10-23T18:58:42.674Z","type":"message"}
{"nick":"TooTallNate","message":"tjfontaine: fixable you think, or no?","date":"2013-10-23T18:59:23.512Z","type":"message"}
{"nick":"piscisaureus_","message":"trevnorris: if it's not practical for you right now then we can do it later today","date":"2013-10-23T18:59:47.464Z","type":"message"}
{"nick":"pachet","reason":"Quit: leaving","date":"2013-10-23T19:00:08.748Z","type":"quit"}
{"nick":"tjfontaine","message":"TooTallNate: it may be, we just need to figure out which part of the loop they expect us to be ACKing","date":"2013-10-23T19:00:10.306Z","type":"message"}
{"nick":"trevnorris","message":"piscisaureus_: it works now. my headset is just being stupid. xcfe isn't recognizing pulseaudio settings.","date":"2013-10-23T19:00:17.584Z","type":"message"}
{"nick":"trevnorris","message":"but nevermind it. let's do this now.","date":"2013-10-23T19:00:24.439Z","type":"message"}
{"nick":"piscisaureus_","message":"cool!","date":"2013-10-23T19:00:28.623Z","type":"message"}
{"nick":"trevnorris","message":"just give me a call on hangouts","date":"2013-10-23T19:00:51.503Z","type":"message"}
{"nick":"trevnorris","message":"i don't have skype setup on this machine yet","date":"2013-10-23T19:00:57.049Z","type":"message"}
{"nick":"piscisaureus_","message":"trevnorris: https://plus.google.com/hangouts/_/179d022d437452998d9a4518601662d2fc9d6c53?hl=en","date":"2013-10-23T19:01:49.920Z","type":"message"}
{"nick":"isaacs","message":"hmmm....","date":"2013-10-23T19:04:01.932Z","type":"message"}
{"nick":"isaacs","message":"so, it's not strictly a tls issue, but a https issue.","date":"2013-10-23T19:04:13.873Z","type":"message"}
{"nick":"isaacs","message":"the plot thickens!","date":"2013-10-23T19:04:18.522Z","type":"message"}
{"nick":"kazupon","date":"2013-10-23T19:05:28.128Z","type":"join"}
{"nick":"tjfontaine","message":"dun dun dun","date":"2013-10-23T19:06:46.916Z","type":"message"}
{"nick":"TooTallNate","message":"tjfontaine: make a ticket :D https://github.com/joyent/libuv/issues/966","date":"2013-10-23T19:08:24.724Z","type":"message"}
{"nick":"tjfontaine","message":"TooTallNate: perfect.","date":"2013-10-23T19:08:51.809Z","type":"message"}
{"nick":"tjfontaine","message":"TooTallNate: maybe assign it to indutny :P","date":"2013-10-23T19:08:59.402Z","type":"message"}
{"nick":"kazupon","reason":"Ping timeout: 246 seconds","date":"2013-10-23T19:09:52.982Z","type":"quit"}
{"nick":"TooTallNate","message":"tjfontaine: i don't have the priv's","date":"2013-10-23T19:10:07.247Z","type":"message"}
{"nick":"TooTallNate","message":"so feel free to assign","date":"2013-10-23T19:10:14.708Z","type":"message"}
{"nick":"tjfontaine","message":"ah, /cc @indutny :)","date":"2013-10-23T19:10:25.748Z","type":"message"}
{"nick":"tjfontaine","message":"brb lunch","date":"2013-10-23T19:10:42.431Z","type":"message"}
{"nick":"dominictarr_","date":"2013-10-23T19:12:13.608Z","type":"join"}
{"nick":"inolen","reason":"Quit: Leaving.","date":"2013-10-23T19:28:19.381Z","type":"quit"}
{"nick":"c4milo","date":"2013-10-23T19:28:26.469Z","type":"join"}
{"nick":"paulfryz_","reason":"Remote host closed the connection","date":"2013-10-23T19:32:19.695Z","type":"quit"}
{"nick":"bnoordhuis","message":"so, is there a cross-platform way to get the thread id that's not pthread_self()?","date":"2013-10-23T19:36:31.499Z","type":"message"}
{"nick":"bnoordhuis","message":"it's a rhetorical question, there isn't :-(","date":"2013-10-23T19:36:41.921Z","type":"message"}
{"nick":"bnoordhuis","message":"i need to get hold of the thread id in a signal handler somehow and pthread_self() is not guaranteed async signal-safe","date":"2013-10-23T19:37:08.645Z","type":"message"}
{"nick":"bnoordhuis","message":"signals... they complicate everything","date":"2013-10-23T19:37:16.771Z","type":"message"}
{"nick":"bnoordhuis","message":"fun fact, no pthread functions are async signal-safe - except sem_post() (which of course is not a pthread function, strictly speaking)","date":"2013-10-23T19:38:19.958Z","type":"message"}
{"nick":"stagas","date":"2013-10-23T19:44:30.730Z","type":"join"}
{"nick":"stagas","reason":"Client Quit","date":"2013-10-23T19:44:36.793Z","type":"quit"}
{"nick":"bajtos","reason":"Quit: bajtos","date":"2013-10-23T19:55:19.455Z","type":"quit"}
{"nick":"isaacs","message":"indutny: ignore my ping before.","date":"2013-10-23T19:58:45.836Z","type":"message"}
{"nick":"isaacs","message":"man, this is FASCINATING","date":"2013-10-23T19:58:50.767Z","type":"message"}
{"nick":"isaacs","message":"and this bug is a 1-line fix","date":"2013-10-23T19:58:54.177Z","type":"message"}
{"nick":"isaacs","message":"so crazy!","date":"2013-10-23T19:59:05.831Z","type":"message"}
{"nick":"isaacs","message":"now to remove the several hundred console.trace lines i added everywhere...","date":"2013-10-23T20:02:42.845Z","type":"message"}
{"nick":"superjoe","message":"haha","date":"2013-10-23T20:04:14.723Z","type":"message"}
{"nick":"superjoe","message":"it's so satisfying to do that once you've located the problem","date":"2013-10-23T20:04:38.148Z","type":"message"}
{"nick":"kazupon","date":"2013-10-23T20:06:02.377Z","type":"join"}
{"nick":"FROGGS","reason":"Quit: Verlassend","date":"2013-10-23T20:08:43.744Z","type":"quit"}
{"nick":"bajtos","date":"2013-10-23T20:09:39.311Z","type":"join"}
{"nick":"kazupon","reason":"Ping timeout: 252 seconds","date":"2013-10-23T20:10:30.226Z","type":"quit"}
{"nick":"julianduque","date":"2013-10-23T20:16:28.132Z","type":"join"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2013-10-23T20:18:37.224Z","type":"quit"}
{"nick":"octetcloud","date":"2013-10-23T20:20:18.021Z","type":"join"}
{"nick":"isaacs","message":"bnoordhuis: I'm seeing sporadic failures on test/simple/test-debug-signal-cluster.js, git says you're the last person to touch it","date":"2013-10-23T20:23:38.791Z","type":"message"}
{"nick":"indutny","message":"isaacs: pong","date":"2013-10-23T20:23:49.643Z","type":"message"}
{"nick":"indutny","message":"isaacs: ignoring","date":"2013-10-23T20:23:52.615Z","type":"message"}
{"nick":"indutny","message":"sup?","date":"2013-10-23T20:24:10.624Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: yt?","date":"2013-10-23T20:26:16.742Z","type":"message"}
{"nick":"indutny","message":"I've a fix for you to give a try :)","date":"2013-10-23T20:26:22.461Z","type":"message"}
{"nick":"bnoordhuis","message":"isaacs: platform? what kind of failures?","date":"2013-10-23T20:30:07.137Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: what fix for what bug?","date":"2013-10-23T20:30:27.061Z","type":"message"}
{"nick":"indutny","message":"stale fd","date":"2013-10-23T20:30:31.168Z","type":"message"}
{"nick":"indutny","message":"actually","date":"2013-10-23T20:30:36.338Z","type":"message"}
{"nick":"indutny","message":"stale events for new fd","date":"2013-10-23T20:30:39.021Z","type":"message"}
{"nick":"indutny","message":"whatever","date":"2013-10-23T20:30:53.857Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: https://github.com/joyent/libuv/pull/968","date":"2013-10-23T20:30:55.031Z","type":"message"}
{"nick":"indutny","message":"nice and elegant","date":"2013-10-23T20:30:57.328Z","type":"message"}
{"nick":"bnoordhuis","message":"can you give me the executive summary?","date":"2013-10-23T20:31:02.553Z","type":"message"}
{"nick":"indutny","message":"I'm just checking if loop->watchers[fd] is the same as it was before ->cb()","date":"2013-10-23T20:31:39.264Z","type":"message"}
{"nick":"indutny","message":"if its not","date":"2013-10-23T20:31:42.202Z","type":"message"}
{"nick":"indutny","message":"I'm setting fd to -1 in all next events","date":"2013-10-23T20:31:48.703Z","type":"message"}
{"nick":"indutny","message":"with the same fd","date":"2013-10-23T20:31:50.883Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: is it nice?","date":"2013-10-23T20:32:04.410Z","type":"message"}
{"nick":"bnoordhuis","message":"i don't think that's always a safe assumption to make","date":"2013-10-23T20:32:12.545Z","type":"message"}
{"nick":"paulfryzel","date":"2013-10-23T20:32:23.987Z","type":"join"}
{"nick":"indutny","message":"oh, it might be not catching some stuff, actually","date":"2013-10-23T20:32:24.196Z","type":"message"}
{"nick":"indutny","message":"ergh","date":"2013-10-23T20:32:28.374Z","type":"message"}
{"nick":"indutny","message":"ok, I've another fix then","date":"2013-10-23T20:32:40.426Z","type":"message"}
{"nick":"indutny","message":"get all watchers ahead of time","date":"2013-10-23T20:32:49.182Z","type":"message"}
{"nick":"indutny","message":"and check if they're matching before doing ->cb() call","date":"2013-10-23T20:32:58.886Z","type":"message"}
{"nick":"bnoordhuis","message":"not sure what you mean by that","date":"2013-10-23T20:33:09.988Z","type":"message"}
{"nick":"indutny","message":"well","date":"2013-10-23T20:33:13.632Z","type":"message"}
{"nick":"indutny","message":"we've this: struct uv__epoll_event events[1024];","date":"2013-10-23T20:33:26.025Z","type":"message"}
{"nick":"indutny","message":"lets add uv__io_t* watchers[1024];","date":"2013-10-23T20:33:34.190Z","type":"message"}
{"nick":"bnoordhuis","message":"and then?","date":"2013-10-23T20:33:44.363Z","type":"message"}
{"nick":"indutny","message":"and right after epoll_wait()","date":"2013-10-23T20:33:44.576Z","type":"message"}
{"nick":"indutny","message":"a loop","date":"2013-10-23T20:33:46.416Z","type":"message"}
{"nick":"indutny","message":"that'll fill watchers[i] for each events[i]","date":"2013-10-23T20:33:54.123Z","type":"message"}
{"nick":"indutny","message":"then, in the existing loop, check if watchers[i] is the same as loop->watchers[fd]","date":"2013-10-23T20:34:11.098Z","type":"message"}
{"nick":"indutny","message":"if it is not - ignore event","date":"2013-10-23T20:34:17.991Z","type":"message"}
{"nick":"indutny","message":"oh","date":"2013-10-23T20:34:31.151Z","type":"message"}
{"nick":"indutny","message":"won't work either","date":"2013-10-23T20:34:35.153Z","type":"message"}
{"nick":"jmar777","reason":"Remote host closed the connection","date":"2013-10-23T20:34:40.686Z","type":"quit"}
{"nick":"bnoordhuis","message":"yeah, but what if watchers[i] == loop->watchers[fd] but it's not actually the same fd?","date":"2013-10-23T20:34:43.958Z","type":"message"}
{"nick":"indutny","message":"watchers might have the same address","date":"2013-10-23T20:34:44.826Z","type":"message"}
{"nick":"bnoordhuis","message":"exactly :)","date":"2013-10-23T20:34:49.372Z","type":"message"}
{"nick":"indutny","message":"oh, stupid C","date":"2013-10-23T20:35:02.372Z","type":"message"}
{"nick":"indutny","message":"you can't compare objects :)","date":"2013-10-23T20:35:07.007Z","type":"message"}