therubyracer 0.9.0beta4 → 0.9.0beta5

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 (771) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +0 -11
  3. data/ext/v8/extconf.rb +9 -9
  4. data/ext/v8/v8_external.cpp +40 -10
  5. data/lib/v8/cli.rb +2 -1
  6. data/lib/v8/version.rb +1 -1
  7. data/spec/redjs/.gitignore +1 -0
  8. data/therubyracer.gemspec +2 -3
  9. metadata +33 -779
  10. data/ext/v8/upstream/Makefile +0 -38
  11. data/ext/v8/upstream/detect_cpu.rb +0 -27
  12. data/ext/v8/upstream/fpic-on-linux-amd64.patch +0 -13
  13. data/ext/v8/upstream/scons/CHANGES.txt +0 -5183
  14. data/ext/v8/upstream/scons/LICENSE.txt +0 -20
  15. data/ext/v8/upstream/scons/MANIFEST +0 -202
  16. data/ext/v8/upstream/scons/PKG-INFO +0 -13
  17. data/ext/v8/upstream/scons/README.txt +0 -273
  18. data/ext/v8/upstream/scons/RELEASE.txt +0 -1040
  19. data/ext/v8/upstream/scons/engine/SCons/Action.py +0 -1256
  20. data/ext/v8/upstream/scons/engine/SCons/Builder.py +0 -868
  21. data/ext/v8/upstream/scons/engine/SCons/CacheDir.py +0 -217
  22. data/ext/v8/upstream/scons/engine/SCons/Conftest.py +0 -794
  23. data/ext/v8/upstream/scons/engine/SCons/Debug.py +0 -237
  24. data/ext/v8/upstream/scons/engine/SCons/Defaults.py +0 -485
  25. data/ext/v8/upstream/scons/engine/SCons/Environment.py +0 -2327
  26. data/ext/v8/upstream/scons/engine/SCons/Errors.py +0 -207
  27. data/ext/v8/upstream/scons/engine/SCons/Executor.py +0 -636
  28. data/ext/v8/upstream/scons/engine/SCons/Job.py +0 -435
  29. data/ext/v8/upstream/scons/engine/SCons/Memoize.py +0 -292
  30. data/ext/v8/upstream/scons/engine/SCons/Node/Alias.py +0 -153
  31. data/ext/v8/upstream/scons/engine/SCons/Node/FS.py +0 -3220
  32. data/ext/v8/upstream/scons/engine/SCons/Node/Python.py +0 -128
  33. data/ext/v8/upstream/scons/engine/SCons/Node/__init__.py +0 -1341
  34. data/ext/v8/upstream/scons/engine/SCons/Options/BoolOption.py +0 -50
  35. data/ext/v8/upstream/scons/engine/SCons/Options/EnumOption.py +0 -50
  36. data/ext/v8/upstream/scons/engine/SCons/Options/ListOption.py +0 -50
  37. data/ext/v8/upstream/scons/engine/SCons/Options/PackageOption.py +0 -50
  38. data/ext/v8/upstream/scons/engine/SCons/Options/PathOption.py +0 -76
  39. data/ext/v8/upstream/scons/engine/SCons/Options/__init__.py +0 -74
  40. data/ext/v8/upstream/scons/engine/SCons/PathList.py +0 -232
  41. data/ext/v8/upstream/scons/engine/SCons/Platform/__init__.py +0 -236
  42. data/ext/v8/upstream/scons/engine/SCons/Platform/aix.py +0 -70
  43. data/ext/v8/upstream/scons/engine/SCons/Platform/cygwin.py +0 -55
  44. data/ext/v8/upstream/scons/engine/SCons/Platform/darwin.py +0 -46
  45. data/ext/v8/upstream/scons/engine/SCons/Platform/hpux.py +0 -46
  46. data/ext/v8/upstream/scons/engine/SCons/Platform/irix.py +0 -44
  47. data/ext/v8/upstream/scons/engine/SCons/Platform/os2.py +0 -58
  48. data/ext/v8/upstream/scons/engine/SCons/Platform/posix.py +0 -264
  49. data/ext/v8/upstream/scons/engine/SCons/Platform/sunos.py +0 -50
  50. data/ext/v8/upstream/scons/engine/SCons/Platform/win32.py +0 -386
  51. data/ext/v8/upstream/scons/engine/SCons/SConf.py +0 -1038
  52. data/ext/v8/upstream/scons/engine/SCons/SConsign.py +0 -381
  53. data/ext/v8/upstream/scons/engine/SCons/Scanner/C.py +0 -132
  54. data/ext/v8/upstream/scons/engine/SCons/Scanner/D.py +0 -74
  55. data/ext/v8/upstream/scons/engine/SCons/Scanner/Dir.py +0 -111
  56. data/ext/v8/upstream/scons/engine/SCons/Scanner/Fortran.py +0 -320
  57. data/ext/v8/upstream/scons/engine/SCons/Scanner/IDL.py +0 -48
  58. data/ext/v8/upstream/scons/engine/SCons/Scanner/LaTeX.py +0 -378
  59. data/ext/v8/upstream/scons/engine/SCons/Scanner/Prog.py +0 -103
  60. data/ext/v8/upstream/scons/engine/SCons/Scanner/RC.py +0 -55
  61. data/ext/v8/upstream/scons/engine/SCons/Scanner/__init__.py +0 -415
  62. data/ext/v8/upstream/scons/engine/SCons/Script/Interactive.py +0 -386
  63. data/ext/v8/upstream/scons/engine/SCons/Script/Main.py +0 -1360
  64. data/ext/v8/upstream/scons/engine/SCons/Script/SConsOptions.py +0 -944
  65. data/ext/v8/upstream/scons/engine/SCons/Script/SConscript.py +0 -642
  66. data/ext/v8/upstream/scons/engine/SCons/Script/__init__.py +0 -414
  67. data/ext/v8/upstream/scons/engine/SCons/Sig.py +0 -63
  68. data/ext/v8/upstream/scons/engine/SCons/Subst.py +0 -911
  69. data/ext/v8/upstream/scons/engine/SCons/Taskmaster.py +0 -1030
  70. data/ext/v8/upstream/scons/engine/SCons/Tool/386asm.py +0 -61
  71. data/ext/v8/upstream/scons/engine/SCons/Tool/BitKeeper.py +0 -65
  72. data/ext/v8/upstream/scons/engine/SCons/Tool/CVS.py +0 -73
  73. data/ext/v8/upstream/scons/engine/SCons/Tool/FortranCommon.py +0 -247
  74. data/ext/v8/upstream/scons/engine/SCons/Tool/JavaCommon.py +0 -324
  75. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/__init__.py +0 -56
  76. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/arch.py +0 -61
  77. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/common.py +0 -210
  78. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/netframework.py +0 -84
  79. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/sdk.py +0 -321
  80. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vc.py +0 -367
  81. data/ext/v8/upstream/scons/engine/SCons/Tool/MSCommon/vs.py +0 -497
  82. data/ext/v8/upstream/scons/engine/SCons/Tool/Perforce.py +0 -104
  83. data/ext/v8/upstream/scons/engine/SCons/Tool/PharLapCommon.py +0 -138
  84. data/ext/v8/upstream/scons/engine/SCons/Tool/RCS.py +0 -64
  85. data/ext/v8/upstream/scons/engine/SCons/Tool/SCCS.py +0 -64
  86. data/ext/v8/upstream/scons/engine/SCons/Tool/Subversion.py +0 -71
  87. data/ext/v8/upstream/scons/engine/SCons/Tool/__init__.py +0 -675
  88. data/ext/v8/upstream/scons/engine/SCons/Tool/aixc++.py +0 -82
  89. data/ext/v8/upstream/scons/engine/SCons/Tool/aixcc.py +0 -74
  90. data/ext/v8/upstream/scons/engine/SCons/Tool/aixf77.py +0 -80
  91. data/ext/v8/upstream/scons/engine/SCons/Tool/aixlink.py +0 -76
  92. data/ext/v8/upstream/scons/engine/SCons/Tool/applelink.py +0 -71
  93. data/ext/v8/upstream/scons/engine/SCons/Tool/ar.py +0 -63
  94. data/ext/v8/upstream/scons/engine/SCons/Tool/as.py +0 -78
  95. data/ext/v8/upstream/scons/engine/SCons/Tool/bcc32.py +0 -82
  96. data/ext/v8/upstream/scons/engine/SCons/Tool/c++.py +0 -99
  97. data/ext/v8/upstream/scons/engine/SCons/Tool/cc.py +0 -114
  98. data/ext/v8/upstream/scons/engine/SCons/Tool/cvf.py +0 -58
  99. data/ext/v8/upstream/scons/engine/SCons/Tool/default.py +0 -50
  100. data/ext/v8/upstream/scons/engine/SCons/Tool/dmd.py +0 -224
  101. data/ext/v8/upstream/scons/engine/SCons/Tool/dvi.py +0 -64
  102. data/ext/v8/upstream/scons/engine/SCons/Tool/dvipdf.py +0 -125
  103. data/ext/v8/upstream/scons/engine/SCons/Tool/dvips.py +0 -94
  104. data/ext/v8/upstream/scons/engine/SCons/Tool/f77.py +0 -62
  105. data/ext/v8/upstream/scons/engine/SCons/Tool/f90.py +0 -62
  106. data/ext/v8/upstream/scons/engine/SCons/Tool/f95.py +0 -63
  107. data/ext/v8/upstream/scons/engine/SCons/Tool/filesystem.py +0 -98
  108. data/ext/v8/upstream/scons/engine/SCons/Tool/fortran.py +0 -63
  109. data/ext/v8/upstream/scons/engine/SCons/Tool/g++.py +0 -90
  110. data/ext/v8/upstream/scons/engine/SCons/Tool/g77.py +0 -73
  111. data/ext/v8/upstream/scons/engine/SCons/Tool/gas.py +0 -53
  112. data/ext/v8/upstream/scons/engine/SCons/Tool/gcc.py +0 -80
  113. data/ext/v8/upstream/scons/engine/SCons/Tool/gfortran.py +0 -64
  114. data/ext/v8/upstream/scons/engine/SCons/Tool/gnulink.py +0 -63
  115. data/ext/v8/upstream/scons/engine/SCons/Tool/gs.py +0 -81
  116. data/ext/v8/upstream/scons/engine/SCons/Tool/hpc++.py +0 -85
  117. data/ext/v8/upstream/scons/engine/SCons/Tool/hpcc.py +0 -53
  118. data/ext/v8/upstream/scons/engine/SCons/Tool/hplink.py +0 -77
  119. data/ext/v8/upstream/scons/engine/SCons/Tool/icc.py +0 -59
  120. data/ext/v8/upstream/scons/engine/SCons/Tool/icl.py +0 -52
  121. data/ext/v8/upstream/scons/engine/SCons/Tool/ifl.py +0 -72
  122. data/ext/v8/upstream/scons/engine/SCons/Tool/ifort.py +0 -90
  123. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink.py +0 -59
  124. data/ext/v8/upstream/scons/engine/SCons/Tool/ilink32.py +0 -60
  125. data/ext/v8/upstream/scons/engine/SCons/Tool/install.py +0 -229
  126. data/ext/v8/upstream/scons/engine/SCons/Tool/intelc.py +0 -490
  127. data/ext/v8/upstream/scons/engine/SCons/Tool/ipkg.py +0 -71
  128. data/ext/v8/upstream/scons/engine/SCons/Tool/jar.py +0 -110
  129. data/ext/v8/upstream/scons/engine/SCons/Tool/javac.py +0 -234
  130. data/ext/v8/upstream/scons/engine/SCons/Tool/javah.py +0 -138
  131. data/ext/v8/upstream/scons/engine/SCons/Tool/latex.py +0 -79
  132. data/ext/v8/upstream/scons/engine/SCons/Tool/lex.py +0 -99
  133. data/ext/v8/upstream/scons/engine/SCons/Tool/link.py +0 -121
  134. data/ext/v8/upstream/scons/engine/SCons/Tool/linkloc.py +0 -112
  135. data/ext/v8/upstream/scons/engine/SCons/Tool/m4.py +0 -63
  136. data/ext/v8/upstream/scons/engine/SCons/Tool/masm.py +0 -77
  137. data/ext/v8/upstream/scons/engine/SCons/Tool/midl.py +0 -90
  138. data/ext/v8/upstream/scons/engine/SCons/Tool/mingw.py +0 -159
  139. data/ext/v8/upstream/scons/engine/SCons/Tool/mslib.py +0 -64
  140. data/ext/v8/upstream/scons/engine/SCons/Tool/mslink.py +0 -266
  141. data/ext/v8/upstream/scons/engine/SCons/Tool/mssdk.py +0 -50
  142. data/ext/v8/upstream/scons/engine/SCons/Tool/msvc.py +0 -269
  143. data/ext/v8/upstream/scons/engine/SCons/Tool/msvs.py +0 -1439
  144. data/ext/v8/upstream/scons/engine/SCons/Tool/mwcc.py +0 -208
  145. data/ext/v8/upstream/scons/engine/SCons/Tool/mwld.py +0 -107
  146. data/ext/v8/upstream/scons/engine/SCons/Tool/nasm.py +0 -72
  147. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/__init__.py +0 -314
  148. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/ipk.py +0 -185
  149. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/msi.py +0 -526
  150. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/rpm.py +0 -367
  151. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_tarbz2.py +0 -43
  152. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_targz.py +0 -43
  153. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/src_zip.py +0 -43
  154. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/tarbz2.py +0 -44
  155. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/targz.py +0 -44
  156. data/ext/v8/upstream/scons/engine/SCons/Tool/packaging/zip.py +0 -44
  157. data/ext/v8/upstream/scons/engine/SCons/Tool/pdf.py +0 -78
  158. data/ext/v8/upstream/scons/engine/SCons/Tool/pdflatex.py +0 -83
  159. data/ext/v8/upstream/scons/engine/SCons/Tool/pdftex.py +0 -108
  160. data/ext/v8/upstream/scons/engine/SCons/Tool/qt.py +0 -336
  161. data/ext/v8/upstream/scons/engine/SCons/Tool/rmic.py +0 -121
  162. data/ext/v8/upstream/scons/engine/SCons/Tool/rpcgen.py +0 -70
  163. data/ext/v8/upstream/scons/engine/SCons/Tool/rpm.py +0 -132
  164. data/ext/v8/upstream/scons/engine/SCons/Tool/sgiar.py +0 -68
  165. data/ext/v8/upstream/scons/engine/SCons/Tool/sgic++.py +0 -58
  166. data/ext/v8/upstream/scons/engine/SCons/Tool/sgicc.py +0 -53
  167. data/ext/v8/upstream/scons/engine/SCons/Tool/sgilink.py +0 -63
  168. data/ext/v8/upstream/scons/engine/SCons/Tool/sunar.py +0 -67
  169. data/ext/v8/upstream/scons/engine/SCons/Tool/sunc++.py +0 -142
  170. data/ext/v8/upstream/scons/engine/SCons/Tool/suncc.py +0 -58
  171. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf77.py +0 -63
  172. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf90.py +0 -64
  173. data/ext/v8/upstream/scons/engine/SCons/Tool/sunf95.py +0 -64
  174. data/ext/v8/upstream/scons/engine/SCons/Tool/sunlink.py +0 -77
  175. data/ext/v8/upstream/scons/engine/SCons/Tool/swig.py +0 -186
  176. data/ext/v8/upstream/scons/engine/SCons/Tool/tar.py +0 -73
  177. data/ext/v8/upstream/scons/engine/SCons/Tool/tex.py +0 -805
  178. data/ext/v8/upstream/scons/engine/SCons/Tool/textfile.py +0 -175
  179. data/ext/v8/upstream/scons/engine/SCons/Tool/tlib.py +0 -53
  180. data/ext/v8/upstream/scons/engine/SCons/Tool/wix.py +0 -100
  181. data/ext/v8/upstream/scons/engine/SCons/Tool/yacc.py +0 -131
  182. data/ext/v8/upstream/scons/engine/SCons/Tool/zip.py +0 -100
  183. data/ext/v8/upstream/scons/engine/SCons/Util.py +0 -1645
  184. data/ext/v8/upstream/scons/engine/SCons/Variables/BoolVariable.py +0 -91
  185. data/ext/v8/upstream/scons/engine/SCons/Variables/EnumVariable.py +0 -107
  186. data/ext/v8/upstream/scons/engine/SCons/Variables/ListVariable.py +0 -139
  187. data/ext/v8/upstream/scons/engine/SCons/Variables/PackageVariable.py +0 -109
  188. data/ext/v8/upstream/scons/engine/SCons/Variables/PathVariable.py +0 -147
  189. data/ext/v8/upstream/scons/engine/SCons/Variables/__init__.py +0 -317
  190. data/ext/v8/upstream/scons/engine/SCons/Warnings.py +0 -228
  191. data/ext/v8/upstream/scons/engine/SCons/__init__.py +0 -49
  192. data/ext/v8/upstream/scons/engine/SCons/compat/__init__.py +0 -302
  193. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_UserString.py +0 -98
  194. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_hashlib.py +0 -91
  195. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_itertools.py +0 -124
  196. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_optparse.py +0 -1725
  197. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets.py +0 -583
  198. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_sets15.py +0 -176
  199. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_shlex.py +0 -325
  200. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_subprocess.py +0 -1296
  201. data/ext/v8/upstream/scons/engine/SCons/compat/_scons_textwrap.py +0 -382
  202. data/ext/v8/upstream/scons/engine/SCons/compat/builtins.py +0 -187
  203. data/ext/v8/upstream/scons/engine/SCons/cpp.py +0 -598
  204. data/ext/v8/upstream/scons/engine/SCons/dblite.py +0 -248
  205. data/ext/v8/upstream/scons/engine/SCons/exitfuncs.py +0 -77
  206. data/ext/v8/upstream/scons/os_spawnv_fix.diff +0 -83
  207. data/ext/v8/upstream/scons/scons-time.1 +0 -1017
  208. data/ext/v8/upstream/scons/scons.1 +0 -15179
  209. data/ext/v8/upstream/scons/sconsign.1 +0 -208
  210. data/ext/v8/upstream/scons/script/scons +0 -184
  211. data/ext/v8/upstream/scons/script/scons-time +0 -1529
  212. data/ext/v8/upstream/scons/script/scons.bat +0 -31
  213. data/ext/v8/upstream/scons/script/sconsign +0 -508
  214. data/ext/v8/upstream/scons/setup.cfg +0 -6
  215. data/ext/v8/upstream/scons/setup.py +0 -427
  216. data/ext/v8/upstream/v8/.gitignore +0 -33
  217. data/ext/v8/upstream/v8/AUTHORS +0 -42
  218. data/ext/v8/upstream/v8/ChangeLog +0 -2663
  219. data/ext/v8/upstream/v8/LICENSE +0 -52
  220. data/ext/v8/upstream/v8/LICENSE.strongtalk +0 -29
  221. data/ext/v8/upstream/v8/LICENSE.v8 +0 -26
  222. data/ext/v8/upstream/v8/LICENSE.valgrind +0 -45
  223. data/ext/v8/upstream/v8/SConstruct +0 -1473
  224. data/ext/v8/upstream/v8/build/README.txt +0 -25
  225. data/ext/v8/upstream/v8/build/all.gyp +0 -18
  226. data/ext/v8/upstream/v8/build/armu.gypi +0 -32
  227. data/ext/v8/upstream/v8/build/common.gypi +0 -82
  228. data/ext/v8/upstream/v8/build/gyp_v8 +0 -145
  229. data/ext/v8/upstream/v8/include/v8-debug.h +0 -394
  230. data/ext/v8/upstream/v8/include/v8-preparser.h +0 -116
  231. data/ext/v8/upstream/v8/include/v8-profiler.h +0 -505
  232. data/ext/v8/upstream/v8/include/v8-testing.h +0 -104
  233. data/ext/v8/upstream/v8/include/v8.h +0 -4000
  234. data/ext/v8/upstream/v8/include/v8stdint.h +0 -53
  235. data/ext/v8/upstream/v8/preparser/SConscript +0 -38
  236. data/ext/v8/upstream/v8/preparser/preparser-process.cc +0 -169
  237. data/ext/v8/upstream/v8/src/SConscript +0 -380
  238. data/ext/v8/upstream/v8/src/accessors.cc +0 -766
  239. data/ext/v8/upstream/v8/src/accessors.h +0 -121
  240. data/ext/v8/upstream/v8/src/allocation-inl.h +0 -49
  241. data/ext/v8/upstream/v8/src/allocation.cc +0 -122
  242. data/ext/v8/upstream/v8/src/allocation.h +0 -143
  243. data/ext/v8/upstream/v8/src/api.cc +0 -5678
  244. data/ext/v8/upstream/v8/src/api.h +0 -572
  245. data/ext/v8/upstream/v8/src/apinatives.js +0 -110
  246. data/ext/v8/upstream/v8/src/apiutils.h +0 -73
  247. data/ext/v8/upstream/v8/src/arguments.h +0 -116
  248. data/ext/v8/upstream/v8/src/arm/assembler-arm-inl.h +0 -353
  249. data/ext/v8/upstream/v8/src/arm/assembler-arm.cc +0 -2877
  250. data/ext/v8/upstream/v8/src/arm/assembler-arm.h +0 -1382
  251. data/ext/v8/upstream/v8/src/arm/builtins-arm.cc +0 -1634
  252. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.cc +0 -6917
  253. data/ext/v8/upstream/v8/src/arm/code-stubs-arm.h +0 -623
  254. data/ext/v8/upstream/v8/src/arm/codegen-arm-inl.h +0 -48
  255. data/ext/v8/upstream/v8/src/arm/codegen-arm.cc +0 -7437
  256. data/ext/v8/upstream/v8/src/arm/codegen-arm.h +0 -595
  257. data/ext/v8/upstream/v8/src/arm/constants-arm.cc +0 -152
  258. data/ext/v8/upstream/v8/src/arm/constants-arm.h +0 -778
  259. data/ext/v8/upstream/v8/src/arm/cpu-arm.cc +0 -149
  260. data/ext/v8/upstream/v8/src/arm/debug-arm.cc +0 -317
  261. data/ext/v8/upstream/v8/src/arm/deoptimizer-arm.cc +0 -737
  262. data/ext/v8/upstream/v8/src/arm/disasm-arm.cc +0 -1503
  263. data/ext/v8/upstream/v8/src/arm/frames-arm.cc +0 -45
  264. data/ext/v8/upstream/v8/src/arm/frames-arm.h +0 -168
  265. data/ext/v8/upstream/v8/src/arm/full-codegen-arm.cc +0 -4374
  266. data/ext/v8/upstream/v8/src/arm/ic-arm.cc +0 -1793
  267. data/ext/v8/upstream/v8/src/arm/jump-target-arm.cc +0 -174
  268. data/ext/v8/upstream/v8/src/arm/lithium-arm.cc +0 -2120
  269. data/ext/v8/upstream/v8/src/arm/lithium-arm.h +0 -2179
  270. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.cc +0 -4132
  271. data/ext/v8/upstream/v8/src/arm/lithium-codegen-arm.h +0 -329
  272. data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.cc +0 -305
  273. data/ext/v8/upstream/v8/src/arm/lithium-gap-resolver-arm.h +0 -84
  274. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.cc +0 -2939
  275. data/ext/v8/upstream/v8/src/arm/macro-assembler-arm.h +0 -1071
  276. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.cc +0 -1287
  277. data/ext/v8/upstream/v8/src/arm/regexp-macro-assembler-arm.h +0 -253
  278. data/ext/v8/upstream/v8/src/arm/register-allocator-arm-inl.h +0 -100
  279. data/ext/v8/upstream/v8/src/arm/register-allocator-arm.cc +0 -63
  280. data/ext/v8/upstream/v8/src/arm/register-allocator-arm.h +0 -44
  281. data/ext/v8/upstream/v8/src/arm/simulator-arm.cc +0 -3288
  282. data/ext/v8/upstream/v8/src/arm/simulator-arm.h +0 -413
  283. data/ext/v8/upstream/v8/src/arm/stub-cache-arm.cc +0 -4034
  284. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm-inl.h +0 -59
  285. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.cc +0 -843
  286. data/ext/v8/upstream/v8/src/arm/virtual-frame-arm.h +0 -523
  287. data/ext/v8/upstream/v8/src/array.js +0 -1249
  288. data/ext/v8/upstream/v8/src/assembler.cc +0 -1067
  289. data/ext/v8/upstream/v8/src/assembler.h +0 -823
  290. data/ext/v8/upstream/v8/src/ast-inl.h +0 -112
  291. data/ext/v8/upstream/v8/src/ast.cc +0 -1078
  292. data/ext/v8/upstream/v8/src/ast.h +0 -2234
  293. data/ext/v8/upstream/v8/src/atomicops.h +0 -167
  294. data/ext/v8/upstream/v8/src/atomicops_internals_arm_gcc.h +0 -145
  295. data/ext/v8/upstream/v8/src/atomicops_internals_mips_gcc.h +0 -169
  296. data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.cc +0 -126
  297. data/ext/v8/upstream/v8/src/atomicops_internals_x86_gcc.h +0 -287
  298. data/ext/v8/upstream/v8/src/atomicops_internals_x86_macosx.h +0 -301
  299. data/ext/v8/upstream/v8/src/atomicops_internals_x86_msvc.h +0 -203
  300. data/ext/v8/upstream/v8/src/bignum-dtoa.cc +0 -655
  301. data/ext/v8/upstream/v8/src/bignum-dtoa.h +0 -81
  302. data/ext/v8/upstream/v8/src/bignum.cc +0 -768
  303. data/ext/v8/upstream/v8/src/bignum.h +0 -140
  304. data/ext/v8/upstream/v8/src/bootstrapper.cc +0 -2138
  305. data/ext/v8/upstream/v8/src/bootstrapper.h +0 -185
  306. data/ext/v8/upstream/v8/src/builtins.cc +0 -1708
  307. data/ext/v8/upstream/v8/src/builtins.h +0 -368
  308. data/ext/v8/upstream/v8/src/bytecodes-irregexp.h +0 -105
  309. data/ext/v8/upstream/v8/src/cached-powers.cc +0 -177
  310. data/ext/v8/upstream/v8/src/cached-powers.h +0 -65
  311. data/ext/v8/upstream/v8/src/char-predicates-inl.h +0 -94
  312. data/ext/v8/upstream/v8/src/char-predicates.h +0 -65
  313. data/ext/v8/upstream/v8/src/checks.cc +0 -110
  314. data/ext/v8/upstream/v8/src/checks.h +0 -296
  315. data/ext/v8/upstream/v8/src/circular-queue-inl.h +0 -53
  316. data/ext/v8/upstream/v8/src/circular-queue.cc +0 -122
  317. data/ext/v8/upstream/v8/src/circular-queue.h +0 -103
  318. data/ext/v8/upstream/v8/src/code-stubs.cc +0 -240
  319. data/ext/v8/upstream/v8/src/code-stubs.h +0 -971
  320. data/ext/v8/upstream/v8/src/code.h +0 -68
  321. data/ext/v8/upstream/v8/src/codegen-inl.h +0 -68
  322. data/ext/v8/upstream/v8/src/codegen.cc +0 -505
  323. data/ext/v8/upstream/v8/src/codegen.h +0 -245
  324. data/ext/v8/upstream/v8/src/compilation-cache.cc +0 -540
  325. data/ext/v8/upstream/v8/src/compilation-cache.h +0 -287
  326. data/ext/v8/upstream/v8/src/compiler.cc +0 -792
  327. data/ext/v8/upstream/v8/src/compiler.h +0 -307
  328. data/ext/v8/upstream/v8/src/contexts.cc +0 -327
  329. data/ext/v8/upstream/v8/src/contexts.h +0 -382
  330. data/ext/v8/upstream/v8/src/conversions-inl.h +0 -110
  331. data/ext/v8/upstream/v8/src/conversions.cc +0 -1125
  332. data/ext/v8/upstream/v8/src/conversions.h +0 -122
  333. data/ext/v8/upstream/v8/src/counters.cc +0 -93
  334. data/ext/v8/upstream/v8/src/counters.h +0 -254
  335. data/ext/v8/upstream/v8/src/cpu-profiler-inl.h +0 -101
  336. data/ext/v8/upstream/v8/src/cpu-profiler.cc +0 -606
  337. data/ext/v8/upstream/v8/src/cpu-profiler.h +0 -305
  338. data/ext/v8/upstream/v8/src/cpu.h +0 -67
  339. data/ext/v8/upstream/v8/src/d8-debug.cc +0 -367
  340. data/ext/v8/upstream/v8/src/d8-debug.h +0 -158
  341. data/ext/v8/upstream/v8/src/d8-posix.cc +0 -695
  342. data/ext/v8/upstream/v8/src/d8-readline.cc +0 -128
  343. data/ext/v8/upstream/v8/src/d8-windows.cc +0 -42
  344. data/ext/v8/upstream/v8/src/d8.cc +0 -796
  345. data/ext/v8/upstream/v8/src/d8.gyp +0 -88
  346. data/ext/v8/upstream/v8/src/d8.h +0 -231
  347. data/ext/v8/upstream/v8/src/d8.js +0 -2798
  348. data/ext/v8/upstream/v8/src/data-flow.cc +0 -545
  349. data/ext/v8/upstream/v8/src/data-flow.h +0 -379
  350. data/ext/v8/upstream/v8/src/date.js +0 -1103
  351. data/ext/v8/upstream/v8/src/dateparser-inl.h +0 -125
  352. data/ext/v8/upstream/v8/src/dateparser.cc +0 -178
  353. data/ext/v8/upstream/v8/src/dateparser.h +0 -265
  354. data/ext/v8/upstream/v8/src/debug-agent.cc +0 -447
  355. data/ext/v8/upstream/v8/src/debug-agent.h +0 -129
  356. data/ext/v8/upstream/v8/src/debug-debugger.js +0 -2569
  357. data/ext/v8/upstream/v8/src/debug.cc +0 -3188
  358. data/ext/v8/upstream/v8/src/debug.h +0 -1055
  359. data/ext/v8/upstream/v8/src/deoptimizer.cc +0 -1296
  360. data/ext/v8/upstream/v8/src/deoptimizer.h +0 -629
  361. data/ext/v8/upstream/v8/src/disasm.h +0 -80
  362. data/ext/v8/upstream/v8/src/disassembler.cc +0 -339
  363. data/ext/v8/upstream/v8/src/disassembler.h +0 -56
  364. data/ext/v8/upstream/v8/src/diy-fp.cc +0 -58
  365. data/ext/v8/upstream/v8/src/diy-fp.h +0 -117
  366. data/ext/v8/upstream/v8/src/double.h +0 -238
  367. data/ext/v8/upstream/v8/src/dtoa.cc +0 -103
  368. data/ext/v8/upstream/v8/src/dtoa.h +0 -85
  369. data/ext/v8/upstream/v8/src/execution.cc +0 -791
  370. data/ext/v8/upstream/v8/src/execution.h +0 -291
  371. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.cc +0 -250
  372. data/ext/v8/upstream/v8/src/extensions/experimental/break-iterator.h +0 -89
  373. data/ext/v8/upstream/v8/src/extensions/experimental/experimental.gyp +0 -55
  374. data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.cc +0 -284
  375. data/ext/v8/upstream/v8/src/extensions/experimental/i18n-extension.h +0 -64
  376. data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.cc +0 -141
  377. data/ext/v8/upstream/v8/src/extensions/externalize-string-extension.h +0 -50
  378. data/ext/v8/upstream/v8/src/extensions/gc-extension.cc +0 -58
  379. data/ext/v8/upstream/v8/src/extensions/gc-extension.h +0 -49
  380. data/ext/v8/upstream/v8/src/factory.cc +0 -1194
  381. data/ext/v8/upstream/v8/src/factory.h +0 -436
  382. data/ext/v8/upstream/v8/src/fast-dtoa.cc +0 -736
  383. data/ext/v8/upstream/v8/src/fast-dtoa.h +0 -83
  384. data/ext/v8/upstream/v8/src/fixed-dtoa.cc +0 -405
  385. data/ext/v8/upstream/v8/src/fixed-dtoa.h +0 -55
  386. data/ext/v8/upstream/v8/src/flag-definitions.h +0 -556
  387. data/ext/v8/upstream/v8/src/flags.cc +0 -551
  388. data/ext/v8/upstream/v8/src/flags.h +0 -79
  389. data/ext/v8/upstream/v8/src/frame-element.cc +0 -37
  390. data/ext/v8/upstream/v8/src/frame-element.h +0 -269
  391. data/ext/v8/upstream/v8/src/frames-inl.h +0 -236
  392. data/ext/v8/upstream/v8/src/frames.cc +0 -1273
  393. data/ext/v8/upstream/v8/src/frames.h +0 -854
  394. data/ext/v8/upstream/v8/src/full-codegen.cc +0 -1385
  395. data/ext/v8/upstream/v8/src/full-codegen.h +0 -753
  396. data/ext/v8/upstream/v8/src/func-name-inferrer.cc +0 -91
  397. data/ext/v8/upstream/v8/src/func-name-inferrer.h +0 -111
  398. data/ext/v8/upstream/v8/src/gdb-jit.cc +0 -1548
  399. data/ext/v8/upstream/v8/src/gdb-jit.h +0 -138
  400. data/ext/v8/upstream/v8/src/global-handles.cc +0 -596
  401. data/ext/v8/upstream/v8/src/global-handles.h +0 -239
  402. data/ext/v8/upstream/v8/src/globals.h +0 -325
  403. data/ext/v8/upstream/v8/src/handles-inl.h +0 -177
  404. data/ext/v8/upstream/v8/src/handles.cc +0 -965
  405. data/ext/v8/upstream/v8/src/handles.h +0 -372
  406. data/ext/v8/upstream/v8/src/hashmap.cc +0 -230
  407. data/ext/v8/upstream/v8/src/hashmap.h +0 -121
  408. data/ext/v8/upstream/v8/src/heap-inl.h +0 -703
  409. data/ext/v8/upstream/v8/src/heap-profiler.cc +0 -1173
  410. data/ext/v8/upstream/v8/src/heap-profiler.h +0 -396
  411. data/ext/v8/upstream/v8/src/heap.cc +0 -5856
  412. data/ext/v8/upstream/v8/src/heap.h +0 -2264
  413. data/ext/v8/upstream/v8/src/hydrogen-instructions.cc +0 -1639
  414. data/ext/v8/upstream/v8/src/hydrogen-instructions.h +0 -3657
  415. data/ext/v8/upstream/v8/src/hydrogen.cc +0 -6011
  416. data/ext/v8/upstream/v8/src/hydrogen.h +0 -1137
  417. data/ext/v8/upstream/v8/src/ia32/assembler-ia32-inl.h +0 -430
  418. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.cc +0 -2846
  419. data/ext/v8/upstream/v8/src/ia32/assembler-ia32.h +0 -1159
  420. data/ext/v8/upstream/v8/src/ia32/builtins-ia32.cc +0 -1596
  421. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.cc +0 -6549
  422. data/ext/v8/upstream/v8/src/ia32/code-stubs-ia32.h +0 -495
  423. data/ext/v8/upstream/v8/src/ia32/codegen-ia32-inl.h +0 -46
  424. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.cc +0 -10385
  425. data/ext/v8/upstream/v8/src/ia32/codegen-ia32.h +0 -801
  426. data/ext/v8/upstream/v8/src/ia32/cpu-ia32.cc +0 -88
  427. data/ext/v8/upstream/v8/src/ia32/debug-ia32.cc +0 -312
  428. data/ext/v8/upstream/v8/src/ia32/deoptimizer-ia32.cc +0 -774
  429. data/ext/v8/upstream/v8/src/ia32/disasm-ia32.cc +0 -1620
  430. data/ext/v8/upstream/v8/src/ia32/frames-ia32.cc +0 -45
  431. data/ext/v8/upstream/v8/src/ia32/frames-ia32.h +0 -140
  432. data/ext/v8/upstream/v8/src/ia32/full-codegen-ia32.cc +0 -4357
  433. data/ext/v8/upstream/v8/src/ia32/ic-ia32.cc +0 -1779
  434. data/ext/v8/upstream/v8/src/ia32/jump-target-ia32.cc +0 -437
  435. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.cc +0 -4158
  436. data/ext/v8/upstream/v8/src/ia32/lithium-codegen-ia32.h +0 -318
  437. data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.cc +0 -466
  438. data/ext/v8/upstream/v8/src/ia32/lithium-gap-resolver-ia32.h +0 -110
  439. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.cc +0 -2181
  440. data/ext/v8/upstream/v8/src/ia32/lithium-ia32.h +0 -2235
  441. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.cc +0 -2056
  442. data/ext/v8/upstream/v8/src/ia32/macro-assembler-ia32.h +0 -807
  443. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.cc +0 -1264
  444. data/ext/v8/upstream/v8/src/ia32/regexp-macro-assembler-ia32.h +0 -216
  445. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32-inl.h +0 -82
  446. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.cc +0 -157
  447. data/ext/v8/upstream/v8/src/ia32/register-allocator-ia32.h +0 -43
  448. data/ext/v8/upstream/v8/src/ia32/simulator-ia32.cc +0 -30
  449. data/ext/v8/upstream/v8/src/ia32/simulator-ia32.h +0 -72
  450. data/ext/v8/upstream/v8/src/ia32/stub-cache-ia32.cc +0 -3711
  451. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.cc +0 -1366
  452. data/ext/v8/upstream/v8/src/ia32/virtual-frame-ia32.h +0 -650
  453. data/ext/v8/upstream/v8/src/ic-inl.h +0 -130
  454. data/ext/v8/upstream/v8/src/ic.cc +0 -2389
  455. data/ext/v8/upstream/v8/src/ic.h +0 -675
  456. data/ext/v8/upstream/v8/src/inspector.cc +0 -63
  457. data/ext/v8/upstream/v8/src/inspector.h +0 -62
  458. data/ext/v8/upstream/v8/src/interpreter-irregexp.cc +0 -659
  459. data/ext/v8/upstream/v8/src/interpreter-irregexp.h +0 -49
  460. data/ext/v8/upstream/v8/src/isolate.cc +0 -883
  461. data/ext/v8/upstream/v8/src/isolate.h +0 -1306
  462. data/ext/v8/upstream/v8/src/json.js +0 -342
  463. data/ext/v8/upstream/v8/src/jsregexp.cc +0 -5371
  464. data/ext/v8/upstream/v8/src/jsregexp.h +0 -1483
  465. data/ext/v8/upstream/v8/src/jump-target-heavy-inl.h +0 -51
  466. data/ext/v8/upstream/v8/src/jump-target-heavy.cc +0 -427
  467. data/ext/v8/upstream/v8/src/jump-target-heavy.h +0 -238
  468. data/ext/v8/upstream/v8/src/jump-target-inl.h +0 -48
  469. data/ext/v8/upstream/v8/src/jump-target-light-inl.h +0 -56
  470. data/ext/v8/upstream/v8/src/jump-target-light.cc +0 -111
  471. data/ext/v8/upstream/v8/src/jump-target-light.h +0 -193
  472. data/ext/v8/upstream/v8/src/jump-target.cc +0 -91
  473. data/ext/v8/upstream/v8/src/jump-target.h +0 -90
  474. data/ext/v8/upstream/v8/src/list-inl.h +0 -206
  475. data/ext/v8/upstream/v8/src/list.h +0 -164
  476. data/ext/v8/upstream/v8/src/lithium-allocator-inl.h +0 -142
  477. data/ext/v8/upstream/v8/src/lithium-allocator.cc +0 -2105
  478. data/ext/v8/upstream/v8/src/lithium-allocator.h +0 -630
  479. data/ext/v8/upstream/v8/src/lithium.cc +0 -169
  480. data/ext/v8/upstream/v8/src/lithium.h +0 -592
  481. data/ext/v8/upstream/v8/src/liveedit-debugger.js +0 -1082
  482. data/ext/v8/upstream/v8/src/liveedit.cc +0 -1693
  483. data/ext/v8/upstream/v8/src/liveedit.h +0 -179
  484. data/ext/v8/upstream/v8/src/liveobjectlist-inl.h +0 -126
  485. data/ext/v8/upstream/v8/src/liveobjectlist.cc +0 -2589
  486. data/ext/v8/upstream/v8/src/liveobjectlist.h +0 -322
  487. data/ext/v8/upstream/v8/src/log-inl.h +0 -59
  488. data/ext/v8/upstream/v8/src/log-utils.cc +0 -423
  489. data/ext/v8/upstream/v8/src/log-utils.h +0 -229
  490. data/ext/v8/upstream/v8/src/log.cc +0 -1666
  491. data/ext/v8/upstream/v8/src/log.h +0 -446
  492. data/ext/v8/upstream/v8/src/macro-assembler.h +0 -120
  493. data/ext/v8/upstream/v8/src/macros.py +0 -178
  494. data/ext/v8/upstream/v8/src/mark-compact.cc +0 -3092
  495. data/ext/v8/upstream/v8/src/mark-compact.h +0 -506
  496. data/ext/v8/upstream/v8/src/math.js +0 -264
  497. data/ext/v8/upstream/v8/src/messages.cc +0 -166
  498. data/ext/v8/upstream/v8/src/messages.h +0 -114
  499. data/ext/v8/upstream/v8/src/messages.js +0 -1090
  500. data/ext/v8/upstream/v8/src/mips/assembler-mips-inl.h +0 -335
  501. data/ext/v8/upstream/v8/src/mips/assembler-mips.cc +0 -2093
  502. data/ext/v8/upstream/v8/src/mips/assembler-mips.h +0 -1066
  503. data/ext/v8/upstream/v8/src/mips/builtins-mips.cc +0 -148
  504. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.cc +0 -752
  505. data/ext/v8/upstream/v8/src/mips/code-stubs-mips.h +0 -511
  506. data/ext/v8/upstream/v8/src/mips/codegen-mips-inl.h +0 -64
  507. data/ext/v8/upstream/v8/src/mips/codegen-mips.cc +0 -1213
  508. data/ext/v8/upstream/v8/src/mips/codegen-mips.h +0 -633
  509. data/ext/v8/upstream/v8/src/mips/constants-mips.cc +0 -352
  510. data/ext/v8/upstream/v8/src/mips/constants-mips.h +0 -723
  511. data/ext/v8/upstream/v8/src/mips/cpu-mips.cc +0 -90
  512. data/ext/v8/upstream/v8/src/mips/debug-mips.cc +0 -155
  513. data/ext/v8/upstream/v8/src/mips/deoptimizer-mips.cc +0 -91
  514. data/ext/v8/upstream/v8/src/mips/disasm-mips.cc +0 -1023
  515. data/ext/v8/upstream/v8/src/mips/frames-mips.cc +0 -48
  516. data/ext/v8/upstream/v8/src/mips/frames-mips.h +0 -179
  517. data/ext/v8/upstream/v8/src/mips/full-codegen-mips.cc +0 -727
  518. data/ext/v8/upstream/v8/src/mips/ic-mips.cc +0 -244
  519. data/ext/v8/upstream/v8/src/mips/jump-target-mips.cc +0 -80
  520. data/ext/v8/upstream/v8/src/mips/lithium-codegen-mips.h +0 -65
  521. data/ext/v8/upstream/v8/src/mips/lithium-mips.h +0 -304
  522. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.cc +0 -3327
  523. data/ext/v8/upstream/v8/src/mips/macro-assembler-mips.h +0 -1058
  524. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.cc +0 -478
  525. data/ext/v8/upstream/v8/src/mips/regexp-macro-assembler-mips.h +0 -250
  526. data/ext/v8/upstream/v8/src/mips/register-allocator-mips-inl.h +0 -134
  527. data/ext/v8/upstream/v8/src/mips/register-allocator-mips.cc +0 -63
  528. data/ext/v8/upstream/v8/src/mips/register-allocator-mips.h +0 -47
  529. data/ext/v8/upstream/v8/src/mips/simulator-mips.cc +0 -2438
  530. data/ext/v8/upstream/v8/src/mips/simulator-mips.h +0 -394
  531. data/ext/v8/upstream/v8/src/mips/stub-cache-mips.cc +0 -601
  532. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips-inl.h +0 -58
  533. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.cc +0 -307
  534. data/ext/v8/upstream/v8/src/mips/virtual-frame-mips.h +0 -530
  535. data/ext/v8/upstream/v8/src/mirror-debugger.js +0 -2381
  536. data/ext/v8/upstream/v8/src/mksnapshot.cc +0 -256
  537. data/ext/v8/upstream/v8/src/natives.h +0 -63
  538. data/ext/v8/upstream/v8/src/objects-debug.cc +0 -722
  539. data/ext/v8/upstream/v8/src/objects-inl.h +0 -4166
  540. data/ext/v8/upstream/v8/src/objects-printer.cc +0 -801
  541. data/ext/v8/upstream/v8/src/objects-visiting.cc +0 -142
  542. data/ext/v8/upstream/v8/src/objects-visiting.h +0 -422
  543. data/ext/v8/upstream/v8/src/objects.cc +0 -10296
  544. data/ext/v8/upstream/v8/src/objects.h +0 -6662
  545. data/ext/v8/upstream/v8/src/parser.cc +0 -5168
  546. data/ext/v8/upstream/v8/src/parser.h +0 -823
  547. data/ext/v8/upstream/v8/src/platform-cygwin.cc +0 -811
  548. data/ext/v8/upstream/v8/src/platform-freebsd.cc +0 -854
  549. data/ext/v8/upstream/v8/src/platform-linux.cc +0 -1120
  550. data/ext/v8/upstream/v8/src/platform-macos.cc +0 -865
  551. data/ext/v8/upstream/v8/src/platform-nullos.cc +0 -504
  552. data/ext/v8/upstream/v8/src/platform-openbsd.cc +0 -672
  553. data/ext/v8/upstream/v8/src/platform-posix.cc +0 -424
  554. data/ext/v8/upstream/v8/src/platform-solaris.cc +0 -796
  555. data/ext/v8/upstream/v8/src/platform-tls-mac.h +0 -62
  556. data/ext/v8/upstream/v8/src/platform-tls-win32.h +0 -62
  557. data/ext/v8/upstream/v8/src/platform-tls.h +0 -50
  558. data/ext/v8/upstream/v8/src/platform-win32.cc +0 -2072
  559. data/ext/v8/upstream/v8/src/platform.h +0 -693
  560. data/ext/v8/upstream/v8/src/preparse-data.cc +0 -185
  561. data/ext/v8/upstream/v8/src/preparse-data.h +0 -249
  562. data/ext/v8/upstream/v8/src/preparser-api.cc +0 -219
  563. data/ext/v8/upstream/v8/src/preparser.cc +0 -1205
  564. data/ext/v8/upstream/v8/src/preparser.h +0 -278
  565. data/ext/v8/upstream/v8/src/prettyprinter.cc +0 -1530
  566. data/ext/v8/upstream/v8/src/prettyprinter.h +0 -223
  567. data/ext/v8/upstream/v8/src/profile-generator-inl.h +0 -128
  568. data/ext/v8/upstream/v8/src/profile-generator.cc +0 -3095
  569. data/ext/v8/upstream/v8/src/profile-generator.h +0 -1125
  570. data/ext/v8/upstream/v8/src/property.cc +0 -102
  571. data/ext/v8/upstream/v8/src/property.h +0 -348
  572. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp-inl.h +0 -78
  573. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.cc +0 -470
  574. data/ext/v8/upstream/v8/src/regexp-macro-assembler-irregexp.h +0 -142
  575. data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.cc +0 -373
  576. data/ext/v8/upstream/v8/src/regexp-macro-assembler-tracer.h +0 -104
  577. data/ext/v8/upstream/v8/src/regexp-macro-assembler.cc +0 -266
  578. data/ext/v8/upstream/v8/src/regexp-macro-assembler.h +0 -236
  579. data/ext/v8/upstream/v8/src/regexp-stack.cc +0 -111
  580. data/ext/v8/upstream/v8/src/regexp-stack.h +0 -147
  581. data/ext/v8/upstream/v8/src/regexp.js +0 -483
  582. data/ext/v8/upstream/v8/src/register-allocator-inl.h +0 -141
  583. data/ext/v8/upstream/v8/src/register-allocator.cc +0 -98
  584. data/ext/v8/upstream/v8/src/register-allocator.h +0 -310
  585. data/ext/v8/upstream/v8/src/rewriter.cc +0 -1024
  586. data/ext/v8/upstream/v8/src/rewriter.h +0 -59
  587. data/ext/v8/upstream/v8/src/runtime-profiler.cc +0 -478
  588. data/ext/v8/upstream/v8/src/runtime-profiler.h +0 -192
  589. data/ext/v8/upstream/v8/src/runtime.cc +0 -11949
  590. data/ext/v8/upstream/v8/src/runtime.h +0 -643
  591. data/ext/v8/upstream/v8/src/runtime.js +0 -643
  592. data/ext/v8/upstream/v8/src/safepoint-table.cc +0 -256
  593. data/ext/v8/upstream/v8/src/safepoint-table.h +0 -269
  594. data/ext/v8/upstream/v8/src/scanner-base.cc +0 -964
  595. data/ext/v8/upstream/v8/src/scanner-base.h +0 -664
  596. data/ext/v8/upstream/v8/src/scanner.cc +0 -584
  597. data/ext/v8/upstream/v8/src/scanner.h +0 -196
  598. data/ext/v8/upstream/v8/src/scopeinfo.cc +0 -631
  599. data/ext/v8/upstream/v8/src/scopeinfo.h +0 -249
  600. data/ext/v8/upstream/v8/src/scopes.cc +0 -1093
  601. data/ext/v8/upstream/v8/src/scopes.h +0 -508
  602. data/ext/v8/upstream/v8/src/serialize.cc +0 -1574
  603. data/ext/v8/upstream/v8/src/serialize.h +0 -589
  604. data/ext/v8/upstream/v8/src/shell.h +0 -55
  605. data/ext/v8/upstream/v8/src/simulator.h +0 -43
  606. data/ext/v8/upstream/v8/src/small-pointer-list.h +0 -163
  607. data/ext/v8/upstream/v8/src/smart-pointer.h +0 -109
  608. data/ext/v8/upstream/v8/src/snapshot-common.cc +0 -82
  609. data/ext/v8/upstream/v8/src/snapshot-empty.cc +0 -50
  610. data/ext/v8/upstream/v8/src/snapshot.h +0 -73
  611. data/ext/v8/upstream/v8/src/spaces-inl.h +0 -529
  612. data/ext/v8/upstream/v8/src/spaces.cc +0 -3147
  613. data/ext/v8/upstream/v8/src/spaces.h +0 -2368
  614. data/ext/v8/upstream/v8/src/splay-tree-inl.h +0 -310
  615. data/ext/v8/upstream/v8/src/splay-tree.h +0 -203
  616. data/ext/v8/upstream/v8/src/string-search.cc +0 -41
  617. data/ext/v8/upstream/v8/src/string-search.h +0 -568
  618. data/ext/v8/upstream/v8/src/string-stream.cc +0 -592
  619. data/ext/v8/upstream/v8/src/string-stream.h +0 -191
  620. data/ext/v8/upstream/v8/src/string.js +0 -915
  621. data/ext/v8/upstream/v8/src/strtod.cc +0 -440
  622. data/ext/v8/upstream/v8/src/strtod.h +0 -40
  623. data/ext/v8/upstream/v8/src/stub-cache.cc +0 -1940
  624. data/ext/v8/upstream/v8/src/stub-cache.h +0 -866
  625. data/ext/v8/upstream/v8/src/third_party/valgrind/valgrind.h +0 -3925
  626. data/ext/v8/upstream/v8/src/token.cc +0 -63
  627. data/ext/v8/upstream/v8/src/token.h +0 -288
  628. data/ext/v8/upstream/v8/src/top.cc +0 -983
  629. data/ext/v8/upstream/v8/src/type-info.cc +0 -472
  630. data/ext/v8/upstream/v8/src/type-info.h +0 -290
  631. data/ext/v8/upstream/v8/src/unbound-queue-inl.h +0 -95
  632. data/ext/v8/upstream/v8/src/unbound-queue.h +0 -67
  633. data/ext/v8/upstream/v8/src/unicode-inl.h +0 -238
  634. data/ext/v8/upstream/v8/src/unicode.cc +0 -1624
  635. data/ext/v8/upstream/v8/src/unicode.h +0 -280
  636. data/ext/v8/upstream/v8/src/uri.js +0 -402
  637. data/ext/v8/upstream/v8/src/utils.cc +0 -371
  638. data/ext/v8/upstream/v8/src/utils.h +0 -796
  639. data/ext/v8/upstream/v8/src/v8-counters.cc +0 -62
  640. data/ext/v8/upstream/v8/src/v8-counters.h +0 -311
  641. data/ext/v8/upstream/v8/src/v8.cc +0 -215
  642. data/ext/v8/upstream/v8/src/v8.h +0 -130
  643. data/ext/v8/upstream/v8/src/v8checks.h +0 -64
  644. data/ext/v8/upstream/v8/src/v8dll-main.cc +0 -39
  645. data/ext/v8/upstream/v8/src/v8globals.h +0 -486
  646. data/ext/v8/upstream/v8/src/v8memory.h +0 -82
  647. data/ext/v8/upstream/v8/src/v8natives.js +0 -1293
  648. data/ext/v8/upstream/v8/src/v8preparserdll-main.cc +0 -39
  649. data/ext/v8/upstream/v8/src/v8threads.cc +0 -453
  650. data/ext/v8/upstream/v8/src/v8threads.h +0 -164
  651. data/ext/v8/upstream/v8/src/v8utils.h +0 -317
  652. data/ext/v8/upstream/v8/src/variables.cc +0 -132
  653. data/ext/v8/upstream/v8/src/variables.h +0 -212
  654. data/ext/v8/upstream/v8/src/version.cc +0 -116
  655. data/ext/v8/upstream/v8/src/version.h +0 -68
  656. data/ext/v8/upstream/v8/src/virtual-frame-heavy-inl.h +0 -190
  657. data/ext/v8/upstream/v8/src/virtual-frame-heavy.cc +0 -312
  658. data/ext/v8/upstream/v8/src/virtual-frame-inl.h +0 -39
  659. data/ext/v8/upstream/v8/src/virtual-frame-light-inl.h +0 -171
  660. data/ext/v8/upstream/v8/src/virtual-frame-light.cc +0 -52
  661. data/ext/v8/upstream/v8/src/virtual-frame.cc +0 -49
  662. data/ext/v8/upstream/v8/src/virtual-frame.h +0 -59
  663. data/ext/v8/upstream/v8/src/vm-state-inl.h +0 -138
  664. data/ext/v8/upstream/v8/src/vm-state.h +0 -70
  665. data/ext/v8/upstream/v8/src/win32-headers.h +0 -96
  666. data/ext/v8/upstream/v8/src/x64/assembler-x64-inl.h +0 -456
  667. data/ext/v8/upstream/v8/src/x64/assembler-x64.cc +0 -2954
  668. data/ext/v8/upstream/v8/src/x64/assembler-x64.h +0 -1630
  669. data/ext/v8/upstream/v8/src/x64/builtins-x64.cc +0 -1493
  670. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.cc +0 -5132
  671. data/ext/v8/upstream/v8/src/x64/code-stubs-x64.h +0 -477
  672. data/ext/v8/upstream/v8/src/x64/codegen-x64-inl.h +0 -46
  673. data/ext/v8/upstream/v8/src/x64/codegen-x64.cc +0 -8843
  674. data/ext/v8/upstream/v8/src/x64/codegen-x64.h +0 -753
  675. data/ext/v8/upstream/v8/src/x64/cpu-x64.cc +0 -88
  676. data/ext/v8/upstream/v8/src/x64/debug-x64.cc +0 -318
  677. data/ext/v8/upstream/v8/src/x64/deoptimizer-x64.cc +0 -815
  678. data/ext/v8/upstream/v8/src/x64/disasm-x64.cc +0 -1752
  679. data/ext/v8/upstream/v8/src/x64/frames-x64.cc +0 -45
  680. data/ext/v8/upstream/v8/src/x64/frames-x64.h +0 -130
  681. data/ext/v8/upstream/v8/src/x64/full-codegen-x64.cc +0 -4339
  682. data/ext/v8/upstream/v8/src/x64/ic-x64.cc +0 -1752
  683. data/ext/v8/upstream/v8/src/x64/jump-target-x64.cc +0 -437
  684. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.cc +0 -3970
  685. data/ext/v8/upstream/v8/src/x64/lithium-codegen-x64.h +0 -318
  686. data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.cc +0 -320
  687. data/ext/v8/upstream/v8/src/x64/lithium-gap-resolver-x64.h +0 -74
  688. data/ext/v8/upstream/v8/src/x64/lithium-x64.cc +0 -2115
  689. data/ext/v8/upstream/v8/src/x64/lithium-x64.h +0 -2161
  690. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.cc +0 -2911
  691. data/ext/v8/upstream/v8/src/x64/macro-assembler-x64.h +0 -1984
  692. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.cc +0 -1398
  693. data/ext/v8/upstream/v8/src/x64/regexp-macro-assembler-x64.h +0 -282
  694. data/ext/v8/upstream/v8/src/x64/register-allocator-x64-inl.h +0 -87
  695. data/ext/v8/upstream/v8/src/x64/register-allocator-x64.cc +0 -95
  696. data/ext/v8/upstream/v8/src/x64/register-allocator-x64.h +0 -43
  697. data/ext/v8/upstream/v8/src/x64/simulator-x64.cc +0 -27
  698. data/ext/v8/upstream/v8/src/x64/simulator-x64.h +0 -71
  699. data/ext/v8/upstream/v8/src/x64/stub-cache-x64.cc +0 -3460
  700. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.cc +0 -1296
  701. data/ext/v8/upstream/v8/src/x64/virtual-frame-x64.h +0 -597
  702. data/ext/v8/upstream/v8/src/zone-inl.h +0 -129
  703. data/ext/v8/upstream/v8/src/zone.cc +0 -196
  704. data/ext/v8/upstream/v8/src/zone.h +0 -236
  705. data/ext/v8/upstream/v8/tools/codemap.js +0 -265
  706. data/ext/v8/upstream/v8/tools/consarray.js +0 -93
  707. data/ext/v8/upstream/v8/tools/csvparser.js +0 -78
  708. data/ext/v8/upstream/v8/tools/disasm.py +0 -92
  709. data/ext/v8/upstream/v8/tools/freebsd-tick-processor +0 -10
  710. data/ext/v8/upstream/v8/tools/gc-nvp-trace-processor.py +0 -328
  711. data/ext/v8/upstream/v8/tools/generate-ten-powers.scm +0 -286
  712. data/ext/v8/upstream/v8/tools/grokdump.py +0 -840
  713. data/ext/v8/upstream/v8/tools/gyp/v8.gyp +0 -844
  714. data/ext/v8/upstream/v8/tools/js2c.py +0 -380
  715. data/ext/v8/upstream/v8/tools/jsmin.py +0 -280
  716. data/ext/v8/upstream/v8/tools/linux-tick-processor +0 -35
  717. data/ext/v8/upstream/v8/tools/ll_prof.py +0 -919
  718. data/ext/v8/upstream/v8/tools/logreader.js +0 -185
  719. data/ext/v8/upstream/v8/tools/mac-nm +0 -18
  720. data/ext/v8/upstream/v8/tools/mac-tick-processor +0 -6
  721. data/ext/v8/upstream/v8/tools/oom_dump/README +0 -31
  722. data/ext/v8/upstream/v8/tools/oom_dump/SConstruct +0 -42
  723. data/ext/v8/upstream/v8/tools/oom_dump/oom_dump.cc +0 -288
  724. data/ext/v8/upstream/v8/tools/presubmit.py +0 -305
  725. data/ext/v8/upstream/v8/tools/process-heap-prof.py +0 -120
  726. data/ext/v8/upstream/v8/tools/profile.js +0 -751
  727. data/ext/v8/upstream/v8/tools/profile_view.js +0 -219
  728. data/ext/v8/upstream/v8/tools/run-valgrind.py +0 -77
  729. data/ext/v8/upstream/v8/tools/splaytree.js +0 -316
  730. data/ext/v8/upstream/v8/tools/stats-viewer.py +0 -468
  731. data/ext/v8/upstream/v8/tools/test.py +0 -1490
  732. data/ext/v8/upstream/v8/tools/tickprocessor-driver.js +0 -59
  733. data/ext/v8/upstream/v8/tools/tickprocessor.js +0 -877
  734. data/ext/v8/upstream/v8/tools/utils.py +0 -96
  735. data/ext/v8/upstream/v8/tools/visual_studio/README.txt +0 -70
  736. data/ext/v8/upstream/v8/tools/visual_studio/arm.vsprops +0 -14
  737. data/ext/v8/upstream/v8/tools/visual_studio/common.vsprops +0 -34
  738. data/ext/v8/upstream/v8/tools/visual_studio/d8.vcproj +0 -193
  739. data/ext/v8/upstream/v8/tools/visual_studio/d8_arm.vcproj +0 -193
  740. data/ext/v8/upstream/v8/tools/visual_studio/d8_x64.vcproj +0 -209
  741. data/ext/v8/upstream/v8/tools/visual_studio/d8js2c.cmd +0 -6
  742. data/ext/v8/upstream/v8/tools/visual_studio/debug.vsprops +0 -17
  743. data/ext/v8/upstream/v8/tools/visual_studio/ia32.vsprops +0 -17
  744. data/ext/v8/upstream/v8/tools/visual_studio/js2c.cmd +0 -6
  745. data/ext/v8/upstream/v8/tools/visual_studio/release.vsprops +0 -24
  746. data/ext/v8/upstream/v8/tools/visual_studio/v8.sln +0 -101
  747. data/ext/v8/upstream/v8/tools/visual_studio/v8.vcproj +0 -227
  748. data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.sln +0 -74
  749. data/ext/v8/upstream/v8/tools/visual_studio/v8_arm.vcproj +0 -227
  750. data/ext/v8/upstream/v8/tools/visual_studio/v8_base.vcproj +0 -1308
  751. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_arm.vcproj +0 -1238
  752. data/ext/v8/upstream/v8/tools/visual_studio/v8_base_x64.vcproj +0 -1300
  753. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest.vcproj +0 -265
  754. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_arm.vcproj +0 -249
  755. data/ext/v8/upstream/v8/tools/visual_studio/v8_cctest_x64.vcproj +0 -257
  756. data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot.vcproj +0 -145
  757. data/ext/v8/upstream/v8/tools/visual_studio/v8_mksnapshot_x64.vcproj +0 -145
  758. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample.vcproj +0 -145
  759. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_arm.vcproj +0 -145
  760. data/ext/v8/upstream/v8/tools/visual_studio/v8_process_sample_x64.vcproj +0 -161
  761. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample.vcproj +0 -147
  762. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_arm.vcproj +0 -147
  763. data/ext/v8/upstream/v8/tools/visual_studio/v8_shell_sample_x64.vcproj +0 -163
  764. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot.vcproj +0 -142
  765. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc.vcproj +0 -92
  766. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_cc_x64.vcproj +0 -92
  767. data/ext/v8/upstream/v8/tools/visual_studio/v8_snapshot_x64.vcproj +0 -142
  768. data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.sln +0 -101
  769. data/ext/v8/upstream/v8/tools/visual_studio/v8_x64.vcproj +0 -227
  770. data/ext/v8/upstream/v8/tools/visual_studio/x64.vsprops +0 -18
  771. data/ext/v8/upstream/v8/tools/windows-tick-processor.bat +0 -30
