References

Official

Third Parties

  • txtar:simple text-based file archives for testing.
  • cache : memcache client library for the Go programming language

CompileAndRun

Screen Shot 2019-07-14 at 11.02.06 AM.png

为了一个独立的运行环境,playground 使用 Chorme 提供的 Native Client (NaCl)作为沙箱运行代码

  1. 使用 Golang 的 build 工具来生成可以在NaCl中运行的可执行文件
  2. 在 NaCl 中运行,并且用 recorder 来监控输出和错误,
  3. 将输出汇总成 Events 返回

    如果想在 playground 中写多个文件,可以使用 txtar 的格式。

    txtar归档文件是零行或多行注释,然后是一系列文件条目。 每个文件条目都以“——FILENAME——”格式的文件标记行开始,然后是组成文件数据的零个或多个文件内容行。 注释或文件内容在下一个文件标记行结束。 文件标记行必须以三个字节的序列“——”开始。并以三个字节的序列“——”结尾,但是要用括号括起来 文件名可以用额外的空格包围。

Store

Screen Shot 2019-07-14 at 11.08.52 AM.png

Cache

Screen Shot 2019-07-14 at 11.12.25 AM.png

已经执行过的代码系统会自动进行缓存,这个缓存存储在内存中,将 resp 通过 gob 进行编码在进行存储
运行完之后的结果和静态编译的结果放在同一个存储中不过他们的主键的前缀不同