-
Notifications
You must be signed in to change notification settings - Fork 12
/
2012-01-09.txt
1226 lines (1226 loc) · 149 KB
/
2012-01-09.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":"mmalecki","message":"oh? what happened here ^ ?","date":"2012-01-09T00:00:25.433Z","type":"message"}
{"nick":"mmalecki","message":"ah, I see, nvm.","date":"2012-01-09T00:01:50.514Z","type":"message"}
{"nick":"bnoordhuis","message":"forced push, i updated the commit message with an issue number","date":"2012-01-09T00:03:38.479Z","type":"message"}
{"nick":"mmalecki","message":"sure. I thought it was travis derping.","date":"2012-01-09T00:04:09.355Z","type":"message"}
{"nick":"bnoordhuis","action":"goes off to write some php","date":"2012-01-09T00:07:13.042Z","type":"action"}
{"nick":"mmalecki","message":"bnoordhuis: hahahaha, that's totally a good joke","date":"2012-01-09T00:07:30.425Z","type":"message"}
{"nick":"bnoordhuis","message":"i promised my girlfriend to update her website :/","date":"2012-01-09T00:07:53.291Z","type":"message"}
{"nick":"mmalecki","message":"someone on #nodejitsu came up with an interesting description for php, btw","date":"2012-01-09T00:07:58.464Z","type":"message"}
{"nick":"bnoordhuis","message":"tell me!","date":"2012-01-09T00:08:04.834Z","type":"message"}
{"nick":"mmalecki","message":"turing-complete templating language","date":"2012-01-09T00:08:12.426Z","type":"message"}
{"nick":"bnoordhuis","message":"heh","date":"2012-01-09T00:08:49.822Z","type":"message"}
{"nick":"bnoordhuis","message":"well, i don't hate php that much - it does the job fine","date":"2012-01-09T00:09:05.856Z","type":"message"}
{"nick":"mmalecki","message":"not sure who did. AvianFlu or jesusabdullah.","date":"2012-01-09T00:09:18.154Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: I used to do freelancing in PHP. I hate it.","date":"2012-01-09T00:09:30.859Z","type":"message"}
{"nick":"bnoordhuis","message":"i don't really want to ask 'why' because i've probably heard it all before :)","date":"2012-01-09T00:09:58.709Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: I don't think I even know why","date":"2012-01-09T00:10:14.209Z","type":"message"}
{"nick":"mmalecki","message":"I just moved on. I hate coming back to old things","date":"2012-01-09T00:10:43.460Z","type":"message"}
{"nick":"mmalecki","message":"php didn't give me any fun at all","date":"2012-01-09T00:10:50.420Z","type":"message"}
{"nick":"isaacs","date":"2012-01-09T00:12:04.092Z","type":"join"}
{"nick":"bnoordhuis","message":"mmalecki: work is not supposed to be fun","date":"2012-01-09T00:12:28.975Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: haha, yes, it is :)","date":"2012-01-09T00:13:13.423Z","type":"message"}
{"nick":"paddybyers","reason":"Quit: paddybyers","date":"2012-01-09T00:37:09.353Z","type":"quit"}
{"nick":"piscisaureus_","date":"2012-01-09T00:56:44.580Z","type":"join"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T01:08:26.275Z","type":"quit"}
{"nick":"isaacs","reason":"Quit: isaacs","date":"2012-01-09T01:27:47.296Z","type":"quit"}
{"nick":"mikeal","date":"2012-01-09T01:33:36.841Z","type":"join"}
{"nick":"isaacs","date":"2012-01-09T01:39:24.074Z","type":"join"}
{"nick":"CIA-111","reason":"Ping timeout: 240 seconds","date":"2012-01-09T01:54:43.407Z","type":"quit"}
{"nick":"bnoordhuis","reason":"Ping timeout: 268 seconds","date":"2012-01-09T01:57:19.554Z","type":"quit"}
{"nick":"isaacs","reason":"Quit: isaacs","date":"2012-01-09T02:01:55.505Z","type":"quit"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T02:30:06.235Z","type":"quit"}
{"nick":"CIA-115","date":"2012-01-09T02:35:41.627Z","type":"join"}
{"nick":"mikeal","date":"2012-01-09T02:37:54.596Z","type":"join"}
{"nick":"isaacs","date":"2012-01-09T02:38:57.603Z","type":"join"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303koichik\u000f \u000307master\u000f * r\u000270033bd\u000f \u000310\u000f/ (3 files in 3 dirs)\u0002:\u000f ","date":"2012-01-09T02:54:39.543Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f net: make connect() accept options","date":"2012-01-09T02:54:39.772Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f This makes API even with tls.connect().","date":"2012-01-09T02:54:39.772Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Refs #1983.","date":"2012-01-09T02:54:39.772Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f See also:","date":"2012-01-09T02:54:39.772Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f http://groups.google.com/group/nodejs-dev/msg/3b6dbcc4a9a82d99","date":"2012-01-09T02:54:40.041Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #2487. - http://git.io/Rfwiyw","date":"2012-01-09T02:54:40.262Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303koichik\u000f \u000307master\u000f * r\u0002c1a63a9\u000f \u000310\u000f/ (3 files in 3 dirs)\u0002:\u000f ","date":"2012-01-09T02:54:41.074Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f tls: Allow establishing secure connection on the existing socket","date":"2012-01-09T02:54:41.292Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f This is necessary to use SSL over HTTP tunnels.","date":"2012-01-09T02:54:42.104Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Refs #2259, #2474.","date":"2012-01-09T02:54:42.332Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #2489. - http://git.io/koj7pw","date":"2012-01-09T02:54:43.116Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303koichik\u000f \u000307master\u000f * r\u000208a91ac\u000f \u000310\u000f/ (3 files in 3 dirs)\u0002:\u000f ","date":"2012-01-09T02:54:43.342Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f http: better support for CONNECT method.","date":"2012-01-09T02:54:44.109Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f server (http.Server).","date":"2012-01-09T02:55:36.399Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Refs: #2259, #2474.","date":"2012-01-09T02:55:36.616Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #1576. - http://git.io/Jd2C9A","date":"2012-01-09T02:55:36.616Z","type":"message"}
{"nick":"brson","reason":"Ping timeout: 252 seconds","date":"2012-01-09T02:59:55.297Z","type":"quit"}
{"nick":"travis-ci","date":"2012-01-09T03:06:19.127Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/node#205 (master - 08a91ac : koichik): The build is still failing.","date":"2012-01-09T03:06:19.348Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/node/compare/0321adb...08a91ac","date":"2012-01-09T03:06:19.348Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/495624","date":"2012-01-09T03:06:19.348Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T03:06:19.348Z","type":"part"}
{"nick":"piscisaureus_","reason":"Ping timeout: 260 seconds","date":"2012-01-09T03:12:28.912Z","type":"quit"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ryunosuke SATO\u000f \u000307v0.6\u000f * r\u000222d7fe1\u000f \u000310\u000f/ (2 files in 2 dirs)\u0002:\u000f ","date":"2012-01-09T03:13:30.427Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f events: fix checking max listeners with `1`","date":"2012-01-09T03:13:30.647Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #2490. - http://git.io/K-KSXA","date":"2012-01-09T03:13:30.647Z","type":"message"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T03:16:04.319Z","type":"quit"}
{"nick":"travis-ci","date":"2012-01-09T03:21:28.567Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/node#206 (v0.6 - 22d7fe1 : Ryunosuke SATO): The build passed.","date":"2012-01-09T03:21:28.788Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/node/compare/9a79bb6...22d7fe1","date":"2012-01-09T03:21:28.788Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/495636","date":"2012-01-09T03:21:28.788Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T03:21:28.788Z","type":"part"}
{"nick":"ryah","topic":"libuv","date":"2012-01-09T03:36:00.339Z","type":"topic"}
{"nick":"indutny","message":"good evening, everyone","date":"2012-01-09T05:32:31.423Z","type":"message"}
{"nick":"slaskis","date":"2012-01-09T05:41:51.615Z","type":"join"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2012-01-09T06:26:17.319Z","type":"quit"}
{"nick":"ircretary","reason":"*.net *.split","date":"2012-01-09T06:44:41.321Z","type":"quit"}
{"nick":"pquerna","reason":"*.net *.split","date":"2012-01-09T06:44:41.321Z","type":"quit"}
{"nick":"16SAAH4T6","reason":"*.net *.split","date":"2012-01-09T06:44:51.761Z","type":"quit"}
{"nick":"rmustacc","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"igorzi","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"Raynos","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"sh1mmer","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"CIA-115","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"slaskis","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"benvie","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"raggi","reason":"*.net *.split","date":"2012-01-09T06:44:51.762Z","type":"quit"}
{"nick":"dannycoates","reason":"*.net *.split","date":"2012-01-09T06:44:51.872Z","type":"quit"}
{"nick":"txdv","reason":"*.net *.split","date":"2012-01-09T06:44:51.872Z","type":"quit"}
{"nick":"ljackson","reason":"*.net *.split","date":"2012-01-09T06:44:51.872Z","type":"quit"}
{"nick":"arlolra","reason":"*.net *.split","date":"2012-01-09T06:44:51.872Z","type":"quit"}
{"nick":"kohai","reason":"*.net *.split","date":"2012-01-09T06:44:51.872Z","type":"quit"}
{"nick":"chilts","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"ryah","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"mmalecki","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"creationix","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"DrPizza","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"isaacs","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"einaros","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"indutny","reason":"*.net *.split","date":"2012-01-09T06:45:30.455Z","type":"quit"}
{"nick":"sh1mmer","date":"2012-01-09T06:50:14.776Z","type":"join"}
{"nick":"mikeal","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"slaskis","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"isaacs","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"CIA-115","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"Raynos","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"benvie","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"txdv","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"rmustacc","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"16SAAH4T6","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"einaros","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"igorzi","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"ircretary","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"raggi","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"dannycoates","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"pquerna","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"kohai","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"mmalecki","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"creationix","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"ljackson","date":"2012-01-09T06:50:15.001Z","type":"join"}
{"nick":"arlolra","date":"2012-01-09T06:50:15.002Z","type":"join"}
{"nick":"indutny","date":"2012-01-09T06:50:15.002Z","type":"join"}
{"nick":"chilts","date":"2012-01-09T06:50:15.002Z","type":"join"}
{"nick":"DrPizza","date":"2012-01-09T06:50:15.002Z","type":"join"}
{"nick":"ryah","date":"2012-01-09T06:50:15.002Z","type":"join"}
{"nick":"paddybyers","date":"2012-01-09T07:12:14.427Z","type":"join"}
{"nick":"slaskis","reason":"Quit: slaskis","date":"2012-01-09T07:14:58.953Z","type":"quit"}
{"nick":"slaskis","date":"2012-01-09T07:55:10.416Z","type":"join"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T08:40:41.290Z","type":"quit"}
{"nick":"mikeal","date":"2012-01-09T08:42:09.115Z","type":"join"}
{"nick":"isaacs","reason":"Quit: isaacs","date":"2012-01-09T08:44:56.473Z","type":"quit"}
{"nick":"kuebk","date":"2012-01-09T09:25:25.744Z","type":"join"}
{"nick":"dshaw_","date":"2012-01-09T09:34:37.662Z","type":"join"}
{"nick":"ErikCorry2","date":"2012-01-09T10:58:58.531Z","type":"join"}
{"nick":"piscisaureus_","date":"2012-01-09T11:17:44.903Z","type":"join"}
{"nick":"piscisaureus_","message":"Hey guys, anybody there?","date":"2012-01-09T11:24:55.942Z","type":"message"}
{"nick":"mmalecki","message":"hi! I am","date":"2012-01-09T11:27:07.039Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: ah","date":"2012-01-09T11:27:48.154Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: seen this -> http://groups.google.com/group/nodejs-dev/browse_thread/thread/9f8f74f702862dac ?","date":"2012-01-09T11:27:57.617Z","type":"message"}
{"nick":"piscisaureus_","message":"obviously this patch is not good as pointed out by Slava","date":"2012-01-09T11:28:11.057Z","type":"message"}
{"nick":"piscisaureus_","message":"but I wonder if number hash collisions are even exploitable at all?","date":"2012-01-09T11:28:25.167Z","type":"message"}
{"nick":"piscisaureus_","message":"how would you trigger them>","date":"2012-01-09T11:28:30.096Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: I know someone posted a generator here, but it's gone now :(","date":"2012-01-09T11:28:50.796Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: sec, I've seen some benchmarks on that.","date":"2012-01-09T11:29:04.121Z","type":"message"}
{"nick":"piscisaureus_","message":"yes but it was for string hashes right?","date":"2012-01-09T11:29:09.105Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: I have a generator for string collisions too","date":"2012-01-09T11:29:19.263Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: there was a benchmark for both types","date":"2012-01-09T11:29:42.455Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: like, how many tries/seconds you need to generate them","date":"2012-01-09T11:30:07.127Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: did you fork or checkout the generator?","date":"2012-01-09T11:31:33.331Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: no :(","date":"2012-01-09T11:31:54.380Z","type":"message"}
{"nick":"piscisaureus_","message":"hmm, too bad","date":"2012-01-09T11:32:00.287Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: I can't seem to find this benchmark. not sure if it had any code tho. you can try asking TheJH, I think he was the first guy to write any exploit for node.js","date":"2012-01-09T11:34:07.152Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: maybe he'll be able to come up with something for numbers","date":"2012-01-09T11:34:24.800Z","type":"message"}
{"nick":"piscisaureus_","message":"I got something from einaros","date":"2012-01-09T11:34:33.090Z","type":"message"}
{"nick":"piscisaureus_","message":"which is also for strings only","date":"2012-01-09T11:34:40.863Z","type":"message"}
{"nick":"piscisaureus_","message":"But I will just send an email to peter to ask for it :-)","date":"2012-01-09T11:35:04.718Z","type":"message"}
{"nick":"mmalecki","message":"https://gist.github.com/1559765","date":"2012-01-09T11:35:06.782Z","type":"message"}
{"nick":"mmalecki","message":"he didn't delete a public gist :)","date":"2012-01-09T11:35:17.179Z","type":"message"}
{"nick":"piscisaureus_","message":"ah","date":"2012-01-09T11:35:47.660Z","type":"message"}
{"nick":"piscisaureus_","message":"that's not a very elegant solution","date":"2012-01-09T11:36:00.653Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: looks like it's similar to the one TheJH came up with","date":"2012-01-09T11:36:13.640Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: https://gist.github.com/4a8d873c040b5659edbc","date":"2012-01-09T11:36:27.261Z","type":"message"}
{"nick":"piscisaureus_","message":"more sophisticated :-)","date":"2012-01-09T11:36:40.167Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: again, TheJH also did that","date":"2012-01-09T11:36:54.907Z","type":"message"}
{"nick":"mmalecki","message":"one of these is faster - not sure if \\0 or AA","date":"2012-01-09T11:37:03.252Z","type":"message"}
{"nick":"mmalecki","message":"*AAA","date":"2012-01-09T11:37:05.547Z","type":"message"}
{"nick":"piscisaureus_","message":"anyway","date":"2012-01-09T11:37:29.542Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: ask author of this v8 patch for an exploit","date":"2012-01-09T11:37:51.331Z","type":"message"}
{"nick":"mmalecki","message":"I mean, patch for numbers.","date":"2012-01-09T11:38:02.302Z","type":"message"}
{"nick":"piscisaureus_","message":"hmm, I don't have so much trust in his coding skills","date":"2012-01-09T11:38:13.886Z","type":"message"}
{"nick":"piscisaureus_","message":"but I can try :-)","date":"2012-01-09T11:38:17.223Z","type":"message"}
{"nick":"mmalecki","message":"haha yeah, why not","date":"2012-01-09T11:38:33.589Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: hey, can git under windows handle submodules? I get many errors with missing library","date":"2012-01-09T11:40:18.864Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: yeah they work fine","date":"2012-01-09T11:40:31.793Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: only long paths (>260 chars) and symlinks have problems","date":"2012-01-09T11:40:49.167Z","type":"message"}
{"nick":"mmalecki","message":"damn, something's work with my setup","date":"2012-01-09T11:40:55.221Z","type":"message"}
{"nick":"mmalecki","message":"(I'm at school right now and I want to set something up for boring lessons)","date":"2012-01-09T11:41:09.968Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: but thanks :). anyway, I have to run now. good luck with the exploit/patch!","date":"2012-01-09T11:42:35.435Z","type":"message"}
{"nick":"ErikCorry2","message":"I guess you can trigger it with a URL of the form foo.com/?1=0&2=0&3=0&4=0&5=0","date":"2012-01-09T11:51:02.185Z","type":"message"}
{"nick":"ErikCorry2","message":"Though obviously with different keys.","date":"2012-01-09T11:51:12.379Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: heya","date":"2012-01-09T11:51:24.052Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: hi","date":"2012-01-09T11:51:25.459Z","type":"message"}
{"nick":"indutny","message":"mmalecki: hello","date":"2012-01-09T11:51:27.857Z","type":"message"}
{"nick":"ErikCorry2","message":"Does the latest node contain any limit on the number of key-value pairs in the URL?","date":"2012-01-09T11:51:32.775Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: node doesn't handle this, that's user-level side","date":"2012-01-09T11:52:05.082Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: piscisaureus_ actually sending POST with {'1': 0, '2': 0, .... } will work too","date":"2012-01-09T11:52:33.884Z","type":"message"}
{"nick":"ErikCorry2","message":"Is that user side too?","date":"2012-01-09T11:52:49.924Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: handling that? yes","date":"2012-01-09T11:52:56.718Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: no but we should have it anyway","date":"2012-01-09T11:53:16.848Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: I don't think so","date":"2012-01-09T11:53:26.939Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: let users choose how much they want to receive","date":"2012-01-09T11:53:37.470Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: the limit could be confiigurable","date":"2012-01-09T11:53:44.645Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: node isn't even parsing that","date":"2012-01-09T11:54:05.778Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: oh, you mean url limit?","date":"2012-01-09T11:54:12.742Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: we have querystring parsing","date":"2012-01-09T11:54:16.046Z","type":"message"}
{"nick":"ErikCorry2","message":"So if the limit is 1000 then this is basically a non-issue","date":"2012-01-09T11:54:18.294Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: and http headers parsing","date":"2012-01-09T11:54:24.041Z","type":"message"}
{"nick":"ErikCorry2","message":"I don't think that many would need to up the limit","date":"2012-01-09T11:54:26.482Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: why can't we change hashing for numbers too?","date":"2012-01-09T11:54:41.502Z","type":"message"}
{"nick":"ErikCorry2","message":"We can do that, but I'm a fan of defense in depth.","date":"2012-01-09T11:54:57.244Z","type":"message"}
{"nick":"piscisaureus_","message":"I am with Erik on this","date":"2012-01-09T11:55:05.540Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: agreed, but that's another side of problem","date":"2012-01-09T11:55:24.399Z","type":"message"}
{"nick":"piscisaureus_","message":"People should not rely on v8 features for security","date":"2012-01-09T11:55:27.529Z","type":"message"}
{"nick":"indutny","message":"and fixing half of it is like not fixing it at all","date":"2012-01-09T11:55:35.043Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: you think so?","date":"2012-01-09T11:55:44.140Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: besides it is still possible to blow up a node server","date":"2012-01-09T11:55:52.675Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: so if some JSON object is crashing v8 - node should disallow receiving it?","date":"2012-01-09T11:56:19.139Z","type":"message"}
{"nick":"ErikCorry2","message":"We make changes in V8 to improve security _under that assumption that the attacker already has found a buffer overflow in the C++ code of V8 or the embedder_'","date":"2012-01-09T11:56:39.771Z","type":"message"}
{"nick":"indutny","message":"that sounds ridiculous","date":"2012-01-09T11:56:39.995Z","type":"message"}
{"nick":"ErikCorry2","message":"Wait, there's nothing crashing anything.","date":"2012-01-09T11:56:57.292Z","type":"message"}
{"nick":"ErikCorry2","message":"It's just CPU time.","date":"2012-01-09T11:57:04.061Z","type":"message"}
{"nick":"indutny","message":"yep, I underestand","date":"2012-01-09T11:57:07.047Z","type":"message"}
{"nick":"indutny","message":"understand*","date":"2012-01-09T11:57:13.677Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: we should not try to parse a JSON object that's larger than a particular size","date":"2012-01-09T11:57:17.945Z","type":"message"}
{"nick":"indutny","message":"that was example","date":"2012-01-09T11:57:18.370Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2 indutny: people can actually crash a node server by just sending a shitload of http headers","date":"2012-01-09T11:57:47.017Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2 indutny: because at some point the memory will fill up","date":"2012-01-09T11:58:02.859Z","type":"message"}
{"nick":"ErikCorry2","message":"You gonna edit that out of the logs? :-)","date":"2012-01-09T11:58:10.013Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: hahaha","date":"2012-01-09T11:58:18.876Z","type":"message"}
{"nick":"piscisaureus_","message":"that's why we still need to limit request sizes","date":"2012-01-09T11:58:40.077Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: I'm not against limiting","date":"2012-01-09T11:58:41.075Z","type":"message"}
{"nick":"indutny","message":"I'm against fixing problem by limiting","date":"2012-01-09T11:58:48.315Z","type":"message"}
{"nick":"indutny","message":"when problem is not in exceeding size","date":"2012-01-09T11:59:15.936Z","type":"message"}
{"nick":"ErikCorry2","message":"We haven't quite worked out a plan for fixing the number collisions","date":"2012-01-09T11:59:22.418Z","type":"message"}
{"nick":"indutny","message":"I can help you","date":"2012-01-09T11:59:31.239Z","type":"message"}
{"nick":"indutny","message":"take my time :D","date":"2012-01-09T11:59:34.726Z","type":"message"}
{"nick":"ErikCorry2","message":"It is performance critical in some apps (mainly Emscripten based)","date":"2012-01-09T11:59:39.398Z","type":"message"}
{"nick":"ErikCorry2","message":"And the easy solutions don't work.","date":"2012-01-09T11:59:53.485Z","type":"message"}
{"nick":"ErikCorry2","message":"You probably have to have some randomness in there, and some hashing of the integer.","date":"2012-01-09T12:00:15.508Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: why approach chosed for strings won't work in case of numbers?","date":"2012-01-09T12:01:04.121Z","type":"message"}
{"nick":"ErikCorry2","message":"The current version just uses the integer as its own hash value and mixes it up a bit. Not enough to foil an attacker. Slava and I actually discussed this one, and came to the wrong conclusion that it wasn't exploitable :-(","date":"2012-01-09T12:01:10.657Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: My assumtion was also that it wasn't exploitable","date":"2012-01-09T12:01:39.069Z","type":"message"}
{"nick":"ErikCorry2","message":"In the string case we changed the hashing algorithm. In the number case there is no hashing algorithm, so we have to introduce one, and it's performance critical, so it's annoying.","date":"2012-01-09T12:02:00.476Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, got it then","date":"2012-01-09T12:02:31.264Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: so you're just `mod` them, right?","date":"2012-01-09T12:02:54.658Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: num % hole_size","date":"2012-01-09T12:03:05.044Z","type":"message"}
{"nick":"ErikCorry2","message":"Not quite that simple, but almost.","date":"2012-01-09T12:03:15.041Z","type":"message"}
{"nick":"indutny","message":"may be using not list-like structure for hash-map...","date":"2012-01-09T12:04:05.517Z","type":"message"}
{"nick":"ErikCorry2","message":"I don't think you can describe it as list-like. The backing is an array","date":"2012-01-09T12:04:53.804Z","type":"message"}
{"nick":"indutny","message":"yep, so as I understand accessing number-keyed hashmaps will invoke stub","date":"2012-01-09T12:05:51.711Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes","date":"2012-01-09T12:06:16.094Z","type":"message"}
{"nick":"indutny","message":"and in that stub we may check bucket size and search it with preferable way","date":"2012-01-09T12:06:29.820Z","type":"message"}
{"nick":"indutny","message":"oh","date":"2012-01-09T12:06:37.534Z","type":"message"}
{"nick":"indutny","message":"heap-like structure /cc rmustacc ","date":"2012-01-09T12:06:56.207Z","type":"message"}
{"nick":"indutny","message":":)","date":"2012-01-09T12:06:57.248Z","type":"message"}
{"nick":"indutny","message":"or binary-search tree","date":"2012-01-09T12:07:05.401Z","type":"message"}
{"nick":"indutny","message":"and just linear array for small buckets","date":"2012-01-09T12:07:22.898Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: how is it possible to exploit number hashes?","date":"2012-01-09T12:07:37.884Z","type":"message"}
{"nick":"ErikCorry2","message":"There's no bucket chain.","date":"2012-01-09T12:07:38.919Z","type":"message"}
{"nick":"indutny","action":"failed","date":"2012-01-09T12:07:55.863Z","type":"action"}
{"nick":"piscisaureus_","message":"ErikCorry2: I mean it is only used for integers right?","date":"2012-01-09T12:07:56.091Z","type":"message"}
{"nick":"ErikCorry2","message":"Any","date":"2012-01-09T12:08:14.626Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: object keys are always strings, even if they accessed by [num]","date":"2012-01-09T12:08:21.811Z","type":"message"}
{"nick":"ErikCorry2","message":" string that has the form of an integer is treated as an integer internally.","date":"2012-01-09T12:08:36.769Z","type":"message"}
{"nick":"indutny","message":"that's what I just said ^","date":"2012-01-09T12:08:46.914Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T12:08:48.819Z","type":"message"}
{"nick":"piscisaureus_","message":"yeah ok so the maximum allowable number is 2^32","date":"2012-01-09T12:09:09.836Z","type":"message"}
{"nick":"piscisaureus_","message":"And you have to find collisions in a 30-bit hash space","date":"2012-01-09T12:09:23.768Z","type":"message"}
{"nick":"ErikCorry2","message":"This is also why keys like \"1234\" are not in insertion order.","date":"2012-01-09T12:09:29.389Z","type":"message"}
{"nick":"piscisaureus_","message":"so there are not so many hashes then?","date":"2012-01-09T12:09:30.814Z","type":"message"}
{"nick":"piscisaureus_","message":"that collide/","date":"2012-01-09T12:09:45.206Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: lets block them all","date":"2012-01-09T12:10:24.670Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T12:10:25.257Z","type":"message"}
{"nick":"ErikCorry2","message":"Well let's say there are 10k entries in the hash, then the backing array will be around 32k elements.","date":"2012-01-09T12:10:28.103Z","type":"message"}
{"nick":"ErikCorry2","message":"So there are 15 bits of the hash that are used to address.","date":"2012-01-09T12:10:40.882Z","type":"message"}
{"nick":"piscisaureus_","message":"oh like that","date":"2012-01-09T12:11:09.312Z","type":"message"}
{"nick":"ErikCorry2","message":"When we get a collision we don't make a chain of buckets, we just pick a new bucket.","date":"2012-01-09T12:12:58.549Z","type":"message"}
{"nick":"ErikCorry2","message":"At the moment I think we do that by just ++ing the bucket.","date":"2012-01-09T12:13:09.606Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: so you're just adding item to existing bucket","date":"2012-01-09T12:13:44.525Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: or not?","date":"2012-01-09T12:13:49.708Z","type":"message"}
{"nick":"piscisaureus_","message":"hmm","date":"2012-01-09T12:14:04.192Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: btw, is ComputeIntegerHash responsible for number-keys computation?","date":"2012-01-09T12:14:04.846Z","type":"message"}
{"nick":"ErikCorry2","message":"No, we just put it in the next bucket.","date":"2012-01-09T12:14:05.069Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: but what if the next bucket is already filled?","date":"2012-01-09T12:14:17.179Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: everything gets shifted?","date":"2012-01-09T12:14:23.608Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: select next","date":"2012-01-09T12:14:25.042Z","type":"message"}
{"nick":"ErikCorry2","message":"Keep going till you find one that is free.","date":"2012-01-09T12:14:31.350Z","type":"message"}
{"nick":"ErikCorry2","message":"That's the attack..","date":"2012-01-09T12:14:33.764Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: but then how can you efficiently look up a key?","date":"2012-01-09T12:14:45.695Z","type":"message"}
{"nick":"ErikCorry2","message":"Same procedure.","date":"2012-01-09T12:14:57.164Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: in ideal case you won't traverse array match","date":"2012-01-09T12:15:00.655Z","type":"message"}
{"nick":"ErikCorry2","message":"Normally there are not many clashes.","date":"2012-01-09T12:15:02.732Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: so if you can't find a particular key you scan the next buckets until you find it or until you reach a hole?","date":"2012-01-09T12:15:32.173Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: yes","date":"2012-01-09T12:15:40.721Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: sorry, answering for you","date":"2012-01-09T12:15:46.753Z","type":"message"}
{"nick":"ErikCorry2","message":"np","date":"2012-01-09T12:15:56.661Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: are you using hashs longer than 15 bits?","date":"2012-01-09T12:17:05.145Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: that depends on keys amount?","date":"2012-01-09T12:17:34.321Z","type":"message"}
{"nick":"ErikCorry2","message":"The hash is 30-32 bits long, but we only use the low bits depending on the size of the backing array.","date":"2012-01-09T12:18:26.284Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ok, got it","date":"2012-01-09T12:18:40.292Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: can we eventually split that key-space into two separate?","date":"2012-01-09T12:19:10.140Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, looks like it's impossible w/o rehashing","date":"2012-01-09T12:19:26.770Z","type":"message"}
{"nick":"ErikCorry2","message":"You mean the numerica nd the string key spaces?","date":"2012-01-09T12:19:41.338Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: you're already using separate AFAIK","date":"2012-01-09T12:19:51.977Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes.","date":"2012-01-09T12:20:06.263Z","type":"message"}
{"nick":"ErikCorry2","message":"The 'Elements' array is the backing for the numeric keyed properties.","date":"2012-01-09T12:20:20.106Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: that was just my stupid idea, rolling different variants in my head","date":"2012-01-09T12:20:20.860Z","type":"message"}
{"nick":"piscisaureus_","message":"I am going for company lunch","date":"2012-01-09T12:20:22.659Z","type":"message"}
{"nick":"ErikCorry2","message":"The 'Properties' array is the backing for the others.","date":"2012-01-09T12:20:27.695Z","type":"message"}
{"nick":"piscisaureus_","message":"bbiab","date":"2012-01-09T12:20:30.255Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ok, let me think","date":"2012-01-09T12:20:38.354Z","type":"message"}
{"nick":"ErikCorry2","message":"Each of them can be fast mode or dictionary mode.","date":"2012-01-09T12:20:38.578Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: what is fast mode?","date":"2012-01-09T12:20:49.188Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: just array of [k,v]?","date":"2012-01-09T12:20:53.447Z","type":"message"}
{"nick":"ErikCorry2","message":"For the elements the fast mode is just an array from 0-n where the key is implicit in the position.","date":"2012-01-09T12:21:17.286Z","type":"message"}
{"nick":"ErikCorry2","message":"For the properties the keys are in the map, and only the values are in the array, in the order determined in the map","date":"2012-01-09T12:21:45.239Z","type":"message"}
{"nick":"ErikCorry2","message":"(In the descriptor array of the map,actually)","date":"2012-01-09T12:21:52.910Z","type":"message"}
{"nick":"ErikCorry2","message":"All these issues only arise when we are in dictionary mode.","date":"2012-01-09T12:22:25.849Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: thanks for bootstrapping :)","date":"2012-01-09T12:23:02.567Z","type":"message"}
{"nick":"ErikCorry2","message":"np","date":"2012-01-09T12:23:43.037Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: sorry probably I missed that in previous messages, but why randomized seed won't help us in case of numbers? or it will?","date":"2012-01-09T12:28:02.214Z","type":"message"}
{"nick":"ErikCorry2","message":"Yeah, that is probably what we will do.","date":"2012-01-09T12:28:25.971Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, sorry","date":"2012-01-09T12:28:26.560Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: really missed your message","date":"2012-01-09T12:28:38.827Z","type":"message"}
{"nick":"ErikCorry2","message":"The randomized seed slowed down the string hashing.","date":"2012-01-09T12:28:39.609Z","type":"message"}
{"nick":"ErikCorry2","message":"We lost 1.5ms on SunSpider. That's a surprisingly big deal.","date":"2012-01-09T12:28:54.759Z","type":"message"}
{"nick":"indutny","message":"there're always price for complexity","date":"2012-01-09T12:29:02.462Z","type":"message"}
{"nick":"ErikCorry2","message":"And the number version will probably hurt us on some Emscripten stuff.","date":"2012-01-09T12:29:11.556Z","type":"message"}
{"nick":"indutny","message":"has spidermonkey fixed that issue yet?","date":"2012-01-09T12:29:33.550Z","type":"message"}
{"nick":"ErikCorry2","message":"Don't know.","date":"2012-01-09T12:29:46.285Z","type":"message"}
{"nick":"indutny","message":"they should miss some ms too :)","date":"2012-01-09T12:29:54.663Z","type":"message"}
{"nick":"ErikCorry2","message":"But they don't have node so it's not a big deal for the.","date":"2012-01-09T12:29:55.547Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: but they do have couchdb and others","date":"2012-01-09T12:30:11.222Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: many engines are using it","date":"2012-01-09T12:30:18.831Z","type":"message"}
{"nick":"indutny","message":"so is ComputeIntegerHash right thing to look on?","date":"2012-01-09T12:30:58.842Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes.","date":"2012-01-09T12:31:03.194Z","type":"message"}
{"nick":"ErikCorry2","message":"I guess you could call it a real hash algo.","date":"2012-01-09T12:31:31.120Z","type":"message"}
{"nick":"ErikCorry2","message":"It doesn't iterate like the string version does.","date":"2012-01-09T12:31:41.303Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: I see","date":"2012-01-09T12:31:57.828Z","type":"message"}
{"nick":"ErikCorry2","message":"It's replicated in assembler in each of the 4 arches.","date":"2012-01-09T12:32:15.651Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: and one in utils.h is for C++ side, right?","date":"2012-01-09T12:32:57.009Z","type":"message"}
{"nick":"ErikCorry2","message":"Yeah.","date":"2012-01-09T12:33:05.453Z","type":"message"}
{"nick":"indutny","message":"ok, sounds clear... can I use same seed as for strings?","date":"2012-01-09T12:33:19.199Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes.","date":"2012-01-09T12:33:27.587Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: so I think (h = (h + seed) << 10) should work there too","date":"2012-01-09T12:34:41.277Z","type":"message"}
{"nick":"ErikCorry2","message":"http://www.concentric.net/~Ttwang/tech/inthash.htm","date":"2012-01-09T12:35:44.046Z","type":"message"}
{"nick":"ErikCorry2","message":"That's where the hash function comes from","date":"2012-01-09T12:35:51.733Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: yep, but there're no word on seeding","date":"2012-01-09T12:36:39.196Z","type":"message"}
{"nick":"ErikCorry2","message":"He claims that there is good bit mixing.","date":"2012-01-09T12:38:20.880Z","type":"message"}
{"nick":"ErikCorry2","message":"Which indicates to me that putting the seed in at the beginning should be fine.","date":"2012-01-09T12:38:40.085Z","type":"message"}
{"nick":"ErikCorry2","message":"You can just xor with the seed, I think.","date":"2012-01-09T12:38:51.694Z","type":"message"}
{"nick":"ErikCorry2","message":"The << 10 from the string algo is just the first step of the iterative algo, it's not part of the seeding.","date":"2012-01-09T12:39:18.052Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, ok","date":"2012-01-09T12:40:22.992Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: what about ComputeLongHash?","date":"2012-01-09T12:40:53.972Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: should I modify it?","date":"2012-01-09T12:41:01.710Z","type":"message"}
{"nick":"ErikCorry2","message":"Not sure where it is used.","date":"2012-01-09T12:41:57.295Z","type":"message"}
{"nick":"ErikCorry2","message":"It seems to be mainly for hashing adresses, but we don't do that much in V8, because everything can move.","date":"2012-01-09T12:42:28.406Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ok","date":"2012-01-09T12:43:12.757Z","type":"message"}
{"nick":"indutny","message":"relocation, etc","date":"2012-01-09T12:43:18.090Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: is arguments with default value good style for v8, haven't used them in any patches yet","date":"2012-01-09T12:44:11.570Z","type":"message"}
{"nick":"ErikCorry2","message":"They are frowned upon.","date":"2012-01-09T12:44:46.342Z","type":"message"}
{"nick":"ErikCorry2","message":"http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Default_Arguments","date":"2012-01-09T12:45:25.762Z","type":"message"}
{"nick":"ErikCorry2","message":"There are a few places in V8, where we have them, but it's only where it is very obvious what the default value would be.","date":"2012-01-09T12:45:57.762Z","type":"message"}
{"nick":"ErikCorry2","message":"ComputeLongHash is used where an FP or large number is used as a key in a Harmony map.","date":"2012-01-09T12:47:02.397Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: so I need to seed it too?","date":"2012-01-09T12:47:17.019Z","type":"message"}
{"nick":"ErikCorry2","message":"You might as well, but a 32 bit seed should be enough.","date":"2012-01-09T12:47:51.072Z","type":"message"}
{"nick":"ErikCorry2","message":"I wonder if test-hashing.cc tests the integer hashes?","date":"2012-01-09T12:48:35.727Z","type":"message"}
{"nick":"ErikCorry2","message":"It should.","date":"2012-01-09T12:48:37.204Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: how much can you regain on sunspider by not putting the hash seed in the roots","date":"2012-01-09T12:50:19.733Z","type":"message"}
{"nick":"piscisaureus_","message":"but just inlining it","date":"2012-01-09T12:50:32.833Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: but where to put it then?","date":"2012-01-09T12:50:35.042Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: oooh","date":"2012-01-09T12:50:43.695Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: have it as property of both fullgen and hydrogen?","date":"2012-01-09T12:51:00.886Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: instead of generating code like add eax, [seed_address]","date":"2012-01-09T12:51:23.914Z","type":"message"}
{"nick":"ErikCorry2","message":"piscisaureus_: Not much. Most of the perf loss is in C++ I think.","date":"2012-01-09T12:51:31.800Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: ... generate ADD eax, seed","date":"2012-01-09T12:51:33.626Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: yes, memory access is slow","date":"2012-01-09T12:51:34.331Z","type":"message"}
{"nick":"ErikCorry2","message":"I haven't done the experiment though.","date":"2012-01-09T12:51:38.856Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: well `ADD eax, seed` also requires memory access","date":"2012-01-09T12:51:54.576Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: how?","date":"2012-01-09T12:52:06.615Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: well how does the processor get the seed?","date":"2012-01-09T12:52:18.624Z","type":"message"}
{"nick":"piscisaureus_","message":"by reading memory :-)","date":"2012-01-09T12:52:22.092Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: only at compilation time","date":"2012-01-09T12:52:22.311Z","type":"message"}
{"nick":"piscisaureus_","message":"hehe","date":"2012-01-09T12:52:28.272Z","type":"message"}
{"nick":"piscisaureus_","message":"no","date":"2012-01-09T12:52:28.945Z","type":"message"}
{"nick":"ErikCorry2","message":"On ARM there is no way to put it in the code, you have to load large constants somehow, so the root array is no loss.","date":"2012-01-09T12:52:32.257Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: that will come from cpu's cache I suppose ;)","date":"2012-01-09T12:52:45.140Z","type":"message"}
{"nick":"ErikCorry2","message":"On IA32 we only load it from roots in code that is part of the snapshot. All code that is generated later uses an embedded constant.","date":"2012-01-09T12:53:01.354Z","type":"message"}
{"nick":"piscisaureus_","message":"oh yeah that's true","date":"2012-01-09T12:53:13.011Z","type":"message"}
{"nick":"ErikCorry2","message":"In theory on an OOO CPU like any x64 CPU the root array load gets hoisted out of the critical path and is free. This may or may not work in practice.","date":"2012-01-09T12:56:27.272Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ooh, that patch will require adding seed to every HastTable, because Shape class needs to be extended to support","date":"2012-01-09T12:57:16.493Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: Hash(uint32_t key, uint32_t seed)","date":"2012-01-09T12:57:24.760Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: otherwise FindEntry won't work","date":"2012-01-09T12:57:42.596Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: is that a right path ^?","date":"2012-01-09T12:57:47.275Z","type":"message"}
{"nick":"ErikCorry2","message":"it.s not different from the string case.","date":"2012-01-09T12:57:54.278Z","type":"message"}
{"nick":"ErikCorry2","message":"That didn't need a seed on the hash table.","date":"2012-01-09T12:58:02.609Z","type":"message"}
{"nick":"ErikCorry2","message":"It just does table->GetHeap()->string_hash_seed()","date":"2012-01-09T12:58:15.292Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, I see now","date":"2012-01-09T12:58:32.655Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: thanks","date":"2012-01-09T12:58:34.855Z","type":"message"}
{"nick":"ErikCorry2","message":"Which as I said is too slow, but lets get it correct first, fix performance laster.","date":"2012-01-09T12:59:03.618Z","type":"message"}
{"nick":"ErikCorry2","message":"later.","date":"2012-01-09T12:59:05.569Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ok, brb","date":"2012-01-09T12:59:43.461Z","type":"message"}
{"nick":"indutny","message":"going to lunch","date":"2012-01-09T12:59:50.397Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: I don't really get why you need to add the seed to every hash table","date":"2012-01-09T13:04:21.910Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: having a perisolate seed is fine right?","date":"2012-01-09T13:04:37.168Z","type":"message"}
{"nick":"ErikCorry2","message":"You don't.","date":"2012-01-09T13:04:45.105Z","type":"message"}
{"nick":"piscisaureus_","message":"ah good","date":"2012-01-09T13:05:09.134Z","type":"message"}
{"nick":"bnoordhuis","date":"2012-01-09T13:05:13.294Z","type":"join"}
{"nick":"indutny","message":"back","date":"2012-01-09T13:07:45.538Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: Shape::Hash is a static function that doesn't know anything about hashmap itself","date":"2012-01-09T13:08:30.762Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: StringHash is using String::Hash method for that","date":"2012-01-09T13:08:44.831Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: true that","date":"2012-01-09T13:08:48.289Z","type":"message"}
{"nick":"ErikCorry2","message":"You just need any heap object to do GetHeap() on.","date":"2012-01-09T13:09:37.495Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: righto, going to find one :D","date":"2012-01-09T13:09:48.822Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: Isolate::Current() works","date":"2012-01-09T13:10:02.773Z","type":"message"}
{"nick":"ErikCorry2","message":"Slow","date":"2012-01-09T13:10:07.530Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: nice :D","date":"2012-01-09T13:10:19.156Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: because it uses TLS?","date":"2012-01-09T13:10:24.788Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes","date":"2012-01-09T13:10:29.474Z","type":"message"}
{"nick":"piscisaureus_","message":"creationix: hey, when are you coming to Amsterdam?","date":"2012-01-09T13:12:01.585Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: so as I can see there're no objects shared with Shape","date":"2012-01-09T13:12:26.625Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: and none that can be easily shared w/o changing every hashmap implementation","date":"2012-01-09T13:12:42.368Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: should I coerce uint32_t to Number","date":"2012-01-09T13:12:53.127Z","type":"message"}
{"nick":"indutny","message":"?","date":"2012-01-09T13:12:54.207Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: no that won't work","date":"2012-01-09T13:13:04.010Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: that's how it works with string hashmaps","date":"2012-01-09T13:13:19.837Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: not literally","date":"2012-01-09T13:13:30.216Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: but it's receiving String object as key","date":"2012-01-09T13:13:44.567Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: and using it's class method Hash","date":"2012-01-09T13:13:51.384Z","type":"message"}
{"nick":"ErikCorry2","message":"Can't Shape take the seed as an argument along with the int32_t?","date":"2012-01-09T13:14:31.094Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: lets add seed argument to Shape::Hash","date":"2012-01-09T13:14:33.207Z","type":"message"}
{"nick":"ErikCorry2","message":"Yes.","date":"2012-01-09T13:14:38.406Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: and make it zero by default","date":"2012-01-09T13:14:39.656Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: :)","date":"2012-01-09T13:14:49.685Z","type":"message"}
{"nick":"ErikCorry2","message":"You can't just coerce an int32_t to a Number, that doesn't make it into a heap object.","date":"2012-01-09T13:14:59.410Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: ah, righto","date":"2012-01-09T13:15:08.585Z","type":"message"}
{"nick":"ErikCorry2","message":"It has to be a real heap object with a real address, since the address is used to find the heap.","date":"2012-01-09T13:15:16.342Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: I'll still need to get current isolate for that stuff","date":"2012-01-09T13:15:17.066Z","type":"message"}
{"nick":"ErikCorry2","message":"You can't use Isolate::Current, sorry.","date":"2012-01-09T13:15:32.011Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: I understand!","date":"2012-01-09T13:15:54.435Z","type":"message"}
{"nick":"ErikCorry2","message":":-)","date":"2012-01-09T13:15:59.298Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T13:16:01.814Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: I think you could also just change the signature for NumberHashTableShape::Hash","date":"2012-01-09T13:16:43.821Z","type":"message"}
{"nick":"piscisaureus_","date":"2012-01-09T13:16:50.752Z","type":"part"}
{"nick":"piscisaureus_","date":"2012-01-09T13:16:55.054Z","type":"join"}
{"nick":"indutny","message":"piscisaureus_: that won't work","date":"2012-01-09T13:16:59.664Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: or.. wait","date":"2012-01-09T13:17:08.763Z","type":"message"}
{"nick":"indutny","message":"ah, I don't need too","date":"2012-01-09T13:17:40.348Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: look, I'll add method to hash key with a seed to NUmberHashTableShape","date":"2012-01-09T13:18:08.042Z","type":"message"}
{"nick":"piscisaureus_","message":"yeah, that seems better","date":"2012-01-09T13:18:41.776Z","type":"message"}
{"nick":"piscisaureus_","message":"actually","date":"2012-01-09T13:18:44.249Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: and use it in NumberDictionary::Set","date":"2012-01-09T13:18:54.332Z","type":"message"}
{"nick":"piscisaureus_","message":"because the number that you're hashing could be an SMI","date":"2012-01-09T13:18:56.943Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: otherwise I'll need to do alot of changes","date":"2012-01-09T13:19:02.652Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: is that sounds good?","date":"2012-01-09T13:19:27.417Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: at least, I hope, clear?","date":"2012-01-09T13:19:41.222Z","type":"message"}
{"nick":"indutny","message":"looks like I'm close ( I hope )","date":"2012-01-09T13:31:04.877Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: can you help me?","date":"2012-01-09T13:33:04.221Z","type":"message"}
{"nick":"indutny","message":"psrc/objects.h:3003: warning: inline function 'static uint32_t v8::internal::NumberDictionaryShape::MixinSeed(uint32_t, uint32_t)' used but never defined","date":"2012-01-09T13:33:13.247Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: but I'm certainly using it in objects.cc","date":"2012-01-09T13:33:28.289Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: uint32_t hashed_key = NumberDictionaryShape::MixinSeed(","date":"2012-01-09T13:33:36.560Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: it doesn't say it's not used","date":"2012-01-09T13:33:48.709Z","type":"message"}
{"nick":"piscisaureus_","message":"it says it's not defined :-)","date":"2012-01-09T13:33:53.196Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: aaaah, ","date":"2012-01-09T13:34:01.150Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: forgot class prefix","date":"2012-01-09T13:34:10.772Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: probably you have to look in objects-inl.h","date":"2012-01-09T13:34:10.998Z","type":"message"}
{"nick":"indutny","message":"stupid","date":"2012-01-09T13:34:12.874Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: thanks","date":"2012-01-09T13:34:23.262Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: https://github.com/joyent/node/pull/2450 <- is that PR ready for merging? if so, can you squash the commits?","date":"2012-01-09T13:34:36.659Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: was developing node-spdy all day :)","date":"2012-01-09T13:34:38.803Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: heya","date":"2012-01-09T13:34:41.909Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: hoya","date":"2012-01-09T13:34:45.701Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I answered on that PR","date":"2012-01-09T13:34:47.135Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: why do you need to add that method btw?","date":"2012-01-09T13:34:51.175Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I think it's ready, but why should I squash it?","date":"2012-01-09T13:34:59.947Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: commits are like separate PRs here","date":"2012-01-09T13:35:17.967Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: i mean squash as in 'squash into logical commits'","date":"2012-01-09T13:35:28.554Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: you'll see soon","date":"2012-01-09T13:35:29.555Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: they already are, I hope","date":"2012-01-09T13:35:41.281Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: they are? i thought a number of them were bug fixes for the original commits?","date":"2012-01-09T13:36:01.268Z","type":"message"}
{"nick":"bnoordhuis","message":"oh, maybe you're right","date":"2012-01-09T13:36:26.219Z","type":"message"}
{"nick":"bnoordhuis","message":"okay, carry on, nothing to see here","date":"2012-01-09T13:36:50.192Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ?","date":"2012-01-09T13:37:03.155Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: are you coming to amsterdam this week?","date":"2012-01-09T13:37:06.765Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: Tim is going to be here as well","date":"2012-01-09T13:37:15.218Z","type":"message"}
{"nick":"bnoordhuis","message":"piscisaureus_: yes, i'll be there on friday","date":"2012-01-09T13:37:22.556Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: nm, i'll merge it, thanks","date":"2012-01-09T13:37:31.120Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: btw, special for you: https://github.com/DanielRapp/twss.js","date":"2012-01-09T13:37:44.721Z","type":"message"}
{"nick":"bnoordhuis","message":"yeah, i've seen that one :)","date":"2012-01-09T13:37:52.640Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: yt?","date":"2012-01-09T13:46:13.138Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: what's your @chromium.org email?","date":"2012-01-09T13:46:20.734Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: may be you can help? ^","date":"2012-01-09T13:46:44.601Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: depends","date":"2012-01-09T13:46:50.890Z","type":"message"}
{"nick":"piscisaureus_","message":"oh","date":"2012-01-09T13:46:56.227Z","type":"message"}
{"nick":"indutny","message":"erik.corry@gmail.com","date":"2012-01-09T13:47:18.093Z","type":"message"}
{"nick":"indutny","message":"looks like so","date":"2012-01-09T13:47:20.164Z","type":"message"}
{"nick":"piscisaureus_","message":"yes that's it","date":"2012-01-09T13:47:33.215Z","type":"message"}
{"nick":"piscisaureus_","message":"but that's not @chromium.org :-)","date":"2012-01-09T13:47:39.073Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: yeah, but I found it on codereview.chromium.org","date":"2012-01-09T13:48:03.805Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: should be correct","date":"2012-01-09T13:48:07.546Z","type":"message"}
{"nick":"piscisaureus_","message":"it is","date":"2012-01-09T13:48:12.478Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: ErikCorry2 http://codereview.chromium.org/9148006","date":"2012-01-09T13:49:11.260Z","type":"message"}
{"nick":"indutny","message":"aaaah","date":"2012-01-09T13:50:25.002Z","type":"message"}
{"nick":"indutny","message":"that's not full patch","date":"2012-01-09T13:50:30.056Z","type":"message"}
{"nick":"indutny","message":"fck","date":"2012-01-09T13:50:32.506Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: git commit -am \"foo\" && git cl upload?","date":"2012-01-09T13:59:41.993Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: nope, that's not the problem","date":"2012-01-09T14:01:32.827Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: my approach is incorrect","date":"2012-01-09T14:01:40.007Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: at least, it seems to be","date":"2012-01-09T14:01:44.169Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T14:01:44.695Z","type":"message"}
{"nick":"indutny","message":"brb","date":"2012-01-09T14:01:52.458Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: why?","date":"2012-01-09T14:01:56.597Z","type":"message"}
{"nick":"ErikCorry2","message":"Do you want me to review now or hold off?","date":"2012-01-09T14:04:04.576Z","type":"message"}
{"nick":"AndreasMadsen","date":"2012-01-09T14:06:24.869Z","type":"join"}
{"nick":"indutny","message":"ErikCorry2: hold","date":"2012-01-09T14:11:32.218Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: looks like saving old Dictionary interface is not possible","date":"2012-01-09T14:11:54.439Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: thanks for reviewing, I'll finish v8 patch and will come back to that PR","date":"2012-01-09T14:13:07.429Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: cool","date":"2012-01-09T14:13:28.840Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: otherwise lgtm","date":"2012-01-09T14:15:13.005Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: thanks!","date":"2012-01-09T14:15:28.416Z","type":"message"}
{"nick":"bnoordhuis","message":"you don't have to specify `struct foo` in c++ but that's a minor style issue","date":"2012-01-09T14:15:30.094Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: oh, really?","date":"2012-01-09T14:17:23.204Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: cool! :)","date":"2012-01-09T14:17:26.021Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: no more long reinterprets","date":"2012-01-09T14:17:33.163Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: i mean that you can type `foo x;` instead of `struct foo x;`, all the typecasting rules still apply","date":"2012-01-09T14:18:15.883Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I understand","date":"2012-01-09T14:19:12.318Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: I'm going to add uint32_t seed to every HashTable method, where Key is used","date":"2012-01-09T14:28:33.493Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: is that ok?","date":"2012-01-09T14:28:36.486Z","type":"message"}
{"nick":"indutny","message":"ErikCorry2: or use two field struct as Key for NumberDictionary?","date":"2012-01-09T14:33:26.781Z","type":"message"}
{"nick":"mmalecki","message":"indutny: hi","date":"2012-01-09T14:35:54.040Z","type":"message"}
{"nick":"mmalecki","message":"indutny: just came back home, sup?","date":"2012-01-09T14:36:08.341Z","type":"message"}
{"nick":"indutny","message":"mmalecki: hi","date":"2012-01-09T14:37:30.937Z","type":"message"}
{"nick":"indutny","message":"mmalecki: can't remember, sorry","date":"2012-01-09T14:37:34.280Z","type":"message"}
{"nick":"mmalecki","message":"indutny: np :)","date":"2012-01-09T14:38:20.308Z","type":"message"}
{"nick":"mmalecki","action":"goes to write some core code to beat indutny :D","date":"2012-01-09T14:40:04.360Z","type":"action"}
{"nick":"piscisaureus_","message":"oh noes","date":"2012-01-09T14:40:20.668Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: can't you just make v8 faster instead :-)","date":"2012-01-09T14:40:35.680Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: oh, yeah, sure, brb ;)","date":"2012-01-09T14:41:03.658Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: actually, it'd be pretty cool. what's the bottleneck?","date":"2012-01-09T14:42:41.305Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: haha, I don't know","date":"2012-01-09T14:42:53.665Z","type":"message"}
{"nick":"piscisaureus_","message":"er, mmalecki","date":"2012-01-09T14:42:57.007Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: there are many bottlenecks","date":"2012-01-09T14:43:12.318Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: make try catch faster :-)","date":"2012-01-09T14:43:17.596Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: what?","date":"2012-01-09T14:43:28.640Z","type":"message"}
{"nick":"indutny","message":":)","date":"2012-01-09T14:43:29.765Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: sorry I was talking to mmalecki","date":"2012-01-09T14:43:38.604Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: about your thing","date":"2012-01-09T14:43:44.279Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: I guess you can just add a seed argument to Shape::Hash","date":"2012-01-09T14:43:56.178Z","type":"message"}
{"nick":"piscisaureus_","message":"and pass 0 when you don't need it","date":"2012-01-09T14:44:07.032Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: ok. but I bet I can't do that, I'm not that good in C++","date":"2012-01-09T14:44:19.313Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: otherwise you could have Hash and HashWithSeed or something","date":"2012-01-09T14:44:32.072Z","type":"message"}
{"nick":"mmalecki","message":"I can only write super fast memcpy functions :D","date":"2012-01-09T14:44:37.625Z","type":"message"}
{"nick":"mmalecki","message":"https://github.com/mmalecki/cOS/blob/master/src/libc/string.c#L23-69","date":"2012-01-09T14:45:14.268Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f \u000303Ben Noordhuis\u000f \u000307v0.6\u000f * r\u0002803f5a0\u000f \u000310\u000f/ src/unix/internal.h \u0002:\u000f linux: fix build on older distros - http://git.io/DfIX4Q","date":"2012-01-09T14:45:42.114Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: I are you sure that it is actually faster than gcc's builtin memcpy?","date":"2012-01-09T14:46:38.178Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T14:47:06.600Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/libuv#22 (v0.6 - 803f5a0 : Ben Noordhuis): The build is still failing.","date":"2012-01-09T14:47:06.826Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/libuv/compare/38fc6ad...803f5a0","date":"2012-01-09T14:47:06.826Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/497536","date":"2012-01-09T14:47:06.827Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T14:47:06.827Z","type":"part"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ben Noordhuis\u000f \u000307v0.6\u000f * r\u0002cc5cea3\u000f \u000310\u000f/ deps/uv/src/unix/internal.h \u0002:\u000f uv: upgrade to 803f5a0 - http://git.io/Kk6-yg","date":"2012-01-09T14:47:20.740Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: not sure, I have benchmarks somewhere. I guess gcc implements it in a similar way, but this one was actually checking for SSE2 on runtime","date":"2012-01-09T14:47:44.576Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: it was meant to be part of my os, so it was soooo important to me","date":"2012-01-09T14:48:10.907Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: also, I don't think you should be building an OS when you're not good at c.","date":"2012-01-09T14:48:21.482Z","type":"message"}
{"nick":"mmalecki","message":"now I would probably just avoid having to use memcpy at all :)","date":"2012-01-09T14:48:23.212Z","type":"message"}
{"nick":"piscisaureus_","message":"Unless this is your attempt to get good at c :-)","date":"2012-01-09T14:48:32.841Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: I'm not good at C++. I love C.","date":"2012-01-09T14:48:34.840Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: oh well","date":"2012-01-09T14:48:46.657Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: c++ is not that different","date":"2012-01-09T14:48:52.299Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: and I ditched writing this OS, I started when I was 15 or so","date":"2012-01-09T14:48:54.254Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: well, I don't like C++ at all. it encourages doing things you shouldn't do","date":"2012-01-09T14:49:42.300Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: like what?","date":"2012-01-09T14:49:51.936Z","type":"message"}
{"nick":"piscisaureus_","message":"I am also not fond of c++ btw","date":"2012-01-09T14:50:06.704Z","type":"message"}
{"nick":"piscisaureus_","message":"but sometimes I like it a lot","date":"2012-01-09T14:50:27.166Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: and think about how you would do v8's HandleScope without C++","date":"2012-01-09T14:50:53.686Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: overly abstracting your models, using weird language constructs like friendly properties, using private/protected when you shouldn't do it","date":"2012-01-09T14:50:55.015Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: well, it'd be hard :)","date":"2012-01-09T14:51:06.117Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: it would be impossible","date":"2012-01-09T14:51:20.690Z","type":"message"}
{"nick":"piscisaureus_","message":"mmalecki: people would have to add stuff to their handlescope manually","date":"2012-01-09T14:51:45.854Z","type":"message"}
{"nick":"mmalecki","message":"piscisaureus_: well, I'm not saying that people shouldn't use C++. if they feel like or when it makes job easier, go ahead","date":"2012-01-09T14:53:29.788Z","type":"message"}
{"nick":"mmalecki","message":"let's see this implementation","date":"2012-01-09T14:53:46.712Z","type":"message"}
{"nick":"mmalecki","message":"if I could, I'd just move all SVN repos to git :/","date":"2012-01-09T14:54:46.437Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T14:54:59.329Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/node#207 (v0.6 - cc5cea3 : Ben Noordhuis): The build was broken.","date":"2012-01-09T14:54:59.557Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/node/compare/22d7fe1...cc5cea3","date":"2012-01-09T14:54:59.557Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/497542","date":"2012-01-09T14:54:59.557Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T14:54:59.557Z","type":"part"}
{"nick":"bnoordhuis","message":"piscisaureus_: c++ *is* different, it's that *we* don't really write c++, we write c-with-classes","date":"2012-01-09T14:55:09.611Z","type":"message"}
{"nick":"bnoordhuis","message":"for better or worse...","date":"2012-01-09T14:55:29.869Z","type":"message"}
{"nick":"mmalecki","message":"but yeah, anyway, now I know that writing OS when you're 15 is not a good idea. wasted great amount of time on writing it","date":"2012-01-09T14:55:59.353Z","type":"message"}
{"nick":"mmalecki","message":"there are some good things tho. like grub integration which doesn't suck and stuff","date":"2012-01-09T14:56:26.493Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: hey, you refactored errnoException function? can't see it in the commit","date":"2012-01-09T15:01:19.117Z","type":"message"}
{"nick":"mmalecki","message":"*commits","date":"2012-01-09T15:01:25.887Z","type":"message"}
{"nick":"bnoordhuis","message":"mmalecki: https://github.com/bnoordhuis/node/commit/b174dcf","date":"2012-01-09T15:02:14.990Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: how to override protected methods in child class?","date":"2012-01-09T15:02:17.326Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: mark them virtual in the base class","date":"2012-01-09T15:02:33.398Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I can't","date":"2012-01-09T15:02:39.825Z","type":"message"}
{"nick":"bnoordhuis","message":"then you can't override them :)","date":"2012-01-09T15:02:50.596Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: lgtm, why didn't you push it?","date":"2012-01-09T15:03:12.718Z","type":"message"}
{"nick":"mmalecki","message":"and that's why I don't like C++ ^","date":"2012-01-09T15:03:24.119Z","type":"message"}
{"nick":"bnoordhuis","message":"mmalecki: ryah wants it merged in master. also, it'd break a PR from AndreasMadsen","date":"2012-01-09T15:03:35.877Z","type":"message"}
{"nick":"AndreasMadsen","message":"hi","date":"2012-01-09T15:03:59.370Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: ok","date":"2012-01-09T15:04:06.180Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: thanks :)","date":"2012-01-09T15:07:54.005Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: I think you should update the _errnoException to match:","date":"2012-01-09T15:08:26.063Z","type":"message"}
{"nick":"AndreasMadsen","message":"https://github.com/AndreasMadsen/node-1/commit/6fe27f6b32f4648d6fe09caca5338663f481ab22","date":"2012-01-09T15:08:26.542Z","type":"message"}
{"nick":"AndreasMadsen","message":"It's behavure should be equal to the one in c++ land","date":"2012-01-09T15:09:06.032Z","type":"message"}
{"nick":"bnoordhuis","message":"AndreasMadsen: e.path is a funny name for a property that contains a generic error message","date":"2012-01-09T15:09:38.471Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: It has the same name in c++","date":"2012-01-09T15:10:06.503Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: What do you want to call it? ","date":"2012-01-09T15:11:18.500Z","type":"message"}
{"nick":"bnoordhuis","message":"AndreasMadsen: maybe nothing, i'm not quite convinced yet that those two error messages add anything","date":"2012-01-09T15:12:37.518Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: I can tell you that I don't get anything from the errorno property, in most cases it is just letters to me.","date":"2012-01-09T15:14:04.162Z","type":"message"}
{"nick":"mmalecki","message":"AndreasMadsen: ++, having more info on error is always useful","date":"2012-01-09T15:14:33.974Z","type":"message"}
{"nick":"kohai","message":"AndreasMadsen has 2 beers","date":"2012-01-09T15:14:34.259Z","type":"message"}
{"nick":"AndreasMadsen","message":"Perhaps we should make an internal module translating errorno to text","date":"2012-01-09T15:15:13.149Z","type":"message"}
{"nick":"mmalecki","message":"path is just a bit weird to me, but whatever","date":"2012-01-09T15:15:29.590Z","type":"message"}
{"nick":"AndreasMadsen","message":"mmalecki: Path is only used if it is used as an argument","date":"2012-01-09T15:16:01.010Z","type":"message"}
{"nick":"AndreasMadsen","message":"Path is only used if it is set as an argument","date":"2012-01-09T15:16:19.855Z","type":"message"}
{"nick":"mmalecki","message":"AndreasMadsen: yeah, I know. isn't it redundant tho?","date":"2012-01-09T15:17:18.668Z","type":"message"}
{"nick":"AndreasMadsen","message":"mmalecki: I don't think any error information is redundant, but we can discuess if it should be a part of the e.message","date":"2012-01-09T15:18:30.364Z","type":"message"}
{"nick":"mmalecki","message":"AndreasMadsen: hm, second, what is path supposed to store anyway?","date":"2012-01-09T15:20:15.692Z","type":"message"}
{"nick":"mmalecki","message":"AndreasMadsen: is it file path?","date":"2012-01-09T15:20:29.473Z","type":"message"}
{"nick":"AndreasMadsen","message":"mmalecki: I really do not know :/","date":"2012-01-09T15:20:36.757Z","type":"message"}
{"nick":"mmalecki","message":"hm, I see","date":"2012-01-09T15:20:57.811Z","type":"message"}
{"nick":"mmalecki","message":"yeah, we can discuss it a bit later, busy now","date":"2012-01-09T15:21:08.667Z","type":"message"}
{"nick":"indutny","message":":e","date":"2012-01-09T15:21:39.689Z","type":"message"}
{"nick":"indutny","message":"ooops","date":"2012-01-09T15:21:42.543Z","type":"message"}
{"nick":"indutny","message":"that was definitely not vim","date":"2012-01-09T15:21:47.007Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: Without the msg argument you will just get \"EBADF, write\" when writing to forked child where the channel is dead.","date":"2012-01-09T15:22:30.882Z","type":"message"}
{"nick":"bnoordhuis","message":"anyone able to reproduce this? https://github.com/joyent/libuv/issues/287","date":"2012-01-09T15:23:22.849Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: oh? I think I was, once","date":"2012-01-09T15:24:47.182Z","type":"message"}
{"nick":"AndreasMadsen","message":"While we discuss I believe that setting the errno in the global scope from c++ land is wrong. Why not just return an error object or at least the errno string it self.","date":"2012-01-09T15:24:49.206Z","type":"message"}
{"nick":"mmalecki","message":"bnoordhuis: I derped at on check in forever and well, it tried spawning way too many processes. I have no debug output tho :(","date":"2012-01-09T15:25:41.119Z","type":"message"}
{"nick":"AndreasMadsen","message":"mmalecki: ^ I think you hit that problem when frezzing the global object. ","date":"2012-01-09T15:25:56.518Z","type":"message"}
{"nick":"bnoordhuis","message":"AndreasMadsen: i agree but it's too late to change that now","date":"2012-01-09T15:26:01.558Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: In master?","date":"2012-01-09T15:26:13.919Z","type":"message"}
{"nick":"bnoordhuis","message":"AndreasMadsen: yes, maybe. but it's probably not quite trivial","date":"2012-01-09T15:26:31.392Z","type":"message"}
{"nick":"mmalecki","message":"actually, let me try reproducing that","date":"2012-01-09T15:26:43.169Z","type":"message"}
{"nick":"ljackson","reason":"Ping timeout: 240 seconds","date":"2012-01-09T15:27:53.127Z","type":"quit"}
{"nick":"AndreasMadsen","message":"bnoordhuis: hm okay :/ but don't remove the msg argument from errnoException","date":"2012-01-09T15:28:07.625Z","type":"message"}
{"nick":"bnoordhuis","message":"AndreasMadsen: well, okay. but i insist that .path is a funny name :)","date":"2012-01-09T15:28:52.196Z","type":"message"}
{"nick":"ljackson","date":"2012-01-09T15:28:58.052Z","type":"join"}
{"nick":"AndreasMadsen","message":"bnoordhuis: What is it used to, then I will rename it (or remove it)","date":"2012-01-09T15:29:32.864Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: Okay I won't rename it in #2463, I will cause inconsistance https://github.com/joyent/node/blob/master/src/node.cc#L765","date":"2012-01-09T15:31:45.428Z","type":"message"}
{"nick":"kuebk","date":"2012-01-09T15:52:20.530Z","type":"part"}
{"nick":"indutny","message":"ErikCorry2: http://codereview.chromium.org/9148006","date":"2012-01-09T16:05:36.684Z","type":"message"}
{"nick":"pietern","date":"2012-01-09T16:05:37.784Z","type":"join"}
{"nick":"perezd","date":"2012-01-09T16:08:46.117Z","type":"join"}
{"nick":"piscisaureus_","message":"bnoordhuis: do we have a way to tell the size of an open file","date":"2012-01-09T16:13:04.330Z","type":"message"}
{"nick":"piscisaureus_","message":"or the file position","date":"2012-01-09T16:13:07.233Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: I have someone here that wants to fseek to the end of the file and then ftell()","date":"2012-01-09T16:13:28.245Z","type":"message"}
{"nick":"piscisaureus_","message":"or something equivalent","date":"2012-01-09T16:13:35.788Z","type":"message"}
{"nick":"bnoordhuis","message":"piscisaureus_: fs.fstat()?","date":"2012-01-09T16:13:57.541Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: is that always up to date?","date":"2012-01-09T16:14:08.397Z","type":"message"}
{"nick":"bnoordhuis","message":"piscisaureus_: it's complicated","date":"2012-01-09T16:14:21.695Z","type":"message"}
{"nick":"bnoordhuis","message":"will there be concurrent writers?","date":"2012-01-09T16:14:32.865Z","type":"message"}
{"nick":"piscisaureus_","message":"could be I will ask","date":"2012-01-09T16:14:47.969Z","type":"message"}
{"nick":"piscisaureus_","message":"yes","date":"2012-01-09T16:15:24.861Z","type":"message"}
{"nick":"piscisaureus_","message":"it's basically implementing tail() in node","date":"2012-01-09T16:16:14.855Z","type":"message"}
{"nick":"piscisaureus_","message":"the thing is that stat() seems to lag","date":"2012-01-09T16:16:37.824Z","type":"message"}
{"nick":"bnoordhuis","message":"piscisaureus_: right","date":"2012-01-09T16:17:29.615Z","type":"message"}
{"nick":"bnoordhuis","message":"fs.fstat() will work","date":"2012-01-09T16:17:43.808Z","type":"message"}
{"nick":"bnoordhuis","message":"but define 'lag'","date":"2012-01-09T16:18:05.958Z","type":"message"}
{"nick":"piscisaureus_","message":"seconds","date":"2012-01-09T16:18:43.820Z","type":"message"}
{"nick":"bnoordhuis","message":"you're probably doing something wrong in that case","date":"2012-01-09T16:20:24.370Z","type":"message"}
{"nick":"bnoordhuis","message":"it's possible that the writers need to fsync() their changes","date":"2012-01-09T16:20:55.974Z","type":"message"}
{"nick":"piscisaureus_","message":"oh yeah that could be","date":"2012-01-09T16:21:19.601Z","type":"message"}
{"nick":"piscisaureus_","message":"I will tell","date":"2012-01-09T16:21:24.370Z","type":"message"}
{"nick":"slaskis","reason":"Quit: slaskis","date":"2012-01-09T16:27:59.928Z","type":"quit"}
{"nick":"isaacs","date":"2012-01-09T16:39:48.075Z","type":"join"}
{"nick":"rmustacc","message":"The results of updating the length in stat should occur once you're done with the vfs layer.","date":"2012-01-09T16:41:03.213Z","type":"message"}
{"nick":"rmustacc","message":"Regardless of the file being synced out to disk.","date":"2012-01-09T16:41:12.865Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: hey, yt?","date":"2012-01-09T17:04:45.871Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: how do you prevent \"nonstandard\" CPU features from being included in the snapshot?","date":"2012-01-09T17:05:21.474Z","type":"message"}
{"nick":"piscisaureus_","message":"e.g. sse4 features","date":"2012-01-09T17:05:25.128Z","type":"message"}
{"nick":"TooTallNate","date":"2012-01-09T17:24:21.610Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: Channel<T> is neat!","date":"2012-01-09T17:24:48.888Z","type":"message"}
{"nick":"indutny","message":"woot","date":"2012-01-09T17:24:49.305Z","type":"message"}
{"nick":"dap","date":"2012-01-09T17:27:38.205Z","type":"join"}
{"nick":"sh1mmer","reason":"Quit: sh1mmer","date":"2012-01-09T17:28:20.825Z","type":"quit"}
{"nick":"AvianFlu","date":"2012-01-09T17:30:38.324Z","type":"join"}
{"nick":"dap1","date":"2012-01-09T17:42:21.887Z","type":"join"}
{"nick":"dap","reason":"Ping timeout: 252 seconds","date":"2012-01-09T17:44:47.478Z","type":"quit"}
{"nick":"slaskis","date":"2012-01-09T17:49:54.187Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: yt?","date":"2012-01-09T18:01:50.487Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: updated PR","date":"2012-01-09T18:02:28.058Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: lib/_debugger works but is unfinished right now","date":"2012-01-09T18:02:40.208Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: so probably you should let it as it is","date":"2012-01-09T18:02:53.232Z","type":"message"}
{"nick":"ryah","message":"i want to release 0.7.0 today","date":"2012-01-09T18:02:57.488Z","type":"message"}
{"nick":"ryah","message":"objections?","date":"2012-01-09T18:03:03.690Z","type":"message"}
{"nick":"indutny","message":"hi","date":"2012-01-09T18:03:06.266Z","type":"message"}
{"nick":"piscisaureus_","message":"*bam*","date":"2012-01-09T18:03:08.718Z","type":"message"}
{"nick":"piscisaureus_","message":"ryah: is it anywhere near stable?","date":"2012-01-09T18:03:17.014Z","type":"message"}
{"nick":"ryah","message":"piscisaureus_: *shrug*","date":"2012-01-09T18:03:23.159Z","type":"message"}
{"nick":"ryah","message":"it's usable","date":"2012-01-09T18:03:28.869Z","type":"message"}
{"nick":"ryah","message":"more stable than 0.5.0","date":"2012-01-09T18:03:35.831Z","type":"message"}
{"nick":"indutny","message":"+1 ^","date":"2012-01-09T18:03:45.353Z","type":"message"}
{"nick":"indutny","message":"it is almost working","date":"2012-01-09T18:03:55.193Z","type":"message"}
{"nick":"mmalecki","message":"win! we'll get it on travis asap! :)","date":"2012-01-09T18:04:02.485Z","type":"message"}
{"nick":"indutny","message":"ryah: will release prevent merging isolate debugger/","date":"2012-01-09T18:04:31.180Z","type":"message"}
{"nick":"indutny","message":"?","date":"2012-01-09T18:04:57.193Z","type":"message"}
{"nick":"ryah","message":"indutny: no i want to get that in first","date":"2012-01-09T18:05:05.264Z","type":"message"}
{"nick":"ryah","message":"actually i thought it was already in","date":"2012-01-09T18:05:11.322Z","type":"message"}
{"nick":"indutny","message":"ryah: it's in, but js _debugger is racey","date":"2012-01-09T18:05:50.847Z","type":"message"}
{"nick":"indutny","message":"ryah: no crashes, js problem","date":"2012-01-09T18:06:06.441Z","type":"message"}
{"nick":"indutny","message":"ryah: at least, seems to be","date":"2012-01-09T18:06:11.454Z","type":"message"}
{"nick":"indutny","message":"ryah: can you or bnoordhuis verify that I ported it to Channel<T> correctly","date":"2012-01-09T18:07:24.590Z","type":"message"}
{"nick":"ErikCorry2","message":"piscisaureus_: By default the code in the snapshot is not allowed to do anything funky.","date":"2012-01-09T18:07:31.046Z","type":"message"}
{"nick":"indutny","message":"https://github.com/joyent/node/pull/2450","date":"2012-01-09T18:07:36.226Z","type":"message"}
{"nick":"ErikCorry2","message":"If you want to compile a version that is optimized for a specific CPU there are some macros for that, at least on ARM, where the differences are bigger.","date":"2012-01-09T18:08:02.824Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: ok, thanks","date":"2012-01-09T18:08:43.582Z","type":"message"}
{"nick":"ErikCorry2","message":"There are some stubs that exist in different versions, where the minor key depends on whether they use SSE2 code. That means they get remade after boot if the snapshot is no-sse2 and the CPU at runtime is SSE2.","date":"2012-01-09T18:08:54.423Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: I was just wondering, never actually had any issues with it","date":"2012-01-09T18:09:00.885Z","type":"message"}
{"nick":"ErikCorry2","message":"On Mac you can always assume SSE2 because no version of MacOSX runs on a CPU without SSE2","date":"2012-01-09T18:09:13.414Z","type":"message"}
{"nick":"ErikCorry2","message":"The ARM people are always running into issues with it.","date":"2012-01-09T18:09:33.230Z","type":"message"}
{"nick":"ErikCorry2","message":"Crankshaft is SSE2-only, but there is no crankshafted code in the snapshot so that issue does not arise.","date":"2012-01-09T18:09:55.543Z","type":"message"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T18:10:12.004Z","type":"quit"}
{"nick":"piscisaureus_","message":"ErikCorry2: maybe you should create the snapshot on first run and put it in some temp folder","date":"2012-01-09T18:10:37.567Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: istead of embedding it in the executable","date":"2012-01-09T18:10:45.801Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: executable may be signed","date":"2012-01-09T18:12:49.160Z","type":"message"}
{"nick":"piscisaureus_","message":"indutny: yeah so what?","date":"2012-01-09T18:13:01.887Z","type":"message"}
{"nick":"indutny","message":"piscisaureus_: that'll prevent someone from corrupting it","date":"2012-01-09T18:13:03.275Z","type":"message"}
{"nick":"ErikCorry2","message":"piscisaureus_: Yes, that would be an option for Node.","date":"2012-01-09T18:13:10.475Z","type":"message"}
{"nick":"ErikCorry2","message":"For Chromium it would be a nightmare, because V8 runs in the sandbox, which prevents you from writing any files.","date":"2012-01-09T18:13:36.308Z","type":"message"}
{"nick":"ErikCorry2","message":"So it's major work to make something like that work.","date":"2012-01-09T18:13:45.554Z","type":"message"}
{"nick":"ErikCorry2","message":"And if you take a system disk and attach it to a less capable computer you have to make sure that you have a fallback.","date":"2012-01-09T18:14:09.694Z","type":"message"}
{"nick":"piscisaureus_","message":"hmm yeah","date":"2012-01-09T18:14:18.111Z","type":"message"}
{"nick":"piscisaureus_","message":"ErikCorry2: well the fallback is always \"dont use the snapshot\"","date":"2012-01-09T18:14:30.819Z","type":"message"}
{"nick":"ErikCorry2","message":"We have considered having two snapshots and choosing the correct one, but until now we have been able to fix the performance issues in other ways.","date":"2012-01-09T18:14:43.319Z","type":"message"}
{"nick":"ErikCorry2","message":"We have been on the verge of dropping support for non-SSE2 several times. Eventually it is inevitable. It becomes harder and harder to test and the new generations of OSs don't run on non-SSE2 machines anyway.","date":"2012-01-09T18:15:33.622Z","type":"message"}
{"nick":"ErikCorry2","message":"piscisaureus_: You can't fall back to not using the snapshot, because a VM that expects a snapshot doesn't have the code needed to boot up without it.","date":"2012-01-09T18:16:09.579Z","type":"message"}
{"nick":"ryah","message":"indutny: please link me to your patch that you want landed","date":"2012-01-09T18:16:11.161Z","type":"message"}
{"nick":"ErikCorry2","message":"That can be fixed too, but exe size is a parameter too, so...","date":"2012-01-09T18:16:23.581Z","type":"message"}
{"nick":"indutny","message":"ryah: https://github.com/joyent/node/pull/2450","date":"2012-01-09T18:16:36.391Z","type":"message"}
{"nick":"paddybyers","reason":"Quit: paddybyers","date":"2012-01-09T18:17:27.801Z","type":"quit"}
{"nick":"indutny","message":"ErikCorry2: just to remind you http://codereview.chromium.org/9148006","date":"2012-01-09T18:17:49.539Z","type":"message"}
{"nick":"dshaw_","reason":"Quit: Leaving.","date":"2012-01-09T18:18:05.699Z","type":"quit"}
{"nick":"ErikCorry2","message":"indutny: Thanks.","date":"2012-01-09T18:18:13.574Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: i'll review it","date":"2012-01-09T18:21:49.867Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: thanks","date":"2012-01-09T18:23:22.416Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: you get bonus points for that IsolateDebuggerMessage class :)","date":"2012-01-09T18:23:55.427Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: hahaha","date":"2012-01-09T18:24:35.686Z","type":"message"}
{"nick":"brson","date":"2012-01-09T18:25:16.130Z","type":"join"}
{"nick":"sh1mmer","date":"2012-01-09T18:26:09.131Z","type":"join"}
{"nick":"CoverSlide","date":"2012-01-09T18:33:14.207Z","type":"join"}
{"nick":"mikeal","date":"2012-01-09T18:33:56.574Z","type":"join"}
{"nick":"slaskis","reason":"Quit: slaskis","date":"2012-01-09T18:39:30.953Z","type":"quit"}
{"nick":"sh1mmer_","date":"2012-01-09T18:40:06.525Z","type":"join"}
{"nick":"dshaw_","date":"2012-01-09T18:42:15.028Z","type":"join"}
{"nick":"sh1mmer_","reason":"Remote host closed the connection","date":"2012-01-09T18:42:45.332Z","type":"quit"}
{"nick":"sh1mmer_","date":"2012-01-09T18:42:59.602Z","type":"join"}
{"nick":"`3rdEden","date":"2012-01-09T18:43:02.882Z","type":"join"}
{"nick":"bnoordhuis","message":"indutny: reviewed","date":"2012-01-09T18:43:11.762Z","type":"message"}
{"nick":"sh1mmer","reason":"Ping timeout: 240 seconds","date":"2012-01-09T18:43:27.089Z","type":"quit"}
{"nick":"sh1mmer_","new_nick":"sh1mmer","date":"2012-01-09T18:43:27.773Z","type":"nick"}
{"nick":"benvie","reason":"Read error: Operation timed out","date":"2012-01-09T18:43:38.868Z","type":"quit"}
{"nick":"indutny","message":"bnoordhuis: cool!","date":"2012-01-09T18:44:05.544Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: fixed C++ issues","date":"2012-01-09T18:45:59.440Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: looking at js right now","date":"2012-01-09T18:46:04.395Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ok, lets land C++ part","date":"2012-01-09T18:56:41.309Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: js part seems to be tricky enough, not sure if I'll fix it today","date":"2012-01-09T18:57:02.749Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: it somehow was broken after porting to Channel","date":"2012-01-09T18:57:16.822Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: what's the issue?","date":"2012-01-09T18:57:18.053Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: break event is not received immediately","date":"2012-01-09T18:57:55.742Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: when requesting step next","date":"2012-01-09T18:58:09.118Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: but when requesting it twice - two break events emits","date":"2012-01-09T18:58:20.700Z","type":"message"}
{"nick":"bnoordhuis","message":"okay","date":"2012-01-09T18:58:43.418Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: let met tr rebasing it on master","date":"2012-01-09T18:58:49.026Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: have you updated v8?","date":"2012-01-09T18:58:59.825Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: same code was working few days ago","date":"2012-01-09T18:59:18.662Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: not i","date":"2012-01-09T18:59:46.067Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ok","date":"2012-01-09T18:59:58.183Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I'll squash it anyway","date":"2012-01-09T19:00:01.887Z","type":"message"}
{"nick":"ryah","message":"is there some way to merge with different strategies on different subdirs?","date":"2012-01-09T19:03:11.418Z","type":"message"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T19:04:15.965Z","type":"quit"}
{"nick":"indutny","message":"bnoordhuis: squashed and rebased","date":"2012-01-09T19:04:43.279Z","type":"message"}
{"nick":"indutny","message":"ryah: that's requires higher chi than I've","date":"2012-01-09T19:05:18.842Z","type":"message"}
{"nick":"mikeal","date":"2012-01-09T19:05:29.886Z","type":"join"}
{"nick":"indutny","message":"ryah: still merging everything with default strategy, hope to use custom one day","date":"2012-01-09T19:05:44.654Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: magically, lib/_debugger works now","date":"2012-01-09T19:06:04.072Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T19:06:04.920Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: oh, good (i think)","date":"2012-01-09T19:06:20.829Z","type":"message"}
{"nick":"ryah","message":"i really want -Xours for deps/","date":"2012-01-09T19:06:21.139Z","type":"message"}
{"nick":"indutny","message":"or not","date":"2012-01-09T19:06:36.162Z","type":"message"}
{"nick":"indutny","message":"one sec","date":"2012-01-09T19:06:38.700Z","type":"message"}
{"nick":"ryah","message":"but i want a normal recursive for everything else","date":"2012-01-09T19:06:40.255Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: nope it don't, that was just occasion","date":"2012-01-09T19:07:14.192Z","type":"message"}
{"nick":"mmalecki","message":"ryah: you could write a script for that...","date":"2012-01-09T19:07:17.480Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: prob better merge js side next time","date":"2012-01-09T19:07:56.918Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: or merge it now","date":"2012-01-09T19:08:04.601Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: and I fix it as soon as I can","date":"2012-01-09T19:08:17.138Z","type":"message"}
{"nick":"ryah","message":"mmalecki: yeah?","date":"2012-01-09T19:08:26.841Z","type":"message"}
{"nick":"mmalecki","message":"ryah: it's easy to plug into git - you just have to create 'git-command' script somewhere in your $PATH and you'll be able to call it like `git command`","date":"2012-01-09T19:08:29.208Z","type":"message"}
{"nick":"ryah","message":"but how would the script work?","date":"2012-01-09T19:08:47.160Z","type":"message"}
{"nick":"mmalecki","message":"ryah: actually, I can put together a simple script for you","date":"2012-01-09T19:08:50.243Z","type":"message"}
{"nick":"ryah","message":"even better :)","date":"2012-01-09T19:08:57.888Z","type":"message"}
{"nick":"indutny","message":"that's how git-cl works","date":"2012-01-09T19:09:00.591Z","type":"message"}
{"nick":"ryah","message":"can i not do this with normal git commands?","date":"2012-01-09T19:09:20.535Z","type":"message"}
{"nick":"indutny","message":"ryah: overriding?","date":"2012-01-09T19:09:29.290Z","type":"message"}
{"nick":"mmalecki","message":"hm... .gitconfig maybe?","date":"2012-01-09T19:09:40.384Z","type":"message"}
{"nick":"mmalecki","message":"you can do aliases there!","date":"2012-01-09T19:09:47.536Z","type":"message"}
{"nick":"mmalecki","message":"that could work","date":"2012-01-09T19:09:50.131Z","type":"message"}
{"nick":"ryah","message":"hm, i'll just do it manaully - dont worry about it","date":"2012-01-09T19:09:54.686Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: what do you think?","date":"2012-01-09T19:10:10.238Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: let me test it. if it's not too broken, i'll merge it","date":"2012-01-09T19:11:16.569Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ok :)","date":"2012-01-09T19:12:03.820Z","type":"message"}
{"nick":"mmalecki","message":"hrm, git doesn't allow overriding with aliases, sucks","date":"2012-01-09T19:14:52.501Z","type":"message"}
{"nick":"ryah","message":"dont land anything in master righ tnow","date":"2012-01-09T19:15:14.072Z","type":"message"}
{"nick":"ryah","message":"please","date":"2012-01-09T19:15:15.804Z","type":"message"}
{"nick":"ryah","message":"just about done with a hard merge","date":"2012-01-09T19:15:20.644Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ryunosuke SATO\u000f \u000307master\u000f * r\u000222d7fe1\u000f \u000310\u000f/ (2 files in 2 dirs)\u0002:\u000f ","date":"2012-01-09T19:21:18.013Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f events: fix checking max listeners with `1`","date":"2012-01-09T19:21:18.231Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #2490. - http://git.io/K-KSXA","date":"2012-01-09T19:21:18.231Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ben Noordhuis\u000f \u000307master\u000f * r\u0002cc5cea3\u000f \u000310\u000f/ deps/uv/src/unix/internal.h \u0002:\u000f uv: upgrade to 803f5a0 - http://git.io/Kk6-yg","date":"2012-01-09T19:21:18.231Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ryan Dahl\u000f \u000307master\u000f * r\u00028b28d59\u000f \u000310\u000f/ (229 files in 23 dirs)\u0002:\u000f ","date":"2012-01-09T19:21:18.885Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Merge remote branch 'origin/v0.6'","date":"2012-01-09T19:21:19.101Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Conflicts:","date":"2012-01-09T19:21:19.321Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Makefile","date":"2012-01-09T19:21:19.321Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f configure","date":"2012-01-09T19:21:20.252Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f src/node_version.h - http://git.io/GHsVwQ","date":"2012-01-09T19:21:20.471Z","type":"message"}
{"nick":"ryah","message":"done","date":"2012-01-09T19:21:37.337Z","type":"message"}
{"nick":"mmalecki","message":"ryah: ++","date":"2012-01-09T19:21:55.595Z","type":"message"}
{"nick":"kohai","message":"ryah has 1 beer","date":"2012-01-09T19:21:55.930Z","type":"message"}
{"nick":"mmalecki","message":"ryah: ah, I see what you mean by different strategies...","date":"2012-01-09T19:22:27.549Z","type":"message"}
{"nick":"mmalecki","message":"it'd be really hard, maybe some clever use of subtree merge would help?","date":"2012-01-09T19:22:55.300Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f \u000303Ryan Dahl\u000f \u000307master\u000f * r\u00024ad33e9\u000f \u000310\u000f/ (6 files in 5 dirs)\u0002:\u000f ","date":"2012-01-09T19:23:35.906Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f Revert \"Add uv_pipe_pair for communication between threads\"","date":"2012-01-09T19:23:36.144Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f Not needed. We took a different approach for isolates.","date":"2012-01-09T19:23:36.144Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f This reverts commit 5cc6090fdf738c7ae6677627f9f151c9bc16b43f. - http://git.io/dsFiyw","date":"2012-01-09T19:23:36.144Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ok , I got it","date":"2012-01-09T19:24:44.836Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: something is broken with Channel","date":"2012-01-09T19:25:10.980Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:25:13.192Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/libuv#23 (master - 4ad33e9 : Ryan Dahl): The build is still failing.","date":"2012-01-09T19:25:13.406Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/libuv/compare/5cc6090...4ad33e9","date":"2012-01-09T19:25:13.406Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/498676","date":"2012-01-09T19:25:13.406Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:25:13.406Z","type":"part"}
{"nick":"indutny","message":"bnoordhuis: it's not invoking callback when Send was called two times","date":"2012-01-09T19:25:36.076Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I mean immediately two times","date":"2012-01-09T19:25:42.980Z","type":"message"}
{"nick":"mikeal","reason":"Quit: Leaving.","date":"2012-01-09T19:26:43.134Z","type":"quit"}
{"nick":"mikeal","date":"2012-01-09T19:27:00.892Z","type":"join"}
{"nick":"indutny","message":"bnoordhuis: not sure how that may happen","date":"2012-01-09T19:27:06.958Z","type":"message"}
{"nick":"mikeal","reason":"Client Quit","date":"2012-01-09T19:27:07.190Z","type":"quit"}
{"nick":"mmalecki","message":"can we fix libuv build somehow? I know there's a test which fails on Linux.","date":"2012-01-09T19:27:12.475Z","type":"message"}
{"nick":"ryah","message":"mmalecki: there are multiple tests that fail on every platform","date":"2012-01-09T19:28:09.565Z","type":"message"}
{"nick":"mmalecki","message":"ryah: can they be fixed?","date":"2012-01-09T19:28:22.780Z","type":"message"}
{"nick":"ryah","message":"yes","date":"2012-01-09T19:28:37.531Z","type":"message"}
{"nick":"mmalecki","message":"ryah: also, if I may ask, when are you releasing 0.7? I want to deploy it to our workers right away.","date":"2012-01-09T19:28:59.962Z","type":"message"}
{"nick":"ryah","message":"today, i think","date":"2012-01-09T19:30:31.538Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: could you land https://github.com/joyent/node/pull/2461","date":"2012-01-09T19:30:49.765Z","type":"message"}
{"nick":"mmalecki","message":"ryah: do you know hour, perchance?","date":"2012-01-09T19:30:55.888Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: yt?","date":"2012-01-09T19:31:05.982Z","type":"message"}
{"nick":"ryah","message":"mmalecki: ~5hours","date":"2012-01-09T19:31:42.263Z","type":"message"}
{"nick":"mmalecki","message":"ryah: oh, looks fine! it's like 1 AM for me","date":"2012-01-09T19:32:00.017Z","type":"message"}
{"nick":"indutny","message":"ryah: it's like 7am for me","date":"2012-01-09T19:32:21.241Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:33:01.637Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/node#208 (master - 8b28d59 : Ryan Dahl): The build is still failing.","date":"2012-01-09T19:33:01.857Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/node/compare/08a91ac...8b28d59","date":"2012-01-09T19:33:01.857Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/498663","date":"2012-01-09T19:33:01.857Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:33:01.857Z","type":"part"}
{"nick":"mmalecki","message":"it'd be easier if we didn't have any timezones :/","date":"2012-01-09T19:33:08.359Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: yes","date":"2012-01-09T19:33:09.059Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: so problem is","date":"2012-01-09T19:33:18.835Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: that uv_async_send is called twice","date":"2012-01-09T19:33:25.839Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: and callback only once","date":"2012-01-09T19:33:30.491Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: :)","date":"2012-01-09T19:33:33.411Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: second call is delayed","date":"2012-01-09T19:33:50.170Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: you mean called twice on the same tick?","date":"2012-01-09T19:34:00.627Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: yes","date":"2012-01-09T19:34:06.449Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: is that expected?","date":"2012-01-09T19:34:17.129Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: not quite but it's not unreasonable either, i'll fix it tonight","date":"2012-01-09T19:34:31.102Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: oh cool!","date":"2012-01-09T19:34:48.195Z","type":"message"}
{"nick":"CIA-115","message":"\u0002libuv:\u000f \u000303Ryan Dahl\u000f \u000307master\u000f * r\u000251ea46d\u000f \u000310\u000f/ (13 files in 6 dirs)\u0002:\u000f Merge remote branch 'origin/v0.6' - http://git.io/gogZQw","date":"2012-01-09T19:34:49.873Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: btw, that can be fixed on Channel","date":"2012-01-09T19:34:55.037Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: yes","date":"2012-01-09T19:35:10.736Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: you can just flush all queue on Callback","date":"2012-01-09T19:35:18.579Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: if that's correct - I can do it in minutes","date":"2012-01-09T19:35:30.219Z","type":"message"}
{"nick":"bnoordhuis","message":"indutny: sure","date":"2012-01-09T19:36:06.858Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:36:26.848Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/libuv#24 (master - 51ea46d : Ryan Dahl): The build is still failing.","date":"2012-01-09T19:36:27.061Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/libuv/compare/4ad33e9...51ea46d","date":"2012-01-09T19:36:27.061Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/libuv/builds/498707","date":"2012-01-09T19:36:27.061Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T19:36:27.061Z","type":"part"}
{"nick":"mmalecki","message":"can we remove sys.js in this release, btw?","date":"2012-01-09T19:37:05.490Z","type":"message"}
{"nick":"mmalecki","message":"or at least, in 0.7.x?","date":"2012-01-09T19:37:14.548Z","type":"message"}
{"nick":"indutny","message":"lets throw on it","date":"2012-01-09T19:37:42.826Z","type":"message"}
{"nick":"ryah","message":"sure","date":"2012-01-09T19:37:45.176Z","type":"message"}
{"nick":"indutny","message":"and remove it in 0.9.0","date":"2012-01-09T19:37:47.861Z","type":"message"}
{"nick":"indutny","message":"throwing is like removing but more informative","date":"2012-01-09T19:38:02.062Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: pushed fix","date":"2012-01-09T19:38:09.921Z","type":"message"}
{"nick":"ryah","message":"indutny: agreed","date":"2012-01-09T19:38:14.204Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: debugger works fine now","date":"2012-01-09T19:38:14.541Z","type":"message"}
{"nick":"mmalecki","message":"indutny: it's been deprecated since 0.5, and gone from docs in 0.4 or 0.3","date":"2012-01-09T19:38:16.075Z","type":"message"}
{"nick":"indutny","message":"mmalecki: so we probably should have done that in 0.6.0","date":"2012-01-09T19:38:47.454Z","type":"message"}
{"nick":"indutny","message":"mmalecki: I mean throwing","date":"2012-01-09T19:38:53.087Z","type":"message"}
{"nick":"indutny","message":"and as we forgot that","date":"2012-01-09T19:39:03.546Z","type":"message"}
{"nick":"ryah","message":"mmalecki: let's move slow","date":"2012-01-09T19:39:08.619Z","type":"message"}
{"nick":"mmalecki","message":"but what's wrong with removing it? it gives you the same result","date":"2012-01-09T19:39:33.253Z","type":"message"}
{"nick":"mmalecki","message":"well, except being able to catch it, but that's ghetto","date":"2012-01-09T19:39:46.681Z","type":"message"}
{"nick":"indutny","message":"mmalecki: not same","date":"2012-01-09T19:39:55.239Z","type":"message"}
{"nick":"mmalecki","message":"indutny: you mean, being more informative?","date":"2012-01-09T19:40:09.044Z","type":"message"}
{"nick":"indutny","message":"mmalecki: throw new Error('sys was removed!')","date":"2012-01-09T19:40:09.961Z","type":"message"}
{"nick":"indutny","message":"mmalecki: not just","date":"2012-01-09T19:40:18.285Z","type":"message"}
{"nick":"indutny","message":"Cannot find module 'sys'","date":"2012-01-09T19:40:28.235Z","type":"message"}
{"nick":"indutny","message":"while that's almost the same...","date":"2012-01-09T19:40:36.902Z","type":"message"}
{"nick":"indutny","message":"hm","date":"2012-01-09T19:40:38.260Z","type":"message"}
{"nick":"indutny","message":"maybe you're right","date":"2012-01-09T19:40:41.269Z","type":"message"}
{"nick":"mmalecki","message":":)","date":"2012-01-09T19:40:48.710Z","type":"message"}
{"nick":"indutny","message":"why I'm always arguing with you? :)","date":"2012-01-09T19:41:09.718Z","type":"message"}
{"nick":"indutny","message":"and then accepting your ideas","date":"2012-01-09T19:41:17.356Z","type":"message"}
{"nick":"indutny","message":"haha","date":"2012-01-09T19:41:20.505Z","type":"message"}
{"nick":"mmalecki","message":"indutny: not really, I sometimes accept your ideas :)","date":"2012-01-09T19:41:45.436Z","type":"message"}
{"nick":"indutny","message":"ryah: may be really just remove it? it'll give very informative exception to all who will require('sys')","date":"2012-01-09T19:41:45.998Z","type":"message"}
{"nick":"indutny","message":"mmalecki: that's why!","date":"2012-01-09T19:41:52.856Z","type":"message"}
{"nick":"indutny","message":":D","date":"2012-01-09T19:41:53.563Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: ping","date":"2012-01-09T19:42:43.446Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: I'm going to sleep soon","date":"2012-01-09T19:42:53.463Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: Could you land https://github.com/joyent/node/pull/2461","date":"2012-01-09T19:43:13.307Z","type":"message"}
{"nick":"mmalecki","message":"indutny: :)","date":"2012-01-09T19:43:38.170Z","type":"message"}
{"nick":"mmalecki","action":"goes to grep all nodejitsu repos","date":"2012-01-09T19:43:48.173Z","type":"action"}
{"nick":"indutny","message":"mmalecki: for what?","date":"2012-01-09T19:44:14.282Z","type":"message"}
{"nick":"AndreasMadsen","message":"bnoordhuis: Did you take decision on https://github.com/joyent/node/pull/2463","date":"2012-01-09T19:44:30.187Z","type":"message"}
{"nick":"mmalecki","message":"indutny: require('sys'), I've seen some of these around","date":"2012-01-09T19:44:36.060Z","type":"message"}
{"nick":"mmalecki","message":"at least, warnings","date":"2012-01-09T19:44:48.868Z","type":"message"}
{"nick":"isaacs","reason":"Quit: isaacs","date":"2012-01-09T19:46:25.226Z","type":"quit"}
{"nick":"AndreasMadsen","message":"Also I have yet to get some final feedback on https://github.com/joyent/node/pull/2470","date":"2012-01-09T19:46:41.428Z","type":"message"}
{"nick":"AndreasMadsen","message":"^ from anyone","date":"2012-01-09T19:47:21.232Z","type":"message"}
{"nick":"AndreasMadsen","message":"status: libuv is now the void itself","date":"2012-01-09T19:49:09.572Z","type":"message"}
{"nick":"perezd","reason":"Ping timeout: 255 seconds","date":"2012-01-09T19:49:31.106Z","type":"quit"}
{"nick":"piscisaureus_","message":"ryah just left I think","date":"2012-01-09T19:49:37.698Z","type":"message"}
{"nick":"piscisaureus_","message":"yes libuv is like the void","date":"2012-01-09T19:49:45.814Z","type":"message"}
{"nick":"piscisaureus_","message":":-/","date":"2012-01-09T19:49:49.779Z","type":"message"}
{"nick":"perezd","date":"2012-01-09T19:49:54.377Z","type":"join"}
{"nick":"indutny","topic":"void","date":"2012-01-09T19:50:10.770Z","type":"topic"}
{"nick":"piscisaureus_","message":"bnoordhuis yt?","date":"2012-01-09T19:50:16.652Z","type":"message"}
{"nick":"indutny","topic":"welcome to void","date":"2012-01-09T19:50:17.010Z","type":"topic"}
{"nick":"bnoordhuis","message":"indutny: sleep tight","date":"2012-01-09T19:50:29.374Z","type":"message"}
{"nick":"bnoordhuis","message":"piscisaureus_: yes","date":"2012-01-09T19:50:31.309Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: hahaha :)","date":"2012-01-09T19:50:34.058Z","type":"message"}
{"nick":"indutny","message":"bnoordhuis: well I wanted to ask if that patch looks good to you first","date":"2012-01-09T19:50:46.714Z","type":"message"}
{"nick":"piscisaureus_","message":"bnoordhuis: can you look at AndreasMadsen's stuff?","date":"2012-01-09T19:50:49.891Z","type":"message"}
{"nick":"AndreasMadsen","message":"piscisaureus_: I just wan't to get down in number of pull request, I can't even count the number of patches on child_process I have.","date":"2012-01-09T19:50:50.300Z","type":"message"}
{"nick":"indutny","message":"oh, everyone wants to take a look at their patch","date":"2012-01-09T19:51:09.440Z","type":"message"}
{"nick":"mmalecki","message":"there's a song, welcome to the void","date":"2012-01-09T19:51:11.694Z","type":"message"}
{"nick":"indutny","topic":"welcome to the void","date":"2012-01-09T19:51:21.384Z","type":"topic"}
{"nick":"bnoordhuis","message":"piscisaureus_: eventually","date":"2012-01-09T19:51:26.351Z","type":"message"}
{"nick":"mmalecki","message":"here. http://www.youtube.com/watch?v=y7Q0K1NkZXk","date":"2012-01-09T19:51:36.395Z","type":"message"}
{"nick":"mmalecki","message":"pretty nice, actually :)","date":"2012-01-09T19:51:41.332Z","type":"message"}
{"nick":"AndreasMadsen","message":"indutny: It was ryan there asked for another cluster upgrade about 6 hours after one was landed. ","date":"2012-01-09T19:55:44.018Z","type":"message"}
{"nick":"bnoordhuis","message":"linux / v0.6 / `make test` -> does simple/test-process-kill-null crash intermittently for you guys too?","date":"2012-01-09T19:56:01.627Z","type":"message"}
{"nick":"16SAAH4T6","new_nick":"vodotikigod","date":"2012-01-09T19:57:35.689Z","type":"nick"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ben Noordhuis\u000f \u000307v0.6\u000f * r\u0002d5d043f\u000f \u000310\u000f/ src/handle_wrap.cc \u0002:\u000f handle_wrap: guard against uninitialized handle or double close - http://git.io/73FsCg","date":"2012-01-09T20:06:15.680Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f \u000303Ben Noordhuis\u000f \u000307v0.6\u000f * r\u0002b07acb3\u000f \u000310\u000f/ src/process_wrap.cc \u0002:\u000f ","date":"2012-01-09T20:06:17.222Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f child_process: fix segfault after failed spawn","date":"2012-01-09T20:06:17.432Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f The process handle is uninitialized when uv_spawn() fails so don't export the","date":"2012-01-09T20:06:17.432Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f handle to JS land when that happens. Attempts to close the uninitialized handle","date":"2012-01-09T20:06:17.432Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f resulted in segmentation faults and memory corruption.","date":"2012-01-09T20:06:18.137Z","type":"message"}
{"nick":"CIA-115","message":"\u0002node:\u000f Fixes #2481. - http://git.io/5kr1bw","date":"2012-01-09T20:06:18.352Z","type":"message"}
{"nick":"piscisaureus_","message":"Actually let's do the status update here","date":"2012-01-09T20:11:05.497Z","type":"message"}
{"nick":"piscisaureus_","message":"ryah bnoordhuis igorzi: ^","date":"2012-01-09T20:11:12.575Z","type":"message"}
{"nick":"piscisaureus_","message":"I moved last week. Today I am working on domains again.","date":"2012-01-09T20:11:27.314Z","type":"message"}
{"nick":"bnoordhuis","action":"is afk for 30 mins","date":"2012-01-09T20:11:44.700Z","type":"action"}
{"nick":"piscisaureus_","message":"And I am keeping an eye on Indutny / ErikCorry2","date":"2012-01-09T20:11:47.673Z","type":"message"}
{"nick":"igorzi","message":"i'm looking at stat (it's pretty slow on windows)","date":"2012-01-09T20:11:57.116Z","type":"message"}
{"nick":"piscisaureus_","message":"ok, cool","date":"2012-01-09T20:12:03.919Z","type":"message"}
{"nick":"igorzi","message":"piscisaureus_: btw, not async stat (on threadpool), just CRT implementation of stat in general is slow","date":"2012-01-09T20:12:35.769Z","type":"message"}
{"nick":"piscisaureus_","message":"igorzi: you confirmend that stat is the bottleneck for serving static files?","date":"2012-01-09T20:12:43.260Z","type":"message"}
{"nick":"piscisaureus_","message":"oh ok","date":"2012-01-09T20:12:48.324Z","type":"message"}
{"nick":"indutny","message":"I'm looking at xmas tree","date":"2012-01-09T20:13:08.516Z","type":"message"}
{"nick":"indutny","message":"and around","date":"2012-01-09T20:13:29.178Z","type":"message"}
{"nick":"indutny","message":"sometimes","date":"2012-01-09T20:13:32.187Z","type":"message"}
{"nick":"indutny","message":"time to sleep, ttyl guys!","date":"2012-01-09T20:13:44.051Z","type":"message"}
{"nick":"indutny","message":"have a nice evening!","date":"2012-01-09T20:13:48.508Z","type":"message"}
{"nick":"igorzi","message":"piscisaureus_: but that's kind of orthogonal.. still having stat on every http request is not very optimal (but that's not node core issue)","date":"2012-01-09T20:14:19.486Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T20:14:38.988Z","type":"join"}
{"nick":"travis-ci","message":"[travis-ci] joyent/node#209 (v0.6 - b07acb3 : Ben Noordhuis): The build was fixed.","date":"2012-01-09T20:14:39.203Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Change view : https://github.com/joyent/node/compare/cc5cea3...b07acb3","date":"2012-01-09T20:14:39.203Z","type":"message"}
{"nick":"travis-ci","message":"[travis-ci] Build details : http://travis-ci.org/joyent/node/builds/498820","date":"2012-01-09T20:14:39.203Z","type":"message"}
{"nick":"travis-ci","date":"2012-01-09T20:14:39.203Z","type":"part"}
{"nick":"piscisaureus_","message":"igorzi: I agree, but still I want stat to be not pathetically slow :-)","date":"2012-01-09T20:14:44.584Z","type":"message"}
{"nick":"igorzi","message":"piscisaureus_: yep :)","date":"2012-01-09T20:15:04.254Z","type":"message"}
{"nick":"piscisaureus_","message":"igorzi: actually crt stat is not looking that stupid to me","date":"2012-01-09T20:15:33.976Z","type":"message"}
{"nick":"piscisaureus_","message":"igorzi: but maybe you can make it faster by opening the file and doing fstat","date":"2012-01-09T20:16:13.763Z","type":"message"}
{"nick":"igorzi","message":"piscisaureus_: right, it doesn't look stupid.. i'm profiling it","date":"2012-01-09T20:16:27.065Z","type":"message"}
{"nick":"indutny","message":"DNS-blocking explained in a simple picture vmp.name/ttvk.jpg","date":"2012-01-09T20:23:37.696Z","type":"message"}
{"nick":"mmalecki","message":"I'm learning sys deprecation the hard way - my global node has no sys","date":"2012-01-09T20:26:54.980Z","type":"message"}
{"nick":"ryah","message":"why is CRT stat so slow?","date":"2012-01-09T20:43:28.057Z","type":"message"}
{"nick":"piscisaureus_","reason":"Read error: Operation timed out","date":"2012-01-09T20:43:45.418Z","type":"quit"}
{"nick":"igorzi","message":"ryah: don't know yet.. it's just using Win32 APIs","date":"2012-01-09T20:44:09.204Z","type":"message"}
{"nick":"igorzi","message":"ryah: I'm profiling.. i'll know more soon","date":"2012-01-09T20:44:24.688Z","type":"message"}
{"nick":"ryah","message":"what's the win32 stat api?","date":"2012-01-09T20:45:01.320Z","type":"message"}
{"nick":"igorzi","message":"ryah: the crt is using FindFirstFileEx","date":"2012-01-09T20:46:40.028Z","type":"message"}
{"nick":"ryah","message":"igorzi: thanks","date":"2012-01-09T20:49:02.548Z","type":"message"}
{"nick":"ryah","message":"(im trying to learn windows)","date":"2012-01-09T20:49:10.467Z","type":"message"}
{"nick":"ryah","message":"AndreasMadsen: you there?","date":"2012-01-09T20:50:59.333Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: hi","date":"2012-01-09T20:51:07.098Z","type":"message"}
{"nick":"igorzi","message":"ryah: btw, is isolates ready to be windows'ized yet?","date":"2012-01-09T20:51:11.207Z","type":"message"}
{"nick":"ryah","message":"igorzi: let's wait a little longer - it shouldn't be too hard to port - i think bnoordhuis has done all the thread stuff","date":"2012-01-09T20:51:43.047Z","type":"message"}
{"nick":"ryah","message":"probably just little tweaks","date":"2012-01-09T20:51:48.824Z","type":"message"}
{"nick":"ryah","message":"let's get indutny's debugger stuff landed first","date":"2012-01-09T20:52:00.271Z","type":"message"}
{"nick":"ryah","message":"igorzi: if you want to try to compile - go for it","date":"2012-01-09T20:52:15.787Z","type":"message"}
{"nick":"ryah","message":"it might work out of the box","date":"2012-01-09T20:52:22.387Z","type":"message"}
{"nick":"igorzi","message":"ryah: cool.. i'll give it a try","date":"2012-01-09T20:52:42.862Z","type":"message"}
{"nick":"ryah","message":"AndreasMadsen: what's with https://github.com/joyent/node/pull/2461","date":"2012-01-09T20:52:45.673Z","type":"message"}
{"nick":"ryah","message":"igorzi: try test/simple/test-isolates.js","date":"2012-01-09T20:52:55.151Z","type":"message"}
{"nick":"igorzi","message":"ryah: i don't think we can do multiple event loops on windows yet","date":"2012-01-09T20:53:43.456Z","type":"message"}
{"nick":"ryah","message":"AndreasMadsen: i dont get the purpose of this","date":"2012-01-09T20:53:48.592Z","type":"message"}
{"nick":"ryah","message":"igorzi: oh right. yeah du","date":"2012-01-09T20:53:55.528Z","type":"message"}
{"nick":"ryah","message":"*duh","date":"2012-01-09T20:53:58.652Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: The testcase is good now, but perhaps not in future ...","date":"2012-01-09T20:54:04.646Z","type":"message"}
{"nick":"ryah","message":"AndreasMadsen: im not landing #2454","date":"2012-01-09T20:54:17.936Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: The testcase test if there is a stderr and stdout property","date":"2012-01-09T20:54:26.341Z","type":"message"}
{"nick":"igorzi","message":"ryah: yep, uv_loop_new and uv_loop_delete are stubs.. so we'll need to get that going first","date":"2012-01-09T20:54:38.807Z","type":"message"}
{"nick":"AndreasMadsen","message":"ryah: But now if it work","date":"2012-01-09T20:54:40.857Z","type":"message"}
{"nick":"brson","reason":"Ping timeout: 240 seconds","date":"2012-01-09T20:54:46.988Z","type":"quit"}
{"nick":"AndreasMadsen","message":"ryah: Then it will be your problem in the future, I really do not care. But I would like final review on the cluster improvements","date":"2012-01-09T20:56:06.801Z","type":"message"}