V8でHello Worldできないメモ

これに沿ってHello Worldしたい。
環境はUbuntu20.04。

https://v8.dev/docs/embed

まずは`depot_tools`の設定。

```zsh
~ desktop
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=/home/user/desktop/depot_tools:$PATH
```

これだと次の`gclient`が`Command not found`になってしまった。
`"$PATH"`にすればうまくいった。
参考: https://qiita.com/pirosikick/items/d5a96f8875313907db35#depot_tools-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

```zsh
$ export PATH=/home/user/desktop/depot_tools:"$PATH"
```

`gclient`ができるか確かめる。

```zsh
$ gclient
```

`depot_tools`の`fetch`を使ってV8を下ろしてくる。

```zsh
$ mkdir ~/v8
$ cd ~/v8
$ fetch v8
$ cd v8
```

ちなみに`$ git clone git@github.com:v8/v8.git`でやると次の`checkout`ができなかった。
`sample/hello-world.cc`はあるのでHello Worldするだけなら問題ないかもしれないがWebAssembly moduleを生成するコードがある点がチェックアウト先と異なるのでどうなるかわからない。
https://github.com/v8/v8/blob/17a99fec258bcc07ea9fc5e4fabcce259751db03/samples/hello-world.cc#L59

`checkout`する。

```zsh
~ /v8/v8
$ git checkout refs/tags/7.1.11 -b sample -t
```

一応`sync`しておく。

```zsh
$ gclient sync
```

ここからが問題。
`$ tools/dev/v8gen.py x64.release.sample`するも以下のエラーが出る。

```zsh
$ tools/dev/v8gen.py x64.release.sample
  File "tools/dev/v8gen.py", line 147
    print '%s does not exist in %s for %s' % (
          ^
SyntaxError: invalid syntax
```

SyntaxErrorなのでPythonのバージョンの違いと察してpython2を入れて実行してみる。

```zsh
$ sudo apt install python2
$ python2 tools/dev/v8gen.py x64.debug
...
Hint: You can raise verbosity (-vv) to see the output of failed commands.

Traceback (most recent call last):
  File "tools/dev/v8gen.py", line 304, in <module>
    sys.exit(gen.main())
  File "tools/dev/v8gen.py", line 298, in main
    return self._options.func()
  File "tools/dev/v8gen.py", line 166, in cmd_gen
    gn_outdir,
  File "tools/dev/v8gen.py", line 208, in _call_cmd
    stderr=subprocess.STDOUT,
  File "/usr/lib/python2.7/subprocess.py", line 223, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['/usr/bin/python2', '-u', 'tools/mb/mb.py', 'gen', '-f', 'infra/mb/mb_config.pyl', '-m', 'developer_default', '-b', 'x64.debug', 'out.gn/x64.debug']' returned non-zero exit status 1
```

CalledProcessErrorが発生してしまう。
V8のコードを以下の記事を参考にしつつPython3でも動くようにいじったがそれでも失敗。


https://chrome.hatenablog.jp/entry/2017/12/25/205247

https://stackoverflow.com/questions/43708541/python-typeerror-typeerror-not-supported-between-instances-of-nonetype

```zsh
$ tools/dev/v8gen.py x64.debug
Traceback (most recent call last):
  File "tools/dev/v8gen.py", line 304, in <module>
    sys.exit(gen.main())
  File "tools/dev/v8gen.py", line 298, in main
    return self._options.func()
  File "tools/dev/v8gen.py", line 159, in cmd_gen
    self._call_cmd([
  File "tools/dev/v8gen.py", line 206, in _call_cmd
    output = subprocess.check_output(
  File "/home/user/anaconda3/lib/python3.8/subprocess.py", line 415, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/home/user/anaconda3/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/user/anaconda3/bin/python', '-u', 'tools/mb/mb.py', 'gen', '-f', 'infra/mb/mb_config.pyl', '-m', 'developer_default', '-b', 'x64.debug', 'out.gn/x64.debug']' returned non-zero exit status 1.
```

よくわからない。