The Medley Interlisp Project was created to revive Medley Interlisp.
Because Interlisp has been around a long time, with multiple iterations, you might find the multitude of names for the Interlisp language and related companies confusing. To assist, we have created a list of common vocabulary you will find on this website.
What are the origins of Interlisp? Why do we care?
The 1970s and 80s saw major advances in computing and Human-Computer interaction. Interlisp was one of the many experimental systems developed during these heady times. It represents an early example of a system with a GUI (Graphical User Interface), and IDE (Integrated Development Environment).
Within the Xerox PARC environment, it was an early example of a network enabled machine supporting email, file sharing, printing and more. In essence it was a forerunner of today’s computing systems.
Medley Interlisp represents the last Xerox Interlisp release. Medley continued Xerox PARC’s experimentation with developing systems for D-machines. A family of computers (Dorado, Dolphin, Dandelion, Daybreak) resulted. The project was later spun out to a company called Envos, which then turned into Venue.
Medley Interlisp User Interface.
What are we trying to accomplish?
Our aim is to allow Medley Interlisp to “live again”: usable on modern systems, sufficient to allow someone to develop some code and experience what it was like to use this groundbreaking system. You could think of this as a kind of “vintage software” project, to try to capture the sense of fluidity in the development cycle.
We hope to provide a platform for demonstration of early experiments of hypertext (Notecards), Desktop management (Rooms), Object-oriented programming (LOOPS), as well as Interlisp itself.
What are our challenges?
Since we aim to revive Medley Interlisp to support not just a demo or test drive, but actual use as a development and learning tool, we need to overcome a number of compatibility problems with current systems and interfaces.
We also want to restore and present earlier versions of Interlisp, for the student of computer history. For more information go to Interlisp and Software Preservation Network.
What have we done so far?
We have done a lot of cleanup and adaptation to make Interlisp Medley usable again in the modern world. Among other developments, you can now run Medley Interlisp on many OS and hardware configurations, or in the cloud, using a web browser.
We’ve also been working on integration of the Interlisp style development with git and GitHub, Docker and other modern components.
We are some of the original developers and users of the system 30 years ago, joined by newcomers interested in software history and preservation, along with members of the Lisp community. We work with organizational partners. And with you!
We have ended up in a world where UNIX and Windows have taken over, and most people have never experienced anything else. Over the years, though, many other system designs have come and gone, and some of those systems have had neat ideas that were nevertheless not enough to achieve commercial success. We will take you on a tour of a variety of those systems, talking about what makes them special.
1 - News
The 2022 Medley Interlisp Annual Report provides a detailed report on 2022 accomplishments.
Documentation update. We’re updating the project documentation. Feel free to make suggestions for improvement
Significant development of integration with GitHub (via the GITFNS module) for doing a Lisp-based PR review workflow
3/2022
Interlisp Online new version! Many new/improved features. From any (recent) browser. Medley is running “in the cloud” and you connect to it (and your account) over the web
Medley Documentation. We’ve been updating the online documentation at least for getting started – instructions on Running in various contexts and Building and Using
Interlisp.Org has been approved as tax-exempt by California Franchise Tax Board and the California AG, State Charity Registration Number: CT0278267
Still awaiting California Franchise Tax Board (FTB) to confirm exempt status (ETA April)
work on Lisp-based GitHub client, comparison of Lisp files
12/2021
Interlisp Online: Run Medley Interlisp in the cloud with just a browser. No download or install. Lower the barrier to entry. Of course, it’s better to install a release on your own machine, but for the casual visitor, this is better.
Still under development but try it out, report problems (use issue tag ‘online’).
There seem to be problems with Safari on older macs–try Firefox or Chrome.
a mouse and keyboard are still necessary on tablets.
For the immersive “Lisp Machine” experience, run “fullscreen”.
HiRes display? Most browsers will let you scale the pixels.
InterlispOrg Inc has been approved as a 501c3 with the IRS. The simplest way to donate is using the GitHub Sponsor button.
You have several ways to get involved in the Medley Interlisp Project:
Explore our working project list. In it you’ll find a variety of different activies, many which do not require indepth knowledge of programming in the Medley Interlisp environment.
Look at, comment on, and contribute to our project in Github.
Participate in weekly meetings.
Read meeting agendas and notes.
Join in the discussions through a variety of interfaces.
Check out our Project List for ideas and find one that matches your interests. Or, if you have an idea that isn’t covered, make a proposal. Funding is available to help support a limited number of projects. Programming experience is not required for many projects.
Take a look at our lists of bugs, feature requests, and questions posted as GitHub issues in the Medley repository. Do check to see if your issue or question is answered there.
The Interlisp organization on GitHub contains repositories for
Medley: Lisp code, build scripts and GitHub automation
We have weekly meetings on Zoom: Monday, 1:30 pm ET / 10:30 am PT
Meetings are to report accomplishments, status, plans, and problems, and discuss directions. Meetings are recorded, but recordings are not public.
If you would like to join our weekly meetins, let us know.
Join in the discussions through email and Google Groups
The archives are public. The LispCore group has access to meeting recordings, and usually gets more email (at least lately). Posts from non-members are moderated.
Interlisp.org is a Google workspace; let us know if you want an “interlisp.org” email addresses and why you want it.
Libera.Chat has a #Interlisp IRC Channel. A place for informal chat. Connect by pointing your IRC client to irc.libera.chat:6697 (TLS) and /join #interlisp. Say hello. There are also channels for #lisp (any dialect) and #common-lisp.
Vision in Formation: “Articulating Your Community’s Purpose”: A community facilitator’s guide around starting those mission, vision, and values statements, with templates, including sample agendas, forms, and boilerplate email text.
“It Takes a Village”: Tools for planning sustainability for open source software initiatives serving cultural and scientific heritage organizations.
The Community Tool Box: templates and advice around community assessment, developing strategic plans and organizational structure, and building community.
3.2 - Software Preservation Network
The Medley Interlisp Project has joined (as an “implementation sponsor”) the Software Preservation Network. SPN is a coordinated, distributed effort to ensure long term access to software through community engagement, infrastructure support and knowledge generation. See Interlisp and SPN for more information.
Vision in Formation: “Articulating Your Community’s Purpose”: A community facilitator’s guide around starting those mission, vision, and values statements, with templates, including sample agendas, forms, and boilerplate email text.
“It Takes a Village”: Tools for planning sustainability for open source software initiatives serving cultural and scientific heritage organizations.
The Community Tool Box: templates and advice around community assessment, developing strategic plans and organizational structure, and building community.
3.3 - InterlispOrg
InterlispOrg Inc has beem formed as a non-profit corporation in California.
We have been approved by the IRS for 501(c)3 status, and the California FTB for tax-free status. We have an EIN number assigned. We have a bank account. We can accept donations that may be tax-deductable for the donor. The simplest way to do so is using the GitHub Sponsor mechanism.
The name of the organization is “InterlispOrg Inc” (no punctuation).
The board of directors met and, among other things, approved bylaws.
It is not a membership organization.
The charitable purpose of the organization is Scientific and, in particular, Computer Science research.
The principal activity is to “develop demonstrations of software ideas based on Interlisp”.
The reason for going through this rigamarole is to allow charitable donations, to sustain our Interlisp Online service, to hold copyright and licenses. There are also unanticipated benefits of discounts and service credits available to non-profits.
4 - Status Reports
Annual Reports
The Medley team has produced annual reports documenting their major achievements.
An overview of the Medley Interlisp project was presented at the March Bay Area
Lisp Meeting. The following recording provides an introduction to the work
being undertaken by the Medley project.
Closed Issues
The issues closed by the team can be found in our GitHub repository.
4.1 - 2022 Medley Interlisp Annual Report
Introduction
We have made considerable progress on the Interlisp software preservation project, and we want to offer tours and collaboration for those engaged in similar or related software preservation efforts.
Interlisp was an early and unique software development environment (IDE) developed in the 1970’s and 1980’s at Xerox PARC, and a testbed for novel software development tools. The Medley version of Interlisp-D was built as a portable Virtual Machine, which has allowed us to bring the system forward to run on a wide variety of modern hardware and operating systems.
Interlisp was also an environment that supported many novel applications, especially in Artificial Intelligence of the 1980s.
We are approaching the project as a general software-preservation-through-emulation project, starting with source code. While a “strict emulation” mode is possible, we’ve been focusing on an updated version that fixes some of the compatibility problems with modern hardware (keyboards, mice, etc.) and implements more modern modes of user interaction.
Accomplishments
Advances over the last year include:
New versions of online.interlisp.org give users a virtual “Lisp machine” accessed through the browser without any software to install.
New versions of (open source, in GitHub) emulator and VM images with numerous improvements.
Support for virtual networking of the Xerox Network Systems (XNS) protocol stack (pre-dating TCP/IP, as well as the “PUP” (PARC Universal Packets).
Further work reviving classic Interlisp applications, including Rooms (desktop management), Notecards (Hypertext from the 80s, well before the Web), LOOPS (Lisp Object Oriented Programming System), melding Smalltalk style object inheritance with class-based knowledge engineering tools.
Continued integration of Common Lisp standard features with Interlisp development tools.
A large (but still unsorted) Zotero library of referenced texts, papers, documents, and presentations.
A new expanded Interlisp.Org website that documents the project, software history, goals, contributors, and other components.
Additional development of GitHub Interlisp organization and repositories that provide a record of issues, changes, bugs, and fixes.
Getting Involved
We meet weekly to discuss open issues and other agenda items. Meetings are recorded. We’d like to talk to others who might be interested in collaboration or using our components for other emulation projects.
To “revive” something is to make it live again. Making Medley Interlisp live again means putting the system in order so that others without a previous deep background in Interlisp can use and appreciate it (if only as a virtual antique).
The Medley Interlisp project started in earnest in March of 2020 (at the beginning of the pandemic). This report focuses on activities and accomplishments since the December 2020 virtual meeting of LispNYC (recording at: https://www.youtube.com/watch?v=x6-b_hazcyk).
In this document, work in the project is broken down into three main categories:
Work on the software itself – debugging, adapting, etc.
Documentation for the software
Building an organization and developing a community
Software Archeology
“Software Archeology” is a process like putting together a functional bowl from pottery shards. We have not completed the task, but we have a stable base.
The software is old: it had been developed between the ’70s and the 90s, with many revisions, by many different people, working with little internal documentation. There were many “excursions” to support systems or options that are no longer available. Over the last 25 years, software standards evolved for C, Common Lisp, character codes, and operating systems.
Conformance: We have been making Maiko conform to modern C compiler expectations. Removing support for outdated systems simplified the task.
SDL: Support is underway for SDL, a multi-platform (Windows, Mac OS X, Linux, iOS, and Android) graphics toolkit as an X11 replacement. SDL can be used instead of X11 as the shim to the native window system, which (we hope) will allow the system to run on Windows without separately installing X11, Docker Desktop, or WSL2.
Because of the cleanup work, the code is much more portable than ever before. Systems we’ve tested on or regularly build for include
Operating systems: macOS, Linux, FreeBSD, Solaris 11.4
CPU architectures: i386, x86_64, arm7, aarch64, SPARC-32 and -64
This covers Raspberry Pi (linux.arm7) and Windows 10 (with WSL2 or Docker). and Windows 11 (includes WSL2). Performance is outstanding. A $40 Raspberry Pi completes Lisp tasks 250-1000 times faster than the Dorado (the $90k high-end Xerox 1132 Lisp machine).
Medley
The rest of the system is implemented in Lisp: Interlisp and Common Lisp interpreters, compilers, debugging tools, editors, window system, graphics, device drivers. In the last year:
Organization: We have been cleaning out and organizing, comparing dates on files, and deciding which to keep; building maintenance scripts and Lisp utilities.
EOL and character conversion: the code for handling end-of-line and character codes was generalized, on the way to full Unicode support. (See Medley Issue #2)
Git integration: Interlisp’s file manager was designed for versioned files with version numbers. GitHub has a different graph model of history. We built “restore-versions” to restore numbered versions from git logs, but the problems are deeper. If the Interlisp style of programming is going to be supported, we have to solve these problems. (see Medley issues #265, #226)
Debugging: We found and fixed a variety of bugs: a few Y2K problems, some instances of “bit rot” and smashed files, incomplete implementations, and code patched at “wrong level”.
Modernization: Window manipulation by title bar dragging and corner selection, mouse wheel scrolling, clipboard–these seem to be necessary enhancements for modern users.
Release process & automation: GitHub Actions are now used to automate the build process for Medley releases and also a Docker container, deployed to Docker Hub as Interlisp/Medley. This gives a way to run Medley in the cloud (on Amazon Web Services, Azure, Google Cloud) or on the Windows Desktop with remote access in a browser.
Interlisp Applications
One of the reasons for restoring Medley Interlisp is to support the revival of applications written for it.
Notecards: Notecards is a hypertext system developed well before the web or Apple’s Hypercard. http://notecards.online was built with the Medley/Docker release, running Medley “in the cloud,” with web browser access. We are adopting this to work for other Medley Interlisp systems, and for others to build.
Rooms: Rooms is a Lisp desktop manager for less cluttered window access with interesting innovations. In the Medley repository. Loads but untested.
CLOS: The Common Lisp Object System adds a style of Common Lisp class structures added after Medley’s Common Lisp implementation to the ANSI standard. Also loads but untested.
LOOPS: An object-oriented Lisp addition (to Interlisp) prior to CLOS. Of interest because of AI applications built using it, including “Truckin’” – a demonstration of “knowledge programming [see paper]. The source code for the Truckin’ application exists and will be used to test LOOPS once it fully loads and is compilable.
Interlisp: The Language and Its Usage, by Steve Kaisler, originally published by John Wiley & Sons, scanned and converted to a compact PDF. This book describes the core features of the Interlisp language.
Medley Interlisp: Tools and Utilities, by Steve Kaisler (undergoing editing) describes the editors and tools to be used for program development. It is expected to be completed and uploaded to Interlisp.org in early December 2021.
Software Documentation
We’ve converted TEdit source documents to PDF (see medley-pdfs). We have the IRM (Interlisp Reference Manual) with links to online help (DInfo), User Guides, Release Notes, Primer. We still need to convert and publish documentation for some Interlisp applications and to organize and update to make it easier for newcomers.
Bibliography
Zotero is an Internet bibliographic service. We have set up an Interlisp Zotero of Lisp-related material, many items with the source material as PDFs. Our goal is to have a comprehensive source of information about Interlisp-related technical papers, technical reports, and manuals for various versions and implementations of Interlisp (and, for comparison) contemporaneous “Lisp Machine” competitors.
Working older versions
In addition to modern Medley, we have begun to organize other emulations of older versions, and a “history” repository, including files from Interlisp-10, the “DarkStar” emulator of the Xerox 1108 / 8010 hardware, and sysouts for many different releases of Interlisp-D. We’re working on making an earlier version of Medley (running on an emulated DosBox); currently available with instructions in the Interlisp/DOS repository.
Outreach
To attract users and supporters, we need to make the project known.
We developed and installed a GitHub “code of conduct”, “contributor’s guide” and issue templates (although we haven’t been using the templates and need to review them).
We depend on volunteers to help. If you’d like to help but aren’t sure how to, ask.
Future activities
There were some tasks/projects listed here; they have been moved to GitHub issues.
Acknowledgments
We’ve gotten a lot done, but there’s quite a bit more to do. Thank you to Abe, Alexander, Arun, Bill, Blake, Frank, Herb, John C, Larry, Michele, Nick, Paul, Peter, Ron, Wayne, Zoe.
A moment in memoriam to past contributors, including John Sybalsky, Warren Teitelman, Danny Bobrow.
5 - Vocabulary
The names “Medley” “Medley Interlisp” “Interlisp” “Interlisp.org” “Common Lisp” in ways that are confusing. We’re talking about a lot of different things. And these are mostly not terms that we’ve made up, they’re cemented in by the titles that have appeared in different publications.
Vocabulary and relationships
Alto Lisp
An (unsuccessful) attempt to build a Lisp-based OS for running Interlisp on an Alto
Named releases of Interlisp-D. All are obsolete except Medley.
Common Lisp
The subject of a 10-year standards process to converge multiple dialects of the
Lisp language. Strong influences from many Lisp dialects, including Interlisp.
Common Lisp the Language
Book by Guy Steele with two editions:
CLtL1 – edition 1, 465 pages
CLtL2 – second edition, 1029 pages
Common Lisp dpANS
The ANSI Standard for Common Lisp
Starting with the Lyric release of Interlisp-D and then the Medley release, the implementation of Medley included implementations of Common Lisp (CLtL 1) as well as the Interlisp dialect in a single development environment; this was made possible by using the (Common Lisp) “package” feature to allow both dialects to be intermixed.
Dfasl
A compiled form of Medley Interlisp files.
DLISP
By Warren Teitelman: a first attempt at building a “Display” (GUI) with Interlisp running on Maxc (A PDP-10 clone) a Xerox Alto as a graphics terminal connected to it via Ethernet.`
Dorado Lisp
The reimplementation of the AltoLisp microcode on the Dorado – a research prototype.
info@interlisp.org - an email address of a group that can respond to questions
Interlisp-10
The first implementation of “Interlisp” for the DEC PDP-10 / Tenex
Interlisp-360
Implemention of Interlisp for the IBM-360
Interlisp-D
What Dorado Lisp became. The D stood for both “Display” and “D-machine”. An implementation of
Interlisp the language
The Interlisp programming tools
A Graphical User interface to Interlisp programming development
A large number of tools, utilities, games, screen-savers
A Lisp-based operating system for D-machines which, when coupled with microcode
implementation of a Virtual Machine, allowed the D-machines to operate as a
personal workstation. Each D-machine had its own microcode with different
configurations and micro-instructions.
Interlisp-VAX
Implementation of Interlisp for Digitial Equipment Corporation VAX systems
InterlispOrg
A California-registered non-profit organization (DBA Interlisp.org) Established
August 2021. 501c3 EIN 87-2528093 California registered charity CT0278267.
President Larry Masinter, Treasurer Ron Kaplan, Secretary Herb Jellinek.
Koto
An obsolete named releases of Interlisp-D.
Lcom
Used as a file ending, xxx.lcom, for compiled Medley files.
Lyric
An obsolete named releases of Interlisp-D.
Medley
The final named release of Interlisp-D.
Medley 1.0, Medley 2.01, Medley 3.5 numbered releases of Interlisp-D
At some point the name Interlisp-D was retired and Medley used to name the software.
Maiko
An implementation of the functions of the microcode D-machine, but written in C for the
Sun Microsystems (RISC-like) SPARC processor workstation, initially developed by
Fuji Xerox. Subsequently ported to little-endian processors and other operating systems.
SDL
Structured Design Language
Sysout
A file containing the saved state of Interlisp virtual memroy
X11
The X Window System
Organizations
BBN
Boston consultancy which (late 60s) implemented BBN Lisp and the Tenex operating system.
Xerox PARC or just PARC
Palo Alto Research Center, which continued in collaboration with BBN on (renamed) Interlisp. PARC developed the Alto and Dorado. Now part of SRI International.
SRI International
non-profit scientific R & D institute
Xerox Electro-Optical Systems (XEOS)
Xerox division supporting classified customers
Xerox Artificial Intelligence Systems (XAIS)
The division working to commercialize Xerox Workstations running Interlisp-D.
Rank Xerox
Xerox affiliate in charge of delivering Interlisp-D workstations in Europe
Fuji Xerox
Xerox affiliate – joint project of Rank Xerox and Fuji Photo Film company.
Envos
Company founded in 198x to take on the Lisp business from Xerox. Closed within 10 months and folded back to Xerox.
Venue
Smaller company, started by John Sybalsky; it had the license to create and distribute derivative works of Maiko and Medley Venue ceased operations… … some history …. Software recovered from late 90s…. Fuji Xerox worked with John into the 90s with ports and addons and other software….
Medley Interlisp Project
Began late 2010’s with Nick Briggs getting Maiko to run on MacOS.
In earnest in 2020 with start of weekly Zoom meetings, getting it to run on Linux in a VM and getting the Interlisp and LispCore google groups and ….