diff --git a/content/en/project/_index.md b/content/en/project/_index.md index d257e4dbf..c21e6ba16 100644 --- a/content/en/project/_index.md +++ b/content/en/project/_index.md @@ -29,7 +29,7 @@ We are trying to address this conflict by also making older versions of Interlis We are [some of the original developers and users of Interlisp](/project/credits) 30 years ago, joined by newcomers interested in software history and preservation, along with members of the Lisp community. We work with [organizational partners](partners). And with you!
- + How do I get involved?
diff --git a/content/en/project/partners/SHFT.md b/content/en/project/partners/SHFT.md new file mode 100644 index 000000000..b9babe88c --- /dev/null +++ b/content/en/project/partners/SHFT.md @@ -0,0 +1,10 @@ +--- +title: Software History Futures and Technologies SHFT +weight: 20 +type: docs +--- + +The [Software History Futures and Technologies](https://www.shft.group) (SHFT) group] is now hosted by the Media and Technology Studies department at University of Alberta, Canada. SHFT is partnering with the Medley Interlisp project to help with making the Interlisp Experience accessible to those interested in learning its unique features as well as the context of innovation based on it. + + + diff --git a/content/en/software/_index.md b/content/en/software/_index.md index 893d8e6e7..ccd091858 100644 --- a/content/en/software/_index.md +++ b/content/en/software/_index.md @@ -4,18 +4,17 @@ type: docs aliases: --- -This section contains information on installing or setting up Medley and using it. +## Welcome to the Medley Interlisp Experience -There are two main ways of running Medley: accessing it online in a web browser or installing and running the system on your computer. Online access is best for trying out Medley without installing anything, as well as for basic usage. Install the system on your computer if you want to run Medley offline, customize the environment, or simplify the exchange of files with Medley. +The [Medley Interlisp Project](/project) has focused on bringing this [historical software](/history) to life. This section contains information on setting up the Medley system and using it. -We are working on making an early version of Medley run in the browser. This example of software preservation will let you access a technology artifact of historical significance. +There are two main ways of running Medley: accessing it online in a web browser or installing and running the system on your computer. Online access is good for trying out Medley without installing anything, as well as for basic usage. Install the system on your computer if you want to run Medley offline, customize the environment, and have direct access to local files. -These are the available options for running Medley: +* [Access Medley Online](access-online): how to access Medley running on our servers using your web browser. +* [Install and Run](install-and-run): how to set Medley up on your computer, and (re)start each time. -* [Access Medley Online](access-online): how to access Medley running on our servers using your web browser. -* [Install and Run](install-and-run): how to set Medley up on your computer, and restart each time. -* [Using Medley](using-medley): Once you are up and running, some basics and pointers to other documentation. +Once you are up and running, see "[Using Medley](using-medley)" for some basics and pointers to other documentation. * *Coming*: [Running Medley in the browser!!](https://groups.google.com/g/lispcore/c/tiD2PUzBLCo/m/HuqWV63_AQAJ) - +We are working on making earlier version of Interlisp-D run in the browser. This example of software preservation will let you access a technology artifact of historical significance. diff --git a/content/en/software/access-online/_index.md b/content/en/software/access-online/_index.md index c5d358d84..ba658ea0f 100644 --- a/content/en/software/access-online/_index.md +++ b/content/en/software/access-online/_index.md @@ -10,12 +10,12 @@ aliases: - /software/access-online --- -Running Interlisp online is good for experimenting and introducing yourself to the environment. However, anything you create in the online environment should be treated as transient. If you're interested in developing and experimenting with Lisp programs, you will want to investigate other options. For a first foray, it is a good starting point. +Running Medley online is good for experimenting and introducing yourself to the environment. However, anything you create in the online environment should be treated as transient. If you're interested in developing and experimenting with Lisp programs, you will want to investigate other options. For a first foray, it is a good starting point. ### Things to note when running online * **Browser compatibility:** Older browsers may not support the VNC software we use; it should give you a warning if this is detected. - **control-character conflicts:** Different browsers may intercept user typing control-characters; for example, control-W might close the entire Medley window, rather than backward-delete a word. There is no standard fix: Using Chrome in "full screen" mode; using a browser extension which captures the control-character for its own operations might help. +* **Control-character conflicts:** Different browsers may intercept user typing control-characters; for example, control-W might close the entire Medley window, rather than backward-delete a word. There is no standard fix: Using Chrome in "full screen" mode; using a browser extension which captures the control-character for its own operations might help. * **No guarantees:** In general, Medley has NO WARRANTY, but in particular we make no guarantees that private information will not be revealed, or that your files uploaded to your account will be held securely. * **Reliable Internet:** You need a solid net connection to our AWS server (currently in Ohio). @@ -25,59 +25,22 @@ Running Interlisp online is good for experimenting and introducing yourself to t {{< imgproc Login_Screen Resize "400x450">}} Interlisp Online Login {{< /imgproc >}} 2. Login to Medley Interlisp Online: * You can login as a guest by clicking Guest Login button on the login screen. However, guest sessions are not saved. - or * We suggest you create your own account by clicking New User Register here button on the login screen. Having an account enables you to save your sessions. To create an account, you just need an email address and password. Click Register here on the login screen to create your own account. - or + * If you are already registered (created an account), log in and start a Medley Interlisp session. Sessions are preserved for users that login with their own account. However, user account sessions may be deleted after 30 days of inactivity. -3. Select the Exec you want to run. For this exercise, select `Interlisp` +3. Select the Exec you want to start out with. For example, select `Interlisp`. -4. Leave the `Fill browser window` option set. +4. Leave the `Fill browser window` option set. 5. Select `Run Medley`. Your browser will open a window that represents the Interlisp Desktop and looks much like this: {{< imgproc Online_Initial_Medley Resize "800x450">}} Medley Interlisp{{< /imgproc >}} -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 a sample Interlisp programs - -In the Exec window, type the following: - -```lisp -(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. -
- }}"> - Guide to help you begin programming in Interlisp + }}"> + Guide to Using Medley
-### Managing memory images and sessions - - (What is a memory image? How is it different from an image or memory?) - -In Interlisp, there are two types of files relevant to managing memory images and updating them across sessions: `lisp.virtualmem` and `.sysout`. - -The `lisp.virtualmem` file is a capture of the "current" state of the system (i.e., it is a copy of the virtual memory at a point in time). `lisp.virtualmem` is written whenever you execute `(IL:LOGOUT)` and also whenever executing `(IL:SAVEVM)`. You can restart Medley using a `lisp.virtualmem` and it will pick up essentially where it left off before the `LOGOUT` or `SAVEVM` (with the exception that the user can set `BEFORE`/`AFTER` and `LOGOUT`/`SAVEVM` code that runs before you get control of the restarted `lisp.virtualmem`). - -A `.sysout` is a virtual memory image produced by `MAKESYS` (for writing an image for distribution) and `SYSOUT` (for saving a named checkpoint, e.g. to revert to a previous state if needed), which differ in the way they process the startup options. You can (and most frequently do) start Medley from a sysout file. When Medley starts from a sysout, it automatically runs initialization scripts — a site initialization script followed by a per-user initialization script (if available). A sysout is what you might call "a clean image". - -As for Interlisp Online: except as noted below, every time you `Run Medley` you are starting up from a sysout file (i.e., from a clean image). The exception is if you check the `Resume previous session` box. In that case, you will be starting up from the `lisp.virtualmem` stored for you online (if any) and that was created by the `(IL:LOGOUT)` at the end of your previous session. - -As a registered Interlisp Online user you get the choice of resuming your previous image or starting from a clean image — with the default being starting from a clean image. - -For guest logins, there is no `Resume previous session` because `lisp.virtualmem` is never preserved for guests. - -For registered users, any files that you create (e.g., with `IL:MAKEFILE`) will also be preserved across sessions online. But these files will never be automatically loaded into the system when you re-start with a clean image — you need to `LOAD` them explicitly (or add a `LOAD` to your personal `INIT` file stored online at `{DSK}/home/medley/il/INIT`). diff --git a/content/en/software/install-and-run/linux/_index.md b/content/en/software/install-and-run/linux/_index.md index 4dc2dad48..10aabd959 100644 --- a/content/en/software/install-and-run/linux/_index.md +++ b/content/en/software/install-and-run/linux/_index.md @@ -1,5 +1,6 @@ --- title: Install and Run on Linux +linkTitle: Linux weight: 20 aliases: - /software/install-and-run/running-on-linux/ @@ -7,7 +8,7 @@ type: docs --- -*Note that these instructions do not apply to Linux distros running within Windows System For Linux (WSL). [Separate instructions are available for WSL here.](../windows/wsl).* +*Note that these instructions do not apply to Linux distros running within Windows System For Linux (WSL). Separate instructions are available for WSL [here](../windows/wsl).* Medley installs and runs on most recent Linux distros (Alpine Linux is one exception). All that is strictly required is that the distro include an X Windows server. Most of the testing for Medley has been done on Ubuntu 20.04 and 22.04. @@ -95,14 +96,13 @@ Documentation for the `` to the `medley` command can be found For first-time users: `medley --vnc --apps --interlisp --noscroll` or, equivalently, `medley -v -a -e -n` is a good starting point. This will give you a fully populated Medley system, including the applications built on Medley such as Notecards and Rooms. -This will bring up the Medley environment in a separate Window on your Windows desktop. The Medley desktop and windows will all be contained within this Window as shown below. - -![Medley window open on Windows desktop](./images/Medley-on-Linux.png) +This will bring up the Medley environment in a separate Window on your Linux desktop. The Medley desktop and windows will all be contained within this Window as shown below. +![Medley window open on Linux desktop](./images/Medley-on-Linux.png) ## **Use Medley** -Once Medley is up and running, see [here](../../using-medley/) for tips on how to navigate and use the Medley environment. +Once Medley is up and running, see [here](software/using-medley/) for tips on how to navigate and use the Medley environment. By default, Medley will use (creating, if necessary) a directory called *$HOME/il*. This will be used by the Medley system as its *LOGINDIR* as follows: diff --git a/content/en/software/install-and-run/linux/linux-local-from-github.md b/content/en/software/install-and-run/linux/linux-local-from-github.md index 616ca918e..894b2c4ce 100644 --- a/content/en/software/install-and-run/linux/linux-local-from-github.md +++ b/content/en/software/install-and-run/linux/linux-local-from-github.md @@ -5,6 +5,7 @@ toc_hide: true hide_summary: true type: docs --- + 1. Go to the [Releases page for Interlisp/Medley on github.com](https://github.com/interlisp/medley/releases). Here you will see a list of releases in reverse chronological order. diff --git a/content/en/software/install-and-run/linux/linux-standard-from-github.md b/content/en/software/install-and-run/linux/linux-standard-from-github.md index 3a390e4b5..4dbbd2f2e 100644 --- a/content/en/software/install-and-run/linux/linux-standard-from-github.md +++ b/content/en/software/install-and-run/linux/linux-standard-from-github.md @@ -5,6 +5,7 @@ toc_hide: true hide_summary: true type: docs --- + 1. Go to the [Releases page for Interlisp/Medley on github.com](https://github.com/interlisp/medley/releases). Here you will see a list of releases in reverse chronological order. diff --git a/content/en/software/install-and-run/macos/_index.md b/content/en/software/install-and-run/macos/_index.md index dc20d33cb..49d033d8d 100644 --- a/content/en/software/install-and-run/macos/_index.md +++ b/content/en/software/install-and-run/macos/_index.md @@ -1,11 +1,13 @@ --- title: Install and Run on MacOS +linkTitle: MacOS weight: 30 type: docs aliases: - /running/running-on-mac - /software/install-and-run/running-on-mac/ --- + ## **Prerequisite: Install XQuartz** @@ -22,11 +24,11 @@ Medley releases on MacOS are distributed as a .zip file. The .zip file contains To install Medley: -1. Download the latest release .zip from the [Medley downloads page](https://online.interlisp.org/downloads/medley_downloads.html) , under the heading "MacOS ...". +1. Download the latest release .zip from the [Medley downloads page](https://online.interlisp.org/downloads/medley_downloads.html), under the heading "MacOS ...".
Medley Downloads Page

 

