racer 0.1.3

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 (336) hide show
  1. data/LICENSE +22 -0
  2. data/bin/racer +33 -0
  3. data/ext/libuv/AUTHORS +45 -0
  4. data/ext/libuv/LICENSE +42 -0
  5. data/ext/libuv/Makefile +119 -0
  6. data/ext/libuv/README.md +88 -0
  7. data/ext/libuv/build/gcc_version.py +20 -0
  8. data/ext/libuv/common.gypi +176 -0
  9. data/ext/libuv/config-mingw.mk +61 -0
  10. data/ext/libuv/config-unix.mk +171 -0
  11. data/ext/libuv/gyp_uv +64 -0
  12. data/ext/libuv/include/ares.h +591 -0
  13. data/ext/libuv/include/ares_version.h +24 -0
  14. data/ext/libuv/include/uv-private/eio.h +403 -0
  15. data/ext/libuv/include/uv-private/ev.h +838 -0
  16. data/ext/libuv/include/uv-private/ngx-queue.h +108 -0
  17. data/ext/libuv/include/uv-private/tree.h +768 -0
  18. data/ext/libuv/include/uv-private/uv-unix.h +310 -0
  19. data/ext/libuv/include/uv-private/uv-win.h +510 -0
  20. data/ext/libuv/include/uv.h +1796 -0
  21. data/ext/libuv/src/ares/AUTHORS +37 -0
  22. data/ext/libuv/src/ares/CHANGES +1218 -0
  23. data/ext/libuv/src/ares/CMakeLists.txt +22 -0
  24. data/ext/libuv/src/ares/NEWS +21 -0
  25. data/ext/libuv/src/ares/README +60 -0
  26. data/ext/libuv/src/ares/README.cares +13 -0
  27. data/ext/libuv/src/ares/README.msvc +142 -0
  28. data/ext/libuv/src/ares/README.node +21 -0
  29. data/ext/libuv/src/ares/RELEASE-NOTES +26 -0
  30. data/ext/libuv/src/ares/TODO +23 -0
  31. data/ext/libuv/src/ares/ares__close_sockets.c +66 -0
  32. data/ext/libuv/src/ares/ares__get_hostent.c +263 -0
  33. data/ext/libuv/src/ares/ares__read_line.c +71 -0
  34. data/ext/libuv/src/ares/ares__timeval.c +111 -0
  35. data/ext/libuv/src/ares/ares_cancel.c +63 -0
  36. data/ext/libuv/src/ares/ares_data.c +190 -0
  37. data/ext/libuv/src/ares/ares_data.h +65 -0
  38. data/ext/libuv/src/ares/ares_destroy.c +105 -0
  39. data/ext/libuv/src/ares/ares_dns.h +90 -0
  40. data/ext/libuv/src/ares/ares_expand_name.c +200 -0
  41. data/ext/libuv/src/ares/ares_expand_string.c +75 -0
  42. data/ext/libuv/src/ares/ares_fds.c +63 -0
  43. data/ext/libuv/src/ares/ares_free_hostent.c +42 -0
  44. data/ext/libuv/src/ares/ares_free_string.c +25 -0
  45. data/ext/libuv/src/ares/ares_getenv.c +30 -0
  46. data/ext/libuv/src/ares/ares_getenv.h +26 -0
  47. data/ext/libuv/src/ares/ares_gethostbyaddr.c +301 -0
  48. data/ext/libuv/src/ares/ares_gethostbyname.c +523 -0
  49. data/ext/libuv/src/ares/ares_getnameinfo.c +427 -0
  50. data/ext/libuv/src/ares/ares_getopt.c +122 -0
  51. data/ext/libuv/src/ares/ares_getopt.h +53 -0
  52. data/ext/libuv/src/ares/ares_getsock.c +72 -0
  53. data/ext/libuv/src/ares/ares_init.c +1809 -0
  54. data/ext/libuv/src/ares/ares_iphlpapi.h +221 -0
  55. data/ext/libuv/src/ares/ares_ipv6.h +78 -0
  56. data/ext/libuv/src/ares/ares_library_init.c +142 -0
  57. data/ext/libuv/src/ares/ares_library_init.h +42 -0
  58. data/ext/libuv/src/ares/ares_llist.c +86 -0
  59. data/ext/libuv/src/ares/ares_llist.h +42 -0
  60. data/ext/libuv/src/ares/ares_mkquery.c +195 -0
  61. data/ext/libuv/src/ares/ares_nowarn.c +181 -0
  62. data/ext/libuv/src/ares/ares_nowarn.h +55 -0
  63. data/ext/libuv/src/ares/ares_options.c +248 -0
  64. data/ext/libuv/src/ares/ares_parse_a_reply.c +263 -0
  65. data/ext/libuv/src/ares/ares_parse_aaaa_reply.c +259 -0
  66. data/ext/libuv/src/ares/ares_parse_mx_reply.c +170 -0
  67. data/ext/libuv/src/ares/ares_parse_ns_reply.c +182 -0
  68. data/ext/libuv/src/ares/ares_parse_ptr_reply.c +217 -0
  69. data/ext/libuv/src/ares/ares_parse_srv_reply.c +179 -0
  70. data/ext/libuv/src/ares/ares_parse_txt_reply.c +201 -0
  71. data/ext/libuv/src/ares/ares_platform.c +11035 -0
  72. data/ext/libuv/src/ares/ares_platform.h +43 -0
  73. data/ext/libuv/src/ares/ares_private.h +355 -0
  74. data/ext/libuv/src/ares/ares_process.c +1295 -0
  75. data/ext/libuv/src/ares/ares_query.c +183 -0
  76. data/ext/libuv/src/ares/ares_rules.h +144 -0
  77. data/ext/libuv/src/ares/ares_search.c +321 -0
  78. data/ext/libuv/src/ares/ares_send.c +134 -0
  79. data/ext/libuv/src/ares/ares_setup.h +199 -0
  80. data/ext/libuv/src/ares/ares_strcasecmp.c +66 -0
  81. data/ext/libuv/src/ares/ares_strcasecmp.h +30 -0
  82. data/ext/libuv/src/ares/ares_strdup.c +42 -0
  83. data/ext/libuv/src/ares/ares_strdup.h +26 -0
  84. data/ext/libuv/src/ares/ares_strerror.c +56 -0
  85. data/ext/libuv/src/ares/ares_timeout.c +80 -0
  86. data/ext/libuv/src/ares/ares_version.c +11 -0
  87. data/ext/libuv/src/ares/ares_writev.c +79 -0
  88. data/ext/libuv/src/ares/ares_writev.h +36 -0
  89. data/ext/libuv/src/ares/bitncmp.c +59 -0
  90. data/ext/libuv/src/ares/bitncmp.h +26 -0
  91. data/ext/libuv/src/ares/config_cygwin/ares_config.h +512 -0
  92. data/ext/libuv/src/ares/config_darwin/ares_config.h +512 -0
  93. data/ext/libuv/src/ares/config_freebsd/ares_config.h +512 -0
  94. data/ext/libuv/src/ares/config_linux/ares_config.h +512 -0
  95. data/ext/libuv/src/ares/config_netbsd/ares_config.h +512 -0
  96. data/ext/libuv/src/ares/config_openbsd/ares_config.h +512 -0
  97. data/ext/libuv/src/ares/config_sunos/ares_config.h +512 -0
  98. data/ext/libuv/src/ares/config_win32/ares_config.h +369 -0
  99. data/ext/libuv/src/ares/get_ver.awk +35 -0
  100. data/ext/libuv/src/ares/inet_net_pton.c +451 -0
  101. data/ext/libuv/src/ares/inet_net_pton.h +31 -0
  102. data/ext/libuv/src/ares/inet_ntop.c +208 -0
  103. data/ext/libuv/src/ares/inet_ntop.h +26 -0
  104. data/ext/libuv/src/ares/nameser.h +203 -0
  105. data/ext/libuv/src/ares/setup_once.h +504 -0
  106. data/ext/libuv/src/ares/windows_port.c +22 -0
  107. data/ext/libuv/src/cares.c +225 -0
  108. data/ext/libuv/src/fs-poll.c +237 -0
  109. data/ext/libuv/src/unix/async.c +119 -0
  110. data/ext/libuv/src/unix/core.c +647 -0
  111. data/ext/libuv/src/unix/cygwin.c +84 -0
  112. data/ext/libuv/src/unix/darwin.c +341 -0
  113. data/ext/libuv/src/unix/dl.c +83 -0
  114. data/ext/libuv/src/unix/eio/Changes +63 -0
  115. data/ext/libuv/src/unix/eio/LICENSE +36 -0
  116. data/ext/libuv/src/unix/eio/Makefile.am +15 -0
  117. data/ext/libuv/src/unix/eio/aclocal.m4 +8957 -0
  118. data/ext/libuv/src/unix/eio/autogen.sh +3 -0
  119. data/ext/libuv/src/unix/eio/config.h.in +86 -0
  120. data/ext/libuv/src/unix/eio/config_cygwin.h +80 -0
  121. data/ext/libuv/src/unix/eio/config_darwin.h +141 -0
  122. data/ext/libuv/src/unix/eio/config_freebsd.h +81 -0
  123. data/ext/libuv/src/unix/eio/config_linux.h +94 -0
  124. data/ext/libuv/src/unix/eio/config_netbsd.h +81 -0
  125. data/ext/libuv/src/unix/eio/config_openbsd.h +137 -0
  126. data/ext/libuv/src/unix/eio/config_sunos.h +84 -0
  127. data/ext/libuv/src/unix/eio/configure.ac +22 -0
  128. data/ext/libuv/src/unix/eio/demo.c +194 -0
  129. data/ext/libuv/src/unix/eio/ecb.h +370 -0
  130. data/ext/libuv/src/unix/eio/eio.3 +3428 -0
  131. data/ext/libuv/src/unix/eio/eio.c +2593 -0
  132. data/ext/libuv/src/unix/eio/eio.pod +969 -0
  133. data/ext/libuv/src/unix/eio/libeio.m4 +195 -0
  134. data/ext/libuv/src/unix/eio/xthread.h +164 -0
  135. data/ext/libuv/src/unix/error.c +104 -0
  136. data/ext/libuv/src/unix/ev/Changes +388 -0
  137. data/ext/libuv/src/unix/ev/LICENSE +36 -0
  138. data/ext/libuv/src/unix/ev/Makefile.am +18 -0
  139. data/ext/libuv/src/unix/ev/Makefile.in +771 -0
  140. data/ext/libuv/src/unix/ev/README +58 -0
  141. data/ext/libuv/src/unix/ev/aclocal.m4 +8957 -0
  142. data/ext/libuv/src/unix/ev/autogen.sh +6 -0
  143. data/ext/libuv/src/unix/ev/config.guess +1526 -0
  144. data/ext/libuv/src/unix/ev/config.h.in +125 -0
  145. data/ext/libuv/src/unix/ev/config.sub +1658 -0
  146. data/ext/libuv/src/unix/ev/config_cygwin.h +123 -0
  147. data/ext/libuv/src/unix/ev/config_darwin.h +122 -0
  148. data/ext/libuv/src/unix/ev/config_freebsd.h +120 -0
  149. data/ext/libuv/src/unix/ev/config_linux.h +141 -0
  150. data/ext/libuv/src/unix/ev/config_netbsd.h +120 -0
  151. data/ext/libuv/src/unix/ev/config_openbsd.h +126 -0
  152. data/ext/libuv/src/unix/ev/config_sunos.h +122 -0
  153. data/ext/libuv/src/unix/ev/configure +13037 -0
  154. data/ext/libuv/src/unix/ev/configure.ac +18 -0
  155. data/ext/libuv/src/unix/ev/depcomp +630 -0
  156. data/ext/libuv/src/unix/ev/ev++.h +816 -0
  157. data/ext/libuv/src/unix/ev/ev.3 +5311 -0
  158. data/ext/libuv/src/unix/ev/ev.c +3925 -0
  159. data/ext/libuv/src/unix/ev/ev.pod +5243 -0
  160. data/ext/libuv/src/unix/ev/ev_epoll.c +266 -0
  161. data/ext/libuv/src/unix/ev/ev_kqueue.c +235 -0
  162. data/ext/libuv/src/unix/ev/ev_poll.c +148 -0
  163. data/ext/libuv/src/unix/ev/ev_port.c +179 -0
  164. data/ext/libuv/src/unix/ev/ev_select.c +310 -0
  165. data/ext/libuv/src/unix/ev/ev_vars.h +203 -0
  166. data/ext/libuv/src/unix/ev/ev_win32.c +153 -0
  167. data/ext/libuv/src/unix/ev/ev_wrap.h +196 -0
  168. data/ext/libuv/src/unix/ev/event.c +402 -0
  169. data/ext/libuv/src/unix/ev/event.h +170 -0
  170. data/ext/libuv/src/unix/ev/install-sh +294 -0
  171. data/ext/libuv/src/unix/ev/libev.m4 +39 -0
  172. data/ext/libuv/src/unix/ev/ltmain.sh +8413 -0
  173. data/ext/libuv/src/unix/ev/missing +336 -0
  174. data/ext/libuv/src/unix/ev/mkinstalldirs +111 -0
  175. data/ext/libuv/src/unix/freebsd.c +312 -0
  176. data/ext/libuv/src/unix/fs.c +699 -0
  177. data/ext/libuv/src/unix/internal.h +180 -0
  178. data/ext/libuv/src/unix/kqueue.c +122 -0
  179. data/ext/libuv/src/unix/linux/core.c +474 -0
  180. data/ext/libuv/src/unix/linux/inotify.c +209 -0
  181. data/ext/libuv/src/unix/linux/syscalls.c +268 -0
  182. data/ext/libuv/src/unix/linux/syscalls.h +93 -0
  183. data/ext/libuv/src/unix/loop-watcher.c +63 -0
  184. data/ext/libuv/src/unix/loop.c +81 -0
  185. data/ext/libuv/src/unix/netbsd.c +108 -0
  186. data/ext/libuv/src/unix/openbsd.c +295 -0
  187. data/ext/libuv/src/unix/pipe.c +261 -0
  188. data/ext/libuv/src/unix/poll.c +116 -0
  189. data/ext/libuv/src/unix/process.c +447 -0
  190. data/ext/libuv/src/unix/stream.c +1026 -0
  191. data/ext/libuv/src/unix/sunos.c +483 -0
  192. data/ext/libuv/src/unix/tcp.c +328 -0
  193. data/ext/libuv/src/unix/thread.c +211 -0
  194. data/ext/libuv/src/unix/timer.c +138 -0
  195. data/ext/libuv/src/unix/tty.c +146 -0
  196. data/ext/libuv/src/unix/udp.c +661 -0
  197. data/ext/libuv/src/unix/uv-eio.c +107 -0
  198. data/ext/libuv/src/unix/uv-eio.h +13 -0
  199. data/ext/libuv/src/uv-common.c +384 -0
  200. data/ext/libuv/src/uv-common.h +171 -0
  201. data/ext/libuv/src/win/async.c +130 -0
  202. data/ext/libuv/src/win/core.c +283 -0
  203. data/ext/libuv/src/win/dl.c +86 -0
  204. data/ext/libuv/src/win/error.c +150 -0
  205. data/ext/libuv/src/win/fs-event.c +512 -0
  206. data/ext/libuv/src/win/fs.c +1856 -0
  207. data/ext/libuv/src/win/getaddrinfo.c +365 -0
  208. data/ext/libuv/src/win/handle-inl.h +145 -0
  209. data/ext/libuv/src/win/handle.c +150 -0
  210. data/ext/libuv/src/win/internal.h +337 -0
  211. data/ext/libuv/src/win/loop-watcher.c +123 -0
  212. data/ext/libuv/src/win/pipe.c +1675 -0
  213. data/ext/libuv/src/win/poll.c +618 -0
  214. data/ext/libuv/src/win/process-stdio.c +479 -0
  215. data/ext/libuv/src/win/process.c +1013 -0
  216. data/ext/libuv/src/win/req-inl.h +225 -0
  217. data/ext/libuv/src/win/req.c +25 -0
  218. data/ext/libuv/src/win/stream-inl.h +69 -0
  219. data/ext/libuv/src/win/stream.c +167 -0
  220. data/ext/libuv/src/win/tcp.c +1400 -0
  221. data/ext/libuv/src/win/thread.c +372 -0
  222. data/ext/libuv/src/win/threadpool.c +74 -0
  223. data/ext/libuv/src/win/timer.c +226 -0
  224. data/ext/libuv/src/win/tty.c +1801 -0
  225. data/ext/libuv/src/win/udp.c +718 -0
  226. data/ext/libuv/src/win/util.c +864 -0
  227. data/ext/libuv/src/win/winapi.c +132 -0
  228. data/ext/libuv/src/win/winapi.h +4443 -0
  229. data/ext/libuv/src/win/winsock.c +557 -0
  230. data/ext/libuv/src/win/winsock.h +171 -0
  231. data/ext/libuv/test/benchmark-ares.c +117 -0
  232. data/ext/libuv/test/benchmark-fs-stat.c +164 -0
  233. data/ext/libuv/test/benchmark-getaddrinfo.c +94 -0
  234. data/ext/libuv/test/benchmark-list.h +114 -0
  235. data/ext/libuv/test/benchmark-loop-count.c +88 -0
  236. data/ext/libuv/test/benchmark-million-timers.c +65 -0
  237. data/ext/libuv/test/benchmark-ping-pongs.c +213 -0
  238. data/ext/libuv/test/benchmark-pound.c +324 -0
  239. data/ext/libuv/test/benchmark-pump.c +462 -0
  240. data/ext/libuv/test/benchmark-sizes.c +42 -0
  241. data/ext/libuv/test/benchmark-spawn.c +162 -0
  242. data/ext/libuv/test/benchmark-tcp-write-batch.c +140 -0
  243. data/ext/libuv/test/benchmark-thread.c +64 -0
  244. data/ext/libuv/test/benchmark-udp-packet-storm.c +247 -0
  245. data/ext/libuv/test/blackhole-server.c +118 -0
  246. data/ext/libuv/test/dns-server.c +321 -0
  247. data/ext/libuv/test/echo-server.c +378 -0
  248. data/ext/libuv/test/fixtures/empty_file +0 -0
  249. data/ext/libuv/test/fixtures/load_error.node +1 -0
  250. data/ext/libuv/test/run-benchmarks.c +64 -0
  251. data/ext/libuv/test/run-tests.c +138 -0
  252. data/ext/libuv/test/runner-unix.c +290 -0
  253. data/ext/libuv/test/runner-unix.h +36 -0
  254. data/ext/libuv/test/runner-win.c +285 -0
  255. data/ext/libuv/test/runner-win.h +42 -0
  256. data/ext/libuv/test/runner.c +326 -0
  257. data/ext/libuv/test/runner.h +159 -0
  258. data/ext/libuv/test/task.h +109 -0
  259. data/ext/libuv/test/test-async.c +118 -0
  260. data/ext/libuv/test/test-callback-order.c +76 -0
  261. data/ext/libuv/test/test-callback-stack.c +203 -0
  262. data/ext/libuv/test/test-connection-fail.c +148 -0
  263. data/ext/libuv/test/test-counters-init.c +215 -0
  264. data/ext/libuv/test/test-cwd-and-chdir.c +64 -0
  265. data/ext/libuv/test/test-delayed-accept.c +197 -0
  266. data/ext/libuv/test/test-dlerror.c +58 -0
  267. data/ext/libuv/test/test-error.c +59 -0
  268. data/ext/libuv/test/test-fail-always.c +29 -0
  269. data/ext/libuv/test/test-fs-event.c +442 -0
  270. data/ext/libuv/test/test-fs-poll.c +146 -0
  271. data/ext/libuv/test/test-fs.c +1843 -0
  272. data/ext/libuv/test/test-get-currentexe.c +63 -0
  273. data/ext/libuv/test/test-get-loadavg.c +36 -0
  274. data/ext/libuv/test/test-get-memory.c +38 -0
  275. data/ext/libuv/test/test-getaddrinfo.c +122 -0
  276. data/ext/libuv/test/test-gethostbyname.c +189 -0
  277. data/ext/libuv/test/test-getsockname.c +342 -0
  278. data/ext/libuv/test/test-hrtime.c +54 -0
  279. data/ext/libuv/test/test-idle.c +81 -0
  280. data/ext/libuv/test/test-ipc-send-recv.c +209 -0
  281. data/ext/libuv/test/test-ipc.c +620 -0
  282. data/ext/libuv/test/test-list.h +421 -0
  283. data/ext/libuv/test/test-loop-handles.c +336 -0
  284. data/ext/libuv/test/test-multiple-listen.c +102 -0
  285. data/ext/libuv/test/test-mutexes.c +63 -0
  286. data/ext/libuv/test/test-pass-always.c +28 -0
  287. data/ext/libuv/test/test-ping-pong.c +253 -0
  288. data/ext/libuv/test/test-pipe-bind-error.c +140 -0
  289. data/ext/libuv/test/test-pipe-connect-error.c +96 -0
  290. data/ext/libuv/test/test-platform-output.c +87 -0
  291. data/ext/libuv/test/test-poll-close.c +77 -0
  292. data/ext/libuv/test/test-poll.c +573 -0
  293. data/ext/libuv/test/test-process-title.c +42 -0
  294. data/ext/libuv/test/test-ref.c +338 -0
  295. data/ext/libuv/test/test-run-once.c +48 -0
  296. data/ext/libuv/test/test-semaphore.c +111 -0
  297. data/ext/libuv/test/test-shutdown-close.c +103 -0
  298. data/ext/libuv/test/test-shutdown-eof.c +183 -0
  299. data/ext/libuv/test/test-spawn.c +847 -0
  300. data/ext/libuv/test/test-stdio-over-pipes.c +246 -0
  301. data/ext/libuv/test/test-tcp-bind-error.c +191 -0
  302. data/ext/libuv/test/test-tcp-bind6-error.c +154 -0
  303. data/ext/libuv/test/test-tcp-close-while-connecting.c +80 -0
  304. data/ext/libuv/test/test-tcp-close.c +129 -0
  305. data/ext/libuv/test/test-tcp-connect-error-after-write.c +95 -0
  306. data/ext/libuv/test/test-tcp-connect-error.c +70 -0
  307. data/ext/libuv/test/test-tcp-connect-timeout.c +85 -0
  308. data/ext/libuv/test/test-tcp-connect6-error.c +68 -0
  309. data/ext/libuv/test/test-tcp-flags.c +51 -0
  310. data/ext/libuv/test/test-tcp-shutdown-after-write.c +131 -0
  311. data/ext/libuv/test/test-tcp-write-error.c +168 -0
  312. data/ext/libuv/test/test-tcp-write-to-half-open-connection.c +135 -0
  313. data/ext/libuv/test/test-tcp-writealot.c +170 -0
  314. data/ext/libuv/test/test-thread.c +183 -0
  315. data/ext/libuv/test/test-threadpool.c +57 -0
  316. data/ext/libuv/test/test-timer-again.c +141 -0
  317. data/ext/libuv/test/test-timer.c +152 -0
  318. data/ext/libuv/test/test-tty.c +110 -0
  319. data/ext/libuv/test/test-udp-dgram-too-big.c +86 -0
  320. data/ext/libuv/test/test-udp-ipv6.c +156 -0
  321. data/ext/libuv/test/test-udp-multicast-join.c +139 -0
  322. data/ext/libuv/test/test-udp-multicast-ttl.c +86 -0
  323. data/ext/libuv/test/test-udp-options.c +86 -0
  324. data/ext/libuv/test/test-udp-send-and-recv.c +208 -0
  325. data/ext/libuv/test/test-util.c +97 -0
  326. data/ext/libuv/test/test-walk-handles.c +77 -0
  327. data/ext/libuv/uv.gyp +452 -0
  328. data/ext/libuv/vcbuild.bat +105 -0
  329. data/ext/racer/extconf.rb +20 -0
  330. data/ext/racer/http_parser.c +2059 -0
  331. data/ext/racer/http_parser.h +318 -0
  332. data/ext/racer/mkmf.log +22 -0
  333. data/ext/racer/racer.c +551 -0
  334. data/lib/racer.rb +2 -0
  335. data/lib/racer/version.rb +3 -0
  336. metadata +382 -0
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012, Charlie Somerville
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
14
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
17
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ require "optparse"
3
+ require "racer"
4
+
5
+ options = { address: "0.0.0.0", port: 3000, rackup: "#{Dir.pwd}/config.ru" }
6
+
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: racer [options]"
9
+
10
+ opts.on "-a IP", "--address IP", "Address to listen on" do |a|
11
+ options[:address] = a
12
+ end
13
+
14
+ opts.on "-p PORT", "--port PORT", "Port to listen on" do |p|
15
+ options[:port] = p.to_i
16
+ end
17
+
18
+ opts.on "--rackup FILE", "Use specified file as rackup file" do |ru|
19
+ options[:rackup] = ru
20
+ end
21
+ end.parse!
22
+
23
+ Object.send :define_method, :run do |app|
24
+ puts "Racer #{Racer::VERSION}"
25
+ puts "Listening on #{options[:address]}:#{options[:port]}"
26
+ begin
27
+ Racer.run options[:address], options[:port], app
28
+ ensure
29
+ puts "Served #{Racer::Stats.total_requests} requests."
30
+ end
31
+ end
32
+
33
+ load options[:rackup]
@@ -0,0 +1,45 @@
1
+ # Authors ordered by first contribution.
2
+ Ryan Dahl <ryan@joyent.com>
3
+ Bert Belder <bertbelder@gmail.com>
4
+ Josh Roesslein <jroesslein@gmail.com>
5
+ Alan Gutierrez <alan@prettyrobots.com>
6
+ Joshua Peek <josh@joshpeek.com>
7
+ Igor Zinkovsky <igorzi@microsoft.com>
8
+ San-Tai Hsu <vanilla@fatpipi.com>
9
+ Ben Noordhuis <info@bnoordhuis.nl>
10
+ Henry Rawas <henryr@schakra.com>
11
+ Robert Mustacchi <rm@joyent.com>
12
+ Matt Stevens <matt@alloysoft.com>
13
+ Paul Querna <pquerna@apache.org>
14
+ Shigeki Ohtsu <ohtsu@iij.ad.jp>
15
+ Tom Hughes <tom.hughes@palm.com>
16
+ Peter Bright <drpizza@quiscalusmexicanus.org>
17
+ Jeroen Janssen <jeroen.janssen@gmail.com>
18
+ Andrea Lattuada <ndr.lattuada@gmail.com>
19
+ Augusto Henrique Hentz <ahhentz@gmail.com>
20
+ Clifford Heath <clifford.heath@gmail.com>
21
+ Jorge Chamorro Bieling <jorge@jorgechamorro.com>
22
+ Luis Lavena <luislavena@gmail.com>
23
+ Matthew Sporleder <msporleder@gmail.com>
24
+ Erick Tryzelaar <erick.tryzelaar@gmail.com>
25
+ Isaac Z. Schlueter <i@izs.me>
26
+ Pieter Noordhuis <pcnoordhuis@gmail.com>
27
+ Marek Jelen <marek@jelen.biz>
28
+ Fedor Indutny <fedor.indutny@gmail.com>
29
+ Saúl Ibarra Corretgé <saghul@gmail.com>
30
+ Felix Geisendörfer <felix@debuggable.com>
31
+ Yuki OKUMURA <mjt@cltn.org>
32
+ Roman Shtylman <shtylman@gmail.com>
33
+ Frank Denis <github@pureftpd.org>
34
+ Carter Allen <CarterA@opt-6.com>
35
+ Tj Holowaychuk <tj@vision-media.ca>
36
+ Shimon Doodkin <helpmepro1@gmail.com>
37
+ Ryan Emery <seebees@gmail.com>
38
+ Bruce Mitchener <bruce.mitchener@gmail.com>
39
+ Maciej Małecki <maciej.malecki@notimplemented.org>
40
+ Yasuhiro Matsumoto <mattn.jp@gmail.com>
41
+ Daisuke Murase <typester@cpan.org>
42
+ Paddy Byers <paddy.byers@gmail.com>
43
+ Dan VerWeire <dverweire@gmail.com>
44
+ Brandon Benvie <brandon@bbenvie.com>
45
+ Brandon Philips <brandon.philips@rackspace.com>
@@ -0,0 +1,42 @@
1
+ libuv is part of the Node project: http://nodejs.org/
2
+ libuv may be distributed alone under Node's license:
3
+
4
+ ====
5
+
6
+ Copyright Joyent, Inc. and other Node contributors. All rights reserved.
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to
9
+ deal in the Software without restriction, including without limitation the
10
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11
+ sell copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in
15
+ all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23
+ IN THE SOFTWARE.
24
+
25
+ ====
26
+
27
+ This license applies to all parts of libuv that are not externally
28
+ maintained libraries.
29
+
30
+ The externally maintained libraries used by libuv are:
31
+
32
+ - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license.
33
+
34
+ - ngx_queue.h (from Nginx), copyright Igor Sysoev. Two clause BSD license.
35
+
36
+ - c-ares, copyright Daniel Stenberg and others. MIT licensed.
37
+
38
+ - libev, located at ev/ is copyright Marc Alexander Lehmann, and
39
+ dual-licensed under the MIT license and GPL2.
40
+
41
+ - libeio, located at eio/ is copyright Marc Alexander Lehmann, and
42
+ dual-licensed under the MIT license and GPL2.
@@ -0,0 +1,119 @@
1
+ # Copyright Joyent, Inc. and other Node contributors. All rights reserved.
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to
5
+ # deal in the Software without restriction, including without limitation the
6
+ # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
+ # sell copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
+ # IN THE SOFTWARE.
20
+
21
+ uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
22
+
23
+ ifdef MSVC
24
+ uname_S := MINGW
25
+ endif
26
+
27
+ CPPFLAGS += -Iinclude -Iinclude/uv-private
28
+
29
+ CARES_OBJS =
30
+ CARES_OBJS += src/ares/ares__close_sockets.o
31
+ CARES_OBJS += src/ares/ares__get_hostent.o
32
+ CARES_OBJS += src/ares/ares__read_line.o
33
+ CARES_OBJS += src/ares/ares__timeval.o
34
+ CARES_OBJS += src/ares/ares_cancel.o
35
+ CARES_OBJS += src/ares/ares_data.o
36
+ CARES_OBJS += src/ares/ares_destroy.o
37
+ CARES_OBJS += src/ares/ares_expand_name.o
38
+ CARES_OBJS += src/ares/ares_expand_string.o
39
+ CARES_OBJS += src/ares/ares_fds.o
40
+ CARES_OBJS += src/ares/ares_free_hostent.o
41
+ CARES_OBJS += src/ares/ares_free_string.o
42
+ CARES_OBJS += src/ares/ares_gethostbyaddr.o
43
+ CARES_OBJS += src/ares/ares_gethostbyname.o
44
+ CARES_OBJS += src/ares/ares_getnameinfo.o
45
+ CARES_OBJS += src/ares/ares_getopt.o
46
+ CARES_OBJS += src/ares/ares_getsock.o
47
+ CARES_OBJS += src/ares/ares_init.o
48
+ CARES_OBJS += src/ares/ares_library_init.o
49
+ CARES_OBJS += src/ares/ares_llist.o
50
+ CARES_OBJS += src/ares/ares_mkquery.o
51
+ CARES_OBJS += src/ares/ares_nowarn.o
52
+ CARES_OBJS += src/ares/ares_options.o
53
+ CARES_OBJS += src/ares/ares_parse_a_reply.o
54
+ CARES_OBJS += src/ares/ares_parse_aaaa_reply.o
55
+ CARES_OBJS += src/ares/ares_parse_mx_reply.o
56
+ CARES_OBJS += src/ares/ares_parse_ns_reply.o
57
+ CARES_OBJS += src/ares/ares_parse_ptr_reply.o
58
+ CARES_OBJS += src/ares/ares_parse_srv_reply.o
59
+ CARES_OBJS += src/ares/ares_parse_txt_reply.o
60
+ CARES_OBJS += src/ares/ares_process.o
61
+ CARES_OBJS += src/ares/ares_query.o
62
+ CARES_OBJS += src/ares/ares_search.o
63
+ CARES_OBJS += src/ares/ares_send.o
64
+ CARES_OBJS += src/ares/ares_strcasecmp.o
65
+ CARES_OBJS += src/ares/ares_strdup.o
66
+ CARES_OBJS += src/ares/ares_strerror.o
67
+ CARES_OBJS += src/ares/ares_timeout.o
68
+ CARES_OBJS += src/ares/ares_version.o
69
+ CARES_OBJS += src/ares/ares_writev.o
70
+ CARES_OBJS += src/ares/bitncmp.o
71
+ CARES_OBJS += src/ares/inet_net_pton.o
72
+ CARES_OBJS += src/ares/inet_ntop.o
73
+
74
+ ifneq (,$(findstring MINGW,$(uname_S)))
75
+ include config-mingw.mk
76
+ else
77
+ include config-unix.mk
78
+ endif
79
+
80
+ TESTS=test/blackhole-server.c test/echo-server.c test/test-*.c
81
+ BENCHMARKS=test/blackhole-server.c test/echo-server.c test/dns-server.c test/benchmark-*.c
82
+
83
+ all: uv.a
84
+
85
+ $(CARES_OBJS): %.o: %.c
86
+ $(CC) -o $*.o -c $(CFLAGS) $(CPPFLAGS) $< -DHAVE_CONFIG_H
87
+
88
+ test/run-tests$(E): test/*.h test/run-tests.c $(RUNNER_SRC) test/runner-unix.c $(TESTS) uv.a
89
+ $(CC) $(CPPFLAGS) $(RUNNER_CFLAGS) -o test/run-tests test/run-tests.c \
90
+ test/runner.c $(RUNNER_SRC) $(TESTS) uv.a $(RUNNER_LIBS) $(RUNNER_LINKFLAGS)
91
+
92
+ test/run-benchmarks$(E): test/*.h test/run-benchmarks.c test/runner.c $(RUNNER_SRC) $(BENCHMARKS) uv.a
93
+ $(CC) $(CPPFLAGS) $(RUNNER_CFLAGS) -o test/run-benchmarks test/run-benchmarks.c \
94
+ test/runner.c $(RUNNER_SRC) $(BENCHMARKS) uv.a $(RUNNER_LIBS) $(RUNNER_LINKFLAGS)
95
+
96
+ test/echo.o: test/echo.c test/echo.h
97
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c test/echo.c -o test/echo.o
98
+
99
+
100
+ .PHONY: clean clean-platform distclean distclean-platform test bench
101
+
102
+
103
+ test: test/run-tests$(E)
104
+ test/run-tests
105
+
106
+ #test-%: test/run-tests$(E)
107
+ # test/run-tests $(@:test-%=%)
108
+
109
+ bench: test/run-benchmarks$(E)
110
+ test/run-benchmarks
111
+
112
+ #bench-%: test/run-benchmarks$(E)
113
+ # test/run-benchmarks $(@:bench-%=%)
114
+
115
+ clean: clean-platform
116
+ $(RM) -f src/*.o *.a test/run-tests$(E) test/run-benchmarks$(E)
117
+
118
+ distclean: distclean-platform
119
+ $(RM) -f src/*.o *.a test/run-tests$(E) test/run-benchmarks$(E)
@@ -0,0 +1,88 @@
1
+ # libuv [![Build Status](https://secure.travis-ci.org/joyent/libuv.png)](http://travis-ci.org/joyent/libuv)
2
+
3
+ libuv is a new platform layer for Node. Its purpose is to abstract IOCP on
4
+ Windows and libev on Unix systems. We intend to eventually contain all
5
+ platform differences in this library.
6
+
7
+ http://nodejs.org/
8
+
9
+ ## Features
10
+
11
+ * Non-blocking TCP sockets
12
+
13
+ * Non-blocking named pipes
14
+
15
+ * UDP
16
+
17
+ * Timers
18
+
19
+ * Child process spawning
20
+
21
+ * Asynchronous DNS via c-ares or `uv_getaddrinfo`.
22
+
23
+ * Asynchronous file system APIs `uv_fs_*`
24
+
25
+ * High resolution time `uv_hrtime`
26
+
27
+ * Current executable path look up `uv_exepath`
28
+
29
+ * Thread pool scheduling `uv_queue_work`
30
+
31
+ * ANSI escape code controlled TTY `uv_tty_t`
32
+
33
+ * File system events Currently supports inotify, `ReadDirectoryChangesW`
34
+ and kqueue. Event ports in the near future.
35
+ `uv_fs_event_t`
36
+
37
+ * IPC and socket sharing between processes `uv_write2`
38
+
39
+
40
+ ## Documentation
41
+
42
+ See `include/uv.h`.
43
+
44
+
45
+ ## Build Instructions
46
+
47
+ For GCC (including MinGW) there are two methods building: via normal
48
+ makefiles or via GYP. GYP is a meta-build system which can generate MSVS,
49
+ Makefile, and XCode backends. It is best used for integration into other
50
+ projects. The old (more stable) system is using Makefiles.
51
+
52
+ To build via Makefile simply execute:
53
+
54
+ make
55
+
56
+ To build with Visual Studio run the vcbuilds.bat file which will
57
+ checkout the GYP code into build/gyp and generate the uv.sln and
58
+ related files.
59
+
60
+ Windows users can also build from cmd-line using msbuild. This is
61
+ done by running vcbuild.bat from Visual Studio command prompt.
62
+
63
+ To have GYP generate build script for another system you will need to
64
+ checkout GYP into the project tree manually:
65
+
66
+ svn co http://gyp.googlecode.com/svn/trunk build/gyp
67
+
68
+ Unix users run
69
+
70
+ ./gyp_uv -f make
71
+ make
72
+
73
+ Macintosh users run
74
+
75
+ ./gyp_uv -f xcode
76
+ xcodebuild -project uv.xcodeproj -configuration Release -target All
77
+
78
+
79
+ ## Supported Platforms
80
+
81
+ Microsoft Windows operating systems since Windows XP SP2. It can be built
82
+ with either Visual Studio or MinGW.
83
+
84
+ Linux 2.6 using the GCC toolchain.
85
+
86
+ MacOS using the GCC or XCode toolchain.
87
+
88
+ Solaris 121 and later using GCC toolchain.
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env python
2
+
3
+ import os
4
+ import re
5
+ import subprocess
6
+ import sys
7
+
8
+
9
+ def DoMain(*args):
10
+ cc = os.environ.get('CC', 'gcc')
11
+ stdin, stderr = os.pipe()
12
+ subprocess.call([cc, '-v'], stderr=stderr)
13
+ output = os.read(stdin, 4096)
14
+ match = re.search("\ngcc version (\d+\.\d+\.\d+)", output)
15
+ if match:
16
+ print(match.group(1))
17
+
18
+
19
+ if __name__ == '__main__':
20
+ DoMain(*sys.argv)
@@ -0,0 +1,176 @@
1
+ {
2
+ 'variables': {
3
+ 'visibility%': 'hidden', # V8's visibility setting
4
+ 'target_arch%': 'ia32', # set v8's target architecture
5
+ 'host_arch%': 'ia32', # set v8's host architecture
6
+ 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
7
+ 'component%': 'static_library', # NB. these names match with what V8 expects
8
+ 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
9
+ },
10
+
11
+ 'target_defaults': {
12
+ 'default_configuration': 'Debug',
13
+ 'configurations': {
14
+ 'Debug': {
15
+ 'defines': [ 'DEBUG', '_DEBUG' ],
16
+ 'cflags': [ '-g', '-O0' ],
17
+ 'msvs_settings': {
18
+ 'VCCLCompilerTool': {
19
+ 'target_conditions': [
20
+ ['library=="static_library"', {
21
+ 'RuntimeLibrary': 1, # static debug
22
+ }, {
23
+ 'RuntimeLibrary': 3, # DLL debug
24
+ }],
25
+ ],
26
+ 'Optimization': 0, # /Od, no optimization
27
+ 'MinimalRebuild': 'false',
28
+ 'OmitFramePointers': 'false',
29
+ 'BasicRuntimeChecks': 3, # /RTC1
30
+ },
31
+ 'VCLinkerTool': {
32
+ 'LinkIncremental': 2, # enable incremental linking
33
+ },
34
+ },
35
+ 'conditions': [
36
+ ['OS != "win"', {
37
+ 'defines': [ 'EV_VERIFY=2' ],
38
+ }],
39
+ ]
40
+ },
41
+ 'Release': {
42
+ 'defines': [ 'NDEBUG' ],
43
+ 'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
44
+ 'msvs_settings': {
45
+ 'VCCLCompilerTool': {
46
+ 'target_conditions': [
47
+ ['library=="static_library"', {
48
+ 'RuntimeLibrary': 0, # static release
49
+ }, {
50
+ 'RuntimeLibrary': 2, # debug release
51
+ }],
52
+ ],
53
+ 'Optimization': 3, # /Ox, full optimization
54
+ 'FavorSizeOrSpeed': 1, # /Ot, favour speed over size
55
+ 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
56
+ 'WholeProgramOptimization': 'true', # /GL, whole program optimization, needed for LTCG
57
+ 'OmitFramePointers': 'true',
58
+ 'EnableFunctionLevelLinking': 'true',
59
+ 'EnableIntrinsicFunctions': 'true',
60
+ },
61
+ 'VCLibrarianTool': {
62
+ 'AdditionalOptions': [
63
+ '/LTCG', # link time code generation
64
+ ],
65
+ },
66
+ 'VCLinkerTool': {
67
+ 'LinkTimeCodeGeneration': 1, # link-time code generation
68
+ 'OptimizeReferences': 2, # /OPT:REF
69
+ 'EnableCOMDATFolding': 2, # /OPT:ICF
70
+ 'LinkIncremental': 1, # disable incremental linking
71
+ },
72
+ },
73
+ }
74
+ },
75
+ 'msvs_settings': {
76
+ 'VCCLCompilerTool': {
77
+ 'StringPooling': 'true', # pool string literals
78
+ 'DebugInformationFormat': 3, # Generate a PDB
79
+ 'WarningLevel': 3,
80
+ 'BufferSecurityCheck': 'true',
81
+ 'ExceptionHandling': 1, # /EHsc
82
+ 'SuppressStartupBanner': 'true',
83
+ 'WarnAsError': 'false',
84
+ 'AdditionalOptions': [
85
+ '/MP', # compile across multiple CPUs
86
+ ],
87
+ },
88
+ 'VCLibrarianTool': {
89
+ },
90
+ 'VCLinkerTool': {
91
+ 'GenerateDebugInformation': 'true',
92
+ 'RandomizedBaseAddress': 2, # enable ASLR
93
+ 'DataExecutionPrevention': 2, # enable DEP
94
+ 'AllowIsolation': 'true',
95
+ 'SuppressStartupBanner': 'true',
96
+ 'target_conditions': [
97
+ ['_type=="executable"', {
98
+ 'SubSystem': 1, # console executable
99
+ }],
100
+ ],
101
+ },
102
+ },
103
+ 'conditions': [
104
+ ['OS == "win"', {
105
+ 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
106
+ 'defines': [
107
+ 'WIN32',
108
+ # we don't really want VC++ warning us about
109
+ # how dangerous C functions are...
110
+ '_CRT_SECURE_NO_DEPRECATE',
111
+ # ... or that C implementations shouldn't use
112
+ # POSIX names
113
+ '_CRT_NONSTDC_NO_DEPRECATE',
114
+ ],
115
+ }],
116
+ [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
117
+ 'variables': {
118
+ 'gcc_version%': '<!(python build/gcc_version.py)>)',
119
+ },
120
+ 'cflags': [ '-Wall' ],
121
+ 'cflags_cc': [ '-fno-rtti', '-fno-exceptions' ],
122
+ 'conditions': [
123
+ [ 'host_arch != target_arch and target_arch=="ia32"', {
124
+ 'cflags': [ '-m32' ],
125
+ 'ldflags': [ '-m32' ],
126
+ }],
127
+ [ 'OS=="linux"', {
128
+ 'cflags': [ '-ansi' ],
129
+ }],
130
+ [ 'OS=="solaris"', {
131
+ 'cflags': [ '-pthreads' ],
132
+ 'ldflags': [ '-pthreads' ],
133
+ }, {
134
+ 'cflags': [ '-pthread' ],
135
+ 'ldflags': [ '-pthread' ],
136
+ }],
137
+ [ 'visibility=="hidden" and gcc_version >= "4.0.0"', {
138
+ 'cflags': [ '-fvisibility=hidden' ],
139
+ }],
140
+ ],
141
+ }],
142
+ ['OS=="mac"', {
143
+ 'xcode_settings': {
144
+ 'ALWAYS_SEARCH_USER_PATHS': 'NO',
145
+ 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
146
+ 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
147
+ # (Equivalent to -fPIC)
148
+ 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions
149
+ 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti
150
+ 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
151
+ # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
152
+ 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
153
+ 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
154
+ 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics
155
+ 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
156
+ 'PREBINDING': 'NO', # No -Wl,-prebind
157
+ 'USE_HEADERMAP': 'NO',
158
+ 'OTHER_CFLAGS': [
159
+ '-fno-strict-aliasing',
160
+ ],
161
+ 'WARNING_CFLAGS': [
162
+ '-Wall',
163
+ '-Wendif-labels',
164
+ '-W',
165
+ '-Wno-unused-parameter',
166
+ ],
167
+ },
168
+ 'target_conditions': [
169
+ ['_type!="static_library"', {
170
+ 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
171
+ }],
172
+ ],
173
+ }],
174
+ ],
175
+ },
176
+ }