Naiad is Spoon's module system. For every Naiad module, there can be a webpage describing it and providing something for Google to crawl. This is the basis of a discovery system for Naiad modules. It includes...
  • a well-known master Naiad module pages ID (so that one can search the web for all Naiad module pages)
  • the module's name
  • the module's author's ID (so that one can search the web for the pages of the modules by that author)
  • the module's ID
  • a description of the module's content
  • the module's current version
  • the module's latest timestamp
  • the module's tags
  • the IDs of the module's prerequisite modules (for which one may search the web)
  • one or more installation links. When clicked, an installation link hits a webserver running in a local Spoon system. The link contains an encoded hostname and port for a remote Spoon system which actually serves the module.
      I created the first Naiad module page, for the "fundamental constants" module. It was indexed by Google a few hours later.

      There are several different commands: for quitting Spoon, making a snapshot, installing modules, and so on. A module installation command contains the hostname and port of the machine serving the module, and the module's UUID. The receiving Spoon system uses this information to create a remote-messaging connection between itself and the serving system; the two systems then synchronize themselves via remote messages.

      Note that no files are used to transfer behavior between systems. This is a departure from Smalltalk's traditional "fileout" mechanism.

      (The above applies to Spoon 1a13 and later.)


      Tuesday, 12 July 2011