->> You can also download the installation .zip file for the latest as well as any prior releases from the Medley Releases page on the Interlisp GitHub site. [Instructions for this can be found here](./macos-from-github). +>> You can also download the installation .zip file for the latest as well as any prior releases from the Medley Releases page on the Interlisp GitHub site. Instructions for this can be found [here](macos-from-github). 2. Copy the downloaded *medley-full-macos-universal...zip* file (which MacOS treats as an unzipped folder) from the Downloads folder into any folder of your choosing. Optionally, rename the target folder of the copy from *medley-full-macos-universal...* to something more manageable - e.g., *medley-latest*. For the purposes of these instructions, we will call this (renamed) folder the *\*. @@ -88,7 +90,7 @@ This will bring up the Medley environment in a separate window on your desktop. ![Medley window open on MacOS desktop](./images/Medley-on-MacOS.png) ## **Use Medley** -Once Medley is up and running, see [here](../../using-medley/) for tips on how to navigate and use the Medley environment. +Once Medley is up and running, see [here](/software/using-medley/) for tips on how to navigate and use the Medley environment. By default, Medley will use (creating, if necessary) a directory called *$HOME/il*. This will be used by the Medley system as its *LOGINDIR* as follows: diff --git a/content/en/software/install-and-run/windows/_index.md b/content/en/software/install-and-run/windows/_index.md index 5135f6623..b844796aa 100644 --- a/content/en/software/install-and-run/windows/_index.md +++ b/content/en/software/install-and-run/windows/_index.md @@ -1,21 +1,15 @@ --- title: Install and Run on Windows +linkTitle: Windows weight: 40 type: docs --- -There are two ways to install and run Medley on Windows: - 1. Run Medley on Windows System for Linux (WSL) - 2. Run the 'native' Medley Windows app +There are two ways to install and run Medley on Windows. These two ways result in (nearly) identical Medley experiences, but differ in how Medley is installed and started. -These two ways result in (nearly) identical Medley experiences, but differ in how Medley is installed and started. +1. [Using WSL](wsl) (Windows Syswem for Linux). Medley on WSL requires the WSL subsystem to be installed on your Windows system. And when installing and using Medley on WSL you are working within a Linux environment. Some familiarity with Linux and the Linux command line is helpful. Medley on WSL is best for users who are running WSL anyway and/or prefer working in a Linux environment. -Medley on WSL requires the WSL subsystem to be installed on your Windows system. And when installing and using Medley on WSL you are working within a Linux environment. Some familiarity with Linux and the Linux command line is helpful. Medley on WSL is best for users who are running WSL anyway and/or prefer working in a Linux environment. - -Medley 'native' works within the ordinary Windows environment. Installation uses a standard Windows installer and you start Medley from a standard Command (or Powershell) window. Medley 'native' is best for users who prefer to stay (almost) exclusively in the Windows environment. +2. [Run Medley 'native'](native). Medley 'native' works within the ordinary Windows environment. Installation uses a standard Windows installer and you start Medley from a standard Command (or Powershell) window. Medley 'native' is best for users who prefer to stay (almost) exclusively in the Windows environment. Medley on WSL and 'native' Medley both require 64-bit Windows 10/11. - - - diff --git a/content/en/software/install-and-run/windows/native/_index.md b/content/en/software/install-and-run/windows/native/_index.md index 6fa74f26c..747b02b7a 100644 --- a/content/en/software/install-and-run/windows/native/_index.md +++ b/content/en/software/install-and-run/windows/native/_index.md @@ -1,10 +1,12 @@ ---- -title: Install and Run on Windows "natively" +--- +title: Install and Run on Windows "native" +linkTitle: native weight: 40 type: docs aliases: - /software/install-and-run/running-on-win/ --- + When running on Windows natively, Medley will be installed into a directory of your choice. This directory will contain an isolated copy of the Cygwin environment (an adaptation of Linux tools and apps to Windows) and a version of Medley that runs within that specific Cygwin environment. This presence of Cygwin, however, is largely hidden from the user and Medley behaves as if it is a native Windows app. @@ -16,7 +18,7 @@ When running on Windows natively, Medley will be installed into a directory of y   - > >Alternatively, you can download the Medley Windows installer for the current or any previous release from the Medley Releases page on the Interlisp GitHub site. [Instructions for this can be found here](./windows-native-from-github). + > >Alternatively, you can download the Medley Windows installer for the current or any previous release from the Medley Releases page on the Interlisp GitHub site. [Instructions for this can be found here](windows-native-from-github). 2. Start the Medley installation app (e.g., by double clicking on the .exe just downloaded). @@ -73,7 +75,7 @@ This will bring up the Medley environment in a separate Window on your Windows d ## Use Medley -Once Medley is up and running, see [here](../../using-medley/) for tips on how to navigate and use the Medley environment. +Once Medley is up and running, see [here](/software/using-medley/) for tips on how to navigate and use the Medley environment. To exit Medley, type ```(IL:LOGOUT)``` at any Exec window prompt. diff --git a/content/en/software/install-and-run/windows/wsl/_index.md b/content/en/software/install-and-run/windows/wsl/_index.md index d8fbf92da..b0d390b61 100644 --- a/content/en/software/install-and-run/windows/wsl/_index.md +++ b/content/en/software/install-and-run/windows/wsl/_index.md @@ -1,14 +1,13 @@ --- -title: Install and Run on Windows using WSL +title: Install and Run on Windows with WSL +linkTitle: WSL weight: 20 type: docs aliases: - /software/install-and-run/running-on-wsl/ --- - - -## **Prerequisite: Install WSL** +### Prerequisite: Install WSL Medley can be installed and run on either WSL1 or WSL2. WSL2 is preferred, but for older machines that do not support virtualization (see [here](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/hyper-v-requirements)) or Windows builds prior to Windows 10 Build 19041, WSL1 will work just fine although it will be limited to the VNC mode (see below). @@ -17,7 +16,7 @@ To install/activate WSL on Windows, see [How to install Linux on Windows with WS To use WSL, you must install one or more Linux "distros" on top of WSL. Medley has been tested most extensively on the Ubuntu (20.04 and later) distros. But Medley can be installed and run on (almost) any of the Linux distros available for WSL (Alpine Linux, is one known exception). -## **Install Medley** +## Install Medley Medley can be installed on WSL in one of two configurations: *standard* and *local*. @@ -26,13 +25,13 @@ Medley can be installed on WSL in one of two configurations: *standard* and *loc Standard installations are ideal for users who want to explore Medley (including its system code) or to develop applications built on top of Medley. Standard installations are not good for users who want to modify the Medley system code, since that code is installed in protected locations. -### **Standard Installation (for Debian-based distros only)** +### Standard Installation (for Debian-based distros only) 1. Download the installation file (.deb) for the latest release from the [Medley downloads site](https://online.interlisp.org/downloads/medley_downloads.html) from under the heading Linux/Standard/WSL. There are are separate .deb files for X86_64 and ARM64 systems. Download the one that corresponds to your machine architecture. We will refer to the downloaded file as ***\***
Medley Downloads Page

 

