Number: 1289

Date:  1-Jun-84 12':52':16

Submitter: Sannella.PA

Source: JonL.pa

Subject: Want to expand ARGNAMES prop so SMARTARGLIST gives more info

Lisp Version: 

Description: '
Date': 17 May 84 04':02 PDT'
From': JonL.pa'
Subject': Convention desired for SMARTARGLIST'
To': LISPCORE↑'
cc': LISPSUPPORT'
'
Many of the lambda-nospread functions cause totally uninformative printouts in response to ?= reader macro.  I''d like to see a modest convention established (and widely used) for ARGNAMES properties for use by SMARTARGLIST at least when EXPLAINFLG is non-null. '
'
1) when the argument sequence looks like a property list, then it is more-or-less in the same form as those functions in Common Lisp that take "keywords".  Thus FILEPKGCOM could better be described by an ARGNAMES property of '
    (NIL (COMMANDNAME (KEYWORDS': MACRO ADD DELETE CONTENTS)) . L) '
Note that a list appears, with first element KEYWORDS':, where one might expect an argument name -- this is to convey the property-list/keyword format admissible from that point on in the arglist.'
'
2) when a number of arguments are "optional, from some point on" then a similar construct using OPTIONAL': could be informative.  E.g., for PROCESSPROP I''d propose a ARGNAMES property of'
    (NIL (PROC PROP (OPTIONAL': NEWVALUE)) . L)'
where "optional" doesn''t just mean "defaults to NIL", but means that the function explicitly checks to see if the argument was supplied by the caller.'
'
2) when a variable number of isomorphic arguments are admitted "from some point on" then a list with an eleison marker could go in; e.g., for the CommonLisp ASET function, its ARGNAMES property could be '
    (NIL (NEWVALUE CMLARRAY (... INDICES)) . L)'
'
I believe that only a few of the places calling SMARTARGLIST could possibly be affected; mostly TRACE and BREAK and maybe ADVISE.'
'
Any comments?'
'
-- JonL --'
'
'


Workaround: 

Test Case: 

Edit-By: 

Edit-Date: 

Attn: Jonl, Masinter

Assigned To: 

In/By: 

Disposition: 

System: Language Support

Subsystem: Other

Machine: 

Disk: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Difficulty: Moderate

Frequency: Everytime

Impact: Minor

Priority: Perhaps

Status: Open

Problem Type: Design - UI

Source Files: