google/CodeCity

Dump to eval-able JavaScript (initial implementation)

cpcallen opened this issue · 0 comments

This is a tracking bug for work that needs doing on this project before we can do an initial launch to trusted testers. The main criterion for completion is being able to dump the current dogfooding core in a form that can, after a reasonable amount of manual editing, be committed to our git repository to replace the now-outdated /demo/ database.

Major tasks:

  • Revamp the skip/prune system so that the whole world doesn't get dumped into core_00_es5.js.
    • Use Dijkstra's algorithm to work out the preferred Selector for each object.
    • Add a slightly less thorough alternative to the existing RECURSE mode—one which stops at boundaries of the requested subtree (i.e., only recurses into objects whose preferred selector has the requested selector as a prefix.)
  • Revamp the done system so that it doesn't take a ridiculously long time to dump (e.g.) $.servers.telnet.connections: don't keep trying to dump a large subgraph of the database when no further progress can be made on that subgraph for the time being.
  • Add copyright notices automatically
  • Dump listened sockets

(This list is unfortunately subject to expansion.)