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.
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.