Number: 903

Date:  1-May-84 17':48':26

Submitter: Sannella.PA

Source: MASINTER.PA

Subject: Unify EDITF, EDITV, EDITP interface

Lisp Version: 

Description: '
Date': 18 APR 84 22':42 PST'
From': MASINTER.PA'
Subject': minor changes to EDITF, EDITV, EDITP interface'
To':   LispSupport'
cc':   LispCore↑'
'
I found that EDITF() didn''t work if NIL had a property list, since it checked first to see if you really meant EDITP.'
'
I simplified the interface to all of these guys and tried to unify them a bit, but didn''t go as far as some have urged.'
'
In the course of doing so, I removed some ''features'' of the interface that I usually just find confusing...'
'
This needs a little more work. I think in fact the ''right'' thing to do is to fix EDITDEF to do the various things it does about LOADFNS etc. for FNS (e.g., put the special cases inside EDITDEF), and then we could uniformly turn EDITF, EDITP etc. into some kind of EDITDEF.'
'
-----'
'
Date': 20 Apr 84 11':41 PST'
From': JonL.pa'
Subject': Re': minor changes to EDITF, EDITV, EDITP interface'
In-reply-to': MASINTER.PA''s message of 18 APR 84 22':42 PST'
To': MASINTER.PA'
cc': LispSupport.PA, LispCore↑.PA'
'
Because of the confusing entries of EDITF, DF, DC, EDITV, and so on, I added a bunch of functions to my INIT file about a 1 1/2 years ago, which all just wind up calling EDITDEF.  I remember suggesting this "bunch" to the group, but got mixed response; they are':'
'
   EC EF EX ER EV EP   (calls default editor)'
   DC DF DX DR DV DP   (calls DEdit, by RESETFORMing EDITMODE)'
   TC TF TX TR TV TP   (calls TeleTeditor, by RESETFORMing EDITMODE)'
    |  |  |  |  |  |'
    C is for COMS '
       F for FNS '
          X for MACROS (conflict with DM in LOOPS -- DeditMethod)'
             R for RECORDS '
                V for VARS  '
                   P for property list'
