Skip to content

Commit 5c0bcdf

Browse files
authored
Update instructions for building and running & coordinate with Wiki (#161)
* Move instructions for building and running to Wiki * oops typo * Move (revised) build instructions back * More tweaking
1 parent 6c5fc92 commit 5c0bcdf

File tree

2 files changed

+69
-66
lines changed

2 files changed

+69
-66
lines changed

README-mac.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Running Medley Interlisp on a Mac.
2+
3+
Running on MacOS requires an X server, and building on a Mac requires X client libraries. An X-server for x86 can be freely obtained at https://www.xquartz.org/. For the new arm64 MacOS 11, you'll need https://x.org which you can get via MacPorts or Brew.
4+
5+
6+
### Middle-mouse tweak
7+
8+
if you don't have a 3-button mouse (wheel = middle mouse)
9+
you can enable FN-left to be middle. Run in a terminal:
10+
11+
```sh
12+
defaults write org.macosforge.xquartz.X11 enable_fake_buttons -boolean true
13+
defaults write org.macosforge.xquartz.X11 fake_button2 fn
14+
defaults write org.macosforge.xquartz.X11 fake_button3 none
15+
```
16+
17+
To turn the settings back to the original default values do:
18+
19+
```sh
20+
defaults write org.macosforge.xquartz.X11 enable_fake_buttons -boolean false
21+
defaults delete org.macosforge.xquartz.X11 fake_button2
22+
defaults delete org.macosforge.xquartz.X11 fake_button3
23+
```
24+

README.md

Lines changed: 45 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,85 @@
1-
# medley
2-
This repo is for the overall Lisp environment for Medley Interlisp.
1+
# Medley
2+
This repo is for the Lisp environment of [Medley Interlisp](https://Interlisp.org). We've made great process in sorting out what we have (some dusty corners notwithstanding), but there's quite a bit more work to do. Please report problems!
33

4-
A sub-project is [Interlisp/maiko](https://github.com/Interlisp/maiko) which is the implementation of the Lisp virtual machine. If you want to run on some other platform that we haven't tried, you just need to port/build Maiko.
4+
See [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction) for an overview.
55

6-
Newcomers to Medley Interlisp should check out [Blake McBride's Introduction to Medley](https://github.com/Interlisp/medley-intro)
6+
A sub-project is [Interlisp/maiko](https://github.com/Interlisp/maiko), which is the implementation (in C) of the Medley virtual machine.
77

8-
We've made great process in sorting out what we have (some dusty corners notwithstanding) and are gearing up to fix problems as they are found.
98

10-
## Running Medley on all platforms with Docker
9+
## Instructions for Building and Running
1110

12-
If this is your first time working with Docker, you'll want to [install it](https://docs.docker.com/get-docker/) before continuing. You'll also need a modern VNC client; [TightVNC](https://www.tightvnc.com/) works well.
11+
### Setting up X
1312

14-
Next, you can either pull a prebuilt image or build from scratch:
13+
Medley Interlisp needs an X-Server to manage its display. Most Linux desktops have one.
14+
If you have a high-resolution display, note that much of the graphics was designed for a low-resolution display, so an X-server that does "pixel doublilng" is best. (E.g., Raspberry Pi does pixel doubling on 4K displayes).
15+
* It also presumes you have a 3-button mouse (the scroll-wheel on some mice act as one with some difficulty.) See [README-mac.md](./README-mac.md) for more info on dealing with that.
1516

16-
### Using a prebuilt image (recommended)
17+
### Running Medley Interlisp
1718

18-
1. `$ docker run -p 5900:5900 interlisp/medley`
19-
2. Run a VNC viewer and connect to localhost.
20-
21-
### Building from scratch
22-
23-
1. Pull the latest Medley repo.
24-
2. `$ cd medley`
25-
3. Pull Maiko: `$ git submodule update --init --recursive`
26-
4. `$ docker build . -t interlisp/medley`
27-
5. And then as above.
28-
29-
30-
## Running Medley on macOS
31-
32-
1. Download and install [XQuartz](https://www.xquartz.org/releases/). MacPorts has the most recent builds.
33-
2. Clone this repo and [Interlisp/maiko](https://github.com/Interlisp/maiko) into the same parent directory.
34-
3. In a terminal:
35-
```sh
36-
cd maiko/bin
37-
./makeright x
38-
39-
cd ../../medley
40-
./run-medley --dimensions 1440x800 -full &
19+
The `run-medley` script in this repo sets up some convenient defaults. Running Medley can be done by typing:
4120
```
42-
43-
### Middle-mouse tweak
44-
45-
if you don't have a 3-button mouse (wheel = middle mouse)
46-
you can enable FN-left to be middle. Run in a terminal:
47-
48-
```sh
49-
defaults write org.macosforge.xquartz.X11 enable_fake_buttons -boolean true
50-
defaults write org.macosforge.xquartz.X11 fake_button2 fn
51-
defaults write org.macosforge.xquartz.X11 fake_button3 none
21+
$ cd medley
22+
$ ./run-medley
5223
```
5324

54-
To turn the settings back to the original default values do:
25+
Or, if you wish to start Medley up with a different SYSOUT:
5526

56-
```sh
57-
defaults write org.macosforge.xquartz.X11 enable_fake_buttons -boolean false
58-
defaults delete org.macosforge.xquartz.X11 fake_button2
59-
defaults delete org.macosforge.xquartz.X11 fake_button3
27+
```
28+
$ cd medley
29+
$ ./run-medley <SYSOUT-file-name>
6030
```
6131

32+
Once the system comes up, give it a few seconds to initialize.
6233

63-
## Running Medley on Windows with WSL
64-
65-
Get the Windows X server called [Xming](https://sourceforge.net/projects/xming/) (the default options will do).
34+
The first time the system is run it loads the system image that comes
35+
with the system. When you exit the system (or "do a `SaveVM`" menu
36+
option) the state of your machine is saved in a file named
37+
`~/lisp.virtualmem`. Subsequent system startups load the
38+
`~/lisp.virtualmem` image by default.
6639

67-
Make Maiko following the instructions [in that repo](https://github.com/Interlisp/maiko), and
68-
copy `lde` and `ldex` from `linux.x86_64` into your path (/usr/local/bin).
40+
### Exiting The System
6941

70-
```sh
71-
export MEDLEYDIR=/mnt/c/path-to-medley-directory
72-
export HOME=/mnt/c/path-to-windows-home
73-
export DISPLAY=:0
74-
export LDEINIT="$MEDLEYDIR"/greetfiles/LOCAL-INIT
42+
The system may be exited from the Interlisp prompt by typing:
7543

76-
cd "$MEDLEYDIR"
44+
```
45+
(LOGOUT)
46+
```
7747

78-
IP=1.2.3.4 # your Windows machine's local IP
79-
./run-medley --dimensions 1440x800 --display "$IP":0 -bw 0 -full &
48+
Or from the Common Lisp prompt with:
8049
```
50+
(IL:LOGOUT)
51+
```
52+
When you logout of the system, Medley automatically creates a binary
53+
dump of your system located in your home directory named
54+
`lisp.virtualmem`. The next time you run the system, if you don't
55+
specify a specific image to run, Medley restores that image so that
56+
you can continue right where you left off.
57+
58+
* [Using Medley Interlisp](https://github.com/Interlisp/medley/wiki/Using-Medley-Interlisp)
59+
8160

8261
## Naming conventions and directory structure
8362

8463
File Names and Extensions: Most Interlisp source file names are
8564
UPPERCASE and Interlisp didn't use file extensions for its source
86-
files. (note that any .TEDIT or .TXT file is probably documentation
65+
files. A .TEDIT or .TXT file is probably documentation
8766
for the package of same name, at least in the library,
88-
internal/library, lispusers)
67+
internal/library, lispusers.
8968

9069
The current repo has both Lisp sources and compiled .LCOM and .DFASL
9170
files, because some files don't compile in a vanilla lisp.sysout .
9271

9372
Each directory should have a README.md, but briefly
94-
- basics -- old sysouts needed (for now) for rebuilding new sysouts
73+
9574
- docs -- Documentation files (either PDFs or online help)
9675
- fonts -- raster fonts (or font widths) in various resolutions for display, postscript, interpress, press formats
97-
- greetfiles -- should have any necessary setup of directories Lisp should look in for load
98-
- internal -- These _were_ internal to Venue
76+
- greetfiles -- various configuration setups
77+
- internal -- These _were_ internal to Venue; now internal/library and internal/test
9978
- library -- packages that were supported (30 years ago)
10079
- lispusers -- packages that were only half supported (ditto)
10180
- loadups -- has sysouts and other builds
10281
- makesysout -- files for making new sysouts for various configurations, based on basics
103-
- patches -- ""
82+
- patches -- for cases where reloading doesn't wor
10483
- sunloadup -- support information for making a new lisp.sysout from scratch
10584
- sources -- sources for Interlisp and Common Lisp implementations
10685
- unicode -- data files for support of XCCS to and from Unicode mappings

0 commit comments

Comments
 (0)