This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Running Medley Interlisp

DRAFT – This page is currently being revised.

There are different ways of running Medley Interlisp, depending on your platform (Mac, Windows, Linux, other) and related factors.

  • Interlisp Online
  • In a Docker container
  • Download and install from a release
  • (re)build the virtual machine emulator (Maiko) from sources
  • (Re) build your own Lisp image

Interlisp Online

For the minimum amount of setup, the online version is a good starting place. Interlisp Online provides access to a version of Medley running in the cloud. All that is needed to get started is a (recent) browser and a mouse. You can log in as a guest or – if you want to save files or sessions – create an account.

Sessions are preserved between sessions, but will be removed after 30 days of inactivity). Online should be good for experimenting and introducing yourself to the environment. The online site also provides a way of copying files to and from your account’s files.

HOWEVER: anything you create in the online environment should be treated as transient. If you’re interested in developing and experimenting with Lisp programs then you will want to investigate other options. But, for a first foray, this is a good starting place. The Interlisp/online repository may have more details.

  1. Running with Docker Desktop

If you are already familiar with running Docker Desktop, this option may appeal. In addition to a running Docker Desktop, you will need either a VNC viewer (or a windows X server). The VNC Viewer allows you to interact with the Medley instance running in Docker (Interlisp Online uses a browser-based VNC viewer.)

The instructions for this configuration are located at Running with Docker.

Medley in Docker has a copy of the Medley system within the Docker container. Whenever you install a new version of the Medley Docker container you get a fresh system (any previous changes would be lost.) Docker lets you mount directories on your local file system.

Running Installed

For users of Linux, BSD, MacOS and Windows (with WSL2), installing and running a local copy is a little more complicated but has the most flexibility.

Medley (maiko) currently requires having an X-server installed – which one to use depends on your platform.

We use GitHub Actions workflow automation to build Maiko for different platforms; if your platform isn’t in the mix you may need to download maiko sources and make and install those binaries.

Developing Medley Interlisp itself

This process isn’t well documented yet. The scripts “scripts/loadup*” in the github/interlisp/medley/ repository are used. See README.md files in the GitHub repo.

1 - Interlisp Online

Interlisp Online provides access to a version of Medley running in the cloud. You can login as a guest, but if you want to save state from one session to the next, you should create an acccount. All that is needed is an email address and password. Once an account has been created you can log in and start a Medley Interlisp session.

Sessions are preserved for an indefinite time (we haven’t worked out for how long – after 30 days of inactivity?). But it should be good for experimenting and introducing yourself to the environment. Anything you create in the online environment should be treated as transient. If you’re interested in developing and experimenting with Lisp programs then you will want to investigate other options. But, for a first foray, this is a good starting place. The Interlisp/online repository may have more details.

1.1 - Using Interlisp Online

A Brief Introduction

Running Interlisp Online

  • Go to Interlisp Online
    You may either login as a Guest or create an account. If you plan to save and later retrieve files, you should Register and create an account. Guest logins are not guaranteed to perserve sessions and stored files.

However, if you just want to get a taste of Interlisp without the extra effort of creating an account, the guest login will suit your needs.

  • Select the Exec you want to run. For this exercise, select Interlisp
  • Leave the Fill browser window option set.

Select Run Medley. Your browser will open a window that represents the Interlisp Desktop and looks much like this:

image.

The Interlisp Desktop at startup contains 4 windows of interest:

  • Prompt Window: The black window at the top of the screen. It is used to display system or application prompts
  • Exec (INTERLISP) window: The main window where you run functions and develop programs.
  • Medley logo window: A window containing the Interlisp Medley logo as a bit map.
  • Status Bar window

Writing Interlisp programs

In the Exec window, type the following:

(PLUS 1 1)

When you complete typing the ending ) the Interlisp interpreter will perform the calculation and return the result.

One thing you probably noticed, the command PLUS is capitalized. It’s not that the developers of Interlisp were always shouting at each other. Rather, when Interlisp was developed computer programming was in its infancy and standards for naming commands were still evolving.

Save your program as a file

Opening a saved program

What next?

2 - Building the Interlisp system

Medley Interlisp is open-source and may be obtained from GitHub. It is portable to many different Linux and Apple MacOS systems, as well as Windows using WSL2.

The core is written in portable C. The system currently depends on an X11 system for its display.

Obtaining The System