'
They are all NLAMBDAs, defined so that'
EF FOO'
at LISPX works just like (EF FOO).'
'
'
One discontinuity':  I couldn''t find a correct filepkgtype for property list, so this one actually calls EDITE with the GETPROPLIST, which more-or-less works.  But I wonder about the uniformity of the interface.'
'
-----'
'
Date': 20 Apr 84 13':09':58 PST (Friday)'
From': Masinter.PA'
Subject': Re': minor changes to EDITF, EDITV, EDITP interface'
In-reply-to': JonL''s message of 20 Apr 84 11':41 PST'
To': JonL'
cc': MASINTER, LispSupport, LispCore↑'
'
Let me propose something at the opposite extreme': we get rid of all of these entries to the editor with a single function EDIT.'
'
EDIT FOO'
'
like the EDIT command in DEdit, will look around for some likely type of FOO to edit. If you want to be explicit, you can':'
'
EDIT FOO RECORD'
'
EDIT FOO FILE will edit FOOCOMS'
'
etc.'
'
'
Now, its wonderfully simple, mneumonic, etc.'
'
EDIT'
'
with no ''argument'' works similarly': if in a break, it edits the call to the break, and at top level, it edits ''LASTWORD''.'
'
'
The manual would be a lot simpler, you wouldn''t have to teach users a lot of different funny names, there wouldn''t be the odd conflict between DF (which means define-NLAMBDA in a number of other Lisp dialects and in many users init files).'
'
Larry'
'
-----'
'
Date': 20 Apr 84 14':31 PST'
From': Sheil.pa'
Subject': Re': minor changes to EDITF, EDITV, EDITP interface'
In-reply-to': Masinter.PA''s message of 20 Apr 84 13':09':58 PST (Friday)'
To': Masinter.PA'
cc': LispCore↑.PA'
'
I''m with Larry. Altho Jonl''s defns round out the cross product of editors and editees, I am probably to blame for initiating this style of interface with the DF, DC, DV series, and I''m not real happy with the chaos it is leading to.'
'
An extension to Larry''s suggestion':'
'
An "options" extension which would allow entries like NEW (create a "blank" defn), and choice of editor (to override the default). Hence,'
'
EDIT FOO NEW, or'
'
EDIT FOO RECORD NEW TEDIT, etc,'
'
Beau'
'
Incidentally, I think that the problem that started Larry into this wasn''t the "interface" design but inconsistencies between the internals of various parts of it (e.g. that EDITF neq EDITDEF...FNS, and EDITF and EDITV did not coerce quoted args in the same way, etc). I think that this internal cleanup is probably more important to get right first, before the user entries are rationalized along either scheme.'
'
-----'
'
Date': 20 Apr 84 15':57 PST'
From': JonL.pa'
Subject': Re': minor changes to EDITF, EDITV, EDITP interface'
In-reply-to': Sheil.pa''s message of 20 Apr 84 14':31 PST'
To': Sheil.pa'
cc': Masinter.PA, LispCore↑.PA'
'
Hmmm, I didn''t think my msg was bringing up the user-interface question -- merely offering one of the two reasons why I had to have my own entries to the editor (i.e., EDITDEF is consistent).  On that note, both you and Larry apparently missed the import of the last paragraph? -- the lacuna with respect to editing a property list using EDITEDEF.'
'
The second, unmentioned, reason that I added all the two-letter abbreviations (which you regret now instituting!) was that *** for me *** the most common thing I would be doing was the Edit-Debug-Compile cycle, and these abbreviations lessened the typing.  The mixed response I got could be summarized by noting that short abbreviations have to be personalized.'
'
'
However, if the user-interface is being revisited, then one may want to consider that'
EDIT FOO RECORD'
is almost as much typing as'
(EDIT FOO RECORD)'
which again is almost as much as'
EDITDEF(FOO RECORD)'
which is the current general entry.'
'
-----'
'
Date': 20 Apr 84 16':50 PST'
From': Sheil.pa'
Subject': Re': minor changes to EDITF, EDITV, EDITP interface'
In-reply-to': JonL.pa''s message of 20 Apr 84 15':57 PST'
To': JonL.pa'
cc': LispCore↑.PA'
'
Re typing': the point of a single EDIT command is that in almost all cases there is only one definition, so one doesnt have to specify anything other than the name. And if there is a choice, it can be asked for by menu - like the current DEdit interface.'
'
And not all the editors have to be equally accessible all the time (that is the point of an EDITMODE).'
'
Incidentally, I just received almost a carbon of Larry''s suggestion from Rich Acuff at Ohio State who said "almost everyone here has implemented a generic edit and noone can understand why it''s not in the system"...'
'
Beau'
'
-----'
'
Date': 20 Apr 84 18':47 PST'
From': JonL.pa'
Subject': Accessibility of editors'
To': Sheil'
cc': LispCore↑'
'
The main reason why I have TF, TX etc in my init is that I do indeed access the Teletype editor about 1/3 as often as the "default" editor.  '
'
The reason for this is that after DEditing some "large" function, I often find that I need to make some trivial change to some other "large" structure; the DEdit entry time for "large" structures is almost intolerable (on DLion and Dolphin, at least), so I elect to use the Teletype editor for the trivial change.  The "intolerable" time is doubled if, by using DEdit to make the trivial change, you flush the previously-installed "large" entry in the main DEdit window -- an entry you presumably intended to go back to.'
'
Several others in LispCore↑ have expressed similar sentiments verbally to me (about using Teletype editor for trivial edits which would take too long to format in DEdit).'
'
-----'
'
Date': 20 APR 84 22':08 PST'
From': MASINTER.PA'
Subject': editors etc.'
To':   JonL, Sheil'
cc':   LispCore↑'
'
Funny, I was just looking at the AR this afternoon, titled'
'
Want extensible restartable prettyprinter '
'
(or something like that). Yeah, I think we all would like that, and it might be a good project for someone to port GPrint and fix it up to know about Interlisp forms and multiple fonts.'
'
The proposal on the table here is what the DEFAULT is for the average user. When I sample the average user out of our hundreds, most of them never even read the chapter on the TTY editor.'
'
Nothing to preclude unusual users (like you and me) from putting stuff we like in our init files, or even for us to develop INIT.LISPCORE/INIT.ISL more fully.'
'
Beau proposed having the tail of the form be ''tags'' of various sorts, e.g.'
'
EDIT FOO TTY'
'
would edit FOO using the tty editor.'
'
Your ER could just be a macro for'
'
(EDIT name RECORD TTY)'
'
-----'
'
Date': 21 Apr 84 21':52 PST'
From': JonL.pa'
Subject': Re': editors etc., (e.g. ?EDIT)'
In-reply-to': MASINTER.PA''s message of 20 APR 84 22':08 PST'
To': MASINTER.PA'
cc': JonL.PA, Sheil.PA, LispCore↑.PA'
'
All my abbreviations for editor entries are simply calls on EDITDEF -- I don''t need any other entry -- so please don''t do any thing to break EDITDEF, for it is the only truly general entry.  '
'
Incidentally, I NEVER BUT NEVER use any of the E* entries (the one that calls the "default" editor) since the whole purpose of the mnemonics is so that I can know where I''m going (e.g., TF, DR, etc).  E* is there only for symmetry.'
'
'
Speaking of "knowing" where one is going, the proposed EDIT function can hardly be more general than EDITDEF/HASDEF; one must assume that its value is in the "shorthand" notion it provides.  '
'
However, it isn''t shorter than my personalized two-letter abbreviations (and will assuredly be much slower, especially on random names).  The question for persons like myself who already have a convenient set of entries is':'
  "Am I ever in the position of wanting to edit a frob with known'
    name but *** unknown type ***?"'