- > >Alternatively, you can download the .deb files for the current or any previous release from the Medley Releases page on the Interlisp GitHub site. [Instructions for this can be found here](./windows-wsl-standard-from-github). + > >Alternatively, you can download the .deb files for the current or any previous release from the Medley Releases page on the Interlisp GitHub site. [Instructions for this can be found here](windows-wsl-standard-from-github). > ***Note***: under WSL, you can download the file either using a Windows browser into the Windows file system or using a Linux browser into the Linux file system. If you download into the Windows file system, you will need to copy the file from the Windows file system into the Linux file system for your distro. See [Copy files from Windows to your WSL instance](https://megamorf.gitlab.io/2021/08/11/copy-files-from-windows-to-your-wsl-instance/). @@ -44,7 +43,7 @@ Standard installations are ideal for users who want to explore Medley (including ubuntu@oio:~$ sudo apt install -y ``` -### **Local Installation** +### Local Installation 1. In the WSL file system for your distro, create a directory into which Medley will be installed. We will refer to this directory as ***\*** 2. Download the release tar file (.tgz) for the latest release from the [Medley downloads site](https://online.interlisp.org/downloads/medley_downloads.html) from under the heading Linux/Local/WSL. There are are separate .tgz files for X86_64 and ARM64 systems. Download the one that corresponds to your machine architecture. We will refer to the downloaded file as ***\*** @@ -71,10 +70,11 @@ c) tigervnc > 4.2. On Debian-based systems (including Ubuntu), the tigervnc package is not available. Instead install both the *tigervnc-standalone-server package* and the *tigervnc-xorg-extension* package. ## Multiple Installations -**Standard Installations** + +### Standard Installations Multiple standard installations are not possible on a single WSL distro. It is possible to have a single Standard installation alongside one or more Local installations on a single WSL distro. -**Local Installations** +### Local Installations For local installations, you can install multiple copies of Medley (e.g. different releases) on a single WSL distro. Simply place each installation into a separate ***install_dir***. And follow the install instructions above. Each Medley installation so installed will operate independently of other Medley installations. The Medley system code for each installation will remain separate. However, in general the installations will share a single file system (which is the WSL file system for the distro). So care must be taken to coordinate access to the file system. @@ -86,14 +86,14 @@ The chosen Medley installation will be updated. Any user files (i.e., files cre ## Run Medley Medley is started from the WSL terminal for your distro using the following commands. -##### **Standard Installations** +### Standard Installations ``` medley ``` Example: Start Medley Standard -##### **Local Installations** +### Local Installations ``` cd ./medley @@ -109,9 +109,7 @@ This will bring up the Medley environment in a separate Window on your Windows d ![Medley window open on Windows desktop](../images/Medley-on-Windows.png) - - -#### X-Windows mode versus VNC mode +### X-Windows mode versus VNC mode On WSL2, Medley will normally run using the X-Windows built into WSL to display the Medley window on the Windows desktop. This works well as long a you do not have a hi-dpi monitor. But X-Windows on WSL2 does not scale well and ignores the Windows display scaling settings. On hi-dpi monitors, this often results in the Medley window being to small to use effectively. By using the --vnc (or -v) option to the *medley* command, you can instruct Medley to display into a VNC viewer contained in a standard Windows window. The VNC viewer window scales effectively on the Windows desktop and follows the Windows display scale settings. The result is a much more useable Medley window on hi-dpi displays. @@ -121,7 +119,7 @@ Aside from this scaling issue, running in VNC mode is no different from running For WSL1, X-Windows mode is not available - Medley is always run in VNC mode. ## Use Medley -Once Medley is up and running, see [here](../../using-medley/) for tips on how to navigate and use the Medley environment. +Once Medley is up and running, see [here](/software/using-medley/) for tips on how to navigate and use the Medley environment. To exit Medley, type ```(IL:LOGOUT)``` at any Exec window prompt. diff --git a/content/en/software/using-medley/_index.md b/content/en/software/using-medley/_index.md index 5a58371be..5bc424807 100644 --- a/content/en/software/using-medley/_index.md +++ b/content/en/software/using-medley/_index.md @@ -1,6 +1,6 @@ --- title: Using Medley -weight: 60 +weight: 10 type: docs aliases: - /medley/using/docs/medley/orientation/ @@ -22,39 +22,22 @@ aliases: Whether you're just getting started or refreshing your knowledge of Interlisp, we have a variety of documentation to help you along. -The following links lead to PDF files containing Interlisp documentation. -We are in the process of organizing this documentation. - -### Advice for newcomers - -A coding project is a great learning experience. But porting existing Common Lisp software to Medley may be challenging as a first project. - -Modern Common Lisps are similar and implement most of ANSI. Adapting software to these environments usually involves minor modifications you can carry out with familiar tools. But the Medley environment is completely different and its Common Lisp farther from ANSI. - -Porting to Medley is a substantial task for a newcomer who has to deal at the same time with an incomplete Common Lisp implementation, unfamiliar tools, and an unknown workflow. - -It's like hustling the move to a new country you barely speak the language and know the culture of. Within hours of landing at the airport you attempt to open a bank account, apply for a loan, file for health care, register with the tax system, negotiate renting an apartment, and do the paperwork for requesting the services of utility companies. Doing all this immediately after your arrival is overwhelming at best. - -For a more enjoyable stay take the time to settle, absorb the local language and culture, and live like a native. - -Rather than porting Common Lisp programs, it's better to start with small Interlisp projects that rely only on Medley's features and resources with no external dependencies or interactions. Write Interlisp code from scratch instead of bringing in existing software. - -We recommend to take Medley a little bit at a time. [Read the introductory material](#introductory-material), and write at least one or two small Interlisp programs of no more than a thousand lines of code. - ### Getting started To learn Medley we recommend that you go over the following reading lists and pursue the resources in the indicated order. The introductory list gets you started using Medley. The advanced list builds from there and covers programming the system and mastering its tools. -Most of these resources were created decades ago when Medley was a research system and a commercial product, so they may be incomplete or out of date. We will eventually update them. +Many of these resources were created decades ago when Medley was a research system and a commercial product, so they may be incomplete or out of date. We will eventually update them. Note: locations of documents are likely to change. Best to bookmark this page, which we'll update as the documentation settles down. #### Introductory material -1. [Interlisp Basics for Common Lisp](/software/using-medley/cl-using). +1. [Interlisp Basics](il-using) +2. [Medley Basics for Common Lisp users](cl-using). If you are familiar with Common Lisp, this guide points out some differences. +3. [Using Medley Online](online-using) -- additional introduction primarily for online users 1. [Medley for the Novice](/documentation/Medley-Primer.pdf) (also known as Medley Primer). An introductory guide to the basics of Medley such as executing commands, using menus and files, manipulating windows, editing and saving Lisp code, using the development tools, and more. Read it in full. The code in chapter 20 "Free Menus" doesn't work and some illustrations are missing. 1. [SEdit — The Lisp Editor](https://drive.google.com/file/d/12LW5zCZauJvC63NRMJhjNv5qJkuuCflb/view?usp=sharing). The manual of SEdit, the default Lisp code editor. @@ -65,7 +48,7 @@ If you are familiar with Common Lisp, this guide points out some differences. 1. [INTERLISP: The Language and Its Usage](/documentation/1986-interlisp-language-book-1.pdf). An extensive book on the Interlisp language, a prerequisite for accessing the full functionality of Interlisp. Some of the material prepared in 1986 about earlier Interlisp versions and differs from Medley. You may skip the chapters on the Interlisp TTY editor, DWIM, and Conversational Lisp (CLISP). 1. [Medley Language Reference](/documentation/IRM.pdf) (also known as Interlisp Reference Manual). The reference documentation on the Interlisp language, the application platform, and the development environment. The chapters on the Interlisp language are highly recommended. You may skip the chapters on DWIM and CLISP. Some chapters are duplicated, others are missing. 1. [Medley Interlisp: Interactive Programming Tools](/documentation/2021-interlisp-book-3.pdf). Using the development tools and applications. Skip the chapter on DEdit as the tool was replaced by SEdit, the current default Lisp code editor. -1. [Medley Interlisp: The Interactive Programming Environment](https://interlisp.org/documentation/20211225-interlisp-book-2.pdf). Accessing from Lisp the facilities and tools of the Medley environment such as windows, menus, fonts, and image streams. +1. [Medley Interlisp: The Interactive Programming Environment](/documentation/20211225-interlisp-book-2.pdf). Accessing from Lisp the facilities and tools of the Medley environment such as windows, menus, fonts, and image streams. ### Unsorted documentation content @@ -93,7 +76,8 @@ These documents were converted from Medley's internal format into PDFs. Watch ou ### Interlisp Books - [Interlisp - The Language and Its Usage](/documentation/1986-interlisp-language-book-1.pdf) - Now also available in [zipped DJVU format](/documentation/1986-Interlisp-Language-Usage.ocr.djvu.zip) + Also available in [zipped DJVU format](/documentation/1986-Interlisp-Language-Usage.ocr.djvu.zip) - Medley Interlisp: Interactive Programming Environment (derived from Interlisp-D) - Medley Interlisp: Interactive Programming Tools (derived from Interlisp-D) - (1993) Interlisp Reference Manual + diff --git a/content/en/software/using-medley/cl-using.md b/content/en/software/using-medley/cl-using.md index 660a25540..c5748c977 100644 --- a/content/en/software/using-medley/cl-using.md +++ b/content/en/software/using-medley/cl-using.md @@ -2,17 +2,30 @@ title: Interlisp Basics for Common Lisp users url: /software/using-medley/cl-using/ type: docs -weight: 20 -aliases: - - +weight: 30 --- -## Interlisp Basics for Common Lisp users If you are familiar with Common Lisp, this guide helps with some unexpected features. +### Advice for newcomers + +A coding project is a great learning experience. But porting existing Common Lisp software to Medley may be challenging as a first project. + +Modern Common Lisps are similar and implement most of ANSI Common Lisp. Adapting software to these environments usually involves minor modifications you can carry out with familiar tools. But the Medley environment is very different and its Common Lisp farther from ANSI. + +Porting to Medley is a substantial task for a newcomer who has to deal at the same time with an incomplete Common Lisp implementation, unfamiliar tools, and an unknown workflow. + +It's like hustling the move to a new country you barely speak the language and know the culture of. Within hours of landing at the airport you attempt to open a bank account, apply for a loan, file for health care, register with the tax system, negotiate renting an apartment, and do the paperwork for requesting the services of utility companies. Doing all this immediately after your arrival is overwhelming at best. + +For a more enjoyable stay take the time to settle, absorb the local language and culture, and live like a native. + +Rather than porting Common Lisp programs, it's better to start with small Interlisp projects that rely only on Medley's features and resources with no external dependencies or interactions. Write Interlisp code from scratch instead of bringing in existing software. + +We recommend to take Medley a little bit at a time. [Read the introductory material](/software/using-medley/#introductory-material), and write at least one or two small Interlisp programs of no more than a thousand lines of code. + ## Interlisp -Interlisp is a dialect of Lisp and as such, it is based on the familiar syntax of left-parenthesis, function name, arguments, and right-parenthesis. Besides many of the functions having different names and arguments compared to Common Lisp, Interlisp has many other, more fundamental, differences from Common Lisp. While this section will not go into any of the functional differences between Interlisp and Common Lisp, it will attempt to detail the more fundamental differences between the two. The reference manual may be used for a detailed description of the Interlisp functions. +Interlisp is a dialect of Lisp and as such, it is based on the familiar syntax of left-parenthesis, function name, arguments, and right-parenthesis. Besides many of the functions having different names and/or arguments compared to Common Lisp, Interlisp has many other, more fundamental, differences from Common Lisp. While this section will not go into any of the functional differences between Interlisp and Common Lisp, it will attempt to detail the more fundamental differences between the two. ### Upper- and Lower Case @@ -20,9 +33,7 @@ Interlisp uses mixed case. That is, upper-case letters and lower-case letters are treated as different. This means you can have a variable name `my-var` and a variable named `MY-VAR` that are unique and unrelated to each other. This is true for Common Lisp too, but -the READ function in Common Lisp translates. - -Most Interlisp primitives are upper case. +the READ function in Common Lisp translates (unescaped) lower-case to upper-case within symbols. Most Interlisp primitives are upper case. As a side note, the Medley system includes feature called DWIM (Do What I Mean). When code would ordinarily cause an error to occur, @@ -110,24 +121,8 @@ In Medley Common Lisp and Interlisp are fully integrated. From within Common Lisp, Interlisp functions may be accessed through the Common Lisp package nicknamed ``IL''. -## Continuing On - -This introduction was designed to provide the most general of -information -- just enough to get you started. Medley comes -with extensive documentation. - -In searchable PDF and (imperfect) HTML: - -* (1991) [Sun User Guide](/documentation/SunUserGuide.pdf) -* (1992) [Medley for the Novice](/documentation/Medley-Primer.pdf) -* (1993) [Interlisp Reference Manual](/documentation/IRM.pdf) - -Medley Interlisp also includes an online reference: - -* right-click on the desktop to get to the system menu -* select DInfo - -_or_, at any prompt, the `man` command will look up an (Interlisp) symbol. - ------------- -_Many thanks to [Blake McBride](https://github.com/blakemcbride) and his [Medley Intro](https://github.com/blakemcbride/medley-intro) from which this was initially taken._ + diff --git a/content/en/software/using-medley/il-using.md b/content/en/software/using-medley/il-using.md new file mode 100644 index 000000000..3bc0f1d1e --- /dev/null +++ b/content/en/software/using-medley/il-using.md @@ -0,0 +1,25 @@ +--- +title: Using Medley Interlisp Basics +weight: 20 +type: docs +--- +the [parent page](/software/using-medley/) has pointers to additional resources. +Medley Interlisp also includes an online reference: + +* right-click on the desktop to get to the system menu +* select DInfo + +_or_, at any prompt, the `man` command will look up a symbol or phrase in the Interlisp Reference Manual (IRM) and/or the Common Lisp HyperSpec. + +## Writing a sample Interlisp program + +In an (INTERLISP) Exec window, type the following: + +```lisp +(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 function name `PLUS` is capitalized. This is traditional -- Interlisp programmers commonly ran with the caps-lock turned on. It’s not that the developers of Interlisp were always shouting at each other. Rather, when Interlisp was developed computer programming was in its early days and all-caps type-in was common. (It's possible to change the Interlisp exec to automatically capitalize symbols at imput, as is the case with the Common Lisp exec, if that's your preference.) + diff --git a/content/en/software/using-medley/online-using.md b/content/en/software/using-medley/online-using.md new file mode 100644 index 000000000..5e2f341b7 --- /dev/null +++ b/content/en/software/using-medley/online-using.md @@ -0,0 +1,38 @@ +--- +title: Using Medley Online +weight: 40 +type: docs +--- + + +## Starting up + +The Medley 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 or XCL) 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 + +Medley Online users get some additional buttons on the right-hand side of the screen. + +### Managing memory images and sessions + +Medley has a byte-coded virtual machine architecture with a VM designed for Lisp. This is a common practice, used by Javascript, Flash and Java and other systems to aid in portability: to support a new architecture, you just port the "virtual machine emulator" rather than the whole system. + +With Medley, there are two types of files relevant to managing memory images and updating them across sessions: `lisp.virtualmem` and `.sysout`. + +The `lisp.virtualmem` file is a capture of the "current" state of the system (i.e., it is a copy of the virtual memory at a point in time). `lisp.virtualmem` is written whenever you execute `(IL:LOGOUT)` and also whenever executing `(IL:SAVEVM)`. You can restart Medley using a `lisp.virtualmem` and it will pick up essentially where it left off before the `LOGOUT` or `SAVEVM` (with the exception that the user can set `BEFORE`/`AFTER` and `LOGOUT`/`SAVEVM` code that runs before you get control of the restarted `lisp.virtualmem`). + +A `.sysout` is a virtual memory image produced by `MAKESYS` (for writing an image for distribution) and `SYSOUT` (for saving a named checkpoint, e.g. to revert to a previous state if needed), which differ only in the way they process the startup options. You can (and most frequently do) start Medley from a sysout file. When Medley first starts from a sysout, it automatically runs initialization scripts — a site initialization script followed by a per-user initialization script (if available). + +With Interlisp Online, every time you `Run Medley` you start up from one of the supplied sysout files (i.e., from a "clean image"), unless the `Resume previous session` box is checked. In that case, you will be starting up from the `lisp.virtualmem` stored for you online (if any) and that was created by the `(IL:LOGOUT)` at the end of your previous session. + +As a registered Interlisp Online user you get the choice of resuming your previous image or starting from a clean image — with the default being starting from a clean image. + +For guest logins, there is no `Resume previous session` because `lisp.virtualmem` is never preserved for guests. + +For registered users, any files that you create (e.g., with `IL:MAKEFILE`) will also be preserved across sessions online.These files will not be automatically loaded into the system when you re-start with a clean image, unless you `LOAD` them explicitly (or add a `LOAD` to your personal `INIT` file stored online at `{DSK}/home/medley/il/INIT`). + + + diff --git a/hugo.toml b/hugo.toml index c7bc38919..b45d04e86 100644 --- a/hugo.toml +++ b/hugo.toml @@ -142,8 +142,8 @@ anchor = "smart" # # Comment out if you don't want the "print entire section" link enabled. -[outputs] -section = ["HTML", "print"] +# [outputs] +# section = ["HTML", "print"] [params] copyright = "Interlisp.org"