The system comes in two parts. The first is a C-based virtual machine Maiko.

The remainder of the system is OS / architecture-independent and can be found in the Medley repository.

You can now download Medley Interlisp from a release without building anything; see the Medley README

See The Maiko README for build instructions for Maiko, for systems for which there is no pre-built release.

(See Medley repo README for instructions on getting Medley. Make sure you have an X-server running to manage the Medley Interlisp display, and the DISPLAY environment variable set to point to your X-server.

Running Medley can be done by typing:

$ cd medley
$ ./run-medley

Or, if you wish to start Medley up with a particular image file (SYSOUT):

$ cd medley
$ ./run-medley <SYSOUT-file-name>

The first time the system is run it loads the system image that comes with the system. When you exit the system (or “do a SaveVM” menu option) the state of your machine is saved in a file named ~/lisp.virtualmem. Subsequent system startups load the ~/lisp.virtualmem image by default.

Exiting The System

The system may be exited from an Interlisp prompt by typing:

(LOGOUT)

Or from a Common Lisp prompt with:

(IL:LOGOUT)

When you logout of the system, Medley automatically creates a binary dump of your system located in your home directory named ``lisp.virtualmem’’. The next time you run the system, if you don’t specify a specific image to run, Medley restores that image so that you can continue right where you left off.

2.1 - Building Medley Interlisp

Medley Interlisp is open-source and may be obtained from GitHub. It is portable to many different Linux and Apple MacOS systems, as well as Windows using WSL2.

The core is written in portable C. The system currently depends on an X11 system for its display.

Obtaining The System

The system comes in two parts. The first is a C-based virtual machine maiko.

The remainder of the system is OS / architecture-independent and can be found in the medley repository.

You can now download Medley Interlisp from a release without building anything; see medley README

See The Maiko README for build instructions for Maiko, for systems for which there is no pre-built release.

2.2 - Releases

Medley repo releases contains the current Medley release. New releases are generated regularly as functionality is restored and extended.

An alternative is to point your browser to Online Interlisp and try our cloud hosted version of Medley Interlisp.

3 - Running on MacOS

DRAFT – This page is currently being revised.

online

requires a recent version of Safari or Chrome or Firefox.

docker desktop

Running with Docker Desktop is an option, but installing locally is better.

Install from release

We don’t have it build automation yet, but usually a release will include a build for darwin.aarch64.

install medley from release, build maiko

Need XCode Need XQuartz installed before you build maiko (includes XClient libraries).

  • Requirements
  • Intel or M1/M2 Macintosh (or even older)
  • XQuartz Macintosh X server for your OS/mac vintage)

XQuartz settings

emulate 3-button mouse

4 - Running on Windows

Running on Windows

  • Interlisp Online works fine with Edge and Chrome; we’ve tested others but don’t regularly use
  • Docker Desktop is a great possibility, too.

Running on Windows with WSL2 (Windows Subsystem for Linux)

We hope there will be a way of running Medley Interlisp with direct support of WIndows, but not so far.

However, if you have Windows 10 or Windows 11 pro, WSL2 is the way to go.

If you have Windows 11 Pro, WSL

https://x410.dev/cookbook/wsl/using-x410-with-wsl2#vsock

For users of Windows 10 or 11 (pro), running in WSL2 is a good choice. This requires installing both Maiko, the underlying engine, and Medley. This option requires some familiarity with Linux and running Linux within Microsoft’s WSL environment. In addition, if you aren’t running Windows 11, you may need to install an X11 server within your Windows environment: two free servers that are known to work are Cygwin/X and XMing (the 6.9 release is old but usable).

Requirements

Installing Medley via an Install script

tbd

Manual Installation of Medley

The medley repo README has a guide for downloading or building your own maiko (for your OS / architecture) and for obtaining Medley

5 - Running with Docker

As an experiment, we’ve set up a way to use Medley Interlisp via a pre-built Docker configuration. As part of the experiment, we’ve set up a docker container that contains Xvnc (a kind of protocol gateway) so you would just need a VNC client.

If this is your first time working with Docker, you’ll want to install it before continuing.

You’ll also need a modern VNC client; TightVNC works well. Rumor has it that Macs and Linux use VNC normally for screen sharing.

docker run -p 5900:5900 -e DISPLAY=$DISPLAY --rm --name interlisp interlisp/medley