1
0
mirror of synced 2026-03-04 02:36:38 +00:00
rmkaplan abdb128636 Rmk36 tedit fifth round (#1857)
* TMAX updates for compatibility with Tedit changes

* DOC-OBJECTS changes for compatibility with Tedit changes

* MODERNIZE update for Tedit split windows

* Core Tedit files

* IMAGEOBJ: Remove dependency on Tedit internals

* WINDOW: Remove dependency on Tedit internal declaration

Still strange that WFROMDS should have to branch on Tedit

* WINDOWOBJ gets window of TTY process before the window of the stream of the TTY process

So insert into Tedit works

* TEDIT-CHAT: try to use TEXTSTREAM vs TEXTOBJ

* Fix tab-initialization problem in SLIDES.TEDIT

as reported by @nbriggs

* TEDIT-CHAT: use TSTREAM rather than TEXTOBJ

* Updates after lots more testing, particularly scrolling

Some other files dragged along to avoid dependence on Tedit internals

* Remove unwanted SAVE.SYSOUT

* Addresses more end-of-file and empty-file display issues

Try it again

* TEDIT-DEBUG tracking other changes

* Odds and ends

* Adjust EOF selection and caret-scrolling on copy

* More cleanup, plus fixing a few more ancient (Venue) glitches

As usual, the problems have to do with the funky behavior of EOL's in the middle and end of the document.  More abstraction and refactoring to get better control of this (I hope).

* TEDIT-WINDOW: Scroll down of big objects

Trying to fix what happens at the transition when scrolling down brings a big-object's top down in the window.   Approach is to bring down the line above, which may make for a little jump. I hope that solves it.
Scrolling up still needs some adjustment.

* Eliminate junk at top of window after up/down scrolling of big objects

BLTSHADE is OK there for scrolling, but not for redisplay after editing.  In the edit case, the top of the pane above the last valid line is preserved.
Scrolling still has the problem that the window can go blank at the first scroll that brings a tall object into the pane--still working on that.

* Scrolling with tall lines should be more continuous

* Another tweak for scrolling

plus interface extension to TEDIT.MOVE and TEDIT.COPY, a little more on field menus

* More robust strategy for field menu buttons

Surround the field with prefix and suffix pieces with image objects that print the pre and post labels and shift the selection forward or backward into the field.  Doesn't depend on inherited quirky logic in the selection line-scanner.

* Field selection ignores right and middle clicks

* A little more menu/selection tweaking

You can't extend through fields and buttons

* Added CUSTOMBUTTONEVENTFN to menu field buttons

Also, menu buttons in general can't be deleted

* A few more glitches, plus a little selection refactoring for buttons

* Reduce flicker in pargraph menu margin bar

* screen update glitch

* DOC-OBJECTS, TEDIT-SCREEN: Fixes the HCFILES DOC-OBJECTS failure

* TEDIT-BUTTONS:  Field values should always be shown in the specified FIELDFONT

* Abstracting the structure of the history lists

cleanup, but mostly as a precursor to maybe doing a ring buffer of a specified length

* TEDIT-FILE, a little font-reading cleanup

* Include the files from rmk-39 that deal with the text/binary renamefile problem

* TEDIT-PAGE addresses #1905

* Fix BUTTONSTART to STARTPC in Put/Get menu buttons

* Use width of M as width of EOL--easy to select

Also put in function call for potential kerning--needs eventual FONT support

* Rename a few internal functions from TEDIT.-- to \TEDIT.--

* Doesn't make sense for a charlooks to not have a font

* TEDIT-BUTTONS - Fix comment

* Take out Tedit internals from \CARET.FLASH?

Should have included this in fifth round long ago

* TEDIT-FILE:  use DEFAULTFONT for .sh files

Easier to follow the layout

* TEDIT-LOOKS: fix loadup order

* tedit-exports.all  Remove line-has-protection field

Useless

* Make sure that charlooks change as expected

* External format for .sh files is UTF-8

* Better display of history information for debugging

* Button changes: show document font families, better fields

* TEDIT-WINDOW, remove extra truncated line with down-scroll

* TEDIT-SELECTION: suppress line/paragraph selection for built-in menus

Line/para selection would be reasonable for multi-line fields, but most menu lines have protected text that would behave inconsistently.  So just suppress

* Better support for potential kerning

* Fix empty field value

* Simplify ASCII translation code

* Make sure headings have a default tab

* Word boundary at character 1

* Remember that you specified a font class instead of a font

For the charlooks menu, but also so that it is saved on a put

* More items on the Family NWAY-button line

* glitch

* TEDIT-LOOKS: Better algorithm for Ascii translation

* Charmenu remembers previous "Other" fonts, even if not installed

* Fix initial piece index

* Fix fontclass changes (again)
2024-12-23 11:07:54 -08:00
2024-12-19 11:02:54 -08:00
2022-08-10 20:22:54 -07:00
2024-12-23 11:07:54 -08:00
2024-12-23 11:07:54 -08:00
2024-12-23 11:07:54 -08:00
2024-12-23 11:07:54 -08:00
2021-01-01 11:09:11 -08:00
2024-10-22 11:15:18 -07:00
2024-05-09 21:31:27 -07:00

Medley

This repository is for the Lisp environment of Medley.

Install and Run covers ways to install and start up Medley on Linux systems, MacOS, and Windows (with or without WSL).

Using Medley has an overview and pointers to documentation.

Interlisp/maiko, is the repo for the implementation (in C) of the Medley virtual machine.

Releases

While there are installers for popular platforms, this section may be useful in some circumstances.

Getting releases

Get the Maiko release here. You'll need the .tgz file corresponding to your operating system and processor. For Windows with WSL or Intel Linux, use linux.x86_64; for Macs use darwin.x86_64 for Intel and darwin.aarch64 for Mac silicon. Windows without WSL uses cygwin instead.

Or, build your own maiko (the binaries lde, ldex OR ldesdl, and ldeinit). You can also build for other architectures

The medley release image and sources come in two parts, found here

  1. The "loadups" (download medley-YYMMDD-XXXXX-loadups.tgz)
  2. The "runtime" (download medley-YYMMDD-XXXXX-runtime.tgz)

where YYMMDD is the date and XXXXX is the GitHub commit ID.

The "runtime" isn't needed if you've cloned the (medley) repo--you have all the files. The "runtime" has extra fonts, unicode tables, and source code that aren't part of the loadups but may be called on.

Unpacking releases

From a shell/terminal window:

  1. Choose a directory parent where you want to install medley and maiko.
  2. Unpack the medley loadups file
  • cd parent
  • tar xvzf medley-YYMMDD-XXXXX-loadups.tgz
  1. Unpack the medley runtime OR clone the Medley repo (the "medley runtime" is just a subset of the whole repo)
  • tar xvzf medley-YYMMDD-runtime.tgz

    OR

    git clone https://github.com/Interlisp/medley
    
  1. Unpack the maiko file for your operating system and CPU type, e.g.,

    tar xvzf maiko-210823.linux.x86_64.tgz
    
  2. This should leave you with two directories, medley and maiko.

Setting up X

In many configurations, Medley uses an X-Server to manage its display. Most Linux desktops have one. Windows 11 with WSL includes an X-Server. For Windows 10 with WSL2, there are a number of open-source X servers; for example vcxsrv.

Mac users should get XQuartz from XQuartz.org.

Medley manages the display entirely, doesn't use X fonts and manages it's own window system.

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 doubling" is best. (E.g., Raspberry Pi does pixel doubling on 4K displays.)

Medley presumes you have a 3-button mouse; the scroll-wheel on some mice acts as one, with some difficulty. Go into XQuartz Preferences/Input and check "Emulate three button mouse" option.

Running Medley Interlisp (obsolete)

The run-medley script in this repo sets up some convenient defaults. Running Medley can be done by typing:

$ cd medley
$ ./run-medley

Or, if you wish to start Medley up with a different 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 the Interlisp prompt by typing:

(LOGOUT)

Or from the Common Lisp prompt with:

(IL:LOGOUT)

When you log out 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.

Naming conventions and directory structure

File Names and Extensions: Most Interlisp source file names are UPPERCASE and Interlisp didn't use file extensions for its source files. A .TEDIT or .TXT file is probably documentation for the package of the same name, at least in the library and lispusers directories.

The current repo has both Lisp sources and compiled .LCOM and .DFASL files.

Each directory should have a README.md, but briefly

  • BUILDING.md -- instructions on how to make your own loadups
  • clos -- early implementation of Common Lisp Object System
  • CLTL2 -- files submitted to bring Medley up to the conformance to "Common Lisp, the Language" 2nd edition. Not enough to conform to the ANSI standard lisp.
  • docs -- Documentation files (in TEdit format, PDFs, or online help; look here)
  • fonts -- raster fonts (or font widths) in various resolutions for display, postscript, interpress, press formats
  • greetfiles -- various configuration setups
  • internal -- These were internal to Venue
  • library -- packages that were supported (30 years ago)
  • lispusers -- User contributed packages that were only half supported (ditto)
  • loadups -- has sysouts and other builds plus a few remnants
  • obsolete -- files we should remove from the repo
  • rooms -- implementation of ROOMS window/desktop manager
  • run-medley -- script to enhance the options of running medley
  • scripts -- some scripts for fixing up things, building and running medley
  • sources -- sources for Interlisp and Common Lisp implementations
  • unicode -- data files for support of XCCS to and from Unicode mappings
Description
The main repo for the Medley Interlisp project. Other repositories are maiko (the VM implementation) and Interlisp.github.io (web site sources)
Readme MIT 1.3 GiB
Languages
Common Lisp 74.2%
Shell 20%
Inno Setup 1.8%
HTML 1.3%
Roff 1%
Other 1.7%