therubyracer 0.4.9-x86-linux

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of therubyracer might be problematic. Click here for more details.

Files changed (637) hide show
  1. data/.gitignore +11 -0
  2. data/.gitmodules +3 -0
  3. data/Doxyfile +1514 -0
  4. data/History.txt +43 -0
  5. data/README.rdoc +157 -0
  6. data/Rakefile +51 -0
  7. data/docs/data_conversion.txt +18 -0
  8. data/ext/v8/callbacks.cpp +160 -0
  9. data/ext/v8/callbacks.h +14 -0
  10. data/ext/v8/convert_ruby.cpp +8 -0
  11. data/ext/v8/convert_ruby.h +99 -0
  12. data/ext/v8/convert_string.cpp +10 -0
  13. data/ext/v8/convert_string.h +73 -0
  14. data/ext/v8/convert_v8.cpp +9 -0
  15. data/ext/v8/convert_v8.h +121 -0
  16. data/ext/v8/converters.cpp +83 -0
  17. data/ext/v8/converters.h +23 -0
  18. data/ext/v8/extconf.rb +36 -0
  19. data/ext/v8/upstream/2.0.6/.gitignore +26 -0
  20. data/ext/v8/upstream/2.0.6/AUTHORS +23 -0
  21. data/ext/v8/upstream/2.0.6/ChangeLog +1479 -0
  22. data/ext/v8/upstream/2.0.6/LICENSE +55 -0
  23. data/ext/v8/upstream/2.0.6/SConstruct +1028 -0
  24. data/ext/v8/upstream/2.0.6/include/v8-debug.h +275 -0
  25. data/ext/v8/upstream/2.0.6/include/v8.h +3236 -0
  26. data/ext/v8/upstream/2.0.6/src/SConscript +283 -0
  27. data/ext/v8/upstream/2.0.6/src/accessors.cc +695 -0
  28. data/ext/v8/upstream/2.0.6/src/accessors.h +114 -0
  29. data/ext/v8/upstream/2.0.6/src/allocation.cc +198 -0
  30. data/ext/v8/upstream/2.0.6/src/allocation.h +169 -0
  31. data/ext/v8/upstream/2.0.6/src/api.cc +3831 -0
  32. data/ext/v8/upstream/2.0.6/src/api.h +479 -0
  33. data/ext/v8/upstream/2.0.6/src/apinatives.js +110 -0
  34. data/ext/v8/upstream/2.0.6/src/apiutils.h +69 -0
  35. data/ext/v8/upstream/2.0.6/src/arguments.h +97 -0
  36. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm-inl.h +277 -0
  37. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.cc +1821 -0
  38. data/ext/v8/upstream/2.0.6/src/arm/assembler-arm.h +1027 -0
  39. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2-inl.h +267 -0
  40. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.cc +1821 -0
  41. data/ext/v8/upstream/2.0.6/src/arm/assembler-thumb2.h +1027 -0
  42. data/ext/v8/upstream/2.0.6/src/arm/builtins-arm.cc +1271 -0
  43. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm-inl.h +74 -0
  44. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.cc +6682 -0
  45. data/ext/v8/upstream/2.0.6/src/arm/codegen-arm.h +535 -0
  46. data/ext/v8/upstream/2.0.6/src/arm/constants-arm.cc +112 -0
  47. data/ext/v8/upstream/2.0.6/src/arm/constants-arm.h +347 -0
  48. data/ext/v8/upstream/2.0.6/src/arm/cpu-arm.cc +132 -0
  49. data/ext/v8/upstream/2.0.6/src/arm/debug-arm.cc +213 -0
  50. data/ext/v8/upstream/2.0.6/src/arm/disasm-arm.cc +1166 -0
  51. data/ext/v8/upstream/2.0.6/src/arm/fast-codegen-arm.cc +1698 -0
  52. data/ext/v8/upstream/2.0.6/src/arm/frames-arm.cc +123 -0
  53. data/ext/v8/upstream/2.0.6/src/arm/frames-arm.h +162 -0
  54. data/ext/v8/upstream/2.0.6/src/arm/ic-arm.cc +849 -0
  55. data/ext/v8/upstream/2.0.6/src/arm/jump-target-arm.cc +238 -0
  56. data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.cc +1259 -0
  57. data/ext/v8/upstream/2.0.6/src/arm/macro-assembler-arm.h +423 -0
  58. data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.cc +1266 -0
  59. data/ext/v8/upstream/2.0.6/src/arm/regexp-macro-assembler-arm.h +282 -0
  60. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm-inl.h +103 -0
  61. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.cc +59 -0
  62. data/ext/v8/upstream/2.0.6/src/arm/register-allocator-arm.h +43 -0
  63. data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.cc +2264 -0
  64. data/ext/v8/upstream/2.0.6/src/arm/simulator-arm.h +306 -0
  65. data/ext/v8/upstream/2.0.6/src/arm/stub-cache-arm.cc +1516 -0
  66. data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.cc +412 -0
  67. data/ext/v8/upstream/2.0.6/src/arm/virtual-frame-arm.h +532 -0
  68. data/ext/v8/upstream/2.0.6/src/array.js +1154 -0
  69. data/ext/v8/upstream/2.0.6/src/assembler.cc +772 -0
  70. data/ext/v8/upstream/2.0.6/src/assembler.h +525 -0
  71. data/ext/v8/upstream/2.0.6/src/ast.cc +512 -0
  72. data/ext/v8/upstream/2.0.6/src/ast.h +1820 -0
  73. data/ext/v8/upstream/2.0.6/src/bootstrapper.cc +1680 -0
  74. data/ext/v8/upstream/2.0.6/src/bootstrapper.h +103 -0
  75. data/ext/v8/upstream/2.0.6/src/builtins.cc +851 -0
  76. data/ext/v8/upstream/2.0.6/src/builtins.h +245 -0
  77. data/ext/v8/upstream/2.0.6/src/bytecodes-irregexp.h +104 -0
  78. data/ext/v8/upstream/2.0.6/src/char-predicates-inl.h +86 -0
  79. data/ext/v8/upstream/2.0.6/src/char-predicates.h +65 -0
  80. data/ext/v8/upstream/2.0.6/src/checks.cc +100 -0
  81. data/ext/v8/upstream/2.0.6/src/checks.h +284 -0
  82. data/ext/v8/upstream/2.0.6/src/code-stubs.cc +164 -0
  83. data/ext/v8/upstream/2.0.6/src/code-stubs.h +164 -0
  84. data/ext/v8/upstream/2.0.6/src/code.h +68 -0
  85. data/ext/v8/upstream/2.0.6/src/codegen-inl.h +88 -0
  86. data/ext/v8/upstream/2.0.6/src/codegen.cc +504 -0
  87. data/ext/v8/upstream/2.0.6/src/codegen.h +522 -0
  88. data/ext/v8/upstream/2.0.6/src/compilation-cache.cc +490 -0
  89. data/ext/v8/upstream/2.0.6/src/compilation-cache.h +98 -0
  90. data/ext/v8/upstream/2.0.6/src/compiler.cc +1132 -0
  91. data/ext/v8/upstream/2.0.6/src/compiler.h +107 -0
  92. data/ext/v8/upstream/2.0.6/src/contexts.cc +256 -0
  93. data/ext/v8/upstream/2.0.6/src/contexts.h +345 -0
  94. data/ext/v8/upstream/2.0.6/src/conversions-inl.h +95 -0
  95. data/ext/v8/upstream/2.0.6/src/conversions.cc +709 -0
  96. data/ext/v8/upstream/2.0.6/src/conversions.h +118 -0
  97. data/ext/v8/upstream/2.0.6/src/counters.cc +78 -0
  98. data/ext/v8/upstream/2.0.6/src/counters.h +239 -0
  99. data/ext/v8/upstream/2.0.6/src/cpu.h +65 -0
  100. data/ext/v8/upstream/2.0.6/src/d8-debug.cc +345 -0
  101. data/ext/v8/upstream/2.0.6/src/d8-debug.h +155 -0
  102. data/ext/v8/upstream/2.0.6/src/d8-posix.cc +675 -0
  103. data/ext/v8/upstream/2.0.6/src/d8-readline.cc +128 -0
  104. data/ext/v8/upstream/2.0.6/src/d8-windows.cc +42 -0
  105. data/ext/v8/upstream/2.0.6/src/d8.cc +776 -0
  106. data/ext/v8/upstream/2.0.6/src/d8.h +225 -0
  107. data/ext/v8/upstream/2.0.6/src/d8.js +1625 -0
  108. data/ext/v8/upstream/2.0.6/src/date-delay.js +1138 -0
  109. data/ext/v8/upstream/2.0.6/src/dateparser-inl.h +114 -0
  110. data/ext/v8/upstream/2.0.6/src/dateparser.cc +186 -0
  111. data/ext/v8/upstream/2.0.6/src/dateparser.h +240 -0
  112. data/ext/v8/upstream/2.0.6/src/debug-agent.cc +425 -0
  113. data/ext/v8/upstream/2.0.6/src/debug-agent.h +129 -0
  114. data/ext/v8/upstream/2.0.6/src/debug-delay.js +2073 -0
  115. data/ext/v8/upstream/2.0.6/src/debug.cc +2751 -0
  116. data/ext/v8/upstream/2.0.6/src/debug.h +866 -0
  117. data/ext/v8/upstream/2.0.6/src/disasm.h +77 -0
  118. data/ext/v8/upstream/2.0.6/src/disassembler.cc +318 -0
  119. data/ext/v8/upstream/2.0.6/src/disassembler.h +56 -0
  120. data/ext/v8/upstream/2.0.6/src/dtoa-config.c +91 -0
  121. data/ext/v8/upstream/2.0.6/src/execution.cc +701 -0
  122. data/ext/v8/upstream/2.0.6/src/execution.h +312 -0
  123. data/ext/v8/upstream/2.0.6/src/factory.cc +957 -0
  124. data/ext/v8/upstream/2.0.6/src/factory.h +393 -0
  125. data/ext/v8/upstream/2.0.6/src/fast-codegen.cc +725 -0
  126. data/ext/v8/upstream/2.0.6/src/fast-codegen.h +371 -0
  127. data/ext/v8/upstream/2.0.6/src/flag-definitions.h +426 -0
  128. data/ext/v8/upstream/2.0.6/src/flags.cc +555 -0
  129. data/ext/v8/upstream/2.0.6/src/flags.h +81 -0
  130. data/ext/v8/upstream/2.0.6/src/frame-element.cc +45 -0
  131. data/ext/v8/upstream/2.0.6/src/frame-element.h +235 -0
  132. data/ext/v8/upstream/2.0.6/src/frames-inl.h +215 -0
  133. data/ext/v8/upstream/2.0.6/src/frames.cc +749 -0
  134. data/ext/v8/upstream/2.0.6/src/frames.h +659 -0
  135. data/ext/v8/upstream/2.0.6/src/func-name-inferrer.cc +76 -0
  136. data/ext/v8/upstream/2.0.6/src/func-name-inferrer.h +135 -0
  137. data/ext/v8/upstream/2.0.6/src/global-handles.cc +516 -0
  138. data/ext/v8/upstream/2.0.6/src/global-handles.h +180 -0
  139. data/ext/v8/upstream/2.0.6/src/globals.h +608 -0
  140. data/ext/v8/upstream/2.0.6/src/handles-inl.h +76 -0
  141. data/ext/v8/upstream/2.0.6/src/handles.cc +811 -0
  142. data/ext/v8/upstream/2.0.6/src/handles.h +367 -0
  143. data/ext/v8/upstream/2.0.6/src/hashmap.cc +226 -0
  144. data/ext/v8/upstream/2.0.6/src/hashmap.h +120 -0
  145. data/ext/v8/upstream/2.0.6/src/heap-inl.h +407 -0
  146. data/ext/v8/upstream/2.0.6/src/heap-profiler.cc +695 -0
  147. data/ext/v8/upstream/2.0.6/src/heap-profiler.h +277 -0
  148. data/ext/v8/upstream/2.0.6/src/heap.cc +4204 -0
  149. data/ext/v8/upstream/2.0.6/src/heap.h +1704 -0
  150. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32-inl.h +325 -0
  151. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.cc +2375 -0
  152. data/ext/v8/upstream/2.0.6/src/ia32/assembler-ia32.h +914 -0
  153. data/ext/v8/upstream/2.0.6/src/ia32/builtins-ia32.cc +1222 -0
  154. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32-inl.h +46 -0
  155. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.cc +9770 -0
  156. data/ext/v8/upstream/2.0.6/src/ia32/codegen-ia32.h +834 -0
  157. data/ext/v8/upstream/2.0.6/src/ia32/cpu-ia32.cc +79 -0
  158. data/ext/v8/upstream/2.0.6/src/ia32/debug-ia32.cc +208 -0
  159. data/ext/v8/upstream/2.0.6/src/ia32/disasm-ia32.cc +1357 -0
  160. data/ext/v8/upstream/2.0.6/src/ia32/fast-codegen-ia32.cc +1813 -0
  161. data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.cc +111 -0
  162. data/ext/v8/upstream/2.0.6/src/ia32/frames-ia32.h +135 -0
  163. data/ext/v8/upstream/2.0.6/src/ia32/ic-ia32.cc +1490 -0
  164. data/ext/v8/upstream/2.0.6/src/ia32/jump-target-ia32.cc +432 -0
  165. data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.cc +1517 -0
  166. data/ext/v8/upstream/2.0.6/src/ia32/macro-assembler-ia32.h +528 -0
  167. data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.cc +1219 -0
  168. data/ext/v8/upstream/2.0.6/src/ia32/regexp-macro-assembler-ia32.h +230 -0
  169. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32-inl.h +82 -0
  170. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.cc +99 -0
  171. data/ext/v8/upstream/2.0.6/src/ia32/register-allocator-ia32.h +43 -0
  172. data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.cc +30 -0
  173. data/ext/v8/upstream/2.0.6/src/ia32/simulator-ia32.h +62 -0
  174. data/ext/v8/upstream/2.0.6/src/ia32/stub-cache-ia32.cc +1961 -0
  175. data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.cc +1105 -0
  176. data/ext/v8/upstream/2.0.6/src/ia32/virtual-frame-ia32.h +580 -0
  177. data/ext/v8/upstream/2.0.6/src/ic-inl.h +93 -0
  178. data/ext/v8/upstream/2.0.6/src/ic.cc +1426 -0
  179. data/ext/v8/upstream/2.0.6/src/ic.h +443 -0
  180. data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.cc +646 -0
  181. data/ext/v8/upstream/2.0.6/src/interpreter-irregexp.h +48 -0
  182. data/ext/v8/upstream/2.0.6/src/json-delay.js +254 -0
  183. data/ext/v8/upstream/2.0.6/src/jsregexp.cc +5234 -0
  184. data/ext/v8/upstream/2.0.6/src/jsregexp.h +1439 -0
  185. data/ext/v8/upstream/2.0.6/src/jump-target-inl.h +49 -0
  186. data/ext/v8/upstream/2.0.6/src/jump-target.cc +383 -0
  187. data/ext/v8/upstream/2.0.6/src/jump-target.h +280 -0
  188. data/ext/v8/upstream/2.0.6/src/list-inl.h +166 -0
  189. data/ext/v8/upstream/2.0.6/src/list.h +158 -0
  190. data/ext/v8/upstream/2.0.6/src/log-inl.h +126 -0
  191. data/ext/v8/upstream/2.0.6/src/log-utils.cc +503 -0
  192. data/ext/v8/upstream/2.0.6/src/log-utils.h +292 -0
  193. data/ext/v8/upstream/2.0.6/src/log.cc +1457 -0
  194. data/ext/v8/upstream/2.0.6/src/log.h +371 -0
  195. data/ext/v8/upstream/2.0.6/src/macro-assembler.h +93 -0
  196. data/ext/v8/upstream/2.0.6/src/macros.py +137 -0
  197. data/ext/v8/upstream/2.0.6/src/mark-compact.cc +2007 -0
  198. data/ext/v8/upstream/2.0.6/src/mark-compact.h +442 -0
  199. data/ext/v8/upstream/2.0.6/src/math.js +263 -0
  200. data/ext/v8/upstream/2.0.6/src/memory.h +74 -0
  201. data/ext/v8/upstream/2.0.6/src/messages.cc +177 -0
  202. data/ext/v8/upstream/2.0.6/src/messages.h +112 -0
  203. data/ext/v8/upstream/2.0.6/src/messages.js +937 -0
  204. data/ext/v8/upstream/2.0.6/src/mirror-delay.js +2332 -0
  205. data/ext/v8/upstream/2.0.6/src/mksnapshot.cc +169 -0
  206. data/ext/v8/upstream/2.0.6/src/natives.h +63 -0
  207. data/ext/v8/upstream/2.0.6/src/objects-debug.cc +1317 -0
  208. data/ext/v8/upstream/2.0.6/src/objects-inl.h +3044 -0
  209. data/ext/v8/upstream/2.0.6/src/objects.cc +8306 -0
  210. data/ext/v8/upstream/2.0.6/src/objects.h +4960 -0
  211. data/ext/v8/upstream/2.0.6/src/oprofile-agent.cc +116 -0
  212. data/ext/v8/upstream/2.0.6/src/oprofile-agent.h +69 -0
  213. data/ext/v8/upstream/2.0.6/src/parser.cc +4810 -0
  214. data/ext/v8/upstream/2.0.6/src/parser.h +195 -0
  215. data/ext/v8/upstream/2.0.6/src/platform-freebsd.cc +645 -0
  216. data/ext/v8/upstream/2.0.6/src/platform-linux.cc +808 -0
  217. data/ext/v8/upstream/2.0.6/src/platform-macos.cc +643 -0
  218. data/ext/v8/upstream/2.0.6/src/platform-nullos.cc +454 -0
  219. data/ext/v8/upstream/2.0.6/src/platform-openbsd.cc +597 -0
  220. data/ext/v8/upstream/2.0.6/src/platform-posix.cc +380 -0
  221. data/ext/v8/upstream/2.0.6/src/platform-win32.cc +1908 -0
  222. data/ext/v8/upstream/2.0.6/src/platform.h +556 -0
  223. data/ext/v8/upstream/2.0.6/src/prettyprinter.cc +1511 -0
  224. data/ext/v8/upstream/2.0.6/src/prettyprinter.h +219 -0
  225. data/ext/v8/upstream/2.0.6/src/property.cc +96 -0
  226. data/ext/v8/upstream/2.0.6/src/property.h +327 -0
  227. data/ext/v8/upstream/2.0.6/src/regexp-delay.js +406 -0
  228. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp-inl.h +78 -0
  229. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.cc +464 -0
  230. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-irregexp.h +141 -0
  231. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.cc +356 -0
  232. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler-tracer.h +103 -0
  233. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.cc +240 -0
  234. data/ext/v8/upstream/2.0.6/src/regexp-macro-assembler.h +220 -0
  235. data/ext/v8/upstream/2.0.6/src/regexp-stack.cc +103 -0
  236. data/ext/v8/upstream/2.0.6/src/regexp-stack.h +123 -0
  237. data/ext/v8/upstream/2.0.6/src/register-allocator-inl.h +74 -0
  238. data/ext/v8/upstream/2.0.6/src/register-allocator.cc +100 -0
  239. data/ext/v8/upstream/2.0.6/src/register-allocator.h +295 -0
  240. data/ext/v8/upstream/2.0.6/src/rewriter.cc +855 -0
  241. data/ext/v8/upstream/2.0.6/src/rewriter.h +54 -0
  242. data/ext/v8/upstream/2.0.6/src/runtime.cc +8163 -0
  243. data/ext/v8/upstream/2.0.6/src/runtime.h +432 -0
  244. data/ext/v8/upstream/2.0.6/src/runtime.js +626 -0
  245. data/ext/v8/upstream/2.0.6/src/scanner.cc +1098 -0
  246. data/ext/v8/upstream/2.0.6/src/scanner.h +425 -0
  247. data/ext/v8/upstream/2.0.6/src/scopeinfo.cc +649 -0
  248. data/ext/v8/upstream/2.0.6/src/scopeinfo.h +236 -0
  249. data/ext/v8/upstream/2.0.6/src/scopes.cc +963 -0
  250. data/ext/v8/upstream/2.0.6/src/scopes.h +401 -0
  251. data/ext/v8/upstream/2.0.6/src/serialize.cc +1260 -0
  252. data/ext/v8/upstream/2.0.6/src/serialize.h +404 -0
  253. data/ext/v8/upstream/2.0.6/src/shell.h +55 -0
  254. data/ext/v8/upstream/2.0.6/src/simulator.h +41 -0
  255. data/ext/v8/upstream/2.0.6/src/smart-pointer.h +109 -0
  256. data/ext/v8/upstream/2.0.6/src/snapshot-common.cc +97 -0
  257. data/ext/v8/upstream/2.0.6/src/snapshot-empty.cc +40 -0
  258. data/ext/v8/upstream/2.0.6/src/snapshot.h +59 -0
  259. data/ext/v8/upstream/2.0.6/src/spaces-inl.h +372 -0
  260. data/ext/v8/upstream/2.0.6/src/spaces.cc +2864 -0
  261. data/ext/v8/upstream/2.0.6/src/spaces.h +2072 -0
  262. data/ext/v8/upstream/2.0.6/src/string-stream.cc +584 -0
  263. data/ext/v8/upstream/2.0.6/src/string-stream.h +189 -0
  264. data/ext/v8/upstream/2.0.6/src/string.js +901 -0
  265. data/ext/v8/upstream/2.0.6/src/stub-cache.cc +1108 -0
  266. data/ext/v8/upstream/2.0.6/src/stub-cache.h +578 -0
  267. data/ext/v8/upstream/2.0.6/src/third_party/dtoa/COPYING +15 -0
  268. data/ext/v8/upstream/2.0.6/src/third_party/dtoa/dtoa.c +3330 -0
  269. data/ext/v8/upstream/2.0.6/src/third_party/valgrind/valgrind.h +3925 -0
  270. data/ext/v8/upstream/2.0.6/src/token.cc +56 -0
  271. data/ext/v8/upstream/2.0.6/src/token.h +270 -0
  272. data/ext/v8/upstream/2.0.6/src/top.cc +991 -0
  273. data/ext/v8/upstream/2.0.6/src/top.h +459 -0
  274. data/ext/v8/upstream/2.0.6/src/unicode-inl.h +238 -0
  275. data/ext/v8/upstream/2.0.6/src/unicode.cc +749 -0
  276. data/ext/v8/upstream/2.0.6/src/unicode.h +279 -0
  277. data/ext/v8/upstream/2.0.6/src/uri.js +415 -0
  278. data/ext/v8/upstream/2.0.6/src/usage-analyzer.cc +426 -0
  279. data/ext/v8/upstream/2.0.6/src/usage-analyzer.h +40 -0
  280. data/ext/v8/upstream/2.0.6/src/utils.cc +322 -0
  281. data/ext/v8/upstream/2.0.6/src/utils.h +592 -0
  282. data/ext/v8/upstream/2.0.6/src/v8-counters.cc +55 -0
  283. data/ext/v8/upstream/2.0.6/src/v8-counters.h +198 -0
  284. data/ext/v8/upstream/2.0.6/src/v8.cc +193 -0
  285. data/ext/v8/upstream/2.0.6/src/v8.h +119 -0
  286. data/ext/v8/upstream/2.0.6/src/v8natives.js +846 -0
  287. data/ext/v8/upstream/2.0.6/src/v8threads.cc +450 -0
  288. data/ext/v8/upstream/2.0.6/src/v8threads.h +144 -0
  289. data/ext/v8/upstream/2.0.6/src/variables.cc +163 -0
  290. data/ext/v8/upstream/2.0.6/src/variables.h +235 -0
  291. data/ext/v8/upstream/2.0.6/src/version.cc +88 -0
  292. data/ext/v8/upstream/2.0.6/src/version.h +64 -0
  293. data/ext/v8/upstream/2.0.6/src/virtual-frame.cc +381 -0
  294. data/ext/v8/upstream/2.0.6/src/virtual-frame.h +44 -0
  295. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64-inl.h +352 -0
  296. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.cc +2539 -0
  297. data/ext/v8/upstream/2.0.6/src/x64/assembler-x64.h +1399 -0
  298. data/ext/v8/upstream/2.0.6/src/x64/builtins-x64.cc +1255 -0
  299. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64-inl.h +46 -0
  300. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.cc +8223 -0
  301. data/ext/v8/upstream/2.0.6/src/x64/codegen-x64.h +785 -0
  302. data/ext/v8/upstream/2.0.6/src/x64/cpu-x64.cc +79 -0
  303. data/ext/v8/upstream/2.0.6/src/x64/debug-x64.cc +202 -0
  304. data/ext/v8/upstream/2.0.6/src/x64/disasm-x64.cc +1596 -0
  305. data/ext/v8/upstream/2.0.6/src/x64/fast-codegen-x64.cc +1820 -0
  306. data/ext/v8/upstream/2.0.6/src/x64/frames-x64.cc +109 -0
  307. data/ext/v8/upstream/2.0.6/src/x64/frames-x64.h +121 -0
  308. data/ext/v8/upstream/2.0.6/src/x64/ic-x64.cc +1392 -0
  309. data/ext/v8/upstream/2.0.6/src/x64/jump-target-x64.cc +432 -0
  310. data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.cc +2409 -0
  311. data/ext/v8/upstream/2.0.6/src/x64/macro-assembler-x64.h +765 -0
  312. data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.cc +1337 -0
  313. data/ext/v8/upstream/2.0.6/src/x64/regexp-macro-assembler-x64.h +295 -0
  314. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64-inl.h +86 -0
  315. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.cc +84 -0
  316. data/ext/v8/upstream/2.0.6/src/x64/register-allocator-x64.h +43 -0
  317. data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.cc +27 -0
  318. data/ext/v8/upstream/2.0.6/src/x64/simulator-x64.h +63 -0
  319. data/ext/v8/upstream/2.0.6/src/x64/stub-cache-x64.cc +1884 -0
  320. data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.cc +1089 -0
  321. data/ext/v8/upstream/2.0.6/src/x64/virtual-frame-x64.h +560 -0
  322. data/ext/v8/upstream/2.0.6/src/zone-inl.h +297 -0
  323. data/ext/v8/upstream/2.0.6/src/zone.cc +193 -0
  324. data/ext/v8/upstream/2.0.6/src/zone.h +305 -0
  325. data/ext/v8/upstream/2.0.6/tools/codemap.js +258 -0
  326. data/ext/v8/upstream/2.0.6/tools/consarray.js +93 -0
  327. data/ext/v8/upstream/2.0.6/tools/csvparser.js +98 -0
  328. data/ext/v8/upstream/2.0.6/tools/gyp/v8.gyp +620 -0
  329. data/ext/v8/upstream/2.0.6/tools/js2c.py +376 -0
  330. data/ext/v8/upstream/2.0.6/tools/jsmin.py +280 -0
  331. data/ext/v8/upstream/2.0.6/tools/linux-tick-processor +24 -0
  332. data/ext/v8/upstream/2.0.6/tools/linux-tick-processor.py +78 -0
  333. data/ext/v8/upstream/2.0.6/tools/logreader.js +320 -0
  334. data/ext/v8/upstream/2.0.6/tools/mac-nm +18 -0
  335. data/ext/v8/upstream/2.0.6/tools/mac-tick-processor +6 -0
  336. data/ext/v8/upstream/2.0.6/tools/oprofile/annotate +7 -0
  337. data/ext/v8/upstream/2.0.6/tools/oprofile/common +19 -0
  338. data/ext/v8/upstream/2.0.6/tools/oprofile/dump +7 -0
  339. data/ext/v8/upstream/2.0.6/tools/oprofile/report +7 -0
  340. data/ext/v8/upstream/2.0.6/tools/oprofile/reset +7 -0
  341. data/ext/v8/upstream/2.0.6/tools/oprofile/run +14 -0
  342. data/ext/v8/upstream/2.0.6/tools/oprofile/shutdown +7 -0
  343. data/ext/v8/upstream/2.0.6/tools/oprofile/start +7 -0
  344. data/ext/v8/upstream/2.0.6/tools/presubmit.py +299 -0
  345. data/ext/v8/upstream/2.0.6/tools/process-heap-prof.py +120 -0
  346. data/ext/v8/upstream/2.0.6/tools/profile.js +621 -0
  347. data/ext/v8/upstream/2.0.6/tools/profile_view.js +224 -0
  348. data/ext/v8/upstream/2.0.6/tools/run-valgrind.py +77 -0
  349. data/ext/v8/upstream/2.0.6/tools/splaytree.js +322 -0
  350. data/ext/v8/upstream/2.0.6/tools/splaytree.py +226 -0
  351. data/ext/v8/upstream/2.0.6/tools/stats-viewer.py +456 -0
  352. data/ext/v8/upstream/2.0.6/tools/test.py +1370 -0
  353. data/ext/v8/upstream/2.0.6/tools/tickprocessor-driver.js +53 -0
  354. data/ext/v8/upstream/2.0.6/tools/tickprocessor.js +731 -0
  355. data/ext/v8/upstream/2.0.6/tools/tickprocessor.py +535 -0
  356. data/ext/v8/upstream/2.0.6/tools/utils.py +82 -0
  357. data/ext/v8/upstream/2.0.6/tools/visual_studio/README.txt +71 -0
  358. data/ext/v8/upstream/2.0.6/tools/visual_studio/arm.vsprops +14 -0
  359. data/ext/v8/upstream/2.0.6/tools/visual_studio/common.vsprops +35 -0
  360. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8.vcproj +199 -0
  361. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_arm.vcproj +199 -0
  362. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8_x64.vcproj +201 -0
  363. data/ext/v8/upstream/2.0.6/tools/visual_studio/d8js2c.cmd +6 -0
  364. data/ext/v8/upstream/2.0.6/tools/visual_studio/debug.vsprops +17 -0
  365. data/ext/v8/upstream/2.0.6/tools/visual_studio/ia32.vsprops +13 -0
  366. data/ext/v8/upstream/2.0.6/tools/visual_studio/js2c.cmd +6 -0
  367. data/ext/v8/upstream/2.0.6/tools/visual_studio/release.vsprops +24 -0
  368. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.sln +101 -0
  369. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8.vcproj +223 -0
  370. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.sln +74 -0
  371. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_arm.vcproj +223 -0
  372. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base.vcproj +971 -0
  373. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_arm.vcproj +983 -0
  374. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_base_x64.vcproj +959 -0
  375. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest.vcproj +255 -0
  376. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_arm.vcproj +243 -0
  377. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_cctest_x64.vcproj +257 -0
  378. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot.vcproj +151 -0
  379. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_mksnapshot_x64.vcproj +151 -0
  380. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample.vcproj +151 -0
  381. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_arm.vcproj +151 -0
  382. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_process_sample_x64.vcproj +151 -0
  383. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample.vcproj +151 -0
  384. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_arm.vcproj +151 -0
  385. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_shell_sample_x64.vcproj +153 -0
  386. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot.vcproj +142 -0
  387. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc.vcproj +92 -0
  388. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_cc_x64.vcproj +92 -0
  389. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_snapshot_x64.vcproj +142 -0
  390. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.sln +101 -0
  391. data/ext/v8/upstream/2.0.6/tools/visual_studio/v8_x64.vcproj +223 -0
  392. data/ext/v8/upstream/2.0.6/tools/visual_studio/x64.vsprops +13 -0
  393. data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.bat +5 -0
  394. data/ext/v8/upstream/2.0.6/tools/windows-tick-processor.py +137 -0
  395. data/ext/v8/upstream/Makefile +31 -0
  396. data/ext/v8/upstream/no-strict-aliasing.patch +13 -0
  397. data/ext/v8/upstream/scons/CHANGES.txt +5183 -0
  398. data/ext/v8/upstream/scons/LICENSE.txt +20 -0
  399. data/ext/v8/upstream/scons/MANIFEST +202 -0
  400. data/ext/v8/upstream/scons/PKG-INFO +13 -0
  401. data/ext/v8/upstream/scons/README.txt +273 -0
  402. data/ext/v8/upstream/scons/RELEASE.txt +1040 -0
  403. data/ext/v8/upstream/scons/engine/SCons/Action.py +1256 -0
  404. data/ext/v8/upstream/scons/engine/SCons/Builder.py +868 -0
  405. data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +217 -0
  406. data/ext/v8/upstream/scons/engine/SCons/Conftest.py +794 -0
  407. data/ext/v8/upstream/scons/engine/SCons/Debug.py +237 -0
  408. data/ext/v8/upstream/scons/engine/SCons/Defaults.py +485 -0
  409. data/ext/v8/upstream/scons/engine/SCons/Environment.py +2327 -0
  410. data/ext/v8/upstream/scons/engine/SCons/Errors.py +207 -0
  411. data/ext/v8/upstream/scons/engine/SCons/Executor.py +636 -0
  412. data/ext/v8/upstream/scons/engine/SCons/Job.py +435 -0
  413. data/ext/v8/upstream/scons/engine/SCons/Memoize.py +292 -0
  414. data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +153 -0
  415. data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +3220 -0
  416. data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +128 -0
  417. data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +1341 -0
  418. data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +50 -0
  419. data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +50 -0
  420. data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +50 -0
  421. data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +50 -0
  422. data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +76 -0
  423. data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +74 -0
  424. data/ext/v8/upstream/scons/engine/SCons/PathList.py +232 -0
  425. data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +236 -0
  426. data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +70 -0
  427. data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +55 -0
  428. data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +46 -0
  429. data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +46 -0
  430. data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +44 -0
  431. data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +58 -0
  432. data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +264 -0
  433. data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +50 -0
  434. data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +386 -0
  435. data/ext/v8/upstream/scons/engine/SCons/SConf.py +1038 -0
  436. data/ext/v8/upstream/scons/engine/SCons/SConsign.py +381 -0
  437. data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +132 -0
  438. data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +74 -0
  439. data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +111 -0
  440. data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +320 -0
  441. data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +48 -0
  442. data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +378 -0
  443. data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +103 -0
  444. data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +55 -0
  445. data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +415 -0
  446. data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +386 -0
  447. data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +1360 -0
  448. data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +944 -0
  449. data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +642 -0
  450. data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +414 -0
  451. data/ext/v8/upstream/scons/engine/SCons/Sig.py +63 -0
  452. data/ext/v8/upstream/scons/engine/SCons/Subst.py +911 -0
  453. data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +1030 -0
  454. data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +61 -0
  455. data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +65 -0
  456. data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +73 -0
  457. data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +247 -0
  458. data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +324 -0
  459. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +56 -0
  460. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +61 -0
  461. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +210 -0
  462. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +84 -0
  463. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +321 -0
  464. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +367 -0
  465. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +497 -0
  466. data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +104 -0
  467. data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +138 -0
  468. data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +64 -0
  469. data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +64 -0
  470. data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +71 -0
  471. data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +675 -0
  472. data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +82 -0
  473. data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +74 -0
  474. data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +80 -0
  475. data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +76 -0
  476. data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +71 -0
  477. data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +63 -0
  478. data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +78 -0
  479. data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +82 -0
  480. data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +99 -0
  481. data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +114 -0
  482. data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +58 -0
  483. data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +50 -0
  484. data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +224 -0
  485. data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +64 -0
  486. data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +125 -0
  487. data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +94 -0
  488. data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +62 -0
  489. data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +62 -0
  490. data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +63 -0
  491. data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +98 -0
  492. data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +63 -0
  493. data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +90 -0
  494. data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +73 -0
  495. data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +53 -0
  496. data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +80 -0
  497. data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +64 -0
  498. data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +63 -0
  499. data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +81 -0
  500. data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +85 -0
  501. data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +53 -0
  502. data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +77 -0
  503. data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +59 -0
  504. data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +52 -0
  505. data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +72 -0
  506. data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +90 -0
  507. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +59 -0
  508. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +60 -0
  509. data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +229 -0
  510. data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +490 -0
  511. data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +71 -0
  512. data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +110 -0
  513. data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +234 -0
  514. data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +138 -0
  515. data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +79 -0
  516. data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +99 -0
  517. data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +121 -0
  518. data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +112 -0
  519. data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +63 -0
  520. data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +77 -0
  521. data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +90 -0
  522. data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +159 -0
  523. data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +64 -0
  524. data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +266 -0
  525. data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +50 -0
  526. data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +269 -0
  527. data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +1439 -0
  528. data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +208 -0
  529. data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +107 -0
  530. data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +72 -0
  531. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +314 -0
  532. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +185 -0
  533. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +526 -0
  534. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +367 -0
  535. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +43 -0
  536. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +43 -0
  537. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +43 -0
  538. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +44 -0
  539. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +44 -0
  540. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +44 -0
  541. data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +78 -0
  542. data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +83 -0
  543. data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +108 -0
  544. data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +336 -0
  545. data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +121 -0
  546. data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +70 -0
  547. data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +132 -0
  548. data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +68 -0
  549. data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +58 -0
  550. data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +53 -0
  551. data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +63 -0
  552. data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +67 -0
  553. data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +142 -0
  554. data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +58 -0
  555. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +63 -0
  556. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +64 -0
  557. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +64 -0
  558. data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +77 -0
  559. data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +186 -0
  560. data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +73 -0
  561. data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +805 -0
  562. data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +175 -0
  563. data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +53 -0
  564. data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +100 -0
  565. data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +131 -0
  566. data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +100 -0
  567. data/ext/v8/upstream/scons/engine/SCons/Util.py +1645 -0
  568. data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +91 -0
  569. data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +107 -0
  570. data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +139 -0
  571. data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +109 -0
  572. data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +147 -0
  573. data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +317 -0
  574. data/ext/v8/upstream/scons/engine/SCons/Warnings.py +228 -0
  575. data/ext/v8/upstream/scons/engine/SCons/__init__.py +49 -0
  576. data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +302 -0
  577. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +98 -0
  578. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +91 -0
  579. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +124 -0
  580. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +1725 -0
  581. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +583 -0
  582. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +176 -0
  583. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +325 -0
  584. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +1296 -0
  585. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +382 -0
  586. data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +187 -0
  587. data/ext/v8/upstream/scons/engine/SCons/cpp.py +598 -0
  588. data/ext/v8/upstream/scons/engine/SCons/dblite.py +248 -0
  589. data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +77 -0
  590. data/ext/v8/upstream/scons/os_spawnv_fix.diff +83 -0
  591. data/ext/v8/upstream/scons/scons-time.1 +1017 -0
  592. data/ext/v8/upstream/scons/scons.1 +15179 -0
  593. data/ext/v8/upstream/scons/sconsign.1 +208 -0
  594. data/ext/v8/upstream/scons/script/scons +184 -0
  595. data/ext/v8/upstream/scons/script/scons-time +1529 -0
  596. data/ext/v8/upstream/scons/script/scons.bat +31 -0
  597. data/ext/v8/upstream/scons/script/sconsign +508 -0
  598. data/ext/v8/upstream/scons/setup.cfg +6 -0
  599. data/ext/v8/upstream/scons/setup.py +427 -0
  600. data/ext/v8/v8.cpp +89 -0
  601. data/ext/v8/v8_cxt.cpp +92 -0
  602. data/ext/v8/v8_cxt.h +20 -0
  603. data/ext/v8/v8_func.cpp +10 -0
  604. data/ext/v8/v8_func.h +11 -0
  605. data/ext/v8/v8_msg.cpp +54 -0
  606. data/ext/v8/v8_msg.h +18 -0
  607. data/ext/v8/v8_obj.cpp +52 -0
  608. data/ext/v8/v8_obj.h +13 -0
  609. data/ext/v8/v8_ref.cpp +26 -0
  610. data/ext/v8/v8_ref.h +31 -0
  611. data/ext/v8/v8_script.cpp +20 -0
  612. data/ext/v8/v8_script.h +8 -0
  613. data/ext/v8/v8_standalone.cpp +69 -0
  614. data/ext/v8/v8_standalone.h +31 -0
  615. data/ext/v8/v8_str.cpp +17 -0
  616. data/ext/v8/v8_str.h +9 -0
  617. data/ext/v8/v8_template.cpp +53 -0
  618. data/ext/v8/v8_template.h +13 -0
  619. data/lib/v8.rb +10 -0
  620. data/lib/v8/context.rb +101 -0
  621. data/lib/v8/object.rb +38 -0
  622. data/lib/v8/to.rb +33 -0
  623. data/lib/v8/v8.so +0 -0
  624. data/script/console +10 -0
  625. data/script/destroy +14 -0
  626. data/script/generate +14 -0
  627. data/spec/ext/cxt_spec.rb +25 -0
  628. data/spec/ext/obj_spec.rb +13 -0
  629. data/spec/redjs/jsapi_spec.rb +405 -0
  630. data/spec/redjs/tap.rb +8 -0
  631. data/spec/redjs_helper.rb +3 -0
  632. data/spec/spec.opts +1 -0
  633. data/spec/spec_helper.rb +14 -0
  634. data/spec/v8/to_spec.rb +15 -0
  635. data/tasks/rspec.rake +21 -0
  636. data/therubyracer.gemspec +680 -0
  637. metadata +697 -0
@@ -0,0 +1,248 @@
1
+ # dblite.py module contributed by Ralf W. Grosse-Kunstleve.
2
+ # Extended for Unicode by Steven Knight.
3
+
4
+ import cPickle
5
+ import time
6
+ import shutil
7
+ import os
8
+ import types
9
+ import __builtin__
10
+
11
+ keep_all_files = 00000
12
+ ignore_corrupt_dbfiles = 0
13
+
14
+ def corruption_warning(filename):
15
+ print "Warning: Discarding corrupt database:", filename
16
+
17
+ if hasattr(types, 'UnicodeType'):
18
+ def is_string(s):
19
+ t = type(s)
20
+ return t is types.StringType or t is types.UnicodeType
21
+ else:
22
+ def is_string(s):
23
+ return type(s) is types.StringType
24
+
25
+ try:
26
+ unicode('a')
27
+ except NameError:
28
+ def unicode(s): return s
29
+
30
+ dblite_suffix = '.dblite'
31
+ tmp_suffix = '.tmp'
32
+
33
+ class dblite:
34
+
35
+ # Squirrel away references to the functions in various modules
36
+ # that we'll use when our __del__() method calls our sync() method
37
+ # during shutdown. We might get destroyed when Python is in the midst
38
+ # of tearing down the different modules we import in an essentially
39
+ # arbitrary order, and some of the various modules's global attributes
40
+ # may already be wiped out from under us.
41
+ #
42
+ # See the discussion at:
43
+ # http://mail.python.org/pipermail/python-bugs-list/2003-March/016877.html
44
+
45
+ _open = __builtin__.open
46
+ _cPickle_dump = cPickle.dump
47
+ _os_chmod = os.chmod
48
+ try:
49
+ _os_chown = os.chown
50
+ except AttributeError:
51
+ _os_chown = None
52
+ _os_rename = os.rename
53
+ _os_unlink = os.unlink
54
+ _shutil_copyfile = shutil.copyfile
55
+ _time_time = time.time
56
+
57
+ def __init__(self, file_base_name, flag, mode):
58
+ assert flag in (None, "r", "w", "c", "n")
59
+ if (flag is None): flag = "r"
60
+ base, ext = os.path.splitext(file_base_name)
61
+ if ext == dblite_suffix:
62
+ # There's already a suffix on the file name, don't add one.
63
+ self._file_name = file_base_name
64
+ self._tmp_name = base + tmp_suffix
65
+ else:
66
+ self._file_name = file_base_name + dblite_suffix
67
+ self._tmp_name = file_base_name + tmp_suffix
68
+ self._flag = flag
69
+ self._mode = mode
70
+ self._dict = {}
71
+ self._needs_sync = 00000
72
+ if self._os_chown is not None and (os.geteuid()==0 or os.getuid()==0):
73
+ # running as root; chown back to current owner/group when done
74
+ try:
75
+ statinfo = os.stat(self._file_name)
76
+ self._chown_to = statinfo.st_uid
77
+ self._chgrp_to = statinfo.st_gid
78
+ except OSError, e:
79
+ # db file doesn't exist yet.
80
+ # Check os.environ for SUDO_UID, use if set
81
+ self._chown_to = int(os.environ.get('SUDO_UID', -1))
82
+ self._chgrp_to = int(os.environ.get('SUDO_GID', -1))
83
+ else:
84
+ self._chown_to = -1 # don't chown
85
+ self._chgrp_to = -1 # don't chgrp
86
+ if (self._flag == "n"):
87
+ self._open(self._file_name, "wb", self._mode)
88
+ else:
89
+ try:
90
+ f = self._open(self._file_name, "rb")
91
+ except IOError, e:
92
+ if (self._flag != "c"):
93
+ raise e
94
+ self._open(self._file_name, "wb", self._mode)
95
+ else:
96
+ p = f.read()
97
+ if (len(p) > 0):
98
+ try:
99
+ self._dict = cPickle.loads(p)
100
+ except (cPickle.UnpicklingError, EOFError):
101
+ if (ignore_corrupt_dbfiles == 0): raise
102
+ if (ignore_corrupt_dbfiles == 1):
103
+ corruption_warning(self._file_name)
104
+
105
+ def __del__(self):
106
+ if (self._needs_sync):
107
+ self.sync()
108
+
109
+ def sync(self):
110
+ self._check_writable()
111
+ f = self._open(self._tmp_name, "wb", self._mode)
112
+ self._cPickle_dump(self._dict, f, 1)
113
+ f.close()
114
+ # Windows doesn't allow renaming if the file exists, so unlink
115
+ # it first, chmod'ing it to make sure we can do so. On UNIX, we
116
+ # may not be able to chmod the file if it's owned by someone else
117
+ # (e.g. from a previous run as root). We should still be able to
118
+ # unlink() the file if the directory's writable, though, so ignore
119
+ # any OSError exception thrown by the chmod() call.
120
+ try: self._os_chmod(self._file_name, 0777)
121
+ except OSError: pass
122
+ self._os_unlink(self._file_name)
123
+ self._os_rename(self._tmp_name, self._file_name)
124
+ if self._os_chown is not None and self._chown_to > 0: # don't chown to root or -1
125
+ try:
126
+ self._os_chown(self._file_name, self._chown_to, self._chgrp_to)
127
+ except OSError:
128
+ pass
129
+ self._needs_sync = 00000
130
+ if (keep_all_files):
131
+ self._shutil_copyfile(
132
+ self._file_name,
133
+ self._file_name + "_" + str(int(self._time_time())))
134
+
135
+ def _check_writable(self):
136
+ if (self._flag == "r"):
137
+ raise IOError("Read-only database: %s" % self._file_name)
138
+
139
+ def __getitem__(self, key):
140
+ return self._dict[key]
141
+
142
+ def __setitem__(self, key, value):
143
+ self._check_writable()
144
+ if (not is_string(key)):
145
+ raise TypeError, "key `%s' must be a string but is %s" % (key, type(key))
146
+ if (not is_string(value)):
147
+ raise TypeError, "value `%s' must be a string but is %s" % (value, type(value))
148
+ self._dict[key] = value
149
+ self._needs_sync = 0001
150
+
151
+ def keys(self):
152
+ return self._dict.keys()
153
+
154
+ def has_key(self, key):
155
+ return key in self._dict
156
+
157
+ def __contains__(self, key):
158
+ return key in self._dict
159
+
160
+ def iterkeys(self):
161
+ return self._dict.iterkeys()
162
+
163
+ __iter__ = iterkeys
164
+
165
+ def __len__(self):
166
+ return len(self._dict)
167
+
168
+ def open(file, flag=None, mode=0666):
169
+ return dblite(file, flag, mode)
170
+
171
+ def _exercise():
172
+ db = open("tmp", "n")
173
+ assert len(db) == 0
174
+ db["foo"] = "bar"
175
+ assert db["foo"] == "bar"
176
+ db[unicode("ufoo")] = unicode("ubar")
177
+ assert db[unicode("ufoo")] == unicode("ubar")
178
+ db.sync()
179
+ db = open("tmp", "c")
180
+ assert len(db) == 2, len(db)
181
+ assert db["foo"] == "bar"
182
+ db["bar"] = "foo"
183
+ assert db["bar"] == "foo"
184
+ db[unicode("ubar")] = unicode("ufoo")
185
+ assert db[unicode("ubar")] == unicode("ufoo")
186
+ db.sync()
187
+ db = open("tmp", "r")
188
+ assert len(db) == 4, len(db)
189
+ assert db["foo"] == "bar"
190
+ assert db["bar"] == "foo"
191
+ assert db[unicode("ufoo")] == unicode("ubar")
192
+ assert db[unicode("ubar")] == unicode("ufoo")
193
+ try:
194
+ db.sync()
195
+ except IOError, e:
196
+ assert str(e) == "Read-only database: tmp.dblite"
197
+ else:
198
+ raise RuntimeError, "IOError expected."
199
+ db = open("tmp", "w")
200
+ assert len(db) == 4
201
+ db["ping"] = "pong"
202
+ db.sync()
203
+ try:
204
+ db[(1,2)] = "tuple"
205
+ except TypeError, e:
206
+ assert str(e) == "key `(1, 2)' must be a string but is <type 'tuple'>", str(e)
207
+ else:
208
+ raise RuntimeError, "TypeError exception expected"
209
+ try:
210
+ db["list"] = [1,2]
211
+ except TypeError, e:
212
+ assert str(e) == "value `[1, 2]' must be a string but is <type 'list'>", str(e)
213
+ else:
214
+ raise RuntimeError, "TypeError exception expected"
215
+ db = open("tmp", "r")
216
+ assert len(db) == 5
217
+ db = open("tmp", "n")
218
+ assert len(db) == 0
219
+ _open("tmp.dblite", "w")
220
+ db = open("tmp", "r")
221
+ _open("tmp.dblite", "w").write("x")
222
+ try:
223
+ db = open("tmp", "r")
224
+ except cPickle.UnpicklingError:
225
+ pass
226
+ else:
227
+ raise RuntimeError, "cPickle exception expected."
228
+ global ignore_corrupt_dbfiles
229
+ ignore_corrupt_dbfiles = 2
230
+ db = open("tmp", "r")
231
+ assert len(db) == 0
232
+ os.unlink("tmp.dblite")
233
+ try:
234
+ db = open("tmp", "w")
235
+ except IOError, e:
236
+ assert str(e) == "[Errno 2] No such file or directory: 'tmp.dblite'", str(e)
237
+ else:
238
+ raise RuntimeError, "IOError expected."
239
+ print "OK"
240
+
241
+ if (__name__ == "__main__"):
242
+ _exercise()
243
+
244
+ # Local Variables:
245
+ # tab-width:4
246
+ # indent-tabs-mode:nil
247
+ # End:
248
+ # vim: set expandtab tabstop=4 shiftwidth=4:
@@ -0,0 +1,77 @@
1
+ """SCons.exitfuncs
2
+
3
+ Register functions which are executed when SCons exits for any reason.
4
+
5
+ """
6
+
7
+ #
8
+ # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
9
+ #
10
+ # Permission is hereby granted, free of charge, to any person obtaining
11
+ # a copy of this software and associated documentation files (the
12
+ # "Software"), to deal in the Software without restriction, including
13
+ # without limitation the rights to use, copy, modify, merge, publish,
14
+ # distribute, sublicense, and/or sell copies of the Software, and to
15
+ # permit persons to whom the Software is furnished to do so, subject to
16
+ # the following conditions:
17
+ #
18
+ # The above copyright notice and this permission notice shall be included
19
+ # in all copies or substantial portions of the Software.
20
+ #
21
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
22
+ # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
23
+ # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ #
29
+
30
+ __revision__ = "src/engine/SCons/exitfuncs.py 4629 2010/01/17 22:23:21 scons"
31
+
32
+
33
+
34
+ _exithandlers = []
35
+ def _run_exitfuncs():
36
+ """run any registered exit functions
37
+
38
+ _exithandlers is traversed in reverse order so functions are executed
39
+ last in, first out.
40
+ """
41
+
42
+ while _exithandlers:
43
+ func, targs, kargs = _exithandlers.pop()
44
+ apply(func, targs, kargs)
45
+
46
+ def register(func, *targs, **kargs):
47
+ """register a function to be executed upon normal program termination
48
+
49
+ func - function to be called at exit
50
+ targs - optional arguments to pass to func
51
+ kargs - optional keyword arguments to pass to func
52
+ """
53
+ _exithandlers.append((func, targs, kargs))
54
+
55
+ import sys
56
+
57
+ try:
58
+ x = sys.exitfunc
59
+
60
+ # if x isn't our own exit func executive, assume it's another
61
+ # registered exit function - append it to our list...
62
+ if x != _run_exitfuncs:
63
+ register(x)
64
+
65
+ except AttributeError:
66
+ pass
67
+
68
+ # make our exit function get run by python when it exits:
69
+ sys.exitfunc = _run_exitfuncs
70
+
71
+ del sys
72
+
73
+ # Local Variables:
74
+ # tab-width:4
75
+ # indent-tabs-mode:nil
76
+ # End:
77
+ # vim: set expandtab tabstop=4 shiftwidth=4:
@@ -0,0 +1,83 @@
1
+ ? dist/src/Mac/IDE scripts/Hold option to open a script
2
+ ? dist/src/Mac/IDE scripts/Insert file name
3
+ ? dist/src/Mac/IDE scripts/Insert folder name
4
+ ? dist/src/Mac/IDE scripts/Search Python Documentation
5
+ ? dist/src/Mac/IDE scripts/Hack/Remove .pyc files
6
+ ? dist/src/Mac/IDE scripts/Hack/Toolbox Assistant
7
+ Index: dist/src/Modules/posixmodule.c
8
+ ===================================================================
9
+ RCS file: /cvsroot/python/python/dist/src/Modules/posixmodule.c,v
10
+ retrieving revision 2.213
11
+ diff -c -c -r2.213 posixmodule.c
12
+ *** dist/src/Modules/posixmodule.c 2001/12/03 20:41:00 2.213
13
+ --- dist/src/Modules/posixmodule.c 2001/12/05 00:52:58
14
+ ***************
15
+ *** 1668,1674 ****
16
+ #ifdef HAVE_SPAWNV
17
+ static char posix_spawnv__doc__[] =
18
+ "spawnv(mode, path, args)\n\
19
+ ! Execute an executable path with arguments, replacing current process.\n\
20
+ \n\
21
+ mode: mode of process creation\n\
22
+ path: path of executable file\n\
23
+ --- 1668,1674 ----
24
+ #ifdef HAVE_SPAWNV
25
+ static char posix_spawnv__doc__[] =
26
+ "spawnv(mode, path, args)\n\
27
+ ! Execute the program 'path' in a new process.\n\
28
+ \n\
29
+ mode: mode of process creation\n\
30
+ path: path of executable file\n\
31
+ ***************
32
+ *** 1717,1724 ****
33
+
34
+ if (mode == _OLD_P_OVERLAY)
35
+ mode = _P_OVERLAY;
36
+ spawnval = _spawnv(mode, path, argvlist);
37
+ !
38
+ PyMem_DEL(argvlist);
39
+
40
+ if (spawnval == -1)
41
+ --- 1717,1727 ----
42
+
43
+ if (mode == _OLD_P_OVERLAY)
44
+ mode = _P_OVERLAY;
45
+ +
46
+ + Py_BEGIN_ALLOW_THREADS
47
+ spawnval = _spawnv(mode, path, argvlist);
48
+ ! Py_END_ALLOW_THREADS
49
+ !
50
+ PyMem_DEL(argvlist);
51
+
52
+ if (spawnval == -1)
53
+ ***************
54
+ *** 1734,1740 ****
55
+
56
+ static char posix_spawnve__doc__[] =
57
+ "spawnve(mode, path, args, env)\n\
58
+ ! Execute a path with arguments and environment, replacing current process.\n\
59
+ \n\
60
+ mode: mode of process creation\n\
61
+ path: path of executable file\n\
62
+ --- 1737,1743 ----
63
+
64
+ static char posix_spawnve__doc__[] =
65
+ "spawnve(mode, path, args, env)\n\
66
+ ! Execute the program 'path' in a new process.\n\
67
+ \n\
68
+ mode: mode of process creation\n\
69
+ path: path of executable file\n\
70
+ ***************
71
+ *** 1830,1836 ****
72
+ --- 1833,1843 ----
73
+
74
+ if (mode == _OLD_P_OVERLAY)
75
+ mode = _P_OVERLAY;
76
+ +
77
+ + Py_BEGIN_ALLOW_THREADS
78
+ spawnval = _spawnve(mode, path, argvlist, envlist);
79
+ + Py_END_ALLOW_THREADS
80
+ +
81
+ if (spawnval == -1)
82
+ (void) posix_error();
83
+ else
@@ -0,0 +1,1017 @@
1
+ .\" Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
2
+ .\"
3
+ .\" Permission is hereby granted, free of charge, to any person obtaining
4
+ .\" a copy of this software and associated documentation files (the
5
+ .\" "Software"), to deal in the Software without restriction, including
6
+ .\" without limitation the rights to use, copy, modify, merge, publish,
7
+ .\" distribute, sublicense, and/or sell copies of the Software, and to
8
+ .\" permit persons to whom the Software is furnished to do so, subject to
9
+ .\" the following conditions:
10
+ .\"
11
+ .\" The above copyright notice and this permission notice shall be included
12
+ .\" in all copies or substantial portions of the Software.
13
+ .\"
14
+ .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
15
+ .\" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
16
+ .\" WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ .\" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ .\" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ .\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ .\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+ .\"
22
+ .\" doc/man/scons-time.1 4629 2010/01/17 22:23:21 scons
23
+ .\"
24
+ .\" ES - Example Start - indents and turns off line fill
25
+ .de ES
26
+ .RS
27
+ .nf
28
+ ..
29
+ .\" EE - Example End - ends indent and turns line fill back on
30
+ .de EE
31
+ .RE
32
+ .fi
33
+ ..
34
+ '\"==========================================================================
35
+ .de SF
36
+ .B scons-time func
37
+ [\fB-h\fR]
38
+ [\fB--chdir=\fIDIR\fR]
39
+ [\fB-f \fIFILE\fR]
40
+ [\fB--fmt=\fIFORMAT\fR]
41
+ [\fB--func=\fINAME\fR]
42
+ [\fB-p \fISTRING\fR]
43
+ [\fB-t \fINUMBER\fR]
44
+ [\fB--title= TITLE\fR]
45
+ [\fIARGUMENTS\fR]
46
+ ..
47
+ '\"--------------------------------------------------------------------------
48
+ .de SY
49
+ .B scons-time mem
50
+ [\fB-h\fR]
51
+ [\fB--chdir=\fIDIR\fR]
52
+ [\fB-f \fIFILE\fR]
53
+ [\fB--fmt=\fIFORMAT\fR]
54
+ [\fB-p \fISTRING\fR]
55
+ [\fB--stage=\fISTAGE\fR]
56
+ [\fB-t \fINUMBER\fR]
57
+ [\fB--title=\fITITLE\fR]
58
+ [\fIARGUMENTS\fR]
59
+ ..
60
+ '\"--------------------------------------------------------------------------
61
+ .de SO
62
+ .B scons-time obj
63
+ [\fB-h\fR]
64
+ [\fB--chdir=\fIDIR\fR]
65
+ [\fB-f \fIFILE\fR]
66
+ [\fB--fmt=\fIFORMAT\fR]
67
+ [\fB-p \fISTRING\fR]
68
+ [\fB--stage=\fISTAGE\fR]
69
+ [\fB-t \fINUMBER\fR]
70
+ [\fB--title=\fITITLE\fR]
71
+ [\fIARGUMENTS\fR]
72
+ ..
73
+ '\"--------------------------------------------------------------------------
74
+ .de SR
75
+ .B scons-time run
76
+ [\fB-hnqv\fR]
77
+ [\fB--aegis=\fIPROJECT\fR]
78
+ [\fB-f \fIFILE\fR]
79
+ [\fB--number=\fINUMBER\fR]
80
+ [\fB--outdir=\fIOUTDIR\fR]
81
+ [\fB-p \fISTRING\fR]
82
+ [\fB--python=\fIPYTHON\fR]
83
+ [\fB-s \fIDIR\fR]
84
+ [\fB--scons=\fISCONS\fR]
85
+ [\fB--svn=\fIURL\fR]
86
+ [\fIARGUMENTS\fR]
87
+ ..
88
+ '\"--------------------------------------------------------------------------
89
+ .de ST
90
+ .B scons-time time
91
+ [\fB-h\fR]
92
+ [\fB--chdir=\fIDIR\fR]
93
+ [\fB-f \fIFILE\fR]
94
+ [\fB--fmt=\fIFORMAT\fR]
95
+ [\fB-p \fISTRING\fR]
96
+ [\fB-t \fINUMBER\fR]
97
+ [\fB--title=\fITITLE\fR]
98
+ [\fB--which=\fIWHICH\fR]
99
+ [\fIARGUMENTS\fR]
100
+ ..
101
+ .TH SCONS-TIME 1 "January 2010"
102
+ .SH NAME
103
+ scons-time \- generate and display SCons timing information
104
+ '\"==========================================================================
105
+ .SH SYNOPSIS
106
+ .B scons-time
107
+ .IR subcommand
108
+ [
109
+ .IR options ...
110
+ ]
111
+ [
112
+ .IR arguments ...
113
+ ]
114
+ '\"--------------------------------------------------------------------------
115
+ .SS "Generating Timing Information"
116
+ .SR
117
+ '\"--------------------------------------------------------------------------
118
+ .SS "Extracting Function Timings"
119
+ .SF
120
+ '\"--------------------------------------------------------------------------
121
+ .SS "Extracting Memory Statistics"
122
+ .SY
123
+ '\"--------------------------------------------------------------------------
124
+ .SS "Extracting Object Counts"
125
+ .SO
126
+ '\"--------------------------------------------------------------------------
127
+ .SS "Extracting Execution Times"
128
+ .ST
129
+ '\"--------------------------------------------------------------------------
130
+ .SS "Help Text"
131
+ .B scons-time help
132
+ .I SUBCOMMAND
133
+ [...]
134
+ '\"==========================================================================
135
+ .SH DESCRIPTION
136
+ The
137
+ .B scons-time
138
+ command runs an SCons configuration
139
+ through a standard set of profiled timings
140
+ and can extract and graph information from the
141
+ resulting profiles and log files of those timings.
142
+ The action to be performed by the
143
+ .B scons-time
144
+ script is specified
145
+ by a subcommand, the first argument on the command line.
146
+ See the
147
+ .B SUBCOMMANDS
148
+ section below for information about the operation
149
+ of specific subcommands.
150
+ .P
151
+ The basic way to use
152
+ .B scons-time
153
+ is to run the
154
+ .B scons-time run
155
+ subcommand
156
+ (possibly multiple times)
157
+ to generate profile and log file output,
158
+ and then use one of the other
159
+ subcommands to display the results
160
+ captured in the profiles and log files
161
+ for a particular kind of information:
162
+ function timings
163
+ (the
164
+ .B scons-time func
165
+ subcommand),
166
+ total memory used
167
+ (the
168
+ .B scons-time mem
169
+ subcommand),
170
+ object counts
171
+ (the
172
+ .B scons-time obj
173
+ subcommand)
174
+ and overall execution time
175
+ (the
176
+ .B scons-time time
177
+ subcommand).
178
+ Options exist to place and find the
179
+ profiles and log files in separate directories,
180
+ to generate the output in a format suitable
181
+ for graphing with the
182
+ .BR gnuplot (1)
183
+ program,
184
+ and so on.
185
+ .P
186
+ There are two basic ways the
187
+ .B scons-time run
188
+ subcommand
189
+ is intended to be used
190
+ to gather timing statistics
191
+ for a configuration.
192
+ One is to use the
193
+ .B --svn=
194
+ option to test a configuration against
195
+ a list of revisions from the SCons Subversion repository.
196
+ This will generate a profile and timing log file
197
+ for every revision listed with the
198
+ .B --number=
199
+ option,
200
+ and can be used to look at the
201
+ impact of commited changes to the
202
+ SCons code base on a particular
203
+ configuration over time.
204
+ .P
205
+ The other way is to profile incremental changes to a
206
+ local SCons code base during a development cycle--that is,
207
+ to look at the performance impact of changes
208
+ you're making in the local tree.
209
+ In this mode,
210
+ you run the
211
+ .B scons-time run
212
+ subcommand
213
+ .I without
214
+ the
215
+ .B --svn=
216
+ option,
217
+ in which case it simply looks in the profile/log file output directory
218
+ (the current directory by default)
219
+ and automatically figures out the
220
+ .I next
221
+ run number for the output profile and log file.
222
+ Used in this way,
223
+ the development cycle goes something like:
224
+ make a change to SCons;
225
+ run
226
+ .B scons-time run
227
+ to profile it against a specific configuration;
228
+ make another change to SCons;
229
+ run
230
+ .B scons-time run
231
+ again to profile it;
232
+ etc.
233
+ '\"==========================================================================
234
+ .SH OPTIONS
235
+ The
236
+ .B scons-time
237
+ command only supports a few global options:
238
+ .TP
239
+ -h, --help
240
+ Displays the global help text and exits,
241
+ identical to the
242
+ .B scons-time help
243
+ subcommand.
244
+ .TP
245
+ -V, --version
246
+ Displays the
247
+ .B scons-time
248
+ version and exits.
249
+ .P
250
+ Most functionality is controlled by options
251
+ to the individual subcommands.
252
+ See the next section for information
253
+ about individual subcommand options.
254
+ '\"==========================================================================
255
+ .SH SUBCOMMANDS
256
+ The
257
+ .B scons-time
258
+ command supports the following
259
+ individual subcommands.
260
+ '\"--------------------------------------------------------------------------
261
+ .SS "The func Subcommand"
262
+ .SF
263
+ .P
264
+ The
265
+ .B scons-time func
266
+ subcommand displays timing information
267
+ for a specific Python function within SCons.
268
+ By default, it extracts information about the
269
+ .BR _main ()
270
+ function,
271
+ which includes the Python profiler timing
272
+ for all of SCons.
273
+ .P
274
+ The
275
+ .B scons-time func
276
+ subcommand extracts function timing information
277
+ from all the specified file arguments,
278
+ which should be Python profiler output files.
279
+ (Normally, these would be
280
+ .B *.prof
281
+ files generated by the
282
+ .B scons-time run
283
+ subcommand,
284
+ but they can actually be generated
285
+ by any Python profiler invocation.)
286
+ All file name arguments will be
287
+ globbed for on-disk files.
288
+ .P
289
+ If no arguments are specified,
290
+ then function timing information
291
+ will be extracted from all
292
+ .B *.prof
293
+ files,
294
+ or the subset of them
295
+ with a prefix specified by the
296
+ .B -p
297
+ option.
298
+ .P
299
+ Options include:
300
+ .TP
301
+ -C DIRECTORY, --chdir=DIRECTORY
302
+ Changes to the specified
303
+ .I DIRECTORY
304
+ before looking for the specified files
305
+ (or files that match the specified patterns).
306
+ .TP
307
+ -f FILE, --file=FILE
308
+ Reads configuration information from the specified
309
+ .IR FILE .
310
+ .TP
311
+ -fmt=FORMAT, --format=FORMAT
312
+ Reports the output in the specified
313
+ .IR FORMAT .
314
+ The formats currently supported are
315
+ .B ascii
316
+ (the default)
317
+ and
318
+ .BR gnuplot .
319
+ .TP
320
+ --func=NAME
321
+ Extracts timings for the specified function
322
+ .IR NAME .
323
+ The default is to report cumulative timings for the
324
+ .BR _main ()
325
+ function,
326
+ which contains the entire SCons run.
327
+ .TP
328
+ -h, --help
329
+ Displays help text for the
330
+ .B scons-time func
331
+ subcommand.
332
+ .TP
333
+ -p STRING, --prefix=STRING
334
+ Specifies the prefix string for profiles
335
+ from which to extract function timing information.
336
+ This will be used to search for profiles
337
+ if no arguments are specified on the command line.
338
+ .TP
339
+ -t NUMBER, --tail=NUMBER
340
+ Only extracts function timings from the last
341
+ .I NUMBER
342
+ files.
343
+ '\"--------------------------------------------------------------------------
344
+ .SS "The help Subcommand"
345
+ .B scons-time help
346
+ .I SUBCOMMAND
347
+ [...]
348
+ The
349
+ .B help
350
+ subcommand prints help text for any
351
+ other subcommands listed as later arguments on the command line.
352
+ '\"--------------------------------------------------------------------------
353
+ .SS "The mem Subcommand"
354
+ .SY
355
+ .P
356
+ The
357
+ .B scons-time mem
358
+ subcommand displays how much memory SCons uses.
359
+ .P
360
+ The
361
+ .B scons-time mem
362
+ subcommand extracts memory use information
363
+ from all the specified file arguments,
364
+ which should be files containing output from
365
+ running SCons with the
366
+ .B --debug=memory
367
+ option.
368
+ (Normally, these would be
369
+ .B *.log
370
+ files generated by the
371
+ .B scons-time run
372
+ subcommand.)
373
+ All file name arguments will be
374
+ globbed for on-disk files.
375
+ .P
376
+ If no arguments are specified,
377
+ then memory information
378
+ will be extracted from all
379
+ .B *.log
380
+ files,
381
+ or the subset of them
382
+ with a prefix specified by the
383
+ .B -p
384
+ option.
385
+ .P
386
+ .TP
387
+ -C DIR, --chdir=DIR
388
+ Changes to the specified
389
+ .I DIRECTORY
390
+ before looking for the specified files
391
+ (or files that match the specified patterns).
392
+ .TP
393
+ -f FILE, --file=FILE
394
+ Reads configuration information from the specified
395
+ .IR FILE .
396
+ .TP
397
+ -fmt=FORMAT, --format=FORMAT
398
+ Reports the output in the specified
399
+ .IR FORMAT .
400
+ The formats currently supported are
401
+ .B ascii
402
+ (the default)
403
+ and
404
+ .BR gnuplot .
405
+ .TP
406
+ -h, --help
407
+ Displays help text for the
408
+ .B scons-time mem
409
+ subcommand.
410
+ .TP
411
+ -p STRING, --prefix=STRING
412
+ Specifies the prefix string for log files
413
+ from which to extract memory usage information.
414
+ This will be used to search for log files
415
+ if no arguments are specified on the command line.
416
+ .TP
417
+ --stage=STAGE
418
+ Prints the memory used at the end of the specified
419
+ .IR STAGE :
420
+ .B pre-read
421
+ (before the SConscript files are read),
422
+ .B post-read ,
423
+ (after the SConscript files are read),
424
+ .B pre-build
425
+ (before any targets are built)
426
+ or
427
+ .B post-build
428
+ (after any targets are built).
429
+ If no
430
+ .B --stage
431
+ option is specified,
432
+ the default behavior is
433
+ .BR post-build ,
434
+ which reports the final amount of memory
435
+ used by SCons during each run.
436
+ .TP
437
+ -t NUMBER, --tail=NUMBER
438
+ Only reports memory statistics from the last
439
+ .I NUMBER
440
+ files.
441
+ '\"--------------------------------------------------------------------------
442
+ .SS "The obj Subcommand"
443
+ .SO
444
+ .P
445
+ The
446
+ .B scons-time obj
447
+ subcommand displays how many objects of a specific named type
448
+ are created by SCons.
449
+ .P
450
+ The
451
+ .B scons-time obj
452
+ subcommand extracts object counts
453
+ from all the specified file arguments,
454
+ which should be files containing output from
455
+ running SCons with the
456
+ .B --debug=count
457
+ option.
458
+ (Normally, these would be
459
+ .B *.log
460
+ files generated by the
461
+ .B scons-time run
462
+ subcommand.)
463
+ All file name arguments will be
464
+ globbed for on-disk files.
465
+ .P
466
+ If no arguments are specified,
467
+ then object counts
468
+ will be extracted from all
469
+ .B *.log
470
+ files,
471
+ or the subset of them
472
+ with a prefix specified by the
473
+ .B -p
474
+ option.
475
+ .TP
476
+ -C DIR, --chdir=DIR
477
+ Changes to the specified
478
+ .I DIRECTORY
479
+ before looking for the specified files
480
+ (or files that match the specified patterns).
481
+ .TP
482
+ -f FILE, --file=FILE
483
+ Reads configuration information from the specified
484
+ .IR FILE .
485
+ .TP
486
+ -fmt=FORMAT, --format=FORMAT
487
+ Reports the output in the specified
488
+ .IR FORMAT .
489
+ The formats currently supported are
490
+ .B ascii
491
+ (the default)
492
+ and
493
+ .BR gnuplot .
494
+ .TP
495
+ -h, --help
496
+ Displays help text for the
497
+ .B scons-time obj
498
+ subcommand.
499
+ .TP
500
+ -p STRING, --prefix=STRING
501
+ Specifies the prefix string for log files
502
+ from which to extract object counts.
503
+ This will be used to search for log files
504
+ if no arguments are specified on the command line.
505
+ .TP
506
+ --stage=STAGE
507
+ Prints the object count at the end of the specified
508
+ .IR STAGE :
509
+ .B pre-read
510
+ (before the SConscript files are read),
511
+ .B post-read ,
512
+ (after the SConscript files are read),
513
+ .B pre-build
514
+ (before any targets are built)
515
+ or
516
+ .B post-build
517
+ (after any targets are built).
518
+ If no
519
+ .B --stage
520
+ option is specified,
521
+ the default behavior is
522
+ .BR post-build ,
523
+ which reports the final object count during each run.
524
+ .TP
525
+ -t NUMBER, --tail=NUMBER
526
+ Only reports object counts from the last
527
+ .I NUMBER
528
+ files.
529
+ '\"--------------------------------------------------------------------------
530
+ .SS "The run Subcommand"
531
+ .SR
532
+ The
533
+ .B scons-time run
534
+ subcommand is the basic subcommand
535
+ for profiling a specific configuration
536
+ against a version of SCons.
537
+ .P
538
+ The configuration to be tested
539
+ is specified as a list of files
540
+ or directories that will be unpacked or copied
541
+ into a temporary directory
542
+ in which SCons will be invoked.
543
+ The
544
+ .B scons-time run
545
+ subcommand understands file suffixes like
546
+ .BR .tar ,
547
+ .BR .tar.gz ,
548
+ .BR .tgz
549
+ and
550
+ .BR .zip
551
+ and will unpack their contents into a temporary directory.
552
+ If more than one argument is specified,
553
+ each one will be unpacked or copied
554
+ into the temporary directory "on top of"
555
+ the previous archives or directories,
556
+ so the expectation is that multiple
557
+ specified archives share the same directory layout.
558
+ .P
559
+ Once the file or directory arguments are unpacked or
560
+ copied to the temporary directory,
561
+ the
562
+ .B scons-time run
563
+ subcommand runs the
564
+ requested version of SCons
565
+ against the configuration
566
+ three times:
567
+ .TP
568
+ Startup
569
+ SCons is run with the
570
+ .B --help
571
+ option so that just the SConscript files are read,
572
+ and then the default help text is printed.
573
+ This profiles just the perceived "overhead" of starting up SCons
574
+ and processing the SConscript files.
575
+ .TP
576
+ Full build
577
+ SCons is run to build everything specified in the configuration.
578
+ Specific targets to be passed in on the command l ine
579
+ may be specified by the
580
+ .B targets
581
+ keyword in a configuration file; see below for details.
582
+ .TP
583
+ Rebuild
584
+ SCons is run again on the same just-built directory.
585
+ If the dependencies in the SCons configuration are correct,
586
+ this should be an up-to-date, "do nothing" rebuild.
587
+ .P
588
+ Each invocation captures the output log file and a profile.
589
+ .P
590
+ The
591
+ .B scons-time run
592
+ subcommand supports the following options:
593
+ .TP
594
+ --aegis=PROJECT
595
+ Specifies the Aegis
596
+ .I PROJECT
597
+ from which the
598
+ version(s) of
599
+ .B scons
600
+ being timed will be extracted.
601
+ When
602
+ .B --aegis
603
+ is specified, the
604
+ .BI --number= NUMBER
605
+ option specifies delta numbers
606
+ that will be tested.
607
+ Output from each invocation run will be placed in file
608
+ names that match the Aegis delta numbers.
609
+ If the
610
+ .B --number=
611
+ option is not specified,
612
+ then the default behavior is to time the
613
+ tip of the specified
614
+ .IR PROJECT .
615
+ .TP
616
+ -f FILE, --file=FILE
617
+ Reads configuration information from the specified
618
+ .IR FILE .
619
+ This often provides a more convenient way to specify and
620
+ collect parameters associated with a specific timing configuration
621
+ than specifying them on the command line.
622
+ See the
623
+ .B CONFIGURATION FILE
624
+ section below
625
+ for information about the configuration file parameters.
626
+ .TP
627
+ -h, --help
628
+ Displays help text for the
629
+ .B scons-time run
630
+ subcommand.
631
+ .TP
632
+ -n, --no-exec
633
+ Do not execute commands,
634
+ just printing the command-line equivalents of what would be executed.
635
+ Note that the
636
+ .B scons-time
637
+ script actually executes its actions in Python,
638
+ where possible,
639
+ for portability.
640
+ The commands displayed are UNIX
641
+ .I equivalents
642
+ of what it's doing.
643
+ .TP
644
+ --number=NUMBER
645
+ Specifies the run number to be used in the names of
646
+ the log files and profile outputs generated by this run.
647
+ .IP
648
+ When used in conjuction with the
649
+ .BI --aegis= PROJECT
650
+ option,
651
+ .I NUMBER
652
+ specifies one or more comma-separated Aegis delta numbers
653
+ that will be retrieved automatically from the specified Aegis
654
+ .IR PROJECT .
655
+ .IP
656
+ When used in conjuction with the
657
+ .BI --svn= URL
658
+ option,
659
+ .I NUMBER
660
+ specifies one or more comma-separated Subversion revision numbers
661
+ that will be retrieved automatically from the Subversion
662
+ repository at the specified
663
+ .IR URL .
664
+ Ranges of delta or revision numbers
665
+ may be specified be separating two numbers
666
+ with a hyphen
667
+ .RB ( \- ).
668
+ .P
669
+ Example:
670
+ .ES
671
+ % scons-time run --svn=http://scons.tigris.org/svn/trunk --num=1247,1249-1252 .
672
+ .EE
673
+ .TP
674
+ -p STRING, --prefix=STRING
675
+ Specifies the prefix string to be used for all of the log files
676
+ and profiles generated by this run.
677
+ The default is derived from the first
678
+ specified argument:
679
+ if the first argument is a directory,
680
+ the default prefix is the name of the directory;
681
+ if the first argument is an archive
682
+ (tar or zip file),
683
+ the default prefix is the the base name of the archive,
684
+ that is, what remains after stripping the archive suffix
685
+ .RB ( .tgz ", " .tar.gz " or " .zip ).
686
+ .TP
687
+ --python=PYTHON
688
+ Specifies a path to the Python executable to be used
689
+ for the timing runs.
690
+ The default is to use the same Python executable that
691
+ is running the
692
+ .B scons-time
693
+ command itself.
694
+ .TP
695
+ -q, --quiet
696
+ Suppresses display of the command lines being executed.
697
+ .TP
698
+ -s DIR, --subdir=DIR
699
+ Specifies the name of directory or subdirectory
700
+ from which the commands should be executed.
701
+ The default is XXX
702
+ .TP
703
+ --scons=SCONS
704
+ Specifies a path to the SCons script to be used
705
+ for the timing runs.
706
+ The default is XXX
707
+ .TP
708
+ --svn=URL, --subversion=URL
709
+ Specifies the
710
+ .I URL
711
+ of the Subversion repository from which the
712
+ version(s) of
713
+ .B scons
714
+ being timed will be extracted.
715
+ When
716
+ .B --svn
717
+ is specified, the
718
+ .BI --number= NUMBER
719
+ option specifies revision numbers
720
+ that will be tested.
721
+ Output from each invocation run will be placed in file
722
+ names that match the Subversion revision numbers.
723
+ If the
724
+ .B --number=
725
+ option is not specified,
726
+ then the default behavior is to time the
727
+ .B HEAD
728
+ of the specified
729
+ .IR URL .
730
+ .TP
731
+ -v, --verbose
732
+ Displays the output from individual commands to the screen
733
+ (in addition to capturing the output in log files).
734
+ '\"--------------------------------------------------------------------------
735
+ .SS "The time Subcommand"
736
+ .ST
737
+ .P
738
+ The
739
+ .B scons-time time
740
+ subcommand displays SCons execution times
741
+ as reported by the
742
+ .B scons --debug=time
743
+ option.
744
+ .P
745
+ The
746
+ .B scons-time time
747
+ subcommand extracts SCons timing
748
+ from all the specified file arguments,
749
+ which should be files containing output from
750
+ running SCons with the
751
+ .B --debug=time
752
+ option.
753
+ (Normally, these would be
754
+ .B *.log
755
+ files generated by the
756
+ .B scons-time run
757
+ subcommand.)
758
+ All file name arguments will be
759
+ globbed for on-disk files.
760
+ .P
761
+ If no arguments are specified,
762
+ then execution timings
763
+ will be extracted from all
764
+ .B *.log
765
+ files,
766
+ or the subset of them
767
+ with a prefix specified by the
768
+ .B -p
769
+ option.
770
+ .TP
771
+ -C DIR, --chdir=DIR
772
+ Changes to the specified
773
+ .I DIRECTORY
774
+ before looking for the specified files
775
+ (or files that match the specified patterns).
776
+ .TP
777
+ -f FILE, --file=FILE
778
+ Reads configuration information from the specified
779
+ .IR FILE .
780
+ .TP
781
+ -fmt=FORMAT, --format=FORMAT
782
+ Reports the output in the specified
783
+ .IR FORMAT .
784
+ The formats currently supported are
785
+ .B ascii
786
+ (the default)
787
+ and
788
+ .BR gnuplot .
789
+ .TP
790
+ -h, --help
791
+ Displays help text for the
792
+ .B scons-time time
793
+ subcommand.
794
+ .TP
795
+ -p STRING, --prefix=STRING
796
+ Specifies the prefix string for log files
797
+ from which to extract execution timings.
798
+ This will be used to search for log files
799
+ if no arguments are specified on the command line.
800
+ .TP
801
+ -t NUMBER, --tail=NUMBER
802
+ Only reports object counts from the last
803
+ .I NUMBER
804
+ files.
805
+ .TP
806
+ --which=WHICH
807
+ Prints the execution time for the specified
808
+ .IR WHICH
809
+ value:
810
+ .B total
811
+ (the total execution time),
812
+ .B SConscripts
813
+ (total execution time for the SConscript files themselves),
814
+ .B SCons
815
+ (exectuion time in SCons code itself)
816
+ or
817
+ .B commands
818
+ (execution time of the commands and other actions
819
+ used to build targets).
820
+ If no
821
+ .B --which
822
+ option is specified,
823
+ the default behavior is
824
+ .BR total ,
825
+ which reports the total execution time for each run.
826
+ '\"==========================================================================
827
+ .SH CONFIGURATION FILE
828
+ Various
829
+ .B scons-time
830
+ subcommands can read information from a specified
831
+ configuration file when passed the
832
+ .B \-f
833
+ or
834
+ .B \--file
835
+ options.
836
+ The configuration file is actually executed as a Python script.
837
+ Setting Python variables in the configuration file
838
+ controls the behavior of the
839
+ .B scons-time
840
+ script more conveniently than having to specify
841
+ command-line options or arguments for every run,
842
+ and provides a handy way to "shrink-wrap"
843
+ the necessary information for producing (and reporting)
844
+ consistent timing runs for a given configuration.
845
+ .TP
846
+ .B aegis
847
+ The Aegis executable for extracting deltas.
848
+ The default is simply
849
+ .BR aegis .
850
+ .TP
851
+ .B aegis_project
852
+ The Aegis project from which deltas should be extracted.
853
+ The default is whatever is specified
854
+ with the
855
+ .B --aegis=
856
+ command-line option.
857
+ .TP
858
+ .B archive_list
859
+ A list of archives (files or directories)
860
+ that will be copied to the temporary directory
861
+ in which SCons will be invoked.
862
+ .BR .tar ,
863
+ .BR .tar.gz ,
864
+ .BR .tgz
865
+ and
866
+ .BR .zip
867
+ files will have their contents unpacked in
868
+ the temporary directory.
869
+ Directory trees and files will be copied as-is.
870
+ .TP
871
+ .B initial_commands
872
+ A list of commands that will be executed
873
+ before the actual timed
874
+ .B scons
875
+ runs.
876
+ This can be used for commands that are necessary
877
+ to prepare the source tree\-for example,
878
+ creating a configuration file
879
+ that should not be part of the timed run.
880
+ .TP
881
+ .B key_location
882
+ The location of the key on Gnuplot graphing information
883
+ generated with the
884
+ .BR --format=gnuplot
885
+ option.
886
+ The default is
887
+ .BR "bottom left" .
888
+ .TP
889
+ .B prefix
890
+ The file name prefix to be used when
891
+ running or extracting timing for this configuration.
892
+ .TP
893
+ .B python
894
+ The path name of the Python executable
895
+ to be used when running or extracting information
896
+ for this configuration.
897
+ The default is the same version of Python
898
+ used to run the SCons
899
+ .TP
900
+ .B scons
901
+ The path name of the SCons script to be used
902
+ when running or extracting information
903
+ for this configuration.
904
+ The default is simply
905
+ .BR scons .
906
+ .TP
907
+ .B scons_flags
908
+ The
909
+ .B scons
910
+ flags used when running SCons to collect timing information.
911
+ The default value is
912
+ .BR "--debug=count --debug=memory --debug=time --debug=memoizer" .
913
+ .TP
914
+ .B scons_lib_dir
915
+ .TP
916
+ .B scons_wrapper
917
+ .TP
918
+ .B startup_targets
919
+ .TP
920
+ .B subdir
921
+ The subdirectory of the project into which the
922
+ .B scons-time
923
+ script should change
924
+ before executing the SCons commands to time.
925
+ .TP
926
+ .B subversion_url
927
+ The Subversion URL from
928
+ .TP
929
+ .B svn
930
+ The subversion executable used to
931
+ check out revisions of SCons to be timed.
932
+ The default is simple
933
+ .BR svn .
934
+ .TP
935
+ .B svn_co_flag
936
+ .TP
937
+ .B tar
938
+ .TP
939
+ .B targets
940
+ A string containing the targets that should be added to
941
+ the command line of every timed
942
+ .B scons
943
+ run.
944
+ This can be used to restrict what's being timed to a
945
+ subset of the full build for the configuration.
946
+ .TP
947
+ .B targets0
948
+ .TP
949
+ .B targets1
950
+ .TP
951
+ .B targets2
952
+ .TP
953
+ .B title
954
+ .TP
955
+ .B unzip
956
+ .TP
957
+ .B verbose
958
+ .TP
959
+ .B vertical_bars
960
+ '\"--------------------------------------------------------------------------
961
+ .SS Example
962
+ Here is an example
963
+ .B scons-time
964
+ configuration file
965
+ for a hypothetical sample project:
966
+ .P
967
+ .ES
968
+ # The project doesn't use SCons natively (yet), so we're
969
+ # timing a separate set of SConscript files that we lay
970
+ # on top of the vanilla unpacked project tarball.
971
+ arguments = ['project-1.2.tgz', 'project-SConscripts.tar']
972
+
973
+ # The subdirectory name contains the project version number,
974
+ # so tell scons-time to chdir there before building.
975
+ subdir = 'project-1.2'
976
+
977
+ # Set the prefix so output log files and profiles are named:
978
+ # project-000-[012].{log,prof}
979
+ # project-001-[012].{log,prof}
980
+ # etc.
981
+ prefix = 'project'
982
+
983
+ # The SConscript files being tested don't do any SConf
984
+ # configuration, so run their normal ./configure script
985
+ # before we invoke SCons.
986
+ initial_commands = [
987
+ './configure',
988
+ ]
989
+
990
+ # Only time building the bin/project executable.
991
+ targets = 'bin/project'
992
+
993
+ # Time against SCons revisions of the branches/core branch
994
+ subversion_url = 'http://scons.tigris.org/svn/scons/branches/core'
995
+ .EE
996
+ '\"==========================================================================
997
+ .SH ENVIRONMENT
998
+ The
999
+ .B scons-time
1000
+ script uses the following environment variables:
1001
+ .TP
1002
+ .B PRESERVE
1003
+ If this value is set,
1004
+ the
1005
+ .B scons-time
1006
+ script will
1007
+ .I not
1008
+ remove the temporary directory or directories
1009
+ in which it builds the specified configuration
1010
+ or downloads a specific version of SCons.
1011
+ '\"==========================================================================
1012
+ .SH "SEE ALSO"
1013
+ .BR gnuplot (1),
1014
+ .BR scons (1)
1015
+
1016
+ .SH AUTHORS
1017
+ Steven Knight <knight at baldmt dot com>