E.g., I want to edit FOO, but I don''t know whether FOO is a FNS or a MACRO or a RECORD (or even a REMINDER, or any of hundreds of user-defined filepkgtypes).'
'
As it so often occurs to me, I know bloody well that I want to edit a certain  function which causes a particular effect in my overall program, but I just can''t seem to remember the name correctly.  Is it \RS232.CHECKUART or \RS232CHECKUART, or \RS232UART.CHECK or \RS232UARTCHECK (DWIM is usually of no help, and even if it were, I''d probably have as much of it turned off as is possible in Interlisp).  You begin to get the picture.  '
'
'
How about a new function ?EDIT to help with this problem':  I would thus say'
 '
?EDIT FNS ON PATH FROM RS232READBYTE SUBSTRING "CHECK" SUBSTRING "UART"'
'
and it would grovel around, masterscope like, until it found a FNS definition with the required properties.'
'
-----'
'
Date': 22 APR 84 00':18 PST'
From': MASINTER.PA'
Subject': you thought you were joking...'
To':   JonL'
cc':   LispCore↑'
'
Change SUBSTRING to ''AND LIKE'' and it works, sort of':'
'
. EDIT (ON PATH FROM RS232READBYTE AND LIKE $UART$ AND LIKE $READ$]'
'
where $ is an Escape. '
'
Want new Masterscope Parser. (somebody, quick, submit an AR).'
'
-----'
'
Date': 23 Apr 84 13':50 PST'
From': JonL.pa'
Subject': Re': Accessibility of editors'
In-reply-to': JonL.pa''s message of 20 Apr 84 18':47 PST'
To': JonL.pa'
cc': Sheil.pa, LispCore↑.pa'
'
Elucidation upon my comment':'
'
    The main reason why I have TF, TX etc in my init is that I do '
    indeed access the Teletype editor about 1/3 as often as the '
    "default" editor.  '
'
Atleast 99% of the total edit time is spend underneath DEdit, even though the initiating calls account for only 2/3 of the edittings.'
'


Workaround: 

Test Case: 

Edit-By: 

Edit-Date:  1-May-84 17':44':16

Attn: Masint, Sheil, JonL

Assigned To: 

In/By: 

Disposition: 

System: Programming Environment

Subsystem: Other

Machine: 

Disk: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Difficulty: Moderate

Frequency: Everytime

Impact: Annoying

Priority: Perhaps

Status: Open

Problem Type: Design - UI

Source Files: