chrislo-sourceclassifier 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. data/Manifest +0 -312
  2. data/Rakefile +2 -2
  3. data/sourceclassifier.gemspec +6 -6
  4. metadata +4 -316
  5. data/sources/gcc/ackermann.gcc-2.gcc +0 -93
  6. data/sources/gcc/ackermann.gcc-3.gcc +0 -20
  7. data/sources/gcc/ary.gcc +0 -40
  8. data/sources/gcc/binarytrees.gcc +0 -136
  9. data/sources/gcc/binarytrees.gcc-2.gcc +0 -140
  10. data/sources/gcc/binarytrees.gcc-3.gcc +0 -134
  11. data/sources/gcc/chameneos.gcc +0 -117
  12. data/sources/gcc/chameneos.gcc-2.gcc +0 -134
  13. data/sources/gcc/chameneos.gcc-3.gcc +0 -120
  14. data/sources/gcc/chameneosredux.gcc +0 -306
  15. data/sources/gcc/echo.gcc +0 -144
  16. data/sources/gcc/except.gcc +0 -52
  17. data/sources/gcc/fannkuch.gcc +0 -105
  18. data/sources/gcc/fannkuch.gcc-2.gcc +0 -94
  19. data/sources/gcc/fasta.gcc +0 -158
  20. data/sources/gcc/fasta.gcc-2.gcc +0 -132
  21. data/sources/gcc/fasta.gcc-3.gcc +0 -145
  22. data/sources/gcc/fasta.gcc-4.gcc +0 -141
  23. data/sources/gcc/fibo.gcc +0 -20
  24. data/sources/gcc/harmonic.gcc +0 -22
  25. data/sources/gcc/hash.gcc +0 -31
  26. data/sources/gcc/hash2.gcc +0 -38
  27. data/sources/gcc/heapsort.gcc +0 -72
  28. data/sources/gcc/hello.gcc-2.gcc +0 -12
  29. data/sources/gcc/hello.gcc-3.gcc +0 -20
  30. data/sources/gcc/knucleotide.gcc +0 -173
  31. data/sources/gcc/knucleotide.gcc-2.gcc +0 -168
  32. data/sources/gcc/lists.gcc +0 -226
  33. data/sources/gcc/magicsquares.gcc +0 -378
  34. data/sources/gcc/mandelbrot.gcc +0 -84
  35. data/sources/gcc/mandelbrot.gcc-2.gcc +0 -63
  36. data/sources/gcc/mandelbrot.gcc-3.gcc +0 -91
  37. data/sources/gcc/mandelbrot.gcc-4.gcc +0 -78
  38. data/sources/gcc/matrix.gcc +0 -66
  39. data/sources/gcc/message.gcc-2.gcc +0 -72
  40. data/sources/gcc/message.gcc-3.gcc +0 -64
  41. data/sources/gcc/methcall.gcc +0 -89
  42. data/sources/gcc/moments.gcc +0 -120
  43. data/sources/gcc/nbody.gcc +0 -142
  44. data/sources/gcc/nbody.gcc-2.gcc +0 -143
  45. data/sources/gcc/nbody.gcc-3.gcc +0 -142
  46. data/sources/gcc/nestedloop.gcc +0 -25
  47. data/sources/gcc/nsieve.gcc +0 -35
  48. data/sources/gcc/nsievebits.gcc-2.gcc +0 -37
  49. data/sources/gcc/nsievebits.gcc-3.gcc +0 -53
  50. data/sources/gcc/objinst.gcc +0 -95
  51. data/sources/gcc/partialsums.gcc +0 -86
  52. data/sources/gcc/partialsums.gcc-3.gcc +0 -81
  53. data/sources/gcc/partialsums.gcc-4.gcc +0 -68
  54. data/sources/gcc/pidigits.gcc +0 -105
  55. data/sources/gcc/primes.gcc +0 -75
  56. data/sources/gcc/prodcons.gcc +0 -86
  57. data/sources/gcc/random.gcc +0 -29
  58. data/sources/gcc/raytracer.gcc +0 -125
  59. data/sources/gcc/raytracer.gcc-2.gcc +0 -181
  60. data/sources/gcc/recursive.gcc +0 -68
  61. data/sources/gcc/recursive.gcc-2.gcc +0 -55
  62. data/sources/gcc/regexdna.gcc-2.gcc +0 -126
  63. data/sources/gcc/regexmatch.gcc +0 -136
  64. data/sources/gcc/revcomp.gcc +0 -85
  65. data/sources/gcc/revcomp.gcc-2.gcc +0 -88
  66. data/sources/gcc/revcomp.gcc-4.gcc +0 -71
  67. data/sources/gcc/reversefile.gcc +0 -103
  68. data/sources/gcc/reversefile.gcc-2.gcc +0 -56
  69. data/sources/gcc/sieve.gcc +0 -34
  70. data/sources/gcc/spectralnorm.gcc +0 -54
  71. data/sources/gcc/spellcheck.gcc +0 -72
  72. data/sources/gcc/spellcheck.gcc-2.gcc +0 -61
  73. data/sources/gcc/strcat.gcc +0 -38
  74. data/sources/gcc/sumcol.gcc-2.gcc +0 -98
  75. data/sources/gcc/sumcol.gcc-3.gcc +0 -22
  76. data/sources/gcc/sumcol.gcc-4.gcc +0 -18
  77. data/sources/gcc/sumcol.gcc-5.gcc +0 -32
  78. data/sources/gcc/takfp.gcc +0 -23
  79. data/sources/gcc/tcp-stream.gcc +0 -122
  80. data/sources/gcc/tcpecho.gcc +0 -122
  81. data/sources/gcc/tcpecho.gcc-2.gcc +0 -136
  82. data/sources/gcc/tcprequest.gcc +0 -122
  83. data/sources/gcc/threadring.gcc +0 -73
  84. data/sources/gcc/wc.gcc +0 -52
  85. data/sources/gcc/wc.gcc-2.gcc +0 -40
  86. data/sources/gcc/wc.gcc-3.gcc +0 -46
  87. data/sources/gcc/wordfreq.gcc-2.gcc +0 -85
  88. data/sources/perl/ackermann.perl +0 -28
  89. data/sources/perl/ackermann.perl-2.perl +0 -25
  90. data/sources/perl/ackermann.perl-3.perl +0 -20
  91. data/sources/perl/ackermann.perl-4.perl +0 -18
  92. data/sources/perl/ary.perl +0 -25
  93. data/sources/perl/ary.perl-2.perl +0 -23
  94. data/sources/perl/binarytrees.perl +0 -66
  95. data/sources/perl/binarytrees.perl-2.perl +0 -71
  96. data/sources/perl/chameneos.perl +0 -67
  97. data/sources/perl/echo.perl +0 -81
  98. data/sources/perl/except.perl +0 -73
  99. data/sources/perl/fannkuch.perl +0 -44
  100. data/sources/perl/fannkuch.perl-2.perl +0 -38
  101. data/sources/perl/fasta.perl +0 -112
  102. data/sources/perl/fasta.perl-2.perl +0 -135
  103. data/sources/perl/fasta.perl-4.perl +0 -122
  104. data/sources/perl/fibo.perl +0 -15
  105. data/sources/perl/fibo.perl-2.perl +0 -0
  106. data/sources/perl/fibo.perl-3.perl +0 -0
  107. data/sources/perl/harmonic.perl +0 -7
  108. data/sources/perl/hash.perl +0 -23
  109. data/sources/perl/hash.perl-2.perl +0 -17
  110. data/sources/perl/hash.perl-3.perl +0 -24
  111. data/sources/perl/hash2.perl +0 -16
  112. data/sources/perl/heapsort.perl +0 -65
  113. data/sources/perl/heapsort.perl-2.perl +0 -0
  114. data/sources/perl/hello.perl +0 -5
  115. data/sources/perl/knucleotide.perl-2.perl +0 -30
  116. data/sources/perl/lists.perl +0 -48
  117. data/sources/perl/mandelbrot.perl-2.perl +0 -32
  118. data/sources/perl/matrix.perl +0 -59
  119. data/sources/perl/matrix.perl-2.perl +0 -0
  120. data/sources/perl/matrix.perl-3.perl +0 -0
  121. data/sources/perl/message.perl +0 -27
  122. data/sources/perl/methcall.perl +0 -66
  123. data/sources/perl/moments.perl +0 -44
  124. data/sources/perl/nbody.perl +0 -108
  125. data/sources/perl/nestedloop.perl +0 -28
  126. data/sources/perl/nsieve.perl-2.perl +0 -41
  127. data/sources/perl/nsieve.perl-4.perl +0 -43
  128. data/sources/perl/nsievebits.perl +0 -37
  129. data/sources/perl/objinst.perl +0 -73
  130. data/sources/perl/partialsums.perl-3.perl +0 -31
  131. data/sources/perl/pidigits.perl +0 -52
  132. data/sources/perl/pidigits.perl-2.perl +0 -47
  133. data/sources/perl/process.perl +0 -50
  134. data/sources/perl/prodcons.perl +0 -47
  135. data/sources/perl/random.perl-4.perl +0 -17
  136. data/sources/perl/recursive.perl-2.perl +0 -57
  137. data/sources/perl/regexdna.perl +0 -48
  138. data/sources/perl/regexdna.perl-2.perl +0 -43
  139. data/sources/perl/regexdna.perl-3.perl +0 -50
  140. data/sources/perl/regexdna.perl-4.perl +0 -49
  141. data/sources/perl/regexdna.perl-5.perl +0 -42
  142. data/sources/perl/regexdna.perl-6.perl +0 -43
  143. data/sources/perl/regexmatch.perl +0 -35
  144. data/sources/perl/revcomp.perl-2.perl +0 -34
  145. data/sources/perl/reversefile.perl +0 -8
  146. data/sources/perl/reversefile.perl-2.perl +0 -0
  147. data/sources/perl/reversefile.perl-3.perl +0 -0
  148. data/sources/perl/sieve.perl +0 -23
  149. data/sources/perl/spectralnorm.perl-2.perl +0 -54
  150. data/sources/perl/spellcheck.perl +0 -24
  151. data/sources/perl/strcat.perl +0 -13
  152. data/sources/perl/strcat.perl-2.perl +0 -0
  153. data/sources/perl/sumcol.perl +0 -8
  154. data/sources/perl/takfp.perl +0 -23
  155. data/sources/perl/takfp.perl-3.perl +0 -20
  156. data/sources/perl/tcpecho.perl +0 -61
  157. data/sources/perl/tcprequest.perl +0 -61
  158. data/sources/perl/tcpstream.perl +0 -61
  159. data/sources/perl/threadring.perl +0 -55
  160. data/sources/perl/threadring.perl-2.perl +0 -43
  161. data/sources/perl/wc.perl +0 -20
  162. data/sources/perl/wc.perl-2.perl +0 -14
  163. data/sources/perl/wordfreq.perl +0 -22
  164. data/sources/perl/wordfreq.perl-3.perl +0 -0
  165. data/sources/perl/wordfreq.perl3.perl +0 -0
  166. data/sources/python/ackermann.python +0 -21
  167. data/sources/python/ary.python +0 -19
  168. data/sources/python/binarytrees.python +0 -39
  169. data/sources/python/binarytrees.python-3.python +0 -44
  170. data/sources/python/chameneos.python-6.python +0 -73
  171. data/sources/python/chameneosredux.python +0 -126
  172. data/sources/python/chameneosredux.python-2.python +0 -122
  173. data/sources/python/dispatch.python +0 -176
  174. data/sources/python/dispatch.python-2.python +0 -136
  175. data/sources/python/echo.python +0 -64
  176. data/sources/python/except.python +0 -62
  177. data/sources/python/fannkuch.python +0 -50
  178. data/sources/python/fannkuch.python-2.python +0 -54
  179. data/sources/python/fasta.python-2.python +0 -79
  180. data/sources/python/fibo.python +0 -17
  181. data/sources/python/fibo.python-2.python +0 -0
  182. data/sources/python/fibo.python-3.python +0 -0
  183. data/sources/python/harmonic.python-2.python +0 -9
  184. data/sources/python/hash.python +0 -21
  185. data/sources/python/hash.python-2.python +0 -0
  186. data/sources/python/hash2.python +0 -30
  187. data/sources/python/heapsort.python-3.python +0 -66
  188. data/sources/python/hello.python +0 -5
  189. data/sources/python/implicitode.python +0 -231
  190. data/sources/python/knucleotide.python +0 -55
  191. data/sources/python/lists.python +0 -44
  192. data/sources/python/magicsquares.python +0 -145
  193. data/sources/python/mandelbrot.python +0 -44
  194. data/sources/python/mandelbrot.python-2.python +0 -35
  195. data/sources/python/mandelbrot.python-3.python +0 -46
  196. data/sources/python/matrix.python +0 -34
  197. data/sources/python/matrix.python-2.python +0 -23
  198. data/sources/python/message.python +0 -24
  199. data/sources/python/message.python-2.python +0 -20
  200. data/sources/python/message.python-3.python +0 -19
  201. data/sources/python/meteor.python +0 -210
  202. data/sources/python/meteor.python-2.python +0 -192
  203. data/sources/python/methcall.python +0 -51
  204. data/sources/python/moments.python +0 -65
  205. data/sources/python/nbody.python +0 -123
  206. data/sources/python/nbody.python-2.python +0 -120
  207. data/sources/python/nestedloop.python +0 -24
  208. data/sources/python/nsieve.python +0 -27
  209. data/sources/python/nsieve.python-2.python +0 -23
  210. data/sources/python/nsieve.python-4.python +0 -25
  211. data/sources/python/nsievebits.python +0 -27
  212. data/sources/python/nsievebits.python-2.python +0 -43
  213. data/sources/python/objinst.python +0 -53
  214. data/sources/python/partialsums.python +0 -37
  215. data/sources/python/partialsums.python-2.python +0 -35
  216. data/sources/python/partialsums.python-3.python +0 -48
  217. data/sources/python/pidigits.python +0 -38
  218. data/sources/python/pidigits.python-3.python +0 -63
  219. data/sources/python/pidigits.python-4.python +0 -24
  220. data/sources/python/process.python +0 -51
  221. data/sources/python/process.python-2.python +0 -133
  222. data/sources/python/prodcons.python +0 -51
  223. data/sources/python/prodcons.python-2.python +0 -0
  224. data/sources/python/random.python +0 -27
  225. data/sources/python/raytracer.python +0 -203
  226. data/sources/python/recursive.python +0 -35
  227. data/sources/python/regexdna.python +0 -39
  228. data/sources/python/regexdna.python-2.python +0 -34
  229. data/sources/python/regexmatch.python +0 -36
  230. data/sources/python/revcomp.python-3.python +0 -31
  231. data/sources/python/reversefile.python +0 -13
  232. data/sources/python/reversefile.python-2.python +0 -0
  233. data/sources/python/reversefile.python-3.python +0 -0
  234. data/sources/python/sieve.python +0 -50
  235. data/sources/python/spectralnorm.python-2.python +0 -36
  236. data/sources/python/spellcheck.python +0 -17
  237. data/sources/python/strcat.python +0 -35
  238. data/sources/python/strcat.python-2.python +0 -0
  239. data/sources/python/sumcol.python-2.python +0 -0
  240. data/sources/python/sumcol.python-3.python +0 -0
  241. data/sources/python/takfp.python +0 -19
  242. data/sources/python/tcpecho.python +0 -67
  243. data/sources/python/tcprequest.python +0 -67
  244. data/sources/python/tcpstream.python +0 -67
  245. data/sources/python/threadring.python +0 -47
  246. data/sources/python/threadring.python-2.python +0 -40
  247. data/sources/python/threadring.python-3.python +0 -34
  248. data/sources/python/wc.python-2.python +0 -19
  249. data/sources/python/wordfreq.python +0 -43
  250. data/sources/python/wordfreq.python-2.python +0 -0
  251. data/sources/python/wordfreq.python-3.python +0 -28
  252. data/sources/python/wordfreq.python-4.python +0 -38
  253. data/sources/python/wordfreq.python-5.python +0 -39
  254. data/sources/ruby/ackermann.ruby +0 -17
  255. data/sources/ruby/ackermann.ruby-5.ruby +0 -153
  256. data/sources/ruby/ary.ruby +0 -22
  257. data/sources/ruby/binarytrees.ruby-2.ruby +0 -55
  258. data/sources/ruby/chameneos.ruby-2.ruby +0 -71
  259. data/sources/ruby/dispatch.ruby +0 -114
  260. data/sources/ruby/echo.ruby +0 -41
  261. data/sources/ruby/except.ruby +0 -61
  262. data/sources/ruby/except.ruby-2.ruby +0 -61
  263. data/sources/ruby/fannkuch.ruby +0 -42
  264. data/sources/ruby/fasta.ruby +0 -81
  265. data/sources/ruby/fibo.ruby +0 -15
  266. data/sources/ruby/harmonic.ruby-2.ruby +0 -15
  267. data/sources/ruby/hash.ruby +0 -19
  268. data/sources/ruby/hash2.ruby +0 -23
  269. data/sources/ruby/heapsort.ruby +0 -55
  270. data/sources/ruby/hello.ruby +0 -6
  271. data/sources/ruby/knucleotide.ruby-2.ruby +0 -44
  272. data/sources/ruby/lists.ruby +0 -46
  273. data/sources/ruby/mandelbrot.ruby-3.ruby +0 -63
  274. data/sources/ruby/matrix.ruby +0 -40
  275. data/sources/ruby/matrix.ruby-2.ruby +0 -30
  276. data/sources/ruby/message.ruby +0 -29
  277. data/sources/ruby/message.ruby-2.ruby +0 -24
  278. data/sources/ruby/meteor.ruby +0 -386
  279. data/sources/ruby/meteor.ruby-2.ruby +0 -561
  280. data/sources/ruby/methcall.ruby +0 -58
  281. data/sources/ruby/methcall.ruby-2.ruby +0 -54
  282. data/sources/ruby/moments.ruby +0 -64
  283. data/sources/ruby/nbody.ruby-2.ruby +0 -145
  284. data/sources/ruby/nestedloop.ruby +0 -22
  285. data/sources/ruby/nsieve.ruby +0 -36
  286. data/sources/ruby/nsieve.ruby-2.ruby +0 -25
  287. data/sources/ruby/nsievebits.ruby-2.ruby +0 -42
  288. data/sources/ruby/objinst.ruby +0 -58
  289. data/sources/ruby/partialsums.ruby +0 -39
  290. data/sources/ruby/pidigits.ruby +0 -92
  291. data/sources/ruby/pidigits.ruby-2.ruby +0 -109
  292. data/sources/ruby/prodcons.ruby +0 -41
  293. data/sources/ruby/random.ruby +0 -17
  294. data/sources/ruby/recursive.ruby-2.ruby +0 -53
  295. data/sources/ruby/regexdna.ruby +0 -32
  296. data/sources/ruby/regexdna.ruby-2.ruby +0 -38
  297. data/sources/ruby/regexmatch.ruby +0 -33
  298. data/sources/ruby/revcomp.ruby +0 -28
  299. data/sources/ruby/reversefile.ruby +0 -7
  300. data/sources/ruby/sieve.ruby +0 -30
  301. data/sources/ruby/spectralnorm.ruby +0 -48
  302. data/sources/ruby/spellcheck.ruby +0 -18
  303. data/sources/ruby/spellcheck.ruby-2.ruby +0 -0
  304. data/sources/ruby/strcat.ruby +0 -12
  305. data/sources/ruby/strcat.ruby-2.ruby +0 -12
  306. data/sources/ruby/sumcol.ruby +0 -12
  307. data/sources/ruby/sumcol.ruby-2.ruby +0 -5
  308. data/sources/ruby/takfp.ruby +0 -15
  309. data/sources/ruby/tcpecho.ruby +0 -45
  310. data/sources/ruby/tcprequest.ruby +0 -45
  311. data/sources/ruby/tcpstream.ruby +0 -45
  312. data/sources/ruby/threadring.ruby +0 -61
  313. data/sources/ruby/threadring.ruby-2.ruby +0 -33
  314. data/sources/ruby/wc.ruby +0 -15
  315. data/sources/ruby/wordfreq.ruby +0 -17
  316. data/sources/ruby/wordfreq.ruby2.ruby +0 -0
@@ -1,122 +0,0 @@
1
- /*
2
- The Great Computer Language Shootout
3
- http://shootout.alioth.debian.org/
4
-
5
- contributed by John O'Hare 05 August 2005.
6
- */
7
-
8
-
9
- #include <stdio.h>
10
- #include <sys/socket.h>
11
- #include <arpa/inet.h>
12
- #include <stdlib.h>
13
- #include <string.h>
14
- #include <unistd.h>
15
-
16
- #define PORT_NUMBER 12341
17
- #define M 100
18
- #define REPLY_SIZE 4096
19
- #define REQUEST_SIZE 64
20
- #define BUFFER_SIZE 1024
21
-
22
- void server()
23
- {
24
- int sock;
25
- int conn;
26
- struct sockaddr_in servaddr;
27
- struct sockaddr_in cliaddr;
28
- unsigned int cliaddr_len;
29
- char* reply = malloc(REPLY_SIZE);
30
- char* buf = malloc(BUFFER_SIZE);
31
-
32
- memset(reply, '<', REPLY_SIZE);
33
-
34
- if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
35
- exit(10);
36
-
37
- memset(&servaddr, 0, sizeof(servaddr));
38
- servaddr.sin_family = AF_INET;
39
- servaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
40
- servaddr.sin_port = htons(PORT_NUMBER);
41
-
42
- if (bind(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
43
- exit(11);
44
-
45
- if (listen(sock, 1) < 0)
46
- exit(12);
47
-
48
- if ((conn = accept(sock, (struct sockaddr *) &cliaddr, &cliaddr_len)) < 0)
49
- exit(13);
50
-
51
- while (recv(conn, buf, BUFFER_SIZE, 0) > 0) {
52
- if (send(conn, reply, REPLY_SIZE, 0) != REPLY_SIZE)
53
- exit(14);
54
- }
55
-
56
- close(conn);
57
- close(sock);
58
-
59
- free(buf);
60
- }
61
-
62
- void client(int n)
63
- {
64
- int sock;
65
- struct sockaddr_in servaddr;
66
- char* request = malloc(REQUEST_SIZE);
67
- char* buf = malloc(BUFFER_SIZE);
68
- int tmpbytes;
69
- int bytes = 0;
70
- int replies = 0;
71
-
72
- memset(request, '>', REQUEST_SIZE);
73
-
74
- sleep(2); //wait for server to start
75
-
76
- if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
77
- exit(2);
78
-
79
- memset(&servaddr, 0, sizeof(servaddr));
80
- servaddr.sin_family = AF_INET;
81
- servaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
82
- servaddr.sin_port = htons(PORT_NUMBER);
83
-
84
- if (connect(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0)
85
- exit(3);
86
-
87
- while (n-- > 0) {
88
- tmpbytes = 0;
89
-
90
- if (send(sock, request, REQUEST_SIZE, 0) != REQUEST_SIZE)
91
- exit(4);
92
-
93
- while (tmpbytes < REPLY_SIZE)
94
- tmpbytes += recv(sock, buf, BUFFER_SIZE - 1, 0);
95
- bytes += tmpbytes;
96
- replies++;
97
- }
98
- close(sock);
99
-
100
- printf("replies: %d\tbytes: %d\n", replies, bytes);
101
-
102
- free(request);
103
- free(buf);
104
- }
105
-
106
- int main (int argc, char** argv)
107
- {
108
- int pid;
109
- int n;
110
-
111
- n = (argc == 2 ? atoi(argv[1]) : 1);
112
-
113
- if ((pid = fork()) < 0) {
114
- return 1;
115
- }
116
- if (pid == 0) {
117
- client(M * n);
118
- } else {
119
- server();
120
- }
121
- return 0;
122
- }
@@ -1,73 +0,0 @@
1
- /*
2
- * The Computer Language Benchmarks Game
3
- * http://shootout.alioth.debian.org/
4
-
5
- * contributed by Premysl Hruby
6
- */
7
-
8
- #include <stdio.h>
9
- #include <stdlib.h>
10
- #include <pthread.h>
11
- #include <string.h>
12
- #include <limits.h>
13
-
14
- #define THREADS (503)
15
-
16
-
17
- struct stack {
18
- char x[PTHREAD_STACK_MIN];
19
- };
20
-
21
-
22
- /* staticaly initialize mutex[0] mutex */
23
- static pthread_mutex_t mutex[THREADS];
24
- static int data[THREADS];
25
- static struct stack stacks[THREADS];
26
- /* stacks must be defined staticaly, or my i386 box run of virtual memory for this
27
- * process while creating thread +- #400 */
28
-
29
- static void* thread(void *num)
30
- {
31
- int l = (int)num;
32
- int r = (l+1) % THREADS;
33
- int token;
34
-
35
- while(1) {
36
- pthread_mutex_lock(mutex + l);
37
- token = data[l];
38
- if (token) {
39
- data[r] = token - 1;
40
- pthread_mutex_unlock(mutex + r);
41
- }
42
- else {
43
- printf("%i\n", l+1);
44
- exit(0);
45
- }
46
- }
47
- }
48
-
49
-
50
-
51
- int main(int argc, char **argv)
52
- {
53
- int i;
54
- pthread_t cthread;
55
- pthread_attr_t stack_attr;
56
-
57
- if (argc != 2)
58
- exit(255);
59
- data[0] = atoi(argv[1]);
60
-
61
- pthread_attr_init(&stack_attr);
62
-
63
- for (i = 0; i < THREADS; i++) {
64
- pthread_mutex_init(mutex + i, NULL);
65
- pthread_mutex_lock(mutex + i);
66
-
67
- pthread_attr_setstack(&stack_attr, &stacks[i], sizeof(struct stack));
68
- pthread_create(&cthread, &stack_attr, thread, (void*)i);
69
- }
70
-
71
- pthread_mutex_unlock(mutex + 0);
72
- pthread_join(cthread, NULL);
73
- }
data/sources/gcc/wc.gcc DELETED
@@ -1,52 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: wc.gcc,v 1.2 2004-06-18 07:02:55 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- *
5
- * Author: Waldemar Hebisch (hebisch@math.uni.wroc.pl)
6
- * Optimizations: Michael Herf (mike@herfconsulting.com)
7
- * Further Revisions: Paul Hsieh (qed@pobox.com)
8
- */
9
-
10
- #include <stdio.h>
11
- #include <unistd.h>
12
- #include <limits.h>
13
-
14
- #define BSIZ 4096
15
-
16
- unsigned long ws[UCHAR_MAX + 1];
17
- unsigned long nws[UCHAR_MAX + 1];
18
- char buff[BSIZ];
19
-
20
- int main(void) {
21
- unsigned long prev_nws = 0x10000L, w_cnt = 0, l_cnt = 0, b_cnt = 0, cnt;
22
-
23
- /* Fill tables */
24
- for (cnt = 0; cnt <= UCHAR_MAX; cnt++) {
25
- ws[cnt] = (cnt == ' ' || cnt == '\n' || cnt == '\t') + (0x10000L & -(cnt == '\n'));
26
- nws[cnt] = !(cnt == ' ' || cnt == '\n' || cnt == '\t') + 0x10000L;
27
- }
28
-
29
-
30
- /* Main loop */
31
- while (0 != (cnt = read (0, buff, BSIZ))) {
32
- unsigned long vect_count = 0;
33
- unsigned char *pp, *pe;
34
-
35
- b_cnt += cnt;
36
- pe = buff + cnt;
37
- pp = buff;
38
-
39
- while (pp < pe) {
40
- vect_count += ws[*pp] & prev_nws;
41
- prev_nws = nws[*pp];
42
- pp ++;
43
- }
44
- w_cnt += vect_count & 0xFFFFL;
45
- l_cnt += vect_count >> 16;
46
- }
47
-
48
- w_cnt += 1 & prev_nws;
49
-
50
- printf ("%d %d %d\n", l_cnt, w_cnt, b_cnt);
51
- return 0;
52
- }
@@ -1,40 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: wc.gcc-2.gcc,v 1.1 2004-11-10 06:42:03 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- *
5
- * this program is modified from:
6
- * http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
7
- * Timing Trials, or, the Trials of Timing: Experiments with Scripting
8
- * and User-Interface Languages</a> by Brian W. Kernighan and
9
- * Christopher J. Van Wyk.
10
- *
11
- */
12
-
13
- #include <stdio.h>
14
- #include <stdlib.h>
15
-
16
- enum {
17
- OUT, /* outside a word */
18
- IN /* inside a word */
19
- };
20
-
21
- int
22
- main() {
23
- int c, nl, nw, nc, state;
24
-
25
- state = OUT;
26
- nl = nw = nc = 0;
27
- while ((c = getchar()) != EOF) {
28
- ++nc;
29
- if (c == '\n')
30
- ++nl;
31
- if (c == ' ' || c == '\n' || c == '\t')
32
- state = OUT;
33
- else if (state == OUT) {
34
- state = IN;
35
- ++nw;
36
- }
37
- }
38
- printf("%d %d %d\n", nl, nw, nc);
39
- return(0);
40
- }
@@ -1,46 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: wc.gcc-3.gcc,v 1.1 2004-11-10 06:42:03 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- *
5
- * this program is modified from:
6
- * http://cm.bell-labs.com/cm/cs/who/bwk/interps/pap.html
7
- * Timing Trials, or, the Trials of Timing: Experiments with Scripting
8
- * and User-Interface Languages</a> by Brian W. Kernighan and
9
- * Christopher J. Van Wyk.
10
- *
11
- */
12
-
13
- #include <stdio.h>
14
- #include <stdlib.h>
15
- #include <unistd.h>
16
-
17
- enum {
18
- OUT, /* outside a word */
19
- IN /* inside a word */
20
- };
21
-
22
-
23
- int
24
- main() {
25
- int i, c, nl, nw, nc, state, nread;
26
- char buf[4096];
27
-
28
- state = OUT;
29
- nl = nw = nc = 0;
30
- while ((nread = read(0, buf, sizeof(buf))) > 0) {
31
- nc += nread;
32
- for (i=0; i<nread; i++) {
33
- c = buf[i];
34
- if (c == '\n')
35
- ++nl;
36
- if (c == ' ' || c == '\n' || c == '\t')
37
- state = OUT;
38
- else if (state == OUT) {
39
- state = IN;
40
- ++nw;
41
- }
42
- }
43
- }
44
- printf("%d %d %d\n", nl, nw, nc);
45
- return(0);
46
- }
@@ -1,85 +0,0 @@
1
- /* -*- mode: c -*-
2
- * $Id: wordfreq.gcc-2.gcc,v 1.1 2004-11-10 06:40:32 bfulgham Exp $
3
- * http://www.bagley.org/~doug/shootout/
4
- * From Kerry Clendinning
5
- */
6
-
7
- #include <stdio.h>
8
- #include <ctype.h>
9
- #include <malloc.h>
10
- #include <stdlib.h>
11
- #include <string.h>
12
-
13
- #define NALPHA 26 /* number of letters in the alphabet */
14
- struct onebytehash {
15
- int count;
16
- struct onebytehash *next_chain,*next_hash[NALPHA];
17
- char string[1]; /* one of those stretchy string-things */
18
- };
19
-
20
- int compare(struct onebytehash **a, struct onebytehash **b);
21
- typedef int (*comparator)(const void *, const void *);
22
-
23
- int
24
- main()
25
- {
26
- int c, nextc, i = 0, curbufsz = 200, used_hash_count = 0;
27
- struct onebytehash the_hash = {0,NULL},
28
- *current_hash = &the_hash, *chain = NULL;
29
- struct onebytehash **sort_array, **sort_tmp;
30
- char *buf;
31
-
32
- buf = malloc(curbufsz + 1);
33
- c = getchar();
34
- while ( (nextc = getchar()) > 0 ) {
35
- if (isalpha(c)) {
36
- buf[i++] = tolower(c);
37
- buf[i] = '\0';
38
- c = tolower(c) - 'a';
39
- if (!current_hash->next_hash[c]) {
40
- if (i >= curbufsz) {
41
- curbufsz *= 2;
42
- buf = realloc(buf,curbufsz + 1);
43
- }
44
- current_hash->next_hash[c] =
45
- malloc(sizeof(struct onebytehash) + i+1);
46
- bzero(current_hash->next_hash[c],sizeof(struct onebytehash));
47
- current_hash->next_hash[c]->next_chain = chain;
48
- chain = current_hash->next_hash[c];
49
- strcpy(chain->string,buf);
50
- }
51
- current_hash = current_hash->next_hash[c];
52
- if (!isalpha(nextc)) {
53
- if (!current_hash->count) used_hash_count++;
54
- current_hash->count++;
55
- }
56
- } else {
57
- current_hash = &the_hash;
58
- i = 0;
59
- }
60
- c = nextc;
61
- }
62
-
63
- sort_array = sort_tmp =
64
- malloc(sizeof(struct onebytehash *) * used_hash_count);
65
- while (chain) {
66
- if (chain->count) *sort_tmp++ = chain;
67
- chain = chain->next_chain;
68
- }
69
-
70
- qsort(sort_array, used_hash_count, sizeof(struct onebytehash *),
71
- (comparator) compare);
72
-
73
- for (i=0;i<used_hash_count;i++)
74
- printf("%7d\t%s\n", sort_array[i]->count,sort_array[i]->string);
75
-
76
- /* don't forget to free allocated memory here */
77
-
78
- return(0);
79
- }
80
-
81
- int compare(struct onebytehash **a, struct onebytehash **b)
82
- {
83
- if ((*b)->count == (*a)->count) return (strcmp((*b)->string,(*a)->string));
84
- return ((*b)->count - (*a)->count);
85
- }
@@ -1,28 +0,0 @@
1
- #!/usr/bin/perl
2
- # $Id: ackermann.perl,v 1.3 2005-04-04 14:56:35 bfulgham Exp $
3
- # http://www.bagley.org/~doug/shootout/
4
-
5
- # With help from Ernesto Hernandez-Novich
6
- use integer;
7
-
8
- # It's prettier but slower to do this
9
- #sub Ack {
10
- # my($M, $N) = @_;
11
- # return( $N + 1 ) if ($M == 0);
12
- # return( Ack($M - 1, 1) ) if ($N == 0);
13
- # Ack($M - 1, Ack($M, $N - 1));
14
- #}
15
-
16
- # in our quest for speed, we must get ugly:
17
- # it helps reduce stack frame size a little bit
18
- # from Leif Stensson
19
- sub Ack {
20
- return $_[0] ? ($_[1] ? Ack($_[0]-1, Ack($_[0], $_[1]-1))
21
- : Ack($_[0]-1, 1))
22
- : $_[1]+1;
23
- }
24
-
25
- my $NUM = $ARGV[0];
26
- $NUM = 1 if ($NUM < 1);
27
- my $ack = Ack(3, $NUM);
28
- print "Ack(3,$NUM): $ack\n";