You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(19) |
Jul
(96) |
Aug
(144) |
Sep
(222) |
Oct
(496) |
Nov
(171) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(4) |
Feb
(4) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
(6) |
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(52) |
Aug
(47) |
Sep
(47) |
Oct
(95) |
Nov
(56) |
Dec
(34) |
2003 |
Jan
(99) |
Feb
(116) |
Mar
(125) |
Apr
(99) |
May
(123) |
Jun
(69) |
Jul
(110) |
Aug
(130) |
Sep
(289) |
Oct
(211) |
Nov
(98) |
Dec
(140) |
2004 |
Jan
(85) |
Feb
(87) |
Mar
(342) |
Apr
(125) |
May
(101) |
Jun
(60) |
Jul
(151) |
Aug
(118) |
Sep
(162) |
Oct
(117) |
Nov
(125) |
Dec
(95) |
2005 |
Jan
(141) |
Feb
(54) |
Mar
(79) |
Apr
(83) |
May
(74) |
Jun
(125) |
Jul
(63) |
Aug
(89) |
Sep
(130) |
Oct
(89) |
Nov
(34) |
Dec
(39) |
2006 |
Jan
(98) |
Feb
(62) |
Mar
(56) |
Apr
(94) |
May
(169) |
Jun
(41) |
Jul
(34) |
Aug
(35) |
Sep
(132) |
Oct
(722) |
Nov
(381) |
Dec
(36) |
2007 |
Jan
(34) |
Feb
(174) |
Mar
(15) |
Apr
(35) |
May
(74) |
Jun
(15) |
Jul
(8) |
Aug
(18) |
Sep
(39) |
Oct
(125) |
Nov
(89) |
Dec
(129) |
2008 |
Jan
(176) |
Feb
(91) |
Mar
(69) |
Apr
(178) |
May
(310) |
Jun
(434) |
Jul
(171) |
Aug
(73) |
Sep
(187) |
Oct
(132) |
Nov
(259) |
Dec
(292) |
2009 |
Jan
(27) |
Feb
(54) |
Mar
(35) |
Apr
(54) |
May
(93) |
Jun
(10) |
Jul
(36) |
Aug
(36) |
Sep
(93) |
Oct
(52) |
Nov
(45) |
Dec
(74) |
2010 |
Jan
(20) |
Feb
(120) |
Mar
(165) |
Apr
(101) |
May
(56) |
Jun
(12) |
Jul
(73) |
Aug
(306) |
Sep
(154) |
Oct
(82) |
Nov
(63) |
Dec
(42) |
2011 |
Jan
(176) |
Feb
(86) |
Mar
(199) |
Apr
(86) |
May
(237) |
Jun
(50) |
Jul
(26) |
Aug
(56) |
Sep
(42) |
Oct
(62) |
Nov
(62) |
Dec
(52) |
2012 |
Jan
(35) |
Feb
(33) |
Mar
(128) |
Apr
(152) |
May
(133) |
Jun
(21) |
Jul
(74) |
Aug
(423) |
Sep
(165) |
Oct
(129) |
Nov
(387) |
Dec
(276) |
2013 |
Jan
(105) |
Feb
(30) |
Mar
(130) |
Apr
(42) |
May
(60) |
Jun
(79) |
Jul
(101) |
Aug
(46) |
Sep
(81) |
Oct
(14) |
Nov
(43) |
Dec
(4) |
2014 |
Jan
(25) |
Feb
(32) |
Mar
(30) |
Apr
(80) |
May
(42) |
Jun
(23) |
Jul
(68) |
Aug
(127) |
Sep
(112) |
Oct
(72) |
Nov
(29) |
Dec
(69) |
2015 |
Jan
(35) |
Feb
(49) |
Mar
(95) |
Apr
(10) |
May
(70) |
Jun
(64) |
Jul
(93) |
Aug
(85) |
Sep
(43) |
Oct
(38) |
Nov
(124) |
Dec
(29) |
2016 |
Jan
(253) |
Feb
(181) |
Mar
(132) |
Apr
(419) |
May
(68) |
Jun
(90) |
Jul
(52) |
Aug
(142) |
Sep
(131) |
Oct
(80) |
Nov
(84) |
Dec
(192) |
2017 |
Jan
(329) |
Feb
(842) |
Mar
(248) |
Apr
(85) |
May
(247) |
Jun
(186) |
Jul
(37) |
Aug
(73) |
Sep
(98) |
Oct
(108) |
Nov
(143) |
Dec
(143) |
2018 |
Jan
(155) |
Feb
(139) |
Mar
(72) |
Apr
(112) |
May
(82) |
Jun
(119) |
Jul
(24) |
Aug
(33) |
Sep
(179) |
Oct
(295) |
Nov
(111) |
Dec
(34) |
2019 |
Jan
(20) |
Feb
(29) |
Mar
(49) |
Apr
(89) |
May
(185) |
Jun
(131) |
Jul
(9) |
Aug
(59) |
Sep
(30) |
Oct
(44) |
Nov
(118) |
Dec
(53) |
2020 |
Jan
(70) |
Feb
(108) |
Mar
(50) |
Apr
(9) |
May
(70) |
Jun
(24) |
Jul
(103) |
Aug
(82) |
Sep
(132) |
Oct
(119) |
Nov
(174) |
Dec
(169) |
2021 |
Jan
(75) |
Feb
(51) |
Mar
(76) |
Apr
(73) |
May
(53) |
Jun
(120) |
Jul
(114) |
Aug
(73) |
Sep
(70) |
Oct
(18) |
Nov
(26) |
Dec
|
2022 |
Jan
(26) |
Feb
(63) |
Mar
(64) |
Apr
(64) |
May
(48) |
Jun
(74) |
Jul
(129) |
Aug
(106) |
Sep
(238) |
Oct
(169) |
Nov
(149) |
Dec
(111) |
2023 |
Jan
(110) |
Feb
(47) |
Mar
(82) |
Apr
(106) |
May
(168) |
Jun
(101) |
Jul
(155) |
Aug
(35) |
Sep
(51) |
Oct
(55) |
Nov
(134) |
Dec
(202) |
2024 |
Jan
(103) |
Feb
(129) |
Mar
(154) |
Apr
(89) |
May
(60) |
Jun
(162) |
Jul
(201) |
Aug
(61) |
Sep
(167) |
Oct
(111) |
Nov
(133) |
Dec
(141) |
2025 |
Jan
(122) |
Feb
(88) |
Mar
(106) |
Apr
(113) |
May
(203) |
Jun
(185) |
Jul
(55) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(13) |
2
(14) |
3
(14) |
4
(1) |
5
(3) |
6
(1) |
7
(4) |
8
|
9
(2) |
10
(3) |
11
(2) |
12
|
13
(1) |
14
(1) |
15
(6) |
16
(5) |
17
(6) |
18
(5) |
19
|
20
(1) |
21
(1) |
22
(2) |
23
(1) |
24
(2) |
25
|
26
|
27
|
28
|
29
(3) |
30
(2) |
|
|
|
From: Daniel H. <da...@gm...> - 2009-09-10 23:11:38
|
Hello, my name is Daniel Hans. One year ago I participated for TCL as a Google Summer of Code student. A few months ago I asked on the TCL-core mailing list for some ideas of a project for my classes which would optimize something in TCL and make the language more efficient. Tomasz Kosiak suggested that I could work on the C10k problem [0]. A very short description is that a server written in TCL can have some problems if it has to deal with a large numbers of connections at the same time. The problem is caused by some constrains of the select function which is used by TCL to watch descriptors activity. Firstly, select uses fd_set structures to define which descriptors should be taken into account. One might say, it has some soft restriction that its size is 128 bytes by default. It gives an opportunity to process up to 1024 connections by default and its behavior is satisfactory. But what if someone wants more? Of course we can change the limits. The best way is probably (as I have read) to recompile the kernel, but when I did some tests it is enough to change one constant variable in sys/select.h header file. Let us say that one wants to have about 10000 connections. Then we start to deal with much worse disadvantages of select function. The problem is that the function monitors all desired descriptors and when some of them becomes active, it returns a number and rearranges fd_set structures. Basically we have no information about which descriptors are really on, thus we need to iterate through the whole set and check each of them individually, although probably only a few of them are actually active. Let us take a look at tclUnixNotfy.c file which is responsible for those actions. Select function is mainly used in Tcl_WaitForEvent: numFound = select(tsdPtr->numFdBits, &(tsdPtr->readyMasks.readable),&(tsdPtr->readyMasks.writable), &(tsdPtr->readyMasks.exceptional), timeoutPtr); And then, there is a problem, because numFound is not actually, but we simple iterate through all open descriptors: for (filePtr = tsdPtr->firstFileHandlerPtr; (filePtr != NULL); filePtr = filePtr->nextPtr) { mask = 0; if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.readable))) { mask |= TCL_READABLE; } if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.writable))) { mask |= TCL_WRITABLE; } if (FD_ISSET(filePtr->fd, &(tsdPtr->readyMasks.exceptional))) { mask |= TCL_EXCEPTION; } … } For each descriptor it is checked if it is active. Whenever we deal with many descriptors, there is a problem as described above. I am sending an initial version of a patch which tries to resolve that problem for Linux and BSD operating systems. The solution is very simple but straightforward: instead of using inefficient select, it is better to use some other solutions. Unfortunately, there is no one universal way to deal with all technologies. For Linux, we have epoll. For FreeBSD we have kqueue. Anyway, they all have one very neat feature: not only do they return the number of activated descriptors, but also they actually fill some structures which give us access to the descriptors that we want to process. Therefore, when we have 5 active out of 10000, we have their numbers and need not check all of them. I have performed some simple tests which used that patch and it turned out that both kqueue as well as epoll are much better with a large number of descriptors. Unfortunately, I was not able to perform any tests on OpenSolaris, because I had some problems with installing that system on a virtual machine. The aim of those test was that there is a large number of connections, and for each connection, there is a small amount of work to be performed. My testing environment contained only three machined, so actual results could vary and be even better. As I mentioned above this is an initial version of the patch. If you had any suggestions (substantial as well as stylish) , found some bugs or anything, I would really appreciate that and I will try to fix it as soon as possible. I am sending two patches. First of them updates tclUnixNotfy.c file with the new code. The second one updates configure file. If you want to turn the many connections support option on, you need to run ./configure --enable-connections. A slight disadvantage of the new solution is that some static-sized arrays are used instead of lists of fileHandlers and their size may be large for 10000 connections, but I think the cost is worth if you want to play with many connections. Btw. that is why I added the --enable-connections option - no to persuade anyone to use it. As I said, I know this is just an initial version of that patch (which btw. was created by a standard linux diff. if it is a wrong format for TCL, please let me know which one is correct) to 8.5.7 version. I will appreciate any comments. If the 10CK problem was not important for TCL, I am sorry for spamming the list :-) Regards, Daniel Hans [0] http://www.kegel.com/c10k.html |
From: Donal K. F. <don...@ma...> - 2009-09-10 09:23:30
|
Magentus wrote: > But best of all, if you close "stdout", then trying to write to > "stdout" should generate an error, even if another channel is opened in > its place. Ah, the "break existing code" approach. Categorically not in 8.6, as closing-and-reopening is a supported feature, and has been for many years. Donal. |
From: Rene Z. <r.z...@fr...> - 2009-09-10 06:34:29
|
Hi, to get date informations I need the internal header tclInt.h. Would it be possible to expose the TclpGetDate function also in the public header? Tcl_GetTime is already there. Thank you rene |