@@ -1,1030 +0,0 @@
1
- #
2
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be included
13
- # in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
16
- # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
17
- # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #
23
-
24
- __doc__ = """
25
- Generic Taskmaster module for the SCons build engine.
26
-
27
- This module contains the primary interface(s) between a wrapping user
28
- interface and the SCons build engine. There are two key classes here:
29
-
30
- Taskmaster
31
- This is the main engine for walking the dependency graph and
32
- calling things to decide what does or doesn't need to be built.
33
-
34
- Task
35
- This is the base class for allowing a wrapping interface to
36
- decide what does or doesn't actually need to be done. The
37
- intention is for a wrapping interface to subclass this as
38
- appropriate for different types of behavior it may need.
39
-
40
- The canonical example is the SCons native Python interface,
41
- which has Task subclasses that handle its specific behavior,
42
- like printing "`foo' is up to date" when a top-level target
43
- doesn't need to be built, and handling the -c option by removing
44
- targets as its "build" action. There is also a separate subclass
45
- for suppressing this output when the -q option is used.
46
-
47
- The Taskmaster instantiates a Task object for each (set of)
48
- target(s) that it decides need to be evaluated and/or built.
49
- """
50
-
51
- __revision__ = "src/engine/SCons/Taskmaster.py 4629 2010/01/17 22:23:21 scons"
52
-
53
- from itertools import chain
54
- import operator
55
- import string
56
- import sys
57
- import traceback
58
-
59
- import SCons.Errors
60
- import SCons.Node
61
- import SCons.Warnings
62
-
63
- StateString = SCons.Node.StateString
64
- NODE_NO_STATE = SCons.Node.no_state
65
- NODE_PENDING = SCons.Node.pending
66
- NODE_EXECUTING = SCons.Node.executing
67
- NODE_UP_TO_DATE = SCons.Node.up_to_date
68
- NODE_EXECUTED = SCons.Node.executed
69
- NODE_FAILED = SCons.Node.failed
70
-
71
-
72
- # A subsystem for recording stats about how different Nodes are handled by
73
- # the main Taskmaster loop. There's no external control here (no need for
74
- # a --debug= option); enable it by changing the value of CollectStats.
75
-
76
- CollectStats = None
77
-
78
- class Stats:
79
- """
80
- A simple class for holding statistics about the disposition of a
81
- Node by the Taskmaster. If we're collecting statistics, each Node
82
- processed by the Taskmaster gets one of these attached, in which case
83
- the Taskmaster records its decision each time it processes the Node.
84
- (Ideally, that's just once per Node.)
85
- """
86
- def __init__(self):
87
- """
88
- Instantiates a Taskmaster.Stats object, initializing all
89
- appropriate counters to zero.
90
- """
91
- self.considered = 0
92
- self.already_handled = 0
93
- self.problem = 0
94
- self.child_failed = 0
95
- self.not_built = 0
96
- self.side_effects = 0
97
- self.build = 0
98
-
99
- StatsNodes = []
100
-
101
- fmt = "%(considered)3d "\
102
- "%(already_handled)3d " \
103
- "%(problem)3d " \
104
- "%(child_failed)3d " \
105
- "%(not_built)3d " \
106
- "%(side_effects)3d " \
107
- "%(build)3d "
108
-
109
- def dump_stats():
110
- StatsNodes.sort(lambda a, b: cmp(str(a), str(b)))
111
- for n in StatsNodes:
112
- print (fmt % n.stats.__dict__) + str(n)
113
-
114
-
115
-
116
- class Task:
117
- """
118
- Default SCons build engine task.
119
-
120
- This controls the interaction of the actual building of node
121
- and the rest of the engine.
122
-
123
- This is expected to handle all of the normally-customizable
124
- aspects of controlling a build, so any given application
125
- *should* be able to do what it wants by sub-classing this
126
- class and overriding methods as appropriate. If an application
127
- needs to customze something by sub-classing Taskmaster (or
128
- some other build engine class), we should first try to migrate
129
- that functionality into this class.
130
-
131
- Note that it's generally a good idea for sub-classes to call
132
- these methods explicitly to update state, etc., rather than
133
- roll their own interaction with Taskmaster from scratch.
134
- """
135
- def __init__(self, tm, targets, top, node):
136
- self.tm = tm
137
- self.targets = targets
138
- self.top = top
139
- self.node = node
140
- self.exc_clear()
141
-
142
- def trace_message(self, method, node, description='node'):
143
- fmt = '%-20s %s %s\n'
144
- return fmt % (method + ':', description, self.tm.trace_node(node))
145
-
146
- def display(self, message):
147
- """
148
- Hook to allow the calling interface to display a message.
149
-
150
- This hook gets called as part of preparing a task for execution
151
- (that is, a Node to be built). As part of figuring out what Node
152
- should be built next, the actually target list may be altered,
153
- along with a message describing the alteration. The calling
154
- interface can subclass Task and provide a concrete implementation
155
- of this method to see those messages.
156
- """
157
- pass
158
-
159
- def prepare(self):
160
- """
161
- Called just before the task is executed.
162
-
163
- This is mainly intended to give the target Nodes a chance to
164
- unlink underlying files and make all necessary directories before
165
- the Action is actually called to build the targets.
166
- """
167
- T = self.tm.trace
168
- if T: T.write(self.trace_message('Task.prepare()', self.node))
169
-
170
- # Now that it's the appropriate time, give the TaskMaster a
171
- # chance to raise any exceptions it encountered while preparing
172
- # this task.
173
- self.exception_raise()
174
-
175
- if self.tm.message:
176
- self.display(self.tm.message)
177
- self.tm.message = None
178
-
179
- # Let the targets take care of any necessary preparations.
180
- # This includes verifying that all of the necessary sources
181
- # and dependencies exist, removing the target file(s), etc.
182
- #
183
- # As of April 2008, the get_executor().prepare() method makes
184
- # sure that all of the aggregate sources necessary to build this
185
- # Task's target(s) exist in one up-front check. The individual
186
- # target t.prepare() methods check that each target's explicit
187
- # or implicit dependencies exists, and also initialize the
188
- # .sconsign info.
189
- executor = self.targets[0].get_executor()
190
- executor.prepare()
191
- for t in executor.get_action_targets():
192
- t.prepare()
193
- for s in t.side_effects:
194
- s.prepare()
195
-
196
- def get_target(self):
197
- """Fetch the target being built or updated by this task.
198
- """
199
- return self.node
200
-
201
- def needs_execute(self):
202
- # TODO(deprecate): "return True" is the old default behavior;
203
- # change it to NotImplementedError (after running through the
204
- # Deprecation Cycle) so the desired behavior is explicitly
205
- # determined by which concrete subclass is used.
206
- #raise NotImplementedError
207
- msg = ('Direct use of the Taskmaster.Task class will be deprecated\n'
208
- + '\tin a future release.')
209
- SCons.Warnings.warn(SCons.Warnings.TaskmasterNeedsExecuteWarning, msg)
210
- return True
211
-
212
- def execute(self):
213
- """
214
- Called to execute the task.
215
-
216
- This method is called from multiple threads in a parallel build,
217
- so only do thread safe stuff here. Do thread unsafe stuff in
218
- prepare(), executed() or failed().
219
- """
220
- T = self.tm.trace
221
- if T: T.write(self.trace_message('Task.execute()', self.node))
222
-
223
- try:
224
- everything_was_cached = 1
225
- for t in self.targets:
226
- if t.retrieve_from_cache():
227
- # Call the .built() method without calling the
228
- # .push_to_cache() method, since we just got the
229
- # target from the cache and don't need to push
230
- # it back there.
231
- t.set_state(NODE_EXECUTED)
232
- t.built()
233
- else:
234
- everything_was_cached = 0
235
- break
236
- if not everything_was_cached:
237
- self.targets[0].build()
238
- except SystemExit:
239
- exc_value = sys.exc_info()[1]
240
- raise SCons.Errors.ExplicitExit(self.targets[0], exc_value.code)
241
- except SCons.Errors.UserError:
242
- raise
243
- except SCons.Errors.BuildError:
244
- raise
245
- except Exception, e:
246
- buildError = SCons.Errors.convert_to_BuildError(e)
247
- buildError.node = self.targets[0]
248
- buildError.exc_info = sys.exc_info()
249
- raise buildError
250
-
251
- def executed_without_callbacks(self):
252
- """
253
- Called when the task has been successfully executed
254
- and the Taskmaster instance doesn't want to call
255
- the Node's callback methods.
256
- """
257
- T = self.tm.trace
258
- if T: T.write(self.trace_message('Task.executed_without_callbacks()',
259
- self.node))
260
-
261
- for t in self.targets:
262
- if t.get_state() == NODE_EXECUTING:
263
- for side_effect in t.side_effects:
264
- side_effect.set_state(NODE_NO_STATE)
265
- t.set_state(NODE_EXECUTED)
266
-
267
- def executed_with_callbacks(self):
268
- """
269
- Called when the task has been successfully executed and
270
- the Taskmaster instance wants to call the Node's callback
271
- methods.
272
-
273
- This may have been a do-nothing operation (to preserve build
274
- order), so we must check the node's state before deciding whether
275
- it was "built", in which case we call the appropriate Node method.
276
- In any event, we always call "visited()", which will handle any
277
- post-visit actions that must take place regardless of whether
278
- or not the target was an actual built target or a source Node.
279
- """
280
- T = self.tm.trace
281
- if T: T.write(self.trace_message('Task.executed_with_callbacks()',
282
- self.node))
283
-
284
- for t in self.targets:
285
- if t.get_state() == NODE_EXECUTING:
286
- for side_effect in t.side_effects:
287
- side_effect.set_state(NODE_NO_STATE)
288
- t.set_state(NODE_EXECUTED)
289
- t.push_to_cache()
290
- t.built()
291
- t.visited()
292
-
293
- executed = executed_with_callbacks
294
-
295
- def failed(self):
296
- """
297
- Default action when a task fails: stop the build.
298
-
299
- Note: Although this function is normally invoked on nodes in
300
- the executing state, it might also be invoked on up-to-date
301
- nodes when using Configure().
302
- """
303
- self.fail_stop()
304
-
305
- def fail_stop(self):
306
- """
307
- Explicit stop-the-build failure.
308
-
309
- This sets failure status on the target nodes and all of
310
- their dependent parent nodes.
311
-
312
- Note: Although this function is normally invoked on nodes in
313
- the executing state, it might also be invoked on up-to-date
314
- nodes when using Configure().
315
- """
316
- T = self.tm.trace
317
- if T: T.write(self.trace_message('Task.failed_stop()', self.node))
318
-
319
- # Invoke will_not_build() to clean-up the pending children
320
- # list.
321
- self.tm.will_not_build(self.targets, lambda n: n.set_state(NODE_FAILED))
322
-
323
- # Tell the taskmaster to not start any new tasks
324
- self.tm.stop()
325
-
326
- # We're stopping because of a build failure, but give the
327
- # calling Task class a chance to postprocess() the top-level
328
- # target under which the build failure occurred.
329
- self.targets = [self.tm.current_top]
330
- self.top = 1
331
-
332
- def fail_continue(self):
333
- """
334
- Explicit continue-the-build failure.
335
-
336
- This sets failure status on the target nodes and all of
337
- their dependent parent nodes.
338
-
339
- Note: Although this function is normally invoked on nodes in
340
- the executing state, it might also be invoked on up-to-date
341
- nodes when using Configure().
342
- """
343
- T = self.tm.trace
344
- if T: T.write(self.trace_message('Task.failed_continue()', self.node))
345
-
346
- self.tm.will_not_build(self.targets, lambda n: n.set_state(NODE_FAILED))
347
-
348
- def make_ready_all(self):
349
- """
350
- Marks all targets in a task ready for execution.
351
-
352
- This is used when the interface needs every target Node to be
353
- visited--the canonical example being the "scons -c" option.
354
- """
355
- T = self.tm.trace
356
- if T: T.write(self.trace_message('Task.make_ready_all()', self.node))
357
-
358
- self.out_of_date = self.targets[:]
359
- for t in self.targets:
360
- t.disambiguate().set_state(NODE_EXECUTING)
361
- for s in t.side_effects:
362
- s.set_state(NODE_EXECUTING)
363
-
364
- def make_ready_current(self):
365
- """
366
- Marks all targets in a task ready for execution if any target
367
- is not current.
368
-
369
- This is the default behavior for building only what's necessary.
370
- """
371
- T = self.tm.trace
372
- if T: T.write(self.trace_message('Task.make_ready_current()',
373
- self.node))
374
-
375
- self.out_of_date = []
376
- needs_executing = False
377
- for t in self.targets:
378
- try:
379
- t.disambiguate().make_ready()
380
- is_up_to_date = not t.has_builder() or \
381
- (not t.always_build and t.is_up_to_date())
382
- except EnvironmentError, e:
383
- raise SCons.Errors.BuildError(node=t, errstr=e.strerror, filename=e.filename)
384
-
385
- if not is_up_to_date:
386
- self.out_of_date.append(t)
387
- needs_executing = True
388
-
389
- if needs_executing:
390
- for t in self.targets:
391
- t.set_state(NODE_EXECUTING)
392
- for s in t.side_effects:
393
- s.set_state(NODE_EXECUTING)
394
- else:
395
- for t in self.targets:
396
- # We must invoke visited() to ensure that the node
397
- # information has been computed before allowing the
398
- # parent nodes to execute. (That could occur in a
399
- # parallel build...)
400
- t.visited()
401
- t.set_state(NODE_UP_TO_DATE)
402
-
403
- make_ready = make_ready_current
404
-
405
- def postprocess(self):
406
- """
407
- Post-processes a task after it's been executed.
408
-
409
- This examines all the targets just built (or not, we don't care
410
- if the build was successful, or even if there was no build
411
- because everything was up-to-date) to see if they have any
412
- waiting parent Nodes, or Nodes waiting on a common side effect,
413
- that can be put back on the candidates list.
414
- """
415
- T = self.tm.trace
416
- if T: T.write(self.trace_message('Task.postprocess()', self.node))
417
-
418
- # We may have built multiple targets, some of which may have
419
- # common parents waiting for this build. Count up how many
420
- # targets each parent was waiting for so we can subtract the
421
- # values later, and so we *don't* put waiting side-effect Nodes
422
- # back on the candidates list if the Node is also a waiting
423
- # parent.
424
-
425
- targets = set(self.targets)
426
-
427
- pending_children = self.tm.pending_children
428
- parents = {}
429
- for t in targets:
430
- # A node can only be in the pending_children set if it has
431
- # some waiting_parents.
432
- if t.waiting_parents:
433
- if T: T.write(self.trace_message('Task.postprocess()',
434
- t,
435
- 'removing'))
436
- pending_children.discard(t)
437
- for p in t.waiting_parents:
438
- parents[p] = parents.get(p, 0) + 1
439
-
440
- for t in targets:
441
- for s in t.side_effects:
442
- if s.get_state() == NODE_EXECUTING:
443
- s.set_state(NODE_NO_STATE)
444
- for p in s.waiting_parents:
445
- parents[p] = parents.get(p, 0) + 1
446
- for p in s.waiting_s_e:
447
- if p.ref_count == 0:
448
- self.tm.candidates.append(p)
449
-
450
- for p, subtract in parents.items():
451
- p.ref_count = p.ref_count - subtract
452
- if T: T.write(self.trace_message('Task.postprocess()',
453
- p,
454
- 'adjusted parent ref count'))
455
- if p.ref_count == 0:
456
- self.tm.candidates.append(p)
457
-
458
- for t in targets:
459
- t.postprocess()
460
-
461
- # Exception handling subsystem.
462
- #
463
- # Exceptions that occur while walking the DAG or examining Nodes
464
- # must be raised, but must be raised at an appropriate time and in
465
- # a controlled manner so we can, if necessary, recover gracefully,
466
- # possibly write out signature information for Nodes we've updated,
467
- # etc. This is done by having the Taskmaster tell us about the
468
- # exception, and letting
469
-
470
- def exc_info(self):
471
- """
472
- Returns info about a recorded exception.
473
- """
474
- return self.exception
475
-
476
- def exc_clear(self):
477
- """
478
- Clears any recorded exception.
479
-
480
- This also changes the "exception_raise" attribute to point
481
- to the appropriate do-nothing method.
482
- """
483
- self.exception = (None, None, None)
484
- self.exception_raise = self._no_exception_to_raise
485
-
486
- def exception_set(self, exception=None):
487
- """
488
- Records an exception to be raised at the appropriate time.
489
-
490
- This also changes the "exception_raise" attribute to point
491
- to the method that will, in fact
492
- """
493
- if not exception:
494
- exception = sys.exc_info()
495
- self.exception = exception
496
- self.exception_raise = self._exception_raise
497
-
498
- def _no_exception_to_raise(self):
499
- pass
500
-
501
- def _exception_raise(self):
502
- """
503
- Raises a pending exception that was recorded while getting a
504
- Task ready for execution.
505
- """
506
- exc = self.exc_info()[:]
507
- try:
508
- exc_type, exc_value, exc_traceback = exc
509
- except ValueError:
510
- exc_type, exc_value = exc
511
- exc_traceback = None
512
- raise exc_type, exc_value, exc_traceback
513
-
514
- class AlwaysTask(Task):
515
- def needs_execute(self):
516
- """
517
- Always returns True (indicating this Task should always
518
- be executed).
519
-
520
- Subclasses that need this behavior (as opposed to the default
521
- of only executing Nodes that are out of date w.r.t. their
522
- dependencies) can use this as follows:
523
-
524
- class MyTaskSubclass(SCons.Taskmaster.Task):
525
- needs_execute = SCons.Taskmaster.Task.execute_always
526
- """
527
- return True
528
-
529
- class OutOfDateTask(Task):
530
- def needs_execute(self):
531
- """
532
- Returns True (indicating this Task should be executed) if this
533
- Task's target state indicates it needs executing, which has
534
- already been determined by an earlier up-to-date check.
535
- """
536
- return self.targets[0].get_state() == SCons.Node.executing
537
-
538
-
539
- def find_cycle(stack, visited):
540
- if stack[-1] in visited:
541
- return None
542
- visited.add(stack[-1])
543
- for n in stack[-1].waiting_parents:
544
- stack.append(n)
545
- if stack[0] == stack[-1]:
546
- return stack
547
- if find_cycle(stack, visited):
548
- return stack
549
- stack.pop()
550
- return None
551
-
552
-
553
- class Taskmaster:
554
- """
555
- The Taskmaster for walking the dependency DAG.
556
- """
557
-
558
- def __init__(self, targets=[], tasker=None, order=None, trace=None):
559
- self.original_top = targets
560
- self.top_targets_left = targets[:]
561
- self.top_targets_left.reverse()
562
- self.candidates = []
563
- if tasker is None:
564
- tasker = OutOfDateTask
565
- self.tasker = tasker
566
- if not order:
567
- order = lambda l: l
568
- self.order = order
569
- self.message = None
570
- self.trace = trace
571
- self.next_candidate = self.find_next_candidate
572
- self.pending_children = set()
573
-
574
- def find_next_candidate(self):
575
- """
576
- Returns the next candidate Node for (potential) evaluation.
577
-
578
- The candidate list (really a stack) initially consists of all of
579
- the top-level (command line) targets provided when the Taskmaster
580
- was initialized. While we walk the DAG, visiting Nodes, all the
581
- children that haven't finished processing get pushed on to the
582
- candidate list. Each child can then be popped and examined in
583
- turn for whether *their* children are all up-to-date, in which
584
- case a Task will be created for their actual evaluation and
585
- potential building.
586
-
587
- Here is where we also allow candidate Nodes to alter the list of
588
- Nodes that should be examined. This is used, for example, when
589
- invoking SCons in a source directory. A source directory Node can
590
- return its corresponding build directory Node, essentially saying,
591
- "Hey, you really need to build this thing over here instead."
592
- """
593
- try:
594
- return self.candidates.pop()
595
- except IndexError:
596
- pass
597
- try:
598
- node = self.top_targets_left.pop()
599
- except IndexError:
600
- return None
601
- self.current_top = node
602
- alt, message = node.alter_targets()
603
- if alt:
604
- self.message = message
605
- self.candidates.append(node)
606
- self.candidates.extend(self.order(alt))
607
- node = self.candidates.pop()
608
- return node
609
-
610
- def no_next_candidate(self):
611
- """
612
- Stops Taskmaster processing by not returning a next candidate.
613
-
614
- Note that we have to clean-up the Taskmaster candidate list
615
- because the cycle detection depends on the fact all nodes have
616
- been processed somehow.
617
- """
618
- while self.candidates:
619
- candidates = self.candidates
620
- self.candidates = []
621
- self.will_not_build(candidates)
622
- return None
623
-
624
- def _validate_pending_children(self):
625
- """
626
- Validate the content of the pending_children set. Assert if an
627
- internal error is found.
628
-
629
- This function is used strictly for debugging the taskmaster by
630
- checking that no invariants are violated. It is not used in
631
- normal operation.
632
-
633
- The pending_children set is used to detect cycles in the
634
- dependency graph. We call a "pending child" a child that is
635
- found in the "pending" state when checking the dependencies of
636
- its parent node.
637
-
638
- A pending child can occur when the Taskmaster completes a loop
639
- through a cycle. For example, lets imagine a graph made of
640
- three node (A, B and C) making a cycle. The evaluation starts
641
- at node A. The taskmaster first consider whether node A's
642
- child B is up-to-date. Then, recursively, node B needs to
643
- check whether node C is up-to-date. This leaves us with a
644
- dependency graph looking like:
645
-
646
- Next candidate \
647
- \
648
- Node A (Pending) --> Node B(Pending) --> Node C (NoState)
649
- ^ |
650
- | |
651
- +-------------------------------------+
652
-
653
- Now, when the Taskmaster examines the Node C's child Node A,
654
- it finds that Node A is in the "pending" state. Therefore,
655
- Node A is a pending child of node C.
656
-
657
- Pending children indicate that the Taskmaster has potentially
658
- loop back through a cycle. We say potentially because it could
659
- also occur when a DAG is evaluated in parallel. For example,
660
- consider the following graph:
661
-
662
-
663
- Node A (Pending) --> Node B(Pending) --> Node C (Pending) --> ...
664
- | ^
665
- | |
666
- +----------> Node D (NoState) --------+
667
- /
668
- Next candidate /
669
-
670
- The Taskmaster first evaluates the nodes A, B, and C and
671
- starts building some children of node C. Assuming, that the
672
- maximum parallel level has not been reached, the Taskmaster
673
- will examine Node D. It will find that Node C is a pending
674
- child of Node D.
675
-
676
- In summary, evaluating a graph with a cycle will always
677
- involve a pending child at one point. A pending child might
678
- indicate either a cycle or a diamond-shaped DAG. Only a
679
- fraction of the nodes ends-up being a "pending child" of
680
- another node. This keeps the pending_children set small in
681
- practice.
682
-
683
- We can differentiate between the two cases if we wait until
684
- the end of the build. At this point, all the pending children
685
- nodes due to a diamond-shaped DAG will have been properly
686
- built (or will have failed to build). But, the pending
687
- children involved in a cycle will still be in the pending
688
- state.
689
-
690
- The taskmaster removes nodes from the pending_children set as
691
- soon as a pending_children node moves out of the pending
692
- state. This also helps to keep the pending_children set small.
693
- """
694
-
695
- for n in self.pending_children:
696
- assert n.state in (NODE_PENDING, NODE_EXECUTING), \
697
- (str(n), StateString[n.state])
698
- assert len(n.waiting_parents) != 0, (str(n), len(n.waiting_parents))
699
- for p in n.waiting_parents:
700
- assert p.ref_count > 0, (str(n), str(p), p.ref_count)
701
-
702
-
703
- def trace_message(self, message):
704
- return 'Taskmaster: %s\n' % message
705
-
706
- def trace_node(self, node):
707
- return '<%-10s %-3s %s>' % (StateString[node.get_state()],
708
- node.ref_count,
709
- repr(str(node)))
710
-
711
- def _find_next_ready_node(self):
712
- """
713
- Finds the next node that is ready to be built.
714
-
715
- This is *the* main guts of the DAG walk. We loop through the
716
- list of candidates, looking for something that has no un-built
717
- children (i.e., that is a leaf Node or has dependencies that are
718
- all leaf Nodes or up-to-date). Candidate Nodes are re-scanned
719
- (both the target Node itself and its sources, which are always
720
- scanned in the context of a given target) to discover implicit
721
- dependencies. A Node that must wait for some children to be
722
- built will be put back on the candidates list after the children
723
- have finished building. A Node that has been put back on the
724
- candidates list in this way may have itself (or its sources)
725
- re-scanned, in order to handle generated header files (e.g.) and
726
- the implicit dependencies therein.
727
-
728
- Note that this method does not do any signature calculation or
729
- up-to-date check itself. All of that is handled by the Task
730
- class. This is purely concerned with the dependency graph walk.
731
- """
732
-
733
- self.ready_exc = None
734
-
735
- T = self.trace
736
- if T: T.write('\n' + self.trace_message('Looking for a node to evaluate'))
737
-
738
- while 1:
739
- node = self.next_candidate()
740
- if node is None:
741
- if T: T.write(self.trace_message('No candidate anymore.') + '\n')
742
- return None
743
-
744
- node = node.disambiguate()
745
- state = node.get_state()
746
-
747
- # For debugging only:
748
- #
749
- # try:
750
- # self._validate_pending_children()
751
- # except:
752
- # self.ready_exc = sys.exc_info()
753
- # return node
754
-
755
- if CollectStats:
756
- if not hasattr(node, 'stats'):
757
- node.stats = Stats()
758
- StatsNodes.append(node)
759
- S = node.stats
760
- S.considered = S.considered + 1
761
- else:
762
- S = None
763
-
764
- if T: T.write(self.trace_message(' Considering node %s and its children:' % self.trace_node(node)))
765
-
766
- if state == NODE_NO_STATE:
767
- # Mark this node as being on the execution stack:
768
- node.set_state(NODE_PENDING)
769
- elif state > NODE_PENDING:
770
- # Skip this node if it has already been evaluated:
771
- if S: S.already_handled = S.already_handled + 1
772
- if T: T.write(self.trace_message(' already handled (executed)'))
773
- continue
774
-
775
- executor = node.get_executor()
776
-
777
- try:
778
- children = executor.get_all_children()
779
- except SystemExit:
780
- exc_value = sys.exc_info()[1]
781
- e = SCons.Errors.ExplicitExit(node, exc_value.code)
782
- self.ready_exc = (SCons.Errors.ExplicitExit, e)
783
- if T: T.write(self.trace_message(' SystemExit'))
784
- return node
785
- except Exception, e:
786
- # We had a problem just trying to figure out the
787
- # children (like a child couldn't be linked in to a
788
- # VariantDir, or a Scanner threw something). Arrange to
789
- # raise the exception when the Task is "executed."
790
- self.ready_exc = sys.exc_info()
791
- if S: S.problem = S.problem + 1
792
- if T: T.write(self.trace_message(' exception %s while scanning children.\n' % e))
793
- return node
794
-
795
- children_not_visited = []
796
- children_pending = set()
797
- children_not_ready = []
798
- children_failed = False
799
-
800
- for child in chain(executor.get_all_prerequisites(), children):
801
- childstate = child.get_state()
802
-
803
- if T: T.write(self.trace_message(' ' + self.trace_node(child)))
804
-
805
- if childstate == NODE_NO_STATE:
806
- children_not_visited.append(child)
807
- elif childstate == NODE_PENDING:
808
- children_pending.add(child)
809
- elif childstate == NODE_FAILED:
810
- children_failed = True
811
-
812
- if childstate <= NODE_EXECUTING:
813
- children_not_ready.append(child)
814
-
815
-
816
- # These nodes have not even been visited yet. Add
817
- # them to the list so that on some next pass we can
818
- # take a stab at evaluating them (or their children).
819
- children_not_visited.reverse()
820
- self.candidates.extend(self.order(children_not_visited))
821
- #if T and children_not_visited:
822
- # T.write(self.trace_message(' adding to candidates: %s' % map(str, children_not_visited)))
823
- # T.write(self.trace_message(' candidates now: %s\n' % map(str, self.candidates)))
824
-
825
- # Skip this node if any of its children have failed.
826
- #
827
- # This catches the case where we're descending a top-level
828
- # target and one of our children failed while trying to be
829
- # built by a *previous* descent of an earlier top-level
830
- # target.
831
- #
832
- # It can also occur if a node is reused in multiple
833
- # targets. One first descends though the one of the
834
- # target, the next time occurs through the other target.
835
- #
836
- # Note that we can only have failed_children if the
837
- # --keep-going flag was used, because without it the build
838
- # will stop before diving in the other branch.
839
- #
840
- # Note that even if one of the children fails, we still
841
- # added the other children to the list of candidate nodes
842
- # to keep on building (--keep-going).
843
- if children_failed:
844
- for n in executor.get_action_targets():
845
- n.set_state(NODE_FAILED)
846
-
847
- if S: S.child_failed = S.child_failed + 1
848
- if T: T.write(self.trace_message('****** %s\n' % self.trace_node(node)))
849
- continue
850
-
851
- if children_not_ready:
852
- for child in children_not_ready:
853
- # We're waiting on one or more derived targets
854
- # that have not yet finished building.
855
- if S: S.not_built = S.not_built + 1
856
-
857
- # Add this node to the waiting parents lists of
858
- # anything we're waiting on, with a reference
859
- # count so we can be put back on the list for
860
- # re-evaluation when they've all finished.
861
- node.ref_count = node.ref_count + child.add_to_waiting_parents(node)
862
- if T: T.write(self.trace_message(' adjusted ref count: %s, child %s' %
863
- (self.trace_node(node), repr(str(child)))))
864
-
865
- if T:
866
- for pc in children_pending:
867
- T.write(self.trace_message(' adding %s to the pending children set\n' %
868
- self.trace_node(pc)))
869
- self.pending_children = self.pending_children | children_pending
870
-
871
- continue
872
-
873
- # Skip this node if it has side-effects that are
874
- # currently being built:
875
- wait_side_effects = False
876
- for se in executor.get_action_side_effects():
877
- if se.get_state() == NODE_EXECUTING:
878
- se.add_to_waiting_s_e(node)
879
- wait_side_effects = True
880
-
881
- if wait_side_effects:
882
- if S: S.side_effects = S.side_effects + 1
883
- continue
884
-
885
- # The default when we've gotten through all of the checks above:
886
- # this node is ready to be built.
887
- if S: S.build = S.build + 1
888
- if T: T.write(self.trace_message('Evaluating %s\n' %
889
- self.trace_node(node)))
890
-
891
- # For debugging only:
892
- #
893
- # try:
894
- # self._validate_pending_children()
895
- # except:
896
- # self.ready_exc = sys.exc_info()
897
- # return node
898
-
899
- return node
900
-
901
- return None
902
-
903
- def next_task(self):
904
- """
905
- Returns the next task to be executed.
906
-
907
- This simply asks for the next Node to be evaluated, and then wraps
908
- it in the specific Task subclass with which we were initialized.
909
- """
910
- node = self._find_next_ready_node()
911
-
912
- if node is None:
913
- return None
914
-
915
- tlist = node.get_executor().get_all_targets()
916
-
917
- task = self.tasker(self, tlist, node in self.original_top, node)
918
- try:
919
- task.make_ready()
920
- except:
921
- # We had a problem just trying to get this task ready (like
922
- # a child couldn't be linked in to a VariantDir when deciding
923
- # whether this node is current). Arrange to raise the
924
- # exception when the Task is "executed."
925
- self.ready_exc = sys.exc_info()
926
-
927
- if self.ready_exc:
928
- task.exception_set(self.ready_exc)
929
-
930
- self.ready_exc = None
931
-
932
- return task
933
-
934
- def will_not_build(self, nodes, node_func=lambda n: None):
935
- """
936
- Perform clean-up about nodes that will never be built. Invokes
937
- a user defined function on all of these nodes (including all
938
- of their parents).
939
- """
940
-
941
- T = self.trace
942
-
943
- pending_children = self.pending_children
944
-
945
- to_visit = set(nodes)
946
- pending_children = pending_children - to_visit
947
-
948
- if T:
949
- for n in nodes:
950
- T.write(self.trace_message(' removing node %s from the pending children set\n' %
951
- self.trace_node(n)))
952
- try:
953
- while 1:
954
- try:
955
- node = to_visit.pop()
956
- except AttributeError:
957
- # Python 1.5.2
958
- if len(to_visit):
959
- node = to_visit[0]
960
- to_visit.remove(node)
961
- else:
962
- break
963
-
964
- node_func(node)
965
-
966
- # Prune recursion by flushing the waiting children
967
- # list immediately.
968
- parents = node.waiting_parents
969
- node.waiting_parents = set()
970
-
971
- to_visit = to_visit | parents
972
- pending_children = pending_children - parents
973
-
974
- for p in parents:
975
- p.ref_count = p.ref_count - 1
976
- if T: T.write(self.trace_message(' removing parent %s from the pending children set\n' %
977
- self.trace_node(p)))
978
- except KeyError:
979
- # The container to_visit has been emptied.
980
- pass
981
-
982
- # We have the stick back the pending_children list into the
983
- # task master because the python 1.5.2 compatibility does not
984
- # allow us to use in-place updates
985
- self.pending_children = pending_children
986
-
987
- def stop(self):
988
- """
989
- Stops the current build completely.
990
- """
991
- self.next_candidate = self.no_next_candidate
992
-
993
- def cleanup(self):
994
- """
995
- Check for dependency cycles.
996
- """
997
- if not self.pending_children:
998
- return
999
-
1000
- # TODO(1.5)
1001
- #nclist = [ (n, find_cycle([n], set())) for n in self.pending_children ]
1002
- nclist = map(lambda n: (n, find_cycle([n], set())), self.pending_children)
1003
-
1004
- # TODO(1.5)
1005
- #genuine_cycles = [
1006
- # node for node, cycle in nclist
1007
- # if cycle or node.get_state() != NODE_EXECUTED
1008
- #]
1009
- genuine_cycles = filter(lambda t: t[1] or t[0].get_state() != NODE_EXECUTED, nclist)
1010
- if not genuine_cycles:
1011
- # All of the "cycles" found were single nodes in EXECUTED state,
1012
- # which is to say, they really weren't cycles. Just return.
1013
- return
1014
-
1015
- desc = 'Found dependency cycle(s):\n'
1016
- for node, cycle in nclist:
1017
- if cycle:
1018
- desc = desc + " " + string.join(map(str, cycle), " -> ") + "\n"
1019
- else:
1020
- desc = desc + \
1021
- " Internal Error: no cycle found for node %s (%s) in state %s\n" % \
1022
- (node, repr(node), StateString[node.get_state()])
1023
-
1024
- raise SCons.Errors.UserError, desc
1025
-
1026
- # Local Variables:
1027
- # tab-width:4
1028
- # indent-tabs-mode:nil
1029
- # End:
1030
- # vim: set expandtab tabstop=4 shiftwidth=4: