Skip to content
nydel edited this page Dec 23, 2014 · 3 revisions

Welcome to the muclr wiki!

Multi-User Common Lisp REPL

The MUCLR system/package is broken down into several separate integrated parts.

Registrar

Most likely, the only registrar we'll need will be the official. It will be a sub-system of its own and function as a server that accepts registration requests from MUCLR Platforms as well as requests for lists of registered Platforms. We will make the source code available for anyone to run a non-canonical registrar, but it's difficult to see this as becoming necessary.

Server

Any computer connected to the internet and capable of opening a server port can launch a MUCLR server. We refer to the MUCLR server object as a Platform. Optionally, a MUCLR Platform can be registered so that users of MUCLR will be able to look it up and connect with greater ease and efficiency.

Server-Interpreted API

See the API page for details about the blossoming MUCLR Application Program Interface.

Client

The client package serves the end-user and features a few main functions. One of these will communicate with the Registrar, or with non-canonical registrars, to retrieve information on existing MUCLR Platforms that have been registered and are accepting connections. Another function of the client is, of course, to connect to MUCLR Platforms, send requests, process responses, and generally keep the client REPL in appropriate sync with the Platform REPL, comprised of its server's configuration, its users, and their manipulation of the shared space.

Separation of Personal and Shared Spaces

At all times, the Common Lisp user maintains his own REPL as a private and personal space. A Platform is rationally thought of as a shared REPL that connects each private REPL's user to one another. The degree to which one user is able to impact the Platform or other users is determined by a number of factors, including - among many others - programming of the Platform instance, manipulation of the shared REPL by other users, and user permissions specific to server specifications.

Clone this wiki locally