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,128 +0,0 @@
1
- """scons.Node.Python
2
-
3
- Python nodes.
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/Node/Python.py 4629 2010/01/17 22:23:21 scons"
31
-
32
- import SCons.Node
33
-
34
- class ValueNodeInfo(SCons.Node.NodeInfoBase):
35
- current_version_id = 1
36
-
37
- field_list = ['csig']
38
-
39
- def str_to_node(self, s):
40
- return Value(s)
41
-
42
- class ValueBuildInfo(SCons.Node.BuildInfoBase):
43
- current_version_id = 1
44
-
45
- class Value(SCons.Node.Node):
46
- """A class for Python variables, typically passed on the command line
47
- or generated by a script, but not from a file or some other source.
48
- """
49
-
50
- NodeInfo = ValueNodeInfo
51
- BuildInfo = ValueBuildInfo
52
-
53
- def __init__(self, value, built_value=None):
54
- SCons.Node.Node.__init__(self)
55
- self.value = value
56
- if built_value is not None:
57
- self.built_value = built_value
58
-
59
- def str_for_display(self):
60
- return repr(self.value)
61
-
62
- def __str__(self):
63
- return str(self.value)
64
-
65
- def make_ready(self):
66
- self.get_csig()
67
-
68
- def build(self, **kw):
69
- if not hasattr(self, 'built_value'):
70
- apply (SCons.Node.Node.build, (self,), kw)
71
-
72
- is_up_to_date = SCons.Node.Node.children_are_up_to_date
73
-
74
- def is_under(self, dir):
75
- # Make Value nodes get built regardless of
76
- # what directory scons was run from. Value nodes
77
- # are outside the filesystem:
78
- return 1
79
-
80
- def write(self, built_value):
81
- """Set the value of the node."""
82
- self.built_value = built_value
83
-
84
- def read(self):
85
- """Return the value. If necessary, the value is built."""
86
- self.build()
87
- if not hasattr(self, 'built_value'):
88
- self.built_value = self.value
89
- return self.built_value
90
-
91
- def get_text_contents(self):
92
- """By the assumption that the node.built_value is a
93
- deterministic product of the sources, the contents of a Value
94
- are the concatenation of all the contents of its sources. As
95
- the value need not be built when get_contents() is called, we
96
- cannot use the actual node.built_value."""
97
- ###TODO: something reasonable about universal newlines
98
- contents = str(self.value)
99
- for kid in self.children(None):
100
- contents = contents + kid.get_contents()
101
- return contents
102
-
103
- get_contents = get_text_contents ###TODO should return 'bytes' value
104
-
105
- def changed_since_last_build(self, target, prev_ni):
106
- cur_csig = self.get_csig()
107
- try:
108
- return cur_csig != prev_ni.csig
109
- except AttributeError:
110
- return 1
111
-
112
- def get_csig(self, calc=None):
113
- """Because we're a Python value node and don't have a real
114
- timestamp, we get to ignore the calculator and just use the
115
- value contents."""
116
- try:
117
- return self.ninfo.csig
118
- except AttributeError:
119
- pass
120
- contents = self.get_contents()
121
- self.get_ninfo().csig = contents
122
- return contents
123
-
124
- # Local Variables:
125
- # tab-width:4
126
- # indent-tabs-mode:nil
127
- # End:
128
- # vim: set expandtab tabstop=4 shiftwidth=4:
@@ -1,1341 +0,0 @@
1
- """SCons.Node
2
-
3
- The Node package for the SCons software construction utility.
4
-
5
- This is, in many ways, the heart of SCons.
6
-
7
- A Node is where we encapsulate all of the dependency information about
8
- any thing that SCons can build, or about any thing which SCons can use
9
- to build some other thing. The canonical "thing," of course, is a file,
10
- but a Node can also represent something remote (like a web page) or
11
- something completely abstract (like an Alias).
12
-
13
- Each specific type of "thing" is specifically represented by a subclass
14
- of the Node base class: Node.FS.File for files, Node.Alias for aliases,
15
- etc. Dependency information is kept here in the base class, and
16
- information specific to files/aliases/etc. is in the subclass. The
17
- goal, if we've done this correctly, is that any type of "thing" should
18
- be able to depend on any other type of "thing."
19
-
20
- """
21
-
22
- #
23
- # Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
24
- #
25
- # Permission is hereby granted, free of charge, to any person obtaining
26
- # a copy of this software and associated documentation files (the
27
- # "Software"), to deal in the Software without restriction, including
28
- # without limitation the rights to use, copy, modify, merge, publish,
29
- # distribute, sublicense, and/or sell copies of the Software, and to
30
- # permit persons to whom the Software is furnished to do so, subject to
31
- # the following conditions:
32
- #
33
- # The above copyright notice and this permission notice shall be included
34
- # in all copies or substantial portions of the Software.
35
- #
36
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
37
- # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
38
- # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
40
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
41
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
42
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43
- #
44
-
45
- __revision__ = "src/engine/SCons/Node/__init__.py 4629 2010/01/17 22:23:21 scons"
46
-
47
- import copy
48
- from itertools import chain, izip
49
- import string
50
- import UserList
51
-
52
- from SCons.Debug import logInstanceCreation
53
- import SCons.Executor
54
- import SCons.Memoize
55
- import SCons.Util
56
-
57
- from SCons.Debug import Trace
58
-
59
- def classname(obj):
60
- return string.split(str(obj.__class__), '.')[-1]
61
-
62
- # Node states
63
- #
64
- # These are in "priority" order, so that the maximum value for any
65
- # child/dependency of a node represents the state of that node if
66
- # it has no builder of its own. The canonical example is a file
67
- # system directory, which is only up to date if all of its children
68
- # were up to date.
69
- no_state = 0
70
- pending = 1
71
- executing = 2
72
- up_to_date = 3
73
- executed = 4
74
- failed = 5
75
-
76
- StateString = {
77
- 0 : "no_state",
78
- 1 : "pending",
79
- 2 : "executing",
80
- 3 : "up_to_date",
81
- 4 : "executed",
82
- 5 : "failed",
83
- }
84
-
85
- # controls whether implicit dependencies are cached:
86
- implicit_cache = 0
87
-
88
- # controls whether implicit dep changes are ignored:
89
- implicit_deps_unchanged = 0
90
-
91
- # controls whether the cached implicit deps are ignored:
92
- implicit_deps_changed = 0
93
-
94
- # A variable that can be set to an interface-specific function be called
95
- # to annotate a Node with information about its creation.
96
- def do_nothing(node): pass
97
-
98
- Annotate = do_nothing
99
-
100
- # Classes for signature info for Nodes.
101
-
102
- class NodeInfoBase:
103
- """
104
- The generic base class for signature information for a Node.
105
-
106
- Node subclasses should subclass NodeInfoBase to provide their own
107
- logic for dealing with their own Node-specific signature information.
108
- """
109
- current_version_id = 1
110
- def __init__(self, node):
111
- # Create an object attribute from the class attribute so it ends up
112
- # in the pickled data in the .sconsign file.
113
- self._version_id = self.current_version_id
114
- def update(self, node):
115
- try:
116
- field_list = self.field_list
117
- except AttributeError:
118
- return
119
- for f in field_list:
120
- try:
121
- delattr(self, f)
122
- except AttributeError:
123
- pass
124
- try:
125
- func = getattr(node, 'get_' + f)
126
- except AttributeError:
127
- pass
128
- else:
129
- setattr(self, f, func())
130
- def convert(self, node, val):
131
- pass
132
- def merge(self, other):
133
- self.__dict__.update(other.__dict__)
134
- def format(self, field_list=None, names=0):
135
- if field_list is None:
136
- try:
137
- field_list = self.field_list
138
- except AttributeError:
139
- field_list = self.__dict__.keys()
140
- field_list.sort()
141
- fields = []
142
- for field in field_list:
143
- try:
144
- f = getattr(self, field)
145
- except AttributeError:
146
- f = None
147
- f = str(f)
148
- if names:
149
- f = field + ': ' + f
150
- fields.append(f)
151
- return fields
152
-
153
- class BuildInfoBase:
154
- """
155
- The generic base class for build information for a Node.
156
-
157
- This is what gets stored in a .sconsign file for each target file.
158
- It contains a NodeInfo instance for this node (signature information
159
- that's specific to the type of Node) and direct attributes for the
160
- generic build stuff we have to track: sources, explicit dependencies,
161
- implicit dependencies, and action information.
162
- """
163
- current_version_id = 1
164
- def __init__(self, node):
165
- # Create an object attribute from the class attribute so it ends up
166
- # in the pickled data in the .sconsign file.
167
- self._version_id = self.current_version_id
168
- self.bsourcesigs = []
169
- self.bdependsigs = []
170
- self.bimplicitsigs = []
171
- self.bactsig = None
172
- def merge(self, other):
173
- self.__dict__.update(other.__dict__)
174
-
175
- class Node:
176
- """The base Node class, for entities that we know how to
177
- build, or use to build other Nodes.
178
- """
179
-
180
- if SCons.Memoize.use_memoizer:
181
- __metaclass__ = SCons.Memoize.Memoized_Metaclass
182
-
183
- memoizer_counters = []
184
-
185
- class Attrs:
186
- pass
187
-
188
- def __init__(self):
189
- if __debug__: logInstanceCreation(self, 'Node.Node')
190
- # Note that we no longer explicitly initialize a self.builder
191
- # attribute to None here. That's because the self.builder
192
- # attribute may be created on-the-fly later by a subclass (the
193
- # canonical example being a builder to fetch a file from a
194
- # source code system like CVS or Subversion).
195
-
196
- # Each list of children that we maintain is accompanied by a
197
- # dictionary used to look up quickly whether a node is already
198
- # present in the list. Empirical tests showed that it was
199
- # fastest to maintain them as side-by-side Node attributes in
200
- # this way, instead of wrapping up each list+dictionary pair in
201
- # a class. (Of course, we could always still do that in the
202
- # future if we had a good reason to...).
203
- self.sources = [] # source files used to build node
204
- self.sources_set = set()
205
- self._specific_sources = False
206
- self.depends = [] # explicit dependencies (from Depends)
207
- self.depends_set = set()
208
- self.ignore = [] # dependencies to ignore
209
- self.ignore_set = set()
210
- self.prerequisites = SCons.Util.UniqueList()
211
- self.implicit = None # implicit (scanned) dependencies (None means not scanned yet)
212
- self.waiting_parents = set()
213
- self.waiting_s_e = set()
214
- self.ref_count = 0
215
- self.wkids = None # Kids yet to walk, when it's an array
216
-
217
- self.env = None
218
- self.state = no_state
219
- self.precious = None
220
- self.noclean = 0
221
- self.nocache = 0
222
- self.always_build = None
223
- self.includes = None
224
- self.attributes = self.Attrs() # Generic place to stick information about the Node.
225
- self.side_effect = 0 # true iff this node is a side effect
226
- self.side_effects = [] # the side effects of building this target
227
- self.linked = 0 # is this node linked to the variant directory?
228
-
229
- self.clear_memoized_values()
230
-
231
- # Let the interface in which the build engine is embedded
232
- # annotate this Node with its own info (like a description of
233
- # what line in what file created the node, for example).
234
- Annotate(self)
235
-
236
- def disambiguate(self, must_exist=None):
237
- return self
238
-
239
- def get_suffix(self):
240
- return ''
241
-
242
- memoizer_counters.append(SCons.Memoize.CountValue('get_build_env'))
243
-
244
- def get_build_env(self):
245
- """Fetch the appropriate Environment to build this node.
246
- """
247
- try:
248
- return self._memo['get_build_env']
249
- except KeyError:
250
- pass
251
- result = self.get_executor().get_build_env()
252
- self._memo['get_build_env'] = result
253
- return result
254
-
255
- def get_build_scanner_path(self, scanner):
256
- """Fetch the appropriate scanner path for this node."""
257
- return self.get_executor().get_build_scanner_path(scanner)
258
-
259
- def set_executor(self, executor):
260
- """Set the action executor for this node."""
261
- self.executor = executor
262
-
263
- def get_executor(self, create=1):
264
- """Fetch the action executor for this node. Create one if
265
- there isn't already one, and requested to do so."""
266
- try:
267
- executor = self.executor
268
- except AttributeError:
269
- if not create:
270
- raise
271
- try:
272
- act = self.builder.action
273
- except AttributeError:
274
- executor = SCons.Executor.Null(targets=[self])
275
- else:
276
- executor = SCons.Executor.Executor(act,
277
- self.env or self.builder.env,
278
- [self.builder.overrides],
279
- [self],
280
- self.sources)
281
- self.executor = executor
282
- return executor
283
-
284
- def executor_cleanup(self):
285
- """Let the executor clean up any cached information."""
286
- try:
287
- executor = self.get_executor(create=None)
288
- except AttributeError:
289
- pass
290
- else:
291
- executor.cleanup()
292
-
293
- def reset_executor(self):
294
- "Remove cached executor; forces recompute when needed."
295
- try:
296
- delattr(self, 'executor')
297
- except AttributeError:
298
- pass
299
-
300
- def push_to_cache(self):
301
- """Try to push a node into a cache
302
- """
303
- pass
304
-
305
- def retrieve_from_cache(self):
306
- """Try to retrieve the node's content from a cache
307
-
308
- This method is called from multiple threads in a parallel build,
309
- so only do thread safe stuff here. Do thread unsafe stuff in
310
- built().
311
-
312
- Returns true iff the node was successfully retrieved.
313
- """
314
- return 0
315
-
316
- #
317
- # Taskmaster interface subsystem
318
- #
319
-
320
- def make_ready(self):
321
- """Get a Node ready for evaluation.
322
-
323
- This is called before the Taskmaster decides if the Node is
324
- up-to-date or not. Overriding this method allows for a Node
325
- subclass to be disambiguated if necessary, or for an implicit
326
- source builder to be attached.
327
- """
328
- pass
329
-
330
- def prepare(self):
331
- """Prepare for this Node to be built.
332
-
333
- This is called after the Taskmaster has decided that the Node
334
- is out-of-date and must be rebuilt, but before actually calling
335
- the method to build the Node.
336
-
337
- This default implementation checks that explicit or implicit
338
- dependencies either exist or are derived, and initializes the
339
- BuildInfo structure that will hold the information about how
340
- this node is, uh, built.
341
-
342
- (The existence of source files is checked separately by the
343
- Executor, which aggregates checks for all of the targets built
344
- by a specific action.)
345
-
346
- Overriding this method allows for for a Node subclass to remove
347
- the underlying file from the file system. Note that subclass
348
- methods should call this base class method to get the child
349
- check and the BuildInfo structure.
350
- """
351
- for d in self.depends:
352
- if d.missing():
353
- msg = "Explicit dependency `%s' not found, needed by target `%s'."
354
- raise SCons.Errors.StopError, msg % (d, self)
355
- if self.implicit is not None:
356
- for i in self.implicit:
357
- if i.missing():
358
- msg = "Implicit dependency `%s' not found, needed by target `%s'."
359
- raise SCons.Errors.StopError, msg % (i, self)
360
- self.binfo = self.get_binfo()
361
-
362
- def build(self, **kw):
363
- """Actually build the node.
364
-
365
- This is called by the Taskmaster after it's decided that the
366
- Node is out-of-date and must be rebuilt, and after the prepare()
367
- method has gotten everything, uh, prepared.
368
-
369
- This method is called from multiple threads in a parallel build,
370
- so only do thread safe stuff here. Do thread unsafe stuff
371
- in built().
372
-
373
- """
374
- try:
375
- apply(self.get_executor(), (self,), kw)
376
- except SCons.Errors.BuildError, e:
377
- e.node = self
378
- raise
379
-
380
- def built(self):
381
- """Called just after this node is successfully built."""
382
-
383
- # Clear the implicit dependency caches of any Nodes
384
- # waiting for this Node to be built.
385
- for parent in self.waiting_parents:
386
- parent.implicit = None
387
-
388
- self.clear()
389
-
390
- self.ninfo.update(self)
391
-
392
- def visited(self):
393
- """Called just after this node has been visited (with or
394
- without a build)."""
395
- try:
396
- binfo = self.binfo
397
- except AttributeError:
398
- # Apparently this node doesn't need build info, so
399
- # don't bother calculating or storing it.
400
- pass
401
- else:
402
- self.ninfo.update(self)
403
- self.store_info()
404
-
405
- #
406
- #
407
- #
408
-
409
- def add_to_waiting_s_e(self, node):
410
- self.waiting_s_e.add(node)
411
-
412
- def add_to_waiting_parents(self, node):
413
- """
414
- Returns the number of nodes added to our waiting parents list:
415
- 1 if we add a unique waiting parent, 0 if not. (Note that the
416
- returned values are intended to be used to increment a reference
417
- count, so don't think you can "clean up" this function by using
418
- True and False instead...)
419
- """
420
- wp = self.waiting_parents
421
- if node in wp:
422
- return 0
423
- wp.add(node)
424
- return 1
425
-
426
- def postprocess(self):
427
- """Clean up anything we don't need to hang onto after we've
428
- been built."""
429
- self.executor_cleanup()
430
- self.waiting_parents = set()
431
-
432
- def clear(self):
433
- """Completely clear a Node of all its cached state (so that it
434
- can be re-evaluated by interfaces that do continuous integration
435
- builds).
436
- """
437
- # The del_binfo() call here isn't necessary for normal execution,
438
- # but is for interactive mode, where we might rebuild the same
439
- # target and need to start from scratch.
440
- self.del_binfo()
441
- self.clear_memoized_values()
442
- self.ninfo = self.new_ninfo()
443
- self.executor_cleanup()
444
- try:
445
- delattr(self, '_calculated_sig')
446
- except AttributeError:
447
- pass
448
- self.includes = None
449
-
450
- def clear_memoized_values(self):
451
- self._memo = {}
452
-
453
- def builder_set(self, builder):
454
- self.builder = builder
455
- try:
456
- del self.executor
457
- except AttributeError:
458
- pass
459
-
460
- def has_builder(self):
461
- """Return whether this Node has a builder or not.
462
-
463
- In Boolean tests, this turns out to be a *lot* more efficient
464
- than simply examining the builder attribute directly ("if
465
- node.builder: ..."). When the builder attribute is examined
466
- directly, it ends up calling __getattr__ for both the __len__
467
- and __nonzero__ attributes on instances of our Builder Proxy
468
- class(es), generating a bazillion extra calls and slowing
469
- things down immensely.
470
- """
471
- try:
472
- b = self.builder
473
- except AttributeError:
474
- # There was no explicit builder for this Node, so initialize
475
- # the self.builder attribute to None now.
476
- b = self.builder = None
477
- return b is not None
478
-
479
- def set_explicit(self, is_explicit):
480
- self.is_explicit = is_explicit
481
-
482
- def has_explicit_builder(self):
483
- """Return whether this Node has an explicit builder
484
-
485
- This allows an internal Builder created by SCons to be marked
486
- non-explicit, so that it can be overridden by an explicit
487
- builder that the user supplies (the canonical example being
488
- directories)."""
489
- try:
490
- return self.is_explicit
491
- except AttributeError:
492
- self.is_explicit = None
493
- return self.is_explicit
494
-
495
- def get_builder(self, default_builder=None):
496
- """Return the set builder, or a specified default value"""
497
- try:
498
- return self.builder
499
- except AttributeError:
500
- return default_builder
501
-
502
- multiple_side_effect_has_builder = has_builder
503
-
504
- def is_derived(self):
505
- """
506
- Returns true iff this node is derived (i.e. built).
507
-
508
- This should return true only for nodes whose path should be in
509
- the variant directory when duplicate=0 and should contribute their build
510
- signatures when they are used as source files to other derived files. For
511
- example: source with source builders are not derived in this sense,
512
- and hence should not return true.
513
- """
514
- return self.has_builder() or self.side_effect
515
-
516
- def alter_targets(self):
517
- """Return a list of alternate targets for this Node.
518
- """
519
- return [], None
520
-
521
- def get_found_includes(self, env, scanner, path):
522
- """Return the scanned include lines (implicit dependencies)
523
- found in this node.
524
-
525
- The default is no implicit dependencies. We expect this method
526
- to be overridden by any subclass that can be scanned for
527
- implicit dependencies.
528
- """
529
- return []
530
-
531
- def get_implicit_deps(self, env, scanner, path):
532
- """Return a list of implicit dependencies for this node.
533
-
534
- This method exists to handle recursive invocation of the scanner
535
- on the implicit dependencies returned by the scanner, if the
536
- scanner's recursive flag says that we should.
537
- """
538
- if not scanner:
539
- return []
540
-
541
- # Give the scanner a chance to select a more specific scanner
542
- # for this Node.
543
- #scanner = scanner.select(self)
544
-
545
- nodes = [self]
546
- seen = {}
547
- seen[self] = 1
548
- deps = []
549
- while nodes:
550
- n = nodes.pop(0)
551
- d = filter(lambda x, seen=seen: not seen.has_key(x),
552
- n.get_found_includes(env, scanner, path))
553
- if d:
554
- deps.extend(d)
555
- for n in d:
556
- seen[n] = 1
557
- nodes.extend(scanner.recurse_nodes(d))
558
-
559
- return deps
560
-
561
- def get_env_scanner(self, env, kw={}):
562
- return env.get_scanner(self.scanner_key())
563
-
564
- def get_target_scanner(self):
565
- return self.builder.target_scanner
566
-
567
- def get_source_scanner(self, node):
568
- """Fetch the source scanner for the specified node
569
-
570
- NOTE: "self" is the target being built, "node" is
571
- the source file for which we want to fetch the scanner.
572
-
573
- Implies self.has_builder() is true; again, expect to only be
574
- called from locations where this is already verified.
575
-
576
- This function may be called very often; it attempts to cache
577
- the scanner found to improve performance.
578
- """
579
- scanner = None
580
- try:
581
- scanner = self.builder.source_scanner
582
- except AttributeError:
583
- pass
584
- if not scanner:
585
- # The builder didn't have an explicit scanner, so go look up
586
- # a scanner from env['SCANNERS'] based on the node's scanner
587
- # key (usually the file extension).
588
- scanner = self.get_env_scanner(self.get_build_env())
589
- if scanner:
590
- scanner = scanner.select(node)
591
- return scanner
592
-
593
- def add_to_implicit(self, deps):
594
- if not hasattr(self, 'implicit') or self.implicit is None:
595
- self.implicit = []
596
- self.implicit_set = set()
597
- self._children_reset()
598
- self._add_child(self.implicit, self.implicit_set, deps)
599
-
600
- def scan(self):
601
- """Scan this node's dependents for implicit dependencies."""
602
- # Don't bother scanning non-derived files, because we don't
603
- # care what their dependencies are.
604
- # Don't scan again, if we already have scanned.
605
- if self.implicit is not None:
606
- return
607
- self.implicit = []
608
- self.implicit_set = set()
609
- self._children_reset()
610
- if not self.has_builder():
611
- return
612
-
613
- build_env = self.get_build_env()
614
- executor = self.get_executor()
615
-
616
- # Here's where we implement --implicit-cache.
617
- if implicit_cache and not implicit_deps_changed:
618
- implicit = self.get_stored_implicit()
619
- if implicit is not None:
620
- # We now add the implicit dependencies returned from the
621
- # stored .sconsign entry to have already been converted
622
- # to Nodes for us. (We used to run them through a
623
- # source_factory function here.)
624
-
625
- # Update all of the targets with them. This
626
- # essentially short-circuits an N*M scan of the
627
- # sources for each individual target, which is a hell
628
- # of a lot more efficient.
629
- for tgt in executor.get_all_targets():
630
- tgt.add_to_implicit(implicit)
631
-
632
- if implicit_deps_unchanged or self.is_up_to_date():
633
- return
634
- # one of this node's sources has changed,
635
- # so we must recalculate the implicit deps:
636
- self.implicit = []
637
- self.implicit_set = set()
638
-
639
- # Have the executor scan the sources.
640
- executor.scan_sources(self.builder.source_scanner)
641
-
642
- # If there's a target scanner, have the executor scan the target
643
- # node itself and associated targets that might be built.
644
- scanner = self.get_target_scanner()
645
- if scanner:
646
- executor.scan_targets(scanner)
647
-
648
- def scanner_key(self):
649
- return None
650
-
651
- def select_scanner(self, scanner):
652
- """Selects a scanner for this Node.
653
-
654
- This is a separate method so it can be overridden by Node
655
- subclasses (specifically, Node.FS.Dir) that *must* use their
656
- own Scanner and don't select one the Scanner.Selector that's
657
- configured for the target.
658
- """
659
- return scanner.select(self)
660
-
661
- def env_set(self, env, safe=0):
662
- if safe and self.env:
663
- return
664
- self.env = env
665
-
666
- #
667
- # SIGNATURE SUBSYSTEM
668
- #
669
-
670
- NodeInfo = NodeInfoBase
671
- BuildInfo = BuildInfoBase
672
-
673
- def new_ninfo(self):
674
- ninfo = self.NodeInfo(self)
675
- return ninfo
676
-
677
- def get_ninfo(self):
678
- try:
679
- return self.ninfo
680
- except AttributeError:
681
- self.ninfo = self.new_ninfo()
682
- return self.ninfo
683
-
684
- def new_binfo(self):
685
- binfo = self.BuildInfo(self)
686
- return binfo
687
-
688
- def get_binfo(self):
689
- """
690
- Fetch a node's build information.
691
-
692
- node - the node whose sources will be collected
693
- cache - alternate node to use for the signature cache
694
- returns - the build signature
695
-
696
- This no longer handles the recursive descent of the
697
- node's children's signatures. We expect that they're
698
- already built and updated by someone else, if that's
699
- what's wanted.
700
- """
701
- try:
702
- return self.binfo
703
- except AttributeError:
704
- pass
705
-
706
- binfo = self.new_binfo()
707
- self.binfo = binfo
708
-
709
- executor = self.get_executor()
710
- ignore_set = self.ignore_set
711
-
712
- if self.has_builder():
713
- binfo.bact = str(executor)
714
- binfo.bactsig = SCons.Util.MD5signature(executor.get_contents())
715
-
716
- if self._specific_sources:
717
- sources = []
718
- for s in self.sources:
719
- if s not in ignore_set:
720
- sources.append(s)
721
- else:
722
- sources = executor.get_unignored_sources(self, self.ignore)
723
- seen = set()
724
- bsources = []
725
- bsourcesigs = []
726
- for s in sources:
727
- if not s in seen:
728
- seen.add(s)
729
- bsources.append(s)
730
- bsourcesigs.append(s.get_ninfo())
731
- binfo.bsources = bsources
732
- binfo.bsourcesigs = bsourcesigs
733
-
734
- depends = self.depends
735
- dependsigs = []
736
- for d in depends:
737
- if d not in ignore_set:
738
- dependsigs.append(d.get_ninfo())
739
- binfo.bdepends = depends
740
- binfo.bdependsigs = dependsigs
741
-
742
- implicit = self.implicit or []
743
- implicitsigs = []
744
- for i in implicit:
745
- if i not in ignore_set:
746
- implicitsigs.append(i.get_ninfo())
747
- binfo.bimplicit = implicit
748
- binfo.bimplicitsigs = implicitsigs
749
-
750
- return binfo
751
-
752
- def del_binfo(self):
753
- """Delete the build info from this node."""
754
- try:
755
- delattr(self, 'binfo')
756
- except AttributeError:
757
- pass
758
-
759
- def get_csig(self):
760
- try:
761
- return self.ninfo.csig
762
- except AttributeError:
763
- ninfo = self.get_ninfo()
764
- ninfo.csig = SCons.Util.MD5signature(self.get_contents())
765
- return self.ninfo.csig
766
-
767
- def get_cachedir_csig(self):
768
- return self.get_csig()
769
-
770
- def store_info(self):
771
- """Make the build signature permanent (that is, store it in the
772
- .sconsign file or equivalent)."""
773
- pass
774
-
775
- def do_not_store_info(self):
776
- pass
777
-
778
- def get_stored_info(self):
779
- return None
780
-
781
- def get_stored_implicit(self):
782
- """Fetch the stored implicit dependencies"""
783
- return None
784
-
785
- #
786
- #
787
- #
788
-
789
- def set_precious(self, precious = 1):
790
- """Set the Node's precious value."""
791
- self.precious = precious
792
-
793
- def set_noclean(self, noclean = 1):
794
- """Set the Node's noclean value."""
795
- # Make sure noclean is an integer so the --debug=stree
796
- # output in Util.py can use it as an index.
797
- self.noclean = noclean and 1 or 0
798
-
799
- def set_nocache(self, nocache = 1):
800
- """Set the Node's nocache value."""
801
- # Make sure nocache is an integer so the --debug=stree
802
- # output in Util.py can use it as an index.
803
- self.nocache = nocache and 1 or 0
804
-
805
- def set_always_build(self, always_build = 1):
806
- """Set the Node's always_build value."""
807
- self.always_build = always_build
808
-
809
- def exists(self):
810
- """Does this node exists?"""
811
- # All node exist by default:
812
- return 1
813
-
814
- def rexists(self):
815
- """Does this node exist locally or in a repositiory?"""
816
- # There are no repositories by default:
817
- return self.exists()
818
-
819
- def missing(self):
820
- return not self.is_derived() and \
821
- not self.linked and \
822
- not self.rexists()
823
-
824
- def remove(self):
825
- """Remove this Node: no-op by default."""
826
- return None
827
-
828
- def add_dependency(self, depend):
829
- """Adds dependencies."""
830
- try:
831
- self._add_child(self.depends, self.depends_set, depend)
832
- except TypeError, e:
833
- e = e.args[0]
834
- if SCons.Util.is_List(e):
835
- s = map(str, e)
836
- else:
837
- s = str(e)
838
- raise SCons.Errors.UserError("attempted to add a non-Node dependency to %s:\n\t%s is a %s, not a Node" % (str(self), s, type(e)))
839
-
840
- def add_prerequisite(self, prerequisite):
841
- """Adds prerequisites"""
842
- self.prerequisites.extend(prerequisite)
843
- self._children_reset()
844
-
845
- def add_ignore(self, depend):
846
- """Adds dependencies to ignore."""
847
- try:
848
- self._add_child(self.ignore, self.ignore_set, depend)
849
- except TypeError, e:
850
- e = e.args[0]
851
- if SCons.Util.is_List(e):
852
- s = map(str, e)
853
- else:
854
- s = str(e)
855
- raise SCons.Errors.UserError("attempted to ignore a non-Node dependency of %s:\n\t%s is a %s, not a Node" % (str(self), s, type(e)))
856
-
857
- def add_source(self, source):
858
- """Adds sources."""
859
- if self._specific_sources:
860
- return
861
- try:
862
- self._add_child(self.sources, self.sources_set, source)
863
- except TypeError, e:
864
- e = e.args[0]
865
- if SCons.Util.is_List(e):
866
- s = map(str, e)
867
- else:
868
- s = str(e)
869
- raise SCons.Errors.UserError("attempted to add a non-Node as source of %s:\n\t%s is a %s, not a Node" % (str(self), s, type(e)))
870
-
871
- def _add_child(self, collection, set, child):
872
- """Adds 'child' to 'collection', first checking 'set' to see if it's
873
- already present."""
874
- #if type(child) is not type([]):
875
- # child = [child]
876
- #for c in child:
877
- # if not isinstance(c, Node):
878
- # raise TypeError, c
879
- added = None
880
- for c in child:
881
- if c not in set:
882
- set.add(c)
883
- collection.append(c)
884
- added = 1
885
- if added:
886
- self._children_reset()
887
-
888
- def set_specific_source(self, source):
889
- self.add_source(source)
890
- self._specific_sources = True
891
-
892
- def add_wkid(self, wkid):
893
- """Add a node to the list of kids waiting to be evaluated"""
894
- if self.wkids is not None:
895
- self.wkids.append(wkid)
896
-
897
- def _children_reset(self):
898
- self.clear_memoized_values()
899
- # We need to let the Executor clear out any calculated
900
- # build info that it's cached so we can re-calculate it.
901
- self.executor_cleanup()
902
-
903
- memoizer_counters.append(SCons.Memoize.CountValue('_children_get'))
904
-
905
- def _children_get(self):
906
- try:
907
- return self._memo['children_get']
908
- except KeyError:
909
- pass
910
-
911
- # The return list may contain duplicate Nodes, especially in
912
- # source trees where there are a lot of repeated #includes
913
- # of a tangle of .h files. Profiling shows, however, that
914
- # eliminating the duplicates with a brute-force approach that
915
- # preserves the order (that is, something like:
916
- #
917
- # u = []
918
- # for n in list:
919
- # if n not in u:
920
- # u.append(n)"
921
- #
922
- # takes more cycles than just letting the underlying methods
923
- # hand back cached values if a Node's information is requested
924
- # multiple times. (Other methods of removing duplicates, like
925
- # using dictionary keys, lose the order, and the only ordered
926
- # dictionary patterns I found all ended up using "not in"
927
- # internally anyway...)
928
- if self.ignore_set:
929
- if self.implicit is None:
930
- iter = chain(self.sources,self.depends)
931
- else:
932
- iter = chain(self.sources, self.depends, self.implicit)
933
-
934
- children = []
935
- for i in iter:
936
- if i not in self.ignore_set:
937
- children.append(i)
938
- else:
939
- if self.implicit is None:
940
- children = self.sources + self.depends
941
- else:
942
- children = self.sources + self.depends + self.implicit
943
-
944
- self._memo['children_get'] = children
945
- return children
946
-
947
- def all_children(self, scan=1):
948
- """Return a list of all the node's direct children."""
949
- if scan:
950
- self.scan()
951
-
952
- # The return list may contain duplicate Nodes, especially in
953
- # source trees where there are a lot of repeated #includes
954
- # of a tangle of .h files. Profiling shows, however, that
955
- # eliminating the duplicates with a brute-force approach that
956
- # preserves the order (that is, something like:
957
- #
958
- # u = []
959
- # for n in list:
960
- # if n not in u:
961
- # u.append(n)"
962
- #
963
- # takes more cycles than just letting the underlying methods
964
- # hand back cached values if a Node's information is requested
965
- # multiple times. (Other methods of removing duplicates, like
966
- # using dictionary keys, lose the order, and the only ordered
967
- # dictionary patterns I found all ended up using "not in"
968
- # internally anyway...)
969
- if self.implicit is None:
970
- return self.sources + self.depends
971
- else:
972
- return self.sources + self.depends + self.implicit
973
-
974
- def children(self, scan=1):
975
- """Return a list of the node's direct children, minus those
976
- that are ignored by this node."""
977
- if scan:
978
- self.scan()
979
- return self._children_get()
980
-
981
- def set_state(self, state):
982
- self.state = state
983
-
984
- def get_state(self):
985
- return self.state
986
-
987
- def state_has_changed(self, target, prev_ni):
988
- return (self.state != SCons.Node.up_to_date)
989
-
990
- def get_env(self):
991
- env = self.env
992
- if not env:
993
- import SCons.Defaults
994
- env = SCons.Defaults.DefaultEnvironment()
995
- return env
996
-
997
- def changed_since_last_build(self, target, prev_ni):
998
- """
999
-
1000
- Must be overridden in a specific subclass to return True if this
1001
- Node (a dependency) has changed since the last time it was used
1002
- to build the specified target. prev_ni is this Node's state (for
1003
- example, its file timestamp, length, maybe content signature)
1004
- as of the last time the target was built.
1005
-
1006
- Note that this method is called through the dependency, not the
1007
- target, because a dependency Node must be able to use its own
1008
- logic to decide if it changed. For example, File Nodes need to
1009
- obey if we're configured to use timestamps, but Python Value Nodes
1010
- never use timestamps and always use the content. If this method
1011
- were called through the target, then each Node's implementation
1012
- of this method would have to have more complicated logic to
1013
- handle all the different Node types on which it might depend.
1014
- """
1015
- raise NotImplementedError
1016
-
1017
- def Decider(self, function):
1018
- SCons.Util.AddMethod(self, function, 'changed_since_last_build')
1019
-
1020
- def changed(self, node=None):
1021
- """
1022
- Returns if the node is up-to-date with respect to the BuildInfo
1023
- stored last time it was built. The default behavior is to compare
1024
- it against our own previously stored BuildInfo, but the stored
1025
- BuildInfo from another Node (typically one in a Repository)
1026
- can be used instead.
1027
-
1028
- Note that we now *always* check every dependency. We used to
1029
- short-circuit the check by returning as soon as we detected
1030
- any difference, but we now rely on checking every dependency
1031
- to make sure that any necessary Node information (for example,
1032
- the content signature of an #included .h file) is updated.
1033
- """
1034
- t = 0
1035
- if t: Trace('changed(%s [%s], %s)' % (self, classname(self), node))
1036
- if node is None:
1037
- node = self
1038
-
1039
- result = False
1040
-
1041
- bi = node.get_stored_info().binfo
1042
- then = bi.bsourcesigs + bi.bdependsigs + bi.bimplicitsigs
1043
- children = self.children()
1044
-
1045
- diff = len(children) - len(then)
1046
- if diff:
1047
- # The old and new dependency lists are different lengths.
1048
- # This always indicates that the Node must be rebuilt.
1049
- # We also extend the old dependency list with enough None
1050
- # entries to equal the new dependency list, for the benefit
1051
- # of the loop below that updates node information.
1052
- then.extend([None] * diff)
1053
- if t: Trace(': old %s new %s' % (len(then), len(children)))
1054
- result = True
1055
-
1056
- for child, prev_ni in izip(children, then):
1057
- if child.changed_since_last_build(self, prev_ni):
1058
- if t: Trace(': %s changed' % child)
1059
- result = True
1060
-
1061
- contents = self.get_executor().get_contents()
1062
- if self.has_builder():
1063
- import SCons.Util
1064
- newsig = SCons.Util.MD5signature(contents)
1065
- if bi.bactsig != newsig:
1066
- if t: Trace(': bactsig %s != newsig %s' % (bi.bactsig, newsig))
1067
- result = True
1068
-
1069
- if not result:
1070
- if t: Trace(': up to date')
1071
-
1072
- if t: Trace('\n')
1073
-
1074
- return result
1075
-
1076
- def is_up_to_date(self):
1077
- """Default check for whether the Node is current: unknown Node
1078
- subtypes are always out of date, so they will always get built."""
1079
- return None
1080
-
1081
- def children_are_up_to_date(self):
1082
- """Alternate check for whether the Node is current: If all of
1083
- our children were up-to-date, then this Node was up-to-date, too.
1084
-
1085
- The SCons.Node.Alias and SCons.Node.Python.Value subclasses
1086
- rebind their current() method to this method."""
1087
- # Allow the children to calculate their signatures.
1088
- self.binfo = self.get_binfo()
1089
- if self.always_build:
1090
- return None
1091
- state = 0
1092
- for kid in self.children(None):
1093
- s = kid.get_state()
1094
- if s and (not state or s > state):
1095
- state = s
1096
- return (state == 0 or state == SCons.Node.up_to_date)
1097
-
1098
- def is_literal(self):
1099
- """Always pass the string representation of a Node to
1100
- the command interpreter literally."""
1101
- return 1
1102
-
1103
- def render_include_tree(self):
1104
- """
1105
- Return a text representation, suitable for displaying to the
1106
- user, of the include tree for the sources of this node.
1107
- """
1108
- if self.is_derived() and self.env:
1109
- env = self.get_build_env()
1110
- for s in self.sources:
1111
- scanner = self.get_source_scanner(s)
1112
- if scanner:
1113
- path = self.get_build_scanner_path(scanner)
1114
- else:
1115
- path = None
1116
- def f(node, env=env, scanner=scanner, path=path):
1117
- return node.get_found_includes(env, scanner, path)
1118
- return SCons.Util.render_tree(s, f, 1)
1119
- else:
1120
- return None
1121
-
1122
- def get_abspath(self):
1123
- """
1124
- Return an absolute path to the Node. This will return simply
1125
- str(Node) by default, but for Node types that have a concept of
1126
- relative path, this might return something different.
1127
- """
1128
- return str(self)
1129
-
1130
- def for_signature(self):
1131
- """
1132
- Return a string representation of the Node that will always
1133
- be the same for this particular Node, no matter what. This
1134
- is by contrast to the __str__() method, which might, for
1135
- instance, return a relative path for a file Node. The purpose
1136
- of this method is to generate a value to be used in signature
1137
- calculation for the command line used to build a target, and
1138
- we use this method instead of str() to avoid unnecessary
1139
- rebuilds. This method does not need to return something that
1140
- would actually work in a command line; it can return any kind of
1141
- nonsense, so long as it does not change.
1142
- """
1143
- return str(self)
1144
-
1145
- def get_string(self, for_signature):
1146
- """This is a convenience function designed primarily to be
1147
- used in command generators (i.e., CommandGeneratorActions or
1148
- Environment variables that are callable), which are called
1149
- with a for_signature argument that is nonzero if the command
1150
- generator is being called to generate a signature for the
1151
- command line, which determines if we should rebuild or not.
1152
-
1153
- Such command generators should use this method in preference
1154
- to str(Node) when converting a Node to a string, passing
1155
- in the for_signature parameter, such that we will call
1156
- Node.for_signature() or str(Node) properly, depending on whether
1157
- we are calculating a signature or actually constructing a
1158
- command line."""
1159
- if for_signature:
1160
- return self.for_signature()
1161
- return str(self)
1162
-
1163
- def get_subst_proxy(self):
1164
- """
1165
- This method is expected to return an object that will function
1166
- exactly like this Node, except that it implements any additional
1167
- special features that we would like to be in effect for
1168
- Environment variable substitution. The principle use is that
1169
- some Nodes would like to implement a __getattr__() method,
1170
- but putting that in the Node type itself has a tendency to kill
1171
- performance. We instead put it in a proxy and return it from
1172
- this method. It is legal for this method to return self
1173
- if no new functionality is needed for Environment substitution.
1174
- """
1175
- return self
1176
-
1177
- def explain(self):
1178
- if not self.exists():
1179
- return "building `%s' because it doesn't exist\n" % self
1180
-
1181
- if self.always_build:
1182
- return "rebuilding `%s' because AlwaysBuild() is specified\n" % self
1183
-
1184
- old = self.get_stored_info()
1185
- if old is None:
1186
- return None
1187
-
1188
- old = old.binfo
1189
- old.prepare_dependencies()
1190
-
1191
- try:
1192
- old_bkids = old.bsources + old.bdepends + old.bimplicit
1193
- old_bkidsigs = old.bsourcesigs + old.bdependsigs + old.bimplicitsigs
1194
- except AttributeError:
1195
- return "Cannot explain why `%s' is being rebuilt: No previous build information found\n" % self
1196
-
1197
- new = self.get_binfo()
1198
-
1199
- new_bkids = new.bsources + new.bdepends + new.bimplicit
1200
- new_bkidsigs = new.bsourcesigs + new.bdependsigs + new.bimplicitsigs
1201
-
1202
- osig = dict(izip(old_bkids, old_bkidsigs))
1203
- nsig = dict(izip(new_bkids, new_bkidsigs))
1204
-
1205
- # The sources and dependencies we'll want to report are all stored
1206
- # as relative paths to this target's directory, but we want to
1207
- # report them relative to the top-level SConstruct directory,
1208
- # so we only print them after running them through this lambda
1209
- # to turn them into the right relative Node and then return
1210
- # its string.
1211
- def stringify( s, E=self.dir.Entry ) :
1212
- if hasattr( s, 'dir' ) :
1213
- return str(E(s))
1214
- return str(s)
1215
-
1216
- lines = []
1217
-
1218
- removed = filter(lambda x, nk=new_bkids: not x in nk, old_bkids)
1219
- if removed:
1220
- removed = map(stringify, removed)
1221
- fmt = "`%s' is no longer a dependency\n"
1222
- lines.extend(map(lambda s, fmt=fmt: fmt % s, removed))
1223
-
1224
- for k in new_bkids:
1225
- if not k in old_bkids:
1226
- lines.append("`%s' is a new dependency\n" % stringify(k))
1227
- elif k.changed_since_last_build(self, osig[k]):
1228
- lines.append("`%s' changed\n" % stringify(k))
1229
-
1230
- if len(lines) == 0 and old_bkids != new_bkids:
1231
- lines.append("the dependency order changed:\n" +
1232
- "%sold: %s\n" % (' '*15, map(stringify, old_bkids)) +
1233
- "%snew: %s\n" % (' '*15, map(stringify, new_bkids)))
1234
-
1235
- if len(lines) == 0:
1236
- def fmt_with_title(title, strlines):
1237
- lines = string.split(strlines, '\n')
1238
- sep = '\n' + ' '*(15 + len(title))
1239
- return ' '*15 + title + string.join(lines, sep) + '\n'
1240
- if old.bactsig != new.bactsig:
1241
- if old.bact == new.bact:
1242
- lines.append("the contents of the build action changed\n" +
1243
- fmt_with_title('action: ', new.bact))
1244
- else:
1245
- lines.append("the build action changed:\n" +
1246
- fmt_with_title('old: ', old.bact) +
1247
- fmt_with_title('new: ', new.bact))
1248
-
1249
- if len(lines) == 0:
1250
- return "rebuilding `%s' for unknown reasons\n" % self
1251
-
1252
- preamble = "rebuilding `%s' because" % self
1253
- if len(lines) == 1:
1254
- return "%s %s" % (preamble, lines[0])
1255
- else:
1256
- lines = ["%s:\n" % preamble] + lines
1257
- return string.join(lines, ' '*11)
1258
-
1259
- try:
1260
- [].extend(UserList.UserList([]))
1261
- except TypeError:
1262
- # Python 1.5.2 doesn't allow a list to be extended by list-like
1263
- # objects (such as UserList instances), so just punt and use
1264
- # real lists.
1265
- def NodeList(l):
1266
- return l
1267
- else:
1268
- class NodeList(UserList.UserList):
1269
- def __str__(self):
1270
- return str(map(str, self.data))
1271
-
1272
- def get_children(node, parent): return node.children()
1273
- def ignore_cycle(node, stack): pass
1274
- def do_nothing(node, parent): pass
1275
-
1276
- class Walker:
1277
- """An iterator for walking a Node tree.
1278
-
1279
- This is depth-first, children are visited before the parent.
1280
- The Walker object can be initialized with any node, and
1281
- returns the next node on the descent with each next() call.
1282
- 'kids_func' is an optional function that will be called to
1283
- get the children of a node instead of calling 'children'.
1284
- 'cycle_func' is an optional function that will be called
1285
- when a cycle is detected.
1286
-
1287
- This class does not get caught in node cycles caused, for example,
1288
- by C header file include loops.
1289
- """
1290
- def __init__(self, node, kids_func=get_children,
1291
- cycle_func=ignore_cycle,
1292
- eval_func=do_nothing):
1293
- self.kids_func = kids_func
1294
- self.cycle_func = cycle_func
1295
- self.eval_func = eval_func
1296
- node.wkids = copy.copy(kids_func(node, None))
1297
- self.stack = [node]
1298
- self.history = {} # used to efficiently detect and avoid cycles
1299
- self.history[node] = None
1300
-
1301
- def next(self):
1302
- """Return the next node for this walk of the tree.
1303
-
1304
- This function is intentionally iterative, not recursive,
1305
- to sidestep any issues of stack size limitations.
1306
- """
1307
-
1308
- while self.stack:
1309
- if self.stack[-1].wkids:
1310
- node = self.stack[-1].wkids.pop(0)
1311
- if not self.stack[-1].wkids:
1312
- self.stack[-1].wkids = None
1313
- if self.history.has_key(node):
1314
- self.cycle_func(node, self.stack)
1315
- else:
1316
- node.wkids = copy.copy(self.kids_func(node, self.stack[-1]))
1317
- self.stack.append(node)
1318
- self.history[node] = None
1319
- else:
1320
- node = self.stack.pop()
1321
- del self.history[node]
1322
- if node:
1323
- if self.stack:
1324
- parent = self.stack[-1]
1325
- else:
1326
- parent = None
1327
- self.eval_func(node, parent)
1328
- return node
1329
- return None
1330
-
1331
- def is_done(self):
1332
- return not self.stack
1333
-
1334
-
1335
- arg2nodes_lookups = []
1336
-
1337
- # Local Variables:
1338
- # tab-width:4
1339
- # indent-tabs-mode:nil
1340
- # End:
1341
- # vim: set expandtab tabstop=4 shiftwidth=4: