1
0
mirror of synced 2026-01-13 23:47:27 +00:00
Larry Masinter 4efe2f93af
Merge (rebase) Cleanup-character-IO-interfaces with master (#356)
* Cleanup  of character IO interface

Committing this branch for further testing.  I know at least that the TTY output stream somehow is defaulting to :XCCS, which is wrong, but I haven't yet found the interface for that.

* Clean out \NSIN etc

No top-level calls to the NS specific functions, just to the generic \OUTCHAR etc.

Updated full.database

* MODERNIZE: added dragging for fixed-menu windows

They can be dragged by their title bars

* UNICODE:  Added Greek to the default set

Also made spelling of default-externalformats consistent with FILEIO

* FASLOAD: EOL conversion in FASL::READ-TEXT

EOL's printed as LF's will be read as EOL

* LLREAD:  Added meta as a CHARACTERSETNAME

meta,a maps to 1,a now.  But slowly propagating this to TEDIT, SEDIT, etc will make it easier to change the coding of meta characters, e.g. as part of a Unicode transition.

* APRINT FILEIO LLREAD: \OUTCHAR now a closed function

Removed the macro

* LLKEY: call CHARCODE.DECODE directory in \KEYACTION1

Minor cleanup, avoid typical user entry and APPLY*

* WHEELSCROLL: re-enable on AFTERMAKESYS/SYSOUT FORMS

Also sets up mappings in the \COMMANDKEYACTIONS, whatever that is

* ABASIC:  NILL and ZERO change from LAMBDA NOBIND to LAMBDA NIL

So that things like Masterscope don't break

* MASTERSCOPE:  Added WHEREIS as last-resort for CONTAINS

Looks at the WHEREIS database, if present, for FNS and FUNCTIONS if it has no other information.  . WHO CONTAINS ANY CALLING FOO works, but not the inverse:  . WHO DOES FUM CONTAIN.  We still need to figure out why the CONTAINS table isn't populated

* POSTSCRIPTSTREAM: use standard \OUTCHAR conventions

Now uses generic \OUTCHAR to get the proper function from the stream (or default)

* Recompile with right EXPORTS.ALL

Some of the macros weren't correct.

* Fix POSTSCRIPTSTREAM

Cleaner separation between external \OUTCHAR and internal BOUT

* POSTSCRIPTSTREAM gets its own external format

* Minor fix

* Compile-time warning about EXPORTS.ALL

* MODERNIZE:  Modern button fn has same args as the original

For Notecards  #343

* Fixed another glitch in the MODERNIZE  arglist thing

\TEDIT.BUTTONEVENTFN actually takes a second STREAM argument.  I don't see where it is ever called with that.  The modernize replacement binds that argument, but it isn't being passed to the original.

* FILEWATCH:  added missing record field

* Update FILEWATCH.LCOM

* Eliminating record/type name conflicts

Mostly just qualifying references, more work to get BIGBITMAP stuff out of ADISPLAY and to eliminate ambiguity of LINE record (now XXLINE in XXGEOM)

* Compile away open calls to \OUTCHAR, add loadups/full.database

Mostly new LCOMS where \OUTCHAR calls were compiled open

* Remove garbage library/XCCS

Old tools for reading wikipedia XCCS tables, sources/XCCS will deal with XCCS external format

* Next step:  Remove open input-character calls, factor XCCS to separate file

XCCS is the default, but can be swapped out (eventually) by setting a few variables, without recompiling everything

* Lots of residual cleanup for XCCS isolation

* Delete old file MACINTERFACE (migrated to MODERNIZE)

* Eliminate straggling NS calls:  LAFITE, READINTERPRESS

* Typo

* READINTERPRESS:  removed CHARSET

* MODERNIZE: Interface to control title-bar response (for Notecards)

* Many changes for external format name consistency

Very close to the end of this

* Put :FORMAT in file info, fix TEDIT plaintext hardcopy

I distributed :FORMAT :XCCS as the default marking, but somehow one of the variables seems to get revert during the loadup.  This is correct, as far as it goes.

* Getting the format in the file-info

This is all very twisty, different variables set in different places.  It now seems to do the right thing, at least for new files.  Marks them with :FORMAT :XCCS.

* Another fileinfo glitch

* CLIPBOARD -UNICODE:  Make UTF8 to UTF-8 to match standards

* MODERNIZE:  fix bug in MODERWINDOW

* External format as MAKEFILE option, LOAD applies the file's format

(MAKEFILE 'XX '((FORMAT :UTF-8)))
  will dump XX as a UTF-8 file.  LOAD will load it back to XCCS internal.

* Compilers respect DEFINE-FILE-INFO format

* MODERNIZE:  little glitch

* Delete old FILEIO.LCOM

* More edge cases of external format thru MAKEFILE, PRETTY, PRETTYFILEINDEX etc.

* FILEBROWSER:  Can SEE UTF-8 Lisp sourcefile

* INSPECT:  Better macro for inspecting readtables

* recompile changed files and do new loadup

Co-authored-by: rmkaplan <ron.kaplan@post.harvard.edu>
2021-07-29 17:07:23 -07:00
2021-03-08 21:12:00 -08:00
2021-04-28 17:57:07 -07:00
2021-04-28 17:57:07 -07:00
2021-04-28 18:07:23 -07:00
2020-12-13 17:54:28 -07:00
2021-01-01 11:09:11 -08:00
2020-11-02 14:59:45 -08:00
2020-07-27 19:14:54 -07:00
2021-03-19 15:45:20 -07:00

Medley

This repository is for the Lisp environment of Medley Interlisp.

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!

See Medley Interlisp Wiki for an overview, and other pointers.

A sub-project is Interlisp/maiko, which is the implementation (in C) of the Medley virtual machine.

Instructions for Building and Running

Setting up X

Medley Interlisp needs an X-Server to manage its display. Most Linux desktops have one. There are a number of free open source X-servers for windows. Mac users should head over to XQuartz.org -- be sure to pick a version if you have a newer Mac.

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 displays.) It also presumes you have a 3-button mouse; the scroll-wheel on some mice act as one with some difficulty.) XQuartz Preferences/Input has "Emulate three button mouse" option.

Running Medley Interlisp

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>

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

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 logout 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 same name, at least in the library, internal/library, lispusers.

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

Each directory should have a README.md, but briefly

  • docs -- Documentation files (either PDFs or online help)
  • 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; now internal/library and internal/test
  • library -- packages that were supported (30 years ago)
  • lispusers -- packages that were only half supported (ditto)
  • loadups -- has sysouts and other builds
  • patches -- for cases where reloading doesn't wor
  • scripts -- some scripts for fixing up things
  • sunloadup -- support information for making a new lisp.sysout from scratch
  • sources -- sources for Interlisp and Common Lisp implementations
  • unicode -- data files for support of XCCS to and from Unicode mappings

plus Dockerfile, and scripts for building and running medley

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.5 GiB
Languages
Common Lisp 66.6%
DM 19.3%
Shell 10.1%
PostScript 1.1%
Inno Setup 0.8%
Other 2.1%