bugs.txt 123 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393
  1. Date: 1-Nov-82 14:56:40
  2. From: Cris Perdue <Perdue at HP-HULK>
  3. Subject: APPEND
  4. Class: Request, deficiency
  5. In PSL the function APPEND now takes exactly 2 arguments.
  6. Could it be extended to take an arbitrary number. Probably
  7. 0 and 1 should also be legitimate numbers of arguments.
  8. What say?
  9. RESPONSE (Eric):
  10. Someday...
  11. Date: 30-Oct-82 18:49:42
  12. From: douglas <LANAM at HP-HULK>
  13. Subject: difference in apply betwen compiled and interpreted code.
  14. Class: Bug
  15. Dealing with apply to nexprs.:
  16. 18 lisp> (dn nexpr (a) (princ a) (terpri))
  17. NEXPR
  18. 19 lisp> (de calling-function (arg) (apply (function nexpr) (list arg))
  19. 19 lisp> )
  20. CALLING-FUNCTION
  21. 20 lisp> (calling-function 'a)
  22. A
  23. NIL
  24. 21 lisp> (calling-function '(a b))
  25. (A B)
  26. NIL
  27. 22 lisp> (compile '(calling-function))
  28. *** Function `CALLING-FUNCTION' has been redefined
  29. *** (CALLING-FUNCTION): base 257007, length 3 words
  30. NIL
  31. 23 lisp> (calling-function '(a b))
  32. ((A B))
  33. NIL
  34. 24 lisp> (calling-function 'a)
  35. (A)
  36. NIL
  37. 25 lisp> ^C
  38. --------
  39. Note: This bug does not exist on the vax. On the vax, this function
  40. runs the same interpretively and compiled. (The interpretive
  41. version on the 20 is the same definition as that on the vax). This
  42. use to work on the 20 until about 3 weeks ago.
  43. douglas
  44. RESPONSE (Eric):
  45. Fixed.
  46. Date: 27-Oct-82 17:16:07
  47. From: douglas <LANAM at HP-HULK>
  48. Subject: bug in psl - (tr get)
  49. Class: Bug
  50. Do (tr get) in psl, and you get an endless message:
  51. ***** Undefined function 'GET' called from compiled code
  52. over and over and over and over ...
  53. douglas
  54. RESPONSE (Eric):
  55. It should not let you (tr get). This could be fixed by
  56. changing DEBUG not to use REMD, and using some other method of
  57. avoiding the "foo redefined" message.
  58. Date: 22-Oct-82 09:38:48
  59. From: douglas <LANAM at HP-HULK>
  60. Subject: function timings.
  61. Class: Request
  62. Is it possible to make a version of psl that gives me a profile
  63. of all the lisp functions called and how much cpu time was spent
  64. in each. (I would assume since this involves some overhead, it
  65. should not be put in the standard psl). It would be preferable
  66. to have this on the vax.
  67. RESPONSE (Lanam):
  68. Doug has written a package to do this.
  69. Date: 18-Oct-82 12:29:47
  70. From: Alan Snyder <AS at HP-HULK>
  71. Subject: compiler bug
  72. Class: Compiler bug
  73. The compiler incorectly compiles the first clause of the COND in
  74. the function below. It compiles to return M2, rather than M1.
  75. (de foo (i1 i2)
  76. (let ((m1 (> i1 3))
  77. (m2 (> i2 4))
  78. )
  79. (cond ((not (eq m1 m2))
  80. m1)
  81. (t
  82. (+ i1 i2))
  83. )))
  84. RESPONSE (Eric):
  85. Fixed.
  86. Date: 15 Oct 1982 1131-PDT
  87. From: PERDUE at HP-HULK
  88. Subject: Make-String
  89. Class: Documentation bug
  90. The reference manual claims that the first argument to make-string
  91. is the upper limit for indices into the string, but in fact it
  92. is the number of characters in the string.
  93. RESPONSE ():
  94. Still extant.
  95. Date: 9-Oct-82 12:14:25
  96. From: douglas <LANAM at HP-HULK>
  97. Subject: Terminal interrupt (^B) error
  98. Class: Bug
  99. Similar to the one on the vax, on the 20 it also tries to
  100. reexecute previously typed in expressions.
  101. 8 lisp> (show 'thing)
  102. (thing (ako ($if-added (add-instance)) ($if-removed (remove-instance)))
  103. (instance ($value (request) (domain) (rule))
  104. ($if-added (add-ako))
  105. ($if-removed (remove-ako)))
  106. (self ($value (%(fname :frame)))))
  107. nil
  108. Time: 120 ms
  109. 9 lisp> *** Break in cleario at 43316
  110. Break loop
  111. ***** `show' is an unbound ID
  112. ***** Continuation requires a value for `show'
  113. Break loop
  114. thing
  115. Time: 1 ms
  116. 12 lisp break>>> ^C
  117. douglas
  118. RESPONSE ():
  119. Extant bug.
  120. Date: 7-Oct-82 15:17:52
  121. From: Alan Snyder <AS at HP-HULK>
  122. Subject: Interaction with EXEC location printout
  123. Class: Bug
  124. PSL is apparently using a reserved location in an improper way.
  125. The location ".JBSYM" (whatever that is) is supposed to point
  126. to a symbol table, but it apparently does not contain a proper
  127. value, since if you ask EXEC to print out locations in symbolic
  128. mode, the EXEC will blow up trying to do a symbol table lookup.
  129. Please fix this bug. (I have noticed NDDT get screwed up doing
  130. symbol table lookup also; perhaps this is the cause of that
  131. problem as well.) (This analysis is based on information provided
  132. by Tim Eldredge.)
  133. RESPONSE (Eric):
  134. BARE-PSL is now created with no symbol table at all. This
  135. prevents the EXEC from being blown up, but prevents debugging
  136. at times. The LINKER was trying to make a symbol table that
  137. wouldn't fit in memory with PSL.
  138. Date: 6-Oct-82 10:00:11
  139. From: FILMAN at HP-HULK
  140. Subject: Re: apply and list
  141. Class: Complaint, documentation deficiency
  142. If only EXPRs can be correctly applied, then you need to fix the
  143. documentation, where it says:
  144. "We permit macros and fexprs to be applied;"
  145. though the rest of the sentence presents a confusing disclaimer.
  146. In any case, why can FEXPRs and MACROS be correctly applied?
  147. Bob
  148. RESPONSE (Eric):
  149. They can be applied, but the result of Apply(FexprOrMacro, X) is
  150. the same as Apply(cdr getd FexprOrMacro, X). That means that
  151. the code is treated as though it were an EXPR. FEXPRs take a
  152. single argument, which is a list of unevaluated parameters. In
  153. the case of EXPRs, Apply(X, Y) is the same as Eval(cons(X, for
  154. each U in Y collect list('QUOTE, U))). This is not the case for
  155. FEXPRs or macros. In the case of macros, Apply can be used to
  156. perform macro expansion, i.e. (apply 'let '((let ((x y)) z)))
  157. returns ((lambda (x) z) y). In the case of FEXPRs, the list
  158. given to APPLY should have one element, which is the formal
  159. parameter to the function, e.g. if x=1, y=2 and z=3, then (apply
  160. 'list '((x y z))) returns (1 2 3). This type of thing is only
  161. dome in unusual situations, e.g. in Eval. It is generally not
  162. recommended that macros and fexprs be given to APPLY. The
  163. function which does what you want is EVAL.
  164. Date: 5-Oct-82 17:47:25
  165. From: FILMAN at HP-HULK
  166. Subject: Apply and list
  167. Class: Inquiry, deficiency
  168. Apply doesn't seem to work with list. I.e.:
  169. (apply 'list '(3 4 5)) ==> nil
  170. Is this a feature or a bug?
  171. Bob
  172. RESPONSE (Eric):
  173. Only EXPRs can be APPLYed correctly. LIST is a FEXPR.
  174. Date: 5 Oct 1982 1628-PDT
  175. From: Alan Snyder <AS at HP-HULK>
  176. Subject: Fast vector access
  177. Class: Compiler bug
  178. The PSL compiler still has a bug related to fast vector access:
  179. (de foo (v)
  180. (cons
  181. (+ (igetv v 0) (igetv v 1))
  182. (+ (igetv v 2) (igetv v 3))
  183. ))
  184. FOO
  185. (setf v [1 2 3 4])
  186. [1 2 3 4]
  187. (foo v)
  188. (3 . 7)
  189. (compile '(foo))
  190. *** (FOO): base 460253, length 6 words
  191. NIL
  192. (foo v)
  193. (0 . 7)
  194. (*ENTRY FOO EXPR 1)
  195. (*ALLOC 0)
  196. (*MOVE (MEMORY (REG 1) (WCONST 4)) (REG 2))
  197. (*WPLUS2 (REG 2) (MEMORY (REG 1) (WCONST 3)))
  198. (*MOVE (MEMORY (REG 1) (WCONST 1)) (REG 1))
  199. (*WPLUS2 (REG 1) (MEMORY (REG 1) (WCONST 2)))
  200. (*LINKE 0 CONS EXPR 2)
  201. RESPONSE (Eric):
  202. Fixed.
  203. Date: 5-Oct-82 15:11:06
  204. From: Cris Perdue <Perdue at HP-HULK>
  205. Subject: Documentation for REPEAT
  206. Class: Documentation bug
  207. Documentation for REPEAT is still incorrect in the latest
  208. PSL reference manual. The syntax is:
  209. Repeat ([S:form], E:form): nil
  210. RESPONSE ():
  211. Still extant.
  212. Date: 2-Oct-82 14:15:18
  213. From: douglas <LANAM at HP-HULK>
  214. Subject: Printing of error messages in compiler.
  215. Class: Suggestion
  216. Could the error messages that are longer than one line, be
  217. indented about 1 tab stop (5-8 spaces on the 2nd and succeeding
  218. lines so that they stand out and are easier to distinguish and
  219. read). An example would be
  220. *** Car in (car (foo 'foo1 (foo2 (foo3 'ffo4 (foo4 'xjks) 'sdjkl)
  221. (append (foo2 'x) (apply 'foo3 '4))))), not used, therefore not
  222. compiled.
  223. Due to macros, a number of these come up in my program.
  224. thanks,
  225. douglas
  226. RESPONSE (Cris):
  227. Low priority.
  228. Date: 2-Oct-82 12:48:03
  229. From: douglas <LANAM at HP-HULK>
  230. Subject: PRINC does too much.
  231. Class: Complaint
  232. Princ should not check the position of the line to determine
  233. whether or not the atom will fit. There should be a higher
  234. level function with that property. I thought princ should
  235. just print the atom. (or is there a lower level princ with
  236. out that check and possibly added carriage return not printed).
  237. douglas
  238. RESPONSE (Eric):
  239. Improvement is needed.
  240. Date: 2-Oct-82 12:46:12
  241. From: douglas <LANAM at HP-HULK>
  242. Subject: Please do not have psl come up in the editor.
  243. Class: Complaint
  244. This is not a desired start up position.
  245. 1) Reading logs of background jobs is very difficult, if you can get
  246. them to work at all.
  247. 2) Nmode does not work on a lot of terminals. (including the ever
  248. popular chipmunk.
  249. 3) The first thing I want to do in a lisp is dskin or fasl in my
  250. files, not edit a command to do this.
  251. 4) It is even difficult to run do's with this type of mode.
  252. (shell scripts).
  253. douglas
  254. RESPONSE (AS):
  255. PSL no longer comes up in the editor.
  256. Date: 1-Oct-82 11:23:53
  257. From: Alan Snyder <AS at HP-HULK>
  258. Subject: Printing of the escape character (!)
  259. Class: Complaint, deficiency
  260. The atom - prints as !- in Lisp mode.
  261. The atom + prints as !+ in Lisp mode.
  262. I believe this is a mistake.
  263. The printer should not insert unnecessary !'s.
  264. RESPONSE (Cris):
  265. Extant deficiency. I assume it will be fixed when someone
  266. shows he/she is being really hurt. It's a real crock in my
  267. personal opinion.
  268. Date: 30-Sep-82 11:09:01
  269. From: Alan Snyder <AS at HP-HULK>
  270. Subject: "<foo> already loaded" messages
  271. Class: Request, complaint
  272. I would like to reiterate a request made previously, I believe, by
  273. Doug to get rid of the "FOO already loaded" messages. If you
  274. feel strongly that some sort of warning is needed when people
  275. type (LOAD FOO) by hand, then I would suggest having LOAD return
  276. a string that would be printed by the Read-Eval-Print loop.
  277. I don't think there is any need to print these messages when
  278. the LOAD is contained in a file (either source or object) that
  279. is being read.
  280. RESPONSE (Eric):
  281. Fixed.
  282. Date: 29-Sep-82 11:34:48
  283. From: douglas <LANAM at HP-HULK>
  284. Subject: upon exit of psl (or interrupt with ^c).
  285. Class: Request
  286. Can the terminal keys be restored upon exit of psl-nmode
  287. (or interrupt with ^c)?
  288. dougla
  289. Add to things psl should do when ^c is typed:
  290. restore cntl-s. (This should be possible since emacs does this).
  291. douglas
  292. RESPONSE (Cris):
  293. Use C-X C-Z to exit NMODE; this problem does not occur when
  294. using ^C to exit PSL in its ordinary top loop.
  295. Date: 29-Sep-82 10:01:01
  296. From: douglas <LANAM at HP-HULK>
  297. Subject: Bug in nmode
  298. Class: Bug, deficiency
  299. If you type
  300. (expression)
  301. cntrl-] E.
  302. where the cntrl-] E is on the start of a new line,
  303. you get
  304. Exiting NMODE Lisp
  305. End of File read!,
  306. shouldn't it execute the last expression? Why should typing a carriage
  307. return before the cntrl-] E make a difference?
  308. douglas
  309. RESPONSE (Alan):
  310. If RETURN is typed before Lisp-E, NMODE is not supposed to read
  311. the previous expression. "End of File read!" is a reasonable
  312. response. "Exiting NMODE Lisp" is a confusing message, but not
  313. generated by NMODE.
  314. Date: 28-Sep-82 20:59:41
  315. From: douglas <LANAM at HP-HULK>
  316. Subject: Close all parenthsis to a particular level.
  317. Class: Request
  318. How about adding the ability of ] to close all parenthesis (as in franz,
  319. maclisp, ucilisp). It would be nice if it could stop at [ (as in franz,
  320. maclisp, ucilisp). But I realize you use [] for reading arrayes, thus
  321. maybe you could use {} for this type of bracketing. It would be nice
  322. to type } to close an expression instead of )))))) (and have to count
  323. them also, or wait for the editor to match them flipping the screen
  324. at 1200 baud (That process is a pain to go through in the editor).
  325. douglas
  326. RESPONSE (Cris):
  327. This is a relatively low priority now, I'd say.
  328. Date: 28-Sep-82 13:50:35
  329. From: Cris Perdue <Perdue at HP-HULK>
  330. Subject: CompileTime and DskIn
  331. Class: Note
  332. (CompileTime (dskin "blah.sl")) has the effect of treating the
  333. contents of blah.sl as though they were textually embedded in
  334. the file with the CompileTime form: those forms are compiled.
  335. (CompileTime (load blah)) on the other hand causes the
  336. definitions in blah.b to be made available at compile time.
  337. Even if there is a text file blah.lap rather than binary
  338. blah.b, "load" seems to only load the definitions.
  339. If a file with (CompileTime (load foo)) in it is compiled, and
  340. if foo.lap (another source file) exists rather than foo.b, then
  341. the contents of foo.lap are effectively included in the source
  342. file I am trying to compile. This is a difference in behavior
  343. between compiled and non-compiled files.
  344. RESPONSE (Eric):
  345. Extant bug. This is the actual behavior. LOAD should always
  346. make the definitions available rather than compiling them. It
  347. is intended that DSKIN result in compiling the contents of the
  348. file referred to.
  349. Date: 28-Sep-82 11:19:30
  350. From: Alan Snyder <AS at HP-HULK>
  351. Subject: RETURN complaint
  352. Class: Compiler bug, complaint
  353. The PSL compiler now produces an error message if it
  354. encounters a RETURN with no arguments. This is fine.
  355. However, it still generates an invocation of "NIL".
  356. It should be possible to avoid generating garbage code
  357. when there are errors in the source.
  358. RESPONSE (Eric):
  359. A warning is now issued, but code to return NIL is generated
  360. and compilation continues.
  361. Date: 28-Sep-82 11:01:15
  362. From: Cris Perdue <Perdue at HP-HULK>
  363. Subject: Documentation update for CopyStringToFrom
  364. Class: Note
  365. Copy all characters from OLD into NEW. This operation is destructive.
  366. If the lengths of OLD and NEW differ, only the lesser number of
  367. characters is copied. If NEW is longer than OLD, the part not
  368. copied into is left unchanged.
  369. RESPONSE ():
  370. To be put into the manual.
  371. Date: 27-Sep-82 13:01:31
  372. From: Alan Snyder <AS at HP-HULK>
  373. Subject: Undefined functions
  374. Class: Complaint
  375. The error "Undefined function FOO called from compiled code" should
  376. (i.e., ought to be, for the user's sake) continuable.
  377. RESPONSE (Eric):
  378. Yes, that would be one benefit of loading a register with the
  379. number of arguments being passed to a function. The problem
  380. now is that continuation is performed by interpreting a LISP
  381. form, and it is not known how many arguments should be put in
  382. the list to be evaluated.
  383. Date: 27-Sep-82 11:27:15
  384. From: Cris Perdue <Perdue at HP-HULK>
  385. Subject: EOF handling
  386. Class: Inquiry
  387. There appears to be no documentation in the reference manual
  388. concerning end of file handling, except for the case of READ.
  389. It appears to be undocumented for ChannelReadChar in particular.
  390. RESPONSE (Cris):
  391. See below, message from AS.
  392. Date: 27-Sep-82 04:33:32
  393. From: douglas <LANAM at HP-HULK>
  394. Subject: Speed of psl
  395. Class: Inquiry
  396. I am finding psl on the vax to be much slower than psl on the 20.
  397. Is this true? Is there any reason for this?
  398. (Things are noticiable a factor of 4 slower with equivalent
  399. load averages - but I did not do any timings).
  400. douglas
  401. RESPONSE ():
  402. ??
  403. Date: 27-Sep-82 09:02:49
  404. From: Alan Snyder <AS at HP-HULK>
  405. Subject: ChannelRead exception handling
  406. Class: Bug, documentation error
  407. The manual says that ChannelRead will catch $READ$ and return
  408. $EOF$. This is false; only Read does the catch.
  409. RESPONSE (Eric):
  410. None of the input functions use THROW any more. Thus no
  411. catches are performed, either. READ and company return the
  412. value of the variable $EOF$. Character at a time functions
  413. return (char EOF).
  414. Date: 24-Sep-82 14:20:40
  415. From: FILMAN at HP-HULK
  416. Subject: Page and section numbers
  417. Class: Suggestion, complaint
  418. I find confusing the fact that (in the PSL manual) page and section numbers
  419. are annotated the same way. When the index refers to 8.5, I don't know
  420. whether to rush off to section 8.5 (wrong) or page 8.5 . How about 8.5 for
  421. sections and 8-5 for pages, or something like that?
  422. Bob
  423. RESPONSE ():
  424. No response yet.
  425. Date: 27 Sep 1982 03:57:05-PDT
  426. From: douglas at HP-Hewey
  427. Subject: VAX version and prettyprint
  428. Class: VAX deficiency
  429. The module prettyprint does not exist on the vax
  430. (only the older module pretty).
  431. douglas
  432. RESPONSE (Eric):
  433. Fixed.
  434. Date: 23-Sep-82 15:26:13
  435. From: douglas <LANAM at HP-HULK>
  436. Subject: Backtrace.
  437. Class: Complain
  438. I found if you have
  439. (x (y (z a))) and you get an error evaluating (z a), you might find x and
  440. y on the backtrace stack even though you haven't executed it yet.
  441. Worse, if you trace y, y will never say it is entered but will be on
  442. the backtrace stack.
  443. douglas
  444. RESPONSE (Cris):
  445. Just what should appear on the backtrace stack and when is has
  446. been a matter of some debate. The phenomenon you are seeing
  447. occurs just in interpreted code.
  448. Date: 22-Sep-82 15:34:38
  449. From: douglas <LANAM at HP-HULK>
  450. Subject: DO loops
  451. Class: Bug
  452. do still returns t when there are no clauses after the test.
  453. the manual says it returns nil.
  454. RESPONSE (Eric):
  455. USEFUL has been rebuilt and presumably DO is correct.
  456. Date: 20-Sep-82 15:50:44
  457. From: douglas <LANAM at HP-HULK>
  458. Subject: Scanner
  459. Class: Bug
  460. 1.2xa is read as two tokens 1.2 and xa.
  461. 1.2ea gives a error message that the exponent is missing.
  462. same with 1.2x-a and 1.2e-a
  463. 1xa is two atoms 1 and xa.
  464. 1ea says that the exponent in the float is missing.
  465. douglas
  466. RESPONSE (Cris):
  467. Still extant.
  468. I consider this a relatively low priority. Common LISP has a
  469. well-defined and general scanner that we should implement
  470. eventually.
  471. Date: 20-Sep-82 11:07:38
  472. From: Alan Snyder <AS at HP-HULK>
  473. Subject: Excess right parens during compilation
  474. Class: Complaint
  475. When compiling a file, extra right parens should produce
  476. a warning message, as (in my case) they often are the result
  477. of a paren mismatch in the middle of a function definition.
  478. RESPONSE (Eric):
  479. The compiler now gives a warning message about this.
  480. Date: 20-Sep-82 10:43:11
  481. From: Alan Snyder <AS at HP-HULK>
  482. Subject: Functions to "replace" MAIN
  483. Class: Complaint
  484. I have found when writing functions designed to "replace" MAIN,
  485. that it is necessary for those functions to initialize the
  486. variables CurrentReadMacroIndicator* and CurrentScanTable*,
  487. otherwise after a SaveSystem when the program comes up, the
  488. scan table will be in a very strange state. I believe that
  489. this initialization should be performed by a "pre-main"
  490. procedure and that user-written "main" procedures should be
  491. spared these details, which tend to be system-dependent. Your
  492. source code for Main claims "Redefine this function to call
  493. whatever top loop is desired." I agree, except that "this
  494. function" should be one that does nothing except invoke the
  495. "standard" top loop.
  496. RESPONSE (Eric):
  497. Fixed.
  498. Date: 20-Sep-82 09:06:06
  499. From: PAULSON
  500. Subject: Read macros, the "BUG" function
  501. Class: Bug, deficiency
  502. Two problems:
  503. (1) Read macros are apparently not attached to read tables. Therefore
  504. a read macro for one read table may interfere with other read tables,
  505. including the system read table.
  506. (2) the function BUG bombs on directory access privileges.
  507. RESPONSE (Cris):
  508. Still extant. At some point the Common LISP input mechanisms
  509. should be implemented for PSL, solving the read macro problem.
  510. RESPONSE (Cris):
  511. The BUG function is still incorrect, but in a different way.
  512. Date: 18-Sep-82 15:54:10
  513. From: douglas <LANAM at HP-HULK>
  514. Subject: What does #<Code:0> mean?
  515. Class: Inquiry
  516. Why is this the return value of faslin?
  517. RESPONSE (Eric):
  518. No comment on this question. Faslin now returns NIL.
  519. Date: 17-Sep-82 11:40:31
  520. From: Alan Snyder <AS at HP-HULK>
  521. Subject: Use of fluid variables
  522. Class: Suggestion
  523. As part of the current effort to "clean up" PSL, I would like
  524. to suggest that an effort be made to reduce or eliminate the
  525. use of fluid variables as "optional" or "implied" arguments,
  526. by defining new functions with explicit arguments. For
  527. example, instead of having SpecialReadFunction*,
  528. SpecialWriteFunction*, and SpecialCloseFunction*, there
  529. should be an additional function OpenSpecial that takes four
  530. arguments, the filename, and the three functions. Another
  531. example is DumpFileName*: currently there is no way to save a
  532. PSL that does not have DumpFileName* bound to the name of the
  533. file it was dumped to. In the case of "system" programs, the
  534. default dump file should probably be "PSL.EXE" (i.e.,
  535. something that would write in the user's directory). There
  536. should be a variant of DumpLisp that takes the filename as an
  537. argument (and does NOT bind DumpFileName*). These are the
  538. two examples that come to mind, there may be others.
  539. RESPONSE (Eric):
  540. DumpLisp and SaveSystem now take arguments rather than using
  541. fluid variables. The problem with fluid variables and "open"
  542. is still extant.
  543. Date: 17-Sep-82 11:14:26
  544. From: Alan Snyder <AS at HP-HULK>
  545. Subject: message "($FLUID FOO) not compiled"
  546. Class: Compiler complaint, inquiry
  547. What does the message "($FLUID FOO) not compiled" mean? It sounds
  548. like the compiler has broken or something, although the program
  549. seems to work. Furthermore, why shouldn't it be compiled?
  550. Did the compiler run out of registers or something?
  551. Suggested fix: either fix the compiler to compile it, or change
  552. the error message to be more informative to naive users.
  553. RESPONSE (Eric):
  554. The message has been changed to "not used, therefore not compiled."
  555. Date: 17-Sep-82 09:54:27
  556. From: Alan Snyder <AS at HP-HULK>
  557. Subject: Endings of strings
  558. Class: Complaint
  559. If I forget the ending " on a string in a file, then I get one message
  560. "string continued over EOL" for every succeeding line in the file
  561. when the file is read in. There should be only one message given.
  562. Furthermore, if you believe that multi-line strings are bad (which I
  563. do), then you should probably generate an Error so that you don't
  564. read the remainder of the file in "reverse polarity" (in terms of
  565. what is inside vs. outside of string literals).
  566. (Manual note: I couldn't find anything in my manual that addresses
  567. the issue of multi-line string literals.)
  568. RESPONSE (Eric):
  569. There is (and has been) a flag to turn off the message. I
  570. don't plan to change this; some major users in fact depend
  571. heavily on multi-line string literals.
  572. Date: 17-Sep-82 02:46:17
  573. From: douglas <LANAM at HP-HULK>
  574. Subject: Proposal for inum/wnum arithmetic.
  575. Class: Suggestion
  576. I have thought of a reason for having both i and w commands.
  577. I think the w should be what both are now (just do the machine
  578. operation and dont worry about tags).
  579. But the i commands (iplus, ishift, ilor, etc.) could take their
  580. arguments make sure they are working on a full word (either
  581. go down the pointer to the integer object or move the immediate
  582. number into a full word (or register), play with it there, then
  583. if the number if to be passed to another procedure or used outside
  584. the context of the i num arithmetic functions, to be send to
  585. a function that would convert the word back to psl format.
  586. If small, convert to immediate format, if big, return the pointer
  587. to the object. This way I could have access to a full word
  588. on any machine, and be able to produce efficient open code,
  589. and not have to worry about the psl tag bits.
  590. The proposal would be if the system sees
  591. (ilor (ishift x n) (iland a b)), that x, n, a, and b would be converted
  592. first, then the operations done, and then the one result would be
  593. converted back. No type checking would be done (if it is an immediate
  594. number, the pointer would be followed and its location used, for
  595. efficiency.).
  596. How does this idea sound?
  597. RESPONSE (Eric):
  598. Not altogether right. Some of this would be more applicable to
  599. Franz LISP than it is to PSL.
  600. Date: 16 Sep 1982 1141-PDT
  601. From: Kendzierski at HP-HULK (Nancy)
  602. Subject: UNION clause of FOR
  603. Class: Documentation bug
  604. The manual states that "(UNION EXP) is similar to (COLLECT EXP), but
  605. only adds an element to the list if it is not equal to anything already
  606. there." However, I get the following results with COLLECT and UNION:
  607. -----------------------------
  608. (for (from i 1 4)
  609. (collect (cond ((= i 1) 1)
  610. ((= i 2) 1)
  611. ((= i 3) 3)
  612. ((= i 4) 3))
  613. ))
  614. Returned: (1 1 3 3)
  615. -----------------------------
  616. (for (from i 1 4)
  617. (union (cond ((= i 1) 1)
  618. ((= i 2) 1)
  619. ((= i 3) 3)
  620. ((= i 4) 3))
  621. ))
  622. Returned: 3
  623. -----------------------------
  624. RESPONSE (Cris):
  625. Actually, UNION is similar to JOIN rather than COLLECT. Thanks.
  626. (The manual is incorrect.)
  627. Date: 13 Sep 1982 1249-PDT
  628. From: Alan Snyder <AS at HP-HULK>
  629. Subject: Make-String
  630. Class: Bug in COMMON.SL
  631. Make-String in compiled form creates a string with 1 too many elements.
  632. RESPONSE (Eric):
  633. Fixed.
  634. Date: 10 Sep 1982 1606-PDT
  635. From: Alan Snyder <AS at HP-HULK>
  636. Subject: (APPLY x (LIST a b c...))
  637. Class: Bug, complaint
  638. The manual states that (APPLY x (LIST a b c...)) is compiled in
  639. such a way that the list (LIST a b c ...) is not actually
  640. constructed. This is a very useful optimization that I rely
  641. upon to make message passing efficient in my OBJECTS package.
  642. However, I was recently surprised to discover that the
  643. optimization is not performed if there are six or more elements
  644. in the list. I surmise that this is somehow related to the
  645. number of real (as opposed to virtual) registers in the DEC-20
  646. implementation, but don't see any reason why this should
  647. prevent the optimization from being carried out. What gives?
  648. RESPONSE (Eric)
  649. It's a nasty interaction between optimized compilation of LIST and
  650. optimized compilation of APPLY. I can fix it.
  651. RESPONSE (Eric):
  652. Fixed.
  653. Date: 10-Sep-82 10:49:18
  654. From: douglas <LANAM at HP-HULK>
  655. Subject: configuration of bps and heap on 20
  656. Class: Request
  657. Can the configuration of the above in psl be changed by moving approx.
  658. 20K-30K of heap space from heap to bps in bare-psl and psl?
  659. thanks,
  660. douglas
  661. Date: 10-Sep-82 10:22:02
  662. From: douglas <LANAM at HP-HULK>
  663. Subject: Breakfunction property
  664. Class: Documentation deficiency, documentation bug
  665. I found if you set the value of breakfunction on the propertylist of
  666. an atom, and type the atom at the break level, it will execute
  667. that function. This needs to be documented somewhere. Also the
  668. help file printed at the level should be able to be updated to
  669. reflect any changes the user may make. I am not sure I like having
  670. atoms automatically changed into functions at type in, but I do like
  671. being able to change the break system to take control characters
  672. instead of alphabetic characters.
  673. douglas
  674. Date: 10-Sep-82 09:07:36
  675. From: douglas <LANAM at HP-HULK>
  676. Subject: warnings by compiler.
  677. Class: Request
  678. When the compiler says something is declared fluid, could you
  679. include the function that caused this on the same line in the
  680. message. Due to the fast number of lisp systems, I have a hard
  681. time remembering whether yours does it before it prints the
  682. function name concerning it or after.
  683. douglas
  684. RESPONSE (Eric):
  685. Fixed.
  686. Date: 9-Sep-82 15:08:09
  687. From: douglas <LANAM at HP-HULK>
  688. Subject: psl space allocations on the vax
  689. Class: Request
  690. Could the psl on the vax be reconfigured so that there is 100K words of
  691. bps free at its startup (currently it is approx 46K words)?
  692. thanks,
  693. douglas
  694. Date: 9-Sep-82 14:32:52
  695. From: douglas <LANAM at HP-HULK>
  696. Subject: " . . . not compiled" message
  697. Class: Inquiry, complaint, request
  698. Does the following mean the whole phrase was not compiled or
  699. just the car was not compiled?
  700. *** (car (merge-comment
  701. (*i-put-datum (frame ($local type))
  702. (get-field-location 'nil ($local key1))
  703. '3 '(insert-frame (fname :frame)))
  704. 'finherit: 'continue))
  705. not compiled.
  706. If the first, it is very, very wrong since all of these functions are my
  707. own and do side effects (set property lists).
  708. If the second, the message should be changed to something like, return
  709. value of car is not used and thus car is not being compiled.
  710. douglas
  711. RESPONSE (Eric)
  712. It means just the CAR was not compiled. I'll see what I can do about
  713. the message.
  714. RESPONSE (Eric)
  715. Fixed the message.
  716. Date: 9-Sep-82 14:29:09
  717. From: douglas <LANAM at HP-HULK>
  718. Subject: Fluid and macro of the same name
  719. Class: Bug, deficiency
  720. One cannot use the same name for a fluid and a macro.
  721. Please fix this soon. It is a very annoying restriction that
  722. shouldn't exist.
  723. douglas
  724. RESPONSE (Eric)
  725. Fixed.
  726. Date: 3-Sep-82 13:06:38
  727. From: FILMAN at HP-HULK
  728. Subject: emode and []
  729. Class: EMODE deficiency, EMODE complaint
  730. The s-expression functions in emode don't seem to know about []'s.
  731. Since these are the default construction of defstruct, this is a serious
  732. deficiency.
  733. Bob
  734. Date: 3-Sep-82 11:57:28
  735. From: Cris Perdue <Perdue at HP-HULK>
  736. Subject: STEP bug
  737. Class: Bug
  738. Try (step '(plus 3 4)). Step using ^N. The stepper breaks after
  739. a couple of steps.
  740. RESPONSE(Benson):
  741. Fixed.
  742. Date: 3-Sep-82 04:52:14
  743. From: douglas <LANAM at HP-HULK>
  744. Subject: can you change princ,
  745. Class: Request
  746. Can you change the printing of the following by princ, so that the open
  747. parens are on the beginning of the line, not the end? I think that
  748. this would be more pleasant to look at.
  749. Currently:
  750. (THING (WCHEM-CLASS (WCH) (WCHO (C-O-STRETCH-ALCOHOL) (O-H-DEFORMATION (
  751. (THING (WCHEM-CLASS (WCH) (WCHO (C-O-STRETCH-ALCOHOL) (O-H-DEFORMATION (
  752. O-H-STRETCH-FREE-OH-ALCOHOL) (O-H-STRETCH-INTRAMOLECULAR-H-BONDED-ALCOHOL) (
  753. C=O-STRETCH-OVERTONE) (C=O-STRETCH))))
  754. (Actually I tried to copy this off my terminal and one line got mixed up,
  755. but it still displays what is currently done.
  756. douglas
  757. RESPONSE(Benson):
  758. That's what PRETTYPRINT is for. It has been suggested that the top loop
  759. use PRETTYPRINT instead of PRINT. Any opinions?
  760. Date: 2-Sep-82 15:17:00
  761. From: Alan Snyder <AS at HP-HULK>
  762. Subject: Garbage collection trap request
  763. Class: Feature request
  764. I would like to have the GC starting and ending messages
  765. printed by specific functions that are invoked at the beginning
  766. and ending of each garbage collection. These functions should
  767. take as arguments all information that they use to construct an
  768. appropriate message. This change would allow me to alter the
  769. form of announcement without mucking with the GC itself. In
  770. particular, I don't want to have to make an altered copy of the
  771. GC code or access its private variables. I realize that the
  772. GC-start function would have to be written to not allocate any
  773. storage. I need this feature to display a GC announcement in
  774. NMODE.
  775. Date: 2-Sep-82 12:13:04
  776. From: douglas <LANAM at HP-HULK>
  777. Subject: flag *continuableerror
  778. Class: Documentation request
  779. I found a flag *continuableerror which should be documented in the manual.
  780. (It is very useful).
  781. Date: 2-Sep-82 11:45:35
  782. From: FILMAN at HP-HULK
  783. Subject: printing circular structures to depth
  784. Class: Feature request, notice, miscellaneous
  785. Unfortunately, PSL doesn't have a printlevel function (that
  786. prints a structure only to a certain depth). Nor does the
  787. circular printing function deal with circularity in vectors.
  788. I've written a (not deeply thought-out) depth-limited printing
  789. function of my own. Since PSL doesn't come with the most
  790. complete set of user utilities, how about a user-utility
  791. function area for such contributions?
  792. Bob
  793. Date: 2-Sep-82 11:05:43
  794. From: Alan Snyder <AS at HP-HULK>
  795. Subject: Char-UpCase and Char-DownCase
  796. Class: Bug
  797. Char-UpCase and Char-DownCase return NIL instead of their
  798. argument when no conversion is done.
  799. RESPONSE (Eric):
  800. Fixed.
  801. Date: 2-Sep-82 10:53:48
  802. From: FILMAN at HP-HULK
  803. Subject: atomic rules
  804. Class: Complaint
  805. In PSL, (atom x) == (not (pairp x)). Thus, vectors, code pointers
  806. strings, etc are all atoms.
  807. I know that this is documented. However, it is counter-intuitive
  808. (counter-intuitive == the other lisps I've played with don't do it this
  809. way). Not having read the fine print, I spent an afternoon discovering this
  810. fact.
  811. Bob
  812. RESPONSE (Eric)
  813. I agree it is confusing, but it conforms to all the other Lisps
  814. I know of! Perhaps you are confusing atoms with symbols (called
  815. litatoms in Interlisp?)
  816. Date: 2-Sep-82 10:43:26
  817. From: douglas <LANAM at HP-HULK>
  818. Subject: continuable break.
  819. Class: Inquiry, feature request
  820. Is there a function that would be (contbreak) ?
  821. Which is something to (break) as (conterror) is to (error)?
  822. douglas
  823. RESPONSE (Eric)
  824. That's really what ContinuableError is. It just puts you in
  825. a break loop where you can fix things.
  826. Date: 2-Sep-82 01:58:26
  827. From: douglas <LANAM at HP-HULK>
  828. Subject: break package and returning new values.
  829. Class: Inquiry
  830. I have read through the break package, and tried a few things, and can
  831. not find how I can do something that means
  832. (return value) where value is a lisp-expression to be evaluated and become
  833. the value of the call to break(or conterror), without calling
  834. the editor. I would like to be able to return a value or evaluate an
  835. expression that may not be similar to the expression that caused the
  836. error and return that value back from the break point (similar to
  837. what one can do in maclisp/franz/lisp machine lisp).
  838. How do I do this?
  839. douglas
  840. RESPONSE(Snyder):
  841. Just type the expression at the break handler, then type 'C' for
  842. "continue using last value".
  843. Date: 1-Sep-82 23:02:45
  844. From: douglas <LANAM at HP-HULK>
  845. Subject:
  846. Did someone change faslout? It use to echo input, but now it doesn't
  847. seem to.
  848. Can you change faslout back to echoing input that is just
  849. passed to the fasl file. I can not figure out easily when I
  850. finish typing an expression to faslout any more.
  851. Date: 1-Sep-82 22:58:44
  852. From: douglas <LANAM at HP-HULK>
  853. Subject: defn* and *defn
  854. Class: Documentation request
  855. what is defn* and *defn? and what is dfprint*? They are on page
  856. 19.3. They seem important yet are pretty much undocumented.
  857. What are they.
  858. RESPONSE (Eric)
  859. *DEFN and DFPRINT* are used by the top loop to allow processing
  860. other than evaluation. if *DEFN is non-NIL, DFPRINT* is applied to
  861. each form instead of being evaluated. This is the means by
  862. which FASLOUT and other functions work.
  863. Date: 1-Sep-82 22:55:56
  864. From: douglas <LANAM at HP-HULK>
  865. Subject: macros expanding to "bothtimes"
  866. Class: Complaint, bug, deficiency
  867. HP-PSL 3.0, 27-Aug-82
  868. 1 lisp> (bothtimes (setq x 2))
  869. 2
  870. 2 lisp> x
  871. 2
  872. 3 lisp> (dm x (y) `(bothtimes (setq . ,(cdr y)))
  873. 3 lisp> )
  874. X
  875. 4 lisp> (x z 4)
  876. 4
  877. 5 lisp> z
  878. 4
  879. 6 lisp> (faslout "junk")
  880. FASLOUT: (DSKIN files) or type in expressions
  881. When all done execute (FASLEND)
  882. T
  883. 7 lisp> (bothtimes (setq a 3))
  884. 3
  885. 8 lisp> (x b 4)
  886. 9 lisp> (faslend)
  887. *** Init code length is 2
  888. *** A declared fluid
  889. *** B declared fluid
  890. **FASL**INITCODE**NIL
  891. 10 lisp> a
  892. 3
  893. 11 lisp> b
  894. NIL
  895. 12 lisp> (quit)
  896. I do not think this is correct, the call to x on line 8 should be expanded
  897. by the compiler and then the system should notice that it is a bothtimes
  898. clause and should be executed at compile time and compiled. Instead it
  899. appears to be just compiled.
  900. The x is expanded (it is just not executed at compile time like it
  901. is suppose to be).
  902. Can you fix this soon?
  903. thanks,
  904. douglas
  905. Date: 1-Sep-82 17:00:41
  906. From: FILMAN at HP-HULK
  907. Subject: trace
  908. Class: Inquiry
  909. The function "trace" is defined but doesn't trace; nor is it documented in
  910. my version of the documentation.
  911. Bob
  912. Date: 1-Sep-82 12:08:02
  913. From: FILMAN at HP-HULK
  914. Subject: circular structure bugs
  915. Class: Bug, deficiency
  916. 1) Printx doesn't handle circular vector structures. Since defstruct
  917. makes vectors, this is a serious problem
  918. 2) Consider the following sequence:
  919. (setq bbb '[a b c d])
  920. (indx bbb 3) --> d
  921. (setindx bbb 3 bbb) --> prints the appropriate circular structure
  922. (indx bbb 3) --> an infinite structure
  923. (indx (indx bbb 3) 3) --> produces a push down overflow error
  924. (indx (indx (indx bbb 3) 3) 1) --> also produces a push down overflow error
  925. What gives?
  926. Bob
  927. Date: 1-Sep-82 12:01:03
  928. From: douglas <LANAM at HP-HULK>
  929. Subject: br does not work with macros.
  930. Class: Bug
  931. If you have a function x which is a macro. Say
  932. (dm x (y) (rplaca y 'princ))
  933. then do (br x) .
  934. Before the call to br,
  935. (x 'a) typed into the interpretor will execute the princ and return a.
  936. After the call to br,
  937. typeing (x 'a) to the interpretor will cause the expression
  938. (princ 'a) to be returned but not evaluated.
  939. douglas
  940. Date: 1-Sep-82 11:52:25
  941. From: douglas <LANAM at HP-HULK>
  942. Subject: compiletime
  943. Class: Bug
  944. do
  945. @psl
  946. (compiletime (setq a 1))
  947. a
  948. You will get that a has been set to 1. I do not think this is right.
  949. RESPONSE (Eric)
  950. (compiletime xxx) really means (eval-when (compile eval) xxx)
  951. in the current setup. I think (eval-when (compile) xxx) does
  952. what you want.
  953. Date: 31-Aug-82 11:14:18
  954. From: douglas <LANAM at HP-HULK>
  955. Subject: declaration of functions and variables.
  956. Class: Deficiency, feature request
  957. I think it is better to have a declaration statement to declare
  958. something as a fexpr or as a nexpr, if you wish to use it before
  959. defining it in compiled code.
  960. Currently the manual says to write a dummy version.
  961. But something like :
  962. (declare (*fexpr x) (*nexpr x)) would be better.
  963. It could also be used in compiling files that reference other
  964. files but that you don't wish to load everything in to compile it.
  965. Also,
  966. (fluid x) should not set x to nil.
  967. and there should be two property list names for function type and
  968. variable type, not one, you should be able to use a name as a
  969. global variable and a fexpr.
  970. douglas
  971. Date: 31-Aug-82 10:46:17
  972. From: douglas <LANAM at HP-HULK>
  973. Subject: feature in print.
  974. Class: Request
  975. It would be nice if print could know about readmacrochars that
  976. do as follows ^lisp-expression => (tag lisp-expression).
  977. An example is quote.
  978. Note: it should make sure the tagged list is of length 2 before
  979. doing the special print(at least in the case of quote).
  980. douglas
  981. Date: 30-Aug-82 15:34:57
  982. From: FILMAN at HP-HULK
  983. Subject: break and emode
  984. Class: Deficiency
  985. When trying to "q" from a break in emode, the cursor goes to the end of
  986. the second following line, not the next line. That is, if the screen is:
  987. (cursor shown by *)
  988. q*
  989. first line
  990. second line
  991. and you execute a meta-e, you get:
  992. q
  993. first line
  994. second line*
  995. not what you should get, which is:
  996. q
  997. first line*
  998. second line
  999. Bob
  1000. Date: 30-Aug-82 13:38:40
  1001. From: FILMAN at HP-HULK
  1002. Subject: emode, breaks and "a"
  1003. Class: Bug
  1004. Giving an "a" from emode inside a break seems to confuse the emode
  1005. page printing routines some.
  1006. Bob
  1007. Date: 30-Aug-82 10:34:10
  1008. From: FILMAN at HP-HULK
  1009. Subject: break window
  1010. Class: Inquiry
  1011. What happened to the break window?
  1012. Bob
  1013. RESPONSE(Perdue):
  1014. It was removed because it behaved very poorly in various
  1015. slightly "unusual" situations.
  1016. Date: 28-Aug-82 03:57:53
  1017. From: douglas <LANAM at HP-HULK>
  1018. Subject: interrupt and dumpsave.
  1019. Class: Deficiency
  1020. If you do
  1021. (load interrupt)
  1022. (savesystem "xxx.exe")
  1023. (quit)
  1024. @xxx.exe
  1025. The interrupts will not work in xxx.exe, but the system will think the
  1026. file was already loaded.
  1027. douglas
  1028. RESPONSE (Eric)
  1029. The function (INITIALIZEINTERRUPTS) is called when the module
  1030. is loaded. It needs to be called in a fresh core image as well.
  1031. It's not clear to me what the best way to ensure that is.
  1032. Date: 28-Aug-82 03:56:46
  1033. From: douglas <LANAM at HP-HULK>
  1034. Subject: vector print length limit.
  1035. Class: Feature request
  1036. There should be a special variable (say *printlength) which is set to
  1037. the maximum number of elements in a vector, list, (half-words vectors),
  1038. which are printed out. The rest could be printed ... .
  1039. This variable could be reset by the user (nil for no limit). But I
  1040. think there should be a limit in the system (say 25-30?), often I
  1041. get a strange error in compiled code which results in the endless
  1042. printing of a vector.
  1043. douglas
  1044. Date: 27-Aug-82 16:09:05
  1045. From: douglas <LANAM at HP-HULK>
  1046. Subject: Printing "quote" expressions
  1047. Class: Bug
  1048. @psl
  1049. 1 lisp> '(quote a b)
  1050. 'A
  1051. 2 lisp>
  1052. douglas
  1053. RESPONSE (Eric)
  1054. Fixed (see BUG-FIX.LOG).
  1055. Date: 27-Aug-82 14:55:33
  1056. From: douglas <LANAM at HP-HULK>
  1057. Subject: file function needed.
  1058. Class: Feature request
  1059. Is there a function which can tell me when a file was last written to
  1060. the disk? I could use such a function.
  1061. (I know this is machine/operating system dependent).
  1062. douglas
  1063. RESPONSE(Snyder):
  1064. The file <HP-PSL.EMODE>DIRECTORY.SL has functions that almost
  1065. do what you want. Take the part of FILE-DELETED-STATUS that
  1066. does at GTJFN to get a JFN, then pass that to JFN-WRITE-DATE.
  1067. RESPONSE(Perdue):
  1068. It appears that we will be adopting the Common LISP file
  1069. manipulation functions.
  1070. Date: 26 Aug 1982 17:21-PDT (Thursday)
  1071. From: Liu (?) at HP-PCD
  1072. Subject: Function cells, function bindings, property lists
  1073. Class: Inquiry, documentation deficiency
  1074. We run psl on VAX/750 under UNIX.
  1075. The problems are
  1076. (1) I first defined a function "x". Then I initialized the property
  1077. list of "x" by using "SetProp" which turned my function definition
  1078. into "NIL".
  1079. (2) I went on typing my function definition again. Then I looked at
  1080. my property list. It has my function definition with some other
  1081. goodies in it.
  1082. I'll imagine the function cell and the property cell are two seperate
  1083. entities. So, these side effects are unexpected and undesired.
  1084. Following is a sample of the problems.
  1085. 1 lisp> (de x (y) (car y))
  1086. X
  1087. 2 lisp> (pp x)
  1088. (DE X (Y) (CAR Y))
  1089. T
  1090. 3 lisp> (setprop 'x '((color . red)))
  1091. ((COLOR . RED))
  1092. 4 lisp> (prop 'x)
  1093. ((COLOR . RED))
  1094. 5 lisp> (pp x)
  1095. *** X has ill-formed definition.
  1096. (DE X NIL)
  1097. T
  1098. 6 lisp> (de x (y) (car y))
  1099. Do you really want to redefine the system function `X'?(Y or N)y
  1100. *** Function `X' has been redefined
  1101. X
  1102. 7 lisp> (pp x)
  1103. (DE X (Y) (CAR Y))
  1104. T
  1105. 8 lisp> (prop 'x)
  1106. ((*LAMBDALINK LAMBDA (Y) (CAR Y)) USER (COLOR . RED))
  1107. RESPONSE(Perdue):
  1108. Thanks for the good observation. It turns out that the
  1109. function cell in PSL always contains a machine instruction,
  1110. so the lambda expression can't be stored there. PSL stores
  1111. the lambda expression on the property list. I don't believe
  1112. this fact is documented.
  1113. RESPONSE (Eric)
  1114. Calling SETPROP is inadvisable under almost any situation.
  1115. Date: 26 Aug 1982 16:35-PDT (Thursday)
  1116. From: Someone at HP-PCD
  1117. Subject: "apply" function
  1118. Class: Comment
  1119. When the function "(apply 'plus '(1 2 3))" is entered, psl returns a line
  1120. of the form
  1121. #<Unknown:15602127320>
  1122. rather than the result "6".
  1123. RESPONSE(Perdue):
  1124. PLUS is a MACRO, so you don't get what you expect as an answer.
  1125. In general, applying a macro causes it to perform macro expansion
  1126. but not to evaluate the expanded form. Probably applying a macro
  1127. ought to either be an error. In some LISPs (apply fn arglist)
  1128. is equivalent to (eval (cons fn arglist)) when fn is a macro, but
  1129. these are not equivalent when fn is a normal function.
  1130. Date: 26-Aug-82 15:27:19
  1131. From: FILMAN at HP-HULK
  1132. Subject: ***** Unexpected EOF while reading {99}
  1133. Class: Inquiry
  1134. I get the above message in a break, and all the ^q's I give it don't pop.
  1135. Is there some sure way back to the top level?
  1136. Bob
  1137. RESPONSE(Perdue):
  1138. Say "a" rather than "q" to get out. There is a menu that tends to come
  1139. up these days, even when you don't want it. When you don't want it,
  1140. use ^XO to get out of it. A couple of ^XOs and it will even disappear
  1141. from the screen. We'll get rid of that menu altogether in a day or so.
  1142. Date: 26-Aug-82 12:14:36
  1143. From: FILMAN at HP-HULK
  1144. Subject: closures
  1145. Class: Comment, documentation deficiency
  1146. I was pleased to see the documentation on closures on page 10.9
  1147. of the psl manual. Unfortunately, this stuff is not
  1148. implemented. Perhaps a better warning than "[??? Not yet
  1149. connected to V3 ???]" could be associated with this material.
  1150. Bob
  1151. Date: 26-Aug-82 12:12:28
  1152. From: FILMAN at HP-HULK
  1153. Subject: defstruct
  1154. Class: Documentation deficiency
  1155. The defstruct documentation in the psl manual does not correspond to the
  1156. implementation in psl. For example, defstructp doesn't exist. Chris
  1157. assures me that the defstruct in psl is lisp machine defstruct. Perhaps
  1158. the manual could be adjusted for this reality.
  1159. Bob
  1160. Date: 26-Aug-82 11:54:50
  1161. From: FILMAN at HP-HULK
  1162. Subject: emode and mm
  1163. Class: Bug
  1164. If you're in emode, and call mm, the exit from mm leaves emode confused.
  1165. The various controll characters to the screen get printed. Doing an ^x^z
  1166. and a continue psl fixes the problem.
  1167. Bob
  1168. Date: 26-Aug-82 11:23:54
  1169. From: douglas <LANAM at HP-HULK>
  1170. Subject: bugs in emode.
  1171. Class: Bug, inquiry
  1172. try the following:
  1173. @psl
  1174. 1 lisp> (emode)
  1175. ^\e^L
  1176. (that is type meta-e, cntl-l as the first input to emode).
  1177. can ctrl-h work the same as ^b ? It does in emacs.
  1178. douglas
  1179. Date: 26-Aug-82 10:58:53
  1180. From: FILMAN at HP-HULK
  1181. Subject: Handling of macro expansion in the interpreter
  1182. Class: Comment
  1183. This is a subtle one, that most lisp's get wrong.
  1184. In PSL, macros eat stack. For example, the sequence
  1185. (setq x 1000)
  1186. (dm awhile (l)(cond ((eval (cadr l)) (eval (caddr l)) l)
  1187. (t nil)))
  1188. (awhile (greaterp x 0) (setq x (sub1 x)))
  1189. gets a stack overflow; it needn't. I believe that stanford 1.6 lisp
  1190. does this right, while uci-lisp does it wrong.
  1191. Bob
  1192. Date: 26 Aug 1982 0857-PDT
  1193. From: douglas <LANAM>
  1194. Subject: you can do a funcall or apply on a code pointer.
  1195. Class: Comment
  1196. Date: 26-Aug-82 09:47:51
  1197. From: douglas <LANAM at HP-HULK>
  1198. Subject: why are there global variables which can be bound statically?
  1199. Class: Inquiry, complaint
  1200. what is really gained by this?
  1201. RESPONSE(Perdue):
  1202. It is thought that it is not meaningful to rebind certain
  1203. global variables. The declaration is useful to some LISP
  1204. implementations.
  1205. message continues:
  1206. I find it unreasonable that I can not do
  1207. (let ((out* (open "junk" 'output))) (princ ....))))
  1208. And if I can't do it this way, I have to use a catch to make sure that
  1209. out* is bound correctly after the body of the let is executed.
  1210. douglas
  1211. RESPONSE(Perdue):
  1212. The official PSL I/O system will probably be redone along the
  1213. lines of Common LISP.
  1214. Date: 26-Aug-82 09:22:25
  1215. From: douglas <LANAM at HP-HULK>
  1216. Subject: errors in manual.
  1217. Class: Documentation bug
  1218. Page 14.1:
  1219. Under the function savesystem, is a spelling error.
  1220. lispbannner!* should be lispbanner!*.
  1221. On page 13.2 is the following :
  1222. BREAKOUT!* (initially: NIL) global
  1223. similar to BREAKOUT!*.
  1224. Date: 25-Aug-82 13:50:26
  1225. From: FILMAN at HP-HULK
  1226. Subject: Page headings in the manual
  1227. Class: Documentation
  1228. The psl manual "swaps" the page and section numbers on left and right pages,
  1229. but leaves the "PSL Manual" and section names unswapped. This is a bit
  1230. confusing.
  1231. RESPONSE(Kendzierski):
  1232. This has been remedied in newer editions of the manual.
  1233. Date: 25-Aug-82 13:40:16
  1234. From: FILMAN at HP-HULK
  1235. Subject: "bug" function
  1236. Class: Bug
  1237. The (bug) function gives an access failure (and dies in emode)
  1238. The function defstructp is undefined.
  1239. Date: 22-Aug-82 13:45:20
  1240. From: PAULSON at HP-HULK
  1241. Subject: SUBSTRING
  1242. Class: Complaint, documentation deficiency
  1243. In INTERLISP, (SUBSTRING STR N M) gives you the Nth through Mth
  1244. elements of the string. Makes sense, right? And in ZLisp,
  1245. (NSUBSTRING STR N M) gives you the (N+1)th through (M+1)th
  1246. elements. Fine- ZLisp does zero-indexing. But in PSL,
  1247. (SUBSTRING N M) gives you the (N+1)th through Mth elements.
  1248. This does not make sense at all (and it isn't documented
  1249. either.)
  1250. RESPONSE (Eric)
  1251. SUBSTRING in PSL is exactly the same as SUBSTRING in Zetalisp,
  1252. except that the END argument is required, not optional, and the
  1253. AREA argument is not used.
  1254. Date: 20 Aug 1982 17:34:58-PDT
  1255. From: Martin.Griss <Griss at UTAH-20>
  1256. Subject: [Norman.kentvax at UDel-Relay: psl stray queries]
  1257. Class: Miscellaneous
  1258. this is a very initial bunch of psl queries/thoughts.
  1259. it is also a test to see if i can get mail out of this vax
  1260. & over to you lot.
  1261. (a)i
  1262. (a) on vax psl 'messages' and 'real output' get interleaved in what
  1263. seems to be an assynchronous manner. at least i seem to get error
  1264. messages all mixed in with the stuff i print, so the idiom
  1265. print <my own messages>;
  1266. error 'stop here;
  1267. is not as helpful as I would like.
  1268. RESPONSE (Eric)
  1269. VAX Unix terminal output has been changed to be line buffered
  1270. to speed it up. This should have the side benefit of removing
  1271. the interleaving of stdout and errout.
  1272. (b) I have tried to use
  1273. rlisp <<here | tee logfile
  1274. on echo;
  1275. ....
  1276. to get a copy of input & output of a set of standartd tests. the
  1277. 'on echo;' seems not to be honoured? also the error recovery is
  1278. a mess in this case because i go into lisp syntax & need to type
  1279. special error-break-loop commands to escape it, and these are
  1280. abominated unless i am in the error loop.
  1281. (c) in ann error
  1282. I wanted to see the value of fluid variables called a,b,c,d,...
  1283. but of course some of these letters gave magic effects! i ended
  1284. up with going (eval 'c) & similar nasties. yuk. also could the
  1285. backtrace print values that fluids have on the stack, or could i
  1286. have some similar easy way to see values of fluids that have been
  1287. covered up by subsequent bindings. furthermore the mess one gets on
  1288. going (backtrace) is a MESS and i find it hard to see the stuff that
  1289. i want for all the muck that i dont.
  1290. RESPONSE (Eric)
  1291. Yes, backtrace and break are both weak.
  1292. (d) try printing (expt 2 31). for me it gives an infinite string of -
  1293. signs!!!!!!!
  1294. RESPONSE (Eric)
  1295. The problem is due to the fact that the most negative number in
  1296. a 2's complement representation has no positive counterpart.
  1297. The solution (courtesy of Alan Snyder) is to do the computations
  1298. on numbers less than zero, so that positive numbers are negated
  1299. before processing rather than negative numbers being negated.
  1300. This will probably be fixed in PSL soon.
  1301. (e) lack of bignums is mildly bothersome - for work with reduce I guess
  1302. i will lash up a botched bignum package representing numbers as vectors
  1303. (so they pass the atom test), cos i presume your proper version is in
  1304. the pipeline but not ready yet.
  1305. RESPONSE (Eric)
  1306. Bignums do exist, as a loadable module. Do (LOAD BIG).
  1307. (f) i looked for the followng functions without apparent success:
  1308. random() generate random number
  1309. timeofday() like date() but gives wallclock time
  1310. (I wanted it to help generate a good seed for my own
  1311. random number generator!)
  1312. RESPONSE (Eric)
  1313. (RANDOM) is obtained by LOADing MATHLIB. It uses (TIME) to
  1314. generate its seed. If (TIME) is not documented it should be.
  1315. (g) in rlisp, various things I expected to be errors were not
  1316. trapped very hard, e.g. a missing ')' seemed to be continuable
  1317. when i didn't expect/want it to. also "help help" failed by
  1318. turning into (help 'help) internally, not (help help), and in a
  1319. break look following an error (help <anything?>) complained
  1320. about the help package not being loaded even though I had
  1321. called it from rlisp.
  1322. RESPONSE (Eric)
  1323. There were bugs in the help system which I believe have been
  1324. fixed. HELP HELP; is still parsed incorrectly in RLisp, and
  1325. that probably will not be fixed.
  1326. (h) i suspect that often while in an break loop i want further
  1327. errors ignored rather than letting them push me further into
  1328. deeper break loops. I might be happy to have a break level that
  1329. eats simple 1-char commands to continue, quit, backtrace with
  1330. one char that pushes me into a brand new read-eval-print loop.
  1331. for rlisp I guess that should be an rlisp r-e-p loop?
  1332. RESPONSE (Eric)
  1333. It has been suggested that there be an absolute limit on depth
  1334. of break loops. In any case it seems clear that the break loop
  1335. mechanism should be redesigned; this is far from the only complaint.
  1336. I will try to collect further notes to pass on as I think of things:
  1337. just put these somewhere in your big pile of gripes!
  1338. Was good to see you in Pittsburg. cheers. arthur
  1339. Date: 19-Aug-82 10:07:31
  1340. From: Alan Snyder <AS at HP-HULK>
  1341. Subject: WNOT
  1342. Class: CMACRO Bug
  1343. The *WNOT CMACRO produces bad code when its argument is
  1344. an integer constant. For example, the expression
  1345. (WNot 7) produces (SETCM (REG 1) 7), which computes
  1346. the complement of the contents of register 7.
  1347. RESPONSE (Eric)
  1348. This case should be caught and evaluated in the first pass of
  1349. the compiler. The CMACRO should never be used.
  1350. Date: 19-Aug-82 09:35:24
  1351. From: LANAM at HP-HULK
  1352. Subject: History list package
  1353. Class: Deficiency
  1354. When you do (hist), it tell you things like:
  1355. 5 Inp: (HIST)
  1356. Ans: NIL
  1357. 6 Inp: Q
  1358. Ans: NIL
  1359. But it doesn't tell me that the Q on (inp 6) is a response to the break
  1360. package, not the evaluation of the atom q. It also doesn't tell me that
  1361. (ans 4) is nil because it never existed.{History is an undefined function}.
  1362. RESPONSE (Eric)
  1363. In general whenever a value is not returned by a function in the
  1364. top loop, such as if an error occurs, NIL is put in the value
  1365. position. Would it be preferable to put something else there,
  1366. such as "Abnormal termination"?
  1367. Date: 18-Aug-82 12:16:33
  1368. From: Alan Snyder <AS at HP-HULK>
  1369. Subject: Fast arithmetic and fast vector access
  1370. Class: Compiler bug
  1371. There is a serious PSL compiler bug relating
  1372. to the interaction between fast arithmetic
  1373. and fast vector access. In the following code,
  1374. note that register 1 is clobbered by the MOVE
  1375. instruction before it is used as an index
  1376. register in the ADD instruction. (Possibly
  1377. useful info: if the vector fetch is replaced
  1378. by CAR, the compiler does the right thing,
  1379. i.e., moves V to a free register before
  1380. loading register 1.) PLEASE FIX THIS BUG!!!!
  1381. ----------------------------------------------
  1382. (CompileTime (Load Fast-Vector))
  1383. (de test (v a)
  1384. (WPlus2 (IGetV v 0) a))
  1385. ----------------------------------------------
  1386. (*ENTRY TEST EXPR 2)
  1387. (*ALLOC 0)
  1388. (*MOVE (REG 2) (REG 1))
  1389. (*WPLUS2 (REG 1) (MEMORY (REG 1) (WCONST 1)))
  1390. (*EXIT 0)
  1391. ----------------------------------------------
  1392. (MOVE (REG 1) (REG 2))
  1393. (ADD (REG 1) (INDEXED (REG 1) 1))
  1394. (POPJ (REG ST) 0)
  1395. ----------------------------------------------
  1396. RESPONSE (Eric)
  1397. I believe this bug has been fixed in the latest release from Utah.
  1398. Date: 18-Aug-82 09:52:47
  1399. From: Alan Snyder <AS at HP-HULK>
  1400. Subject: PRINTX
  1401. Class: Deficiency
  1402. PRINTX apparently does not handle shared structures involving
  1403. Vectors.
  1404. RESPONSE (Eric)
  1405. True. Don Morrison wrote a quick and dirty circular structure
  1406. printer GRAPH-TO-TREE, obtained by LOADing GRAPH-TREE, which
  1407. correctly handles circular vectors.
  1408. Date: 15-Aug-82 12:36:13
  1409. From: LANAM at HP-HULK
  1410. Subject: bug in macroexpand.
  1411. HP-PSL 3.0, 12-Aug-82
  1412. 1 lisp> (macroexpand '(setq a b c d))
  1413. (SETQ A B)
  1414. The result should have been '(setq a b c d)).
  1415. RESPONSE (Perdue):
  1416. Right on expanding SETQ. There may be an associated compiler bug, too.
  1417. RESPONSE (Eric)
  1418. I fixed the source for MACROEXPAND. The compiler does its own
  1419. processing and is not affected.
  1420. Date: 14-Aug-82 18:59:24
  1421. From: LANAM at HP-HULK
  1422. Subject: what does ($fluid :value) not compiled mean?
  1423. Class: Inquiry
  1424. I got this between two functions I compiled, but there was no code between
  1425. the two function (and the declaration was pages earlier).
  1426. thanks,
  1427. douglas
  1428. RESPONSE (Eric)
  1429. "*** FOO not compiled" from the compiler means that FOO has no side
  1430. effects and is used in a place where no value is required. The
  1431. compiler does not issue code for such expressions.
  1432. Date: 14-Aug-82 18:33:00
  1433. From: LANAM at HP-HULK
  1434. Subject: Compiling variables in the CAR position
  1435. Class: Inquiry, complaint
  1436. HP-PSL 3.0, 12-Aug-82
  1437. 1 lisp> (setq *comp t)
  1438. T
  1439. 2 lisp> (defun a (b) (b b))
  1440. *** Functional form converted to APPLY (B B)
  1441. *** (A): base 412016, length 3 words
  1442. A
  1443. Why is it, if the function and argument have the same name, it
  1444. gives me this message, but if I change either the name of the
  1445. function or the argument, it doesn't give me this message?
  1446. I don't think this message should pop up.
  1447. Even if the function b was declared already.
  1448. (defun a (b) (B b)) causes the system to think that b is a variable bound
  1449. to a function.
  1450. I think this is wrong. If I had wanted that I would have done
  1451. (apply b (list b)) instead of (b b).
  1452. RESPONSE (Perdue):
  1453. (defun a (b) (b b)) is compiled heuristically. The compiler guesses
  1454. whether the call on b is directly a function call or whether "b" is
  1455. used as a function-valued variable. On the basis of local context it
  1456. guesses b is a variable in function position. I'm sure it will be
  1457. a low priority for fixing, since it is easily worked around.
  1458. RESPONSE (Eric)
  1459. This handling of variables in the function position goes against
  1460. the accepted practice in recent Lisp systems. I made the decision
  1461. to do it that way, but have gotten only complaints about it.
  1462. (Of course those who like it that way probably wouldn't say
  1463. anything about it unless it went away!) On reflection and further
  1464. use I believe it should not have been done this way. It is also
  1465. inconsistent with the Common Lisp definition. Should it be changed
  1466. now?
  1467. Date: 14-Aug-82 14:57:28
  1468. From: LANAM at HP-HULK
  1469. Subject: (reset) should end a (faslout)
  1470. If i do (faslout), get an error, and do (reset),
  1471. I do not think the system should be in fasl mode any more.
  1472. I think if I wanted to continue the (faslout), or save it,
  1473. I would use the continue option of the break package, and
  1474. not do (reset).
  1475. douglas
  1476. RESPONSE (Eric)
  1477. FASLOUT sets a global variable and returns, rather than binding
  1478. a fluid and doing the processing within that binding. One
  1479. solution is to write a COMPILE-FILE function which binds *DEFN
  1480. so that popping out will abandon processing.
  1481. Date: 12-Aug-82 16:36:41
  1482. From: LANAM at HP-HULK
  1483. Subject: READ
  1484. Class: Bug
  1485. do (let () (setq y (readch)) (unreadchar y) (read))word
  1486. the system will return
  1487. wORD
  1488. note: that read normally changes all the characters in its word to
  1489. upper case.
  1490. But if the character was sent back to the input stream from unreadchar,
  1491. its initial case remains and the atom that read interns has its first
  1492. character in lower case if it was typed that way.
  1493. The above should have returned WORD.
  1494. The above is with *raise = t.
  1495. douglas
  1496. RESPONSE (Eric)
  1497. This wsa due to a bug in READCH and has been fixed. By the way,
  1498. UNREADCHAR is not the correct dual to READCH (in fact it is not
  1499. currently defined). UNREADCHAR is the dual of READCHAR, which
  1500. returns a character (integer) instead of an ID.
  1501. Date: 12-Aug-82 16:27:30
  1502. From: LANAM at HP-HULK
  1503. Subject: search in emode
  1504. Class: Proposal
  1505. I looked at the source to search.red in pe: and found that it does
  1506. a very dumb search algorithm.
  1507. The search algorithm should be replaced with the kmp algorithm
  1508. which can be found in most data structures/algorithm books.
  1509. I have a version running in lisp (but not fully compatible with
  1510. emode functions) which I can send. The whole algorithm is
  1511. about 20 lines of code.
  1512. I also have a version in pascal which runs on my 9836 ( i debugged
  1513. it on there when the hulk was down and moved it over.
  1514. ----
  1515. I am including the whole algorithm in lisp slightly commented.
  1516. This version to work with emode needs to convert some or the list
  1517. of characters and vectors of character to vectors of ints, and
  1518. needs to ignore case (this version does not ignore case).
  1519. This code has been checked and works. I am using a variation of
  1520. it in my program for my search through the history table.
  1521. It runs much faster than the algorithm currently used in emode.
  1522. If you wish to install it, I can help in debugging this part of
  1523. the code and checking it works, if you can get someone else
  1524. to interface it to the reset of emode and set up the correct
  1525. accessing of emode data structures.
  1526. douglas
  1527. -----
  1528. %%
  1529. %% Implemenation of Knuth_Morris_Pratt algorithm.
  1530. %%
  1531. %%
  1532. %% p: input-pattern format vector of characters:
  1533. %% '[a b c].
  1534. %%
  1535. %% output failure link vector to be used by emode_kmp_scan.
  1536. %%
  1537. (defun emode_kmp_flowchart_construction (p)
  1538. (let ((m (size p)))
  1539. (let ((*flink (mkvect (iplus2 1 m))))
  1540. (iputv *flink 0 -1)
  1541. (do ((i 1 (+ 1 i)))
  1542. ((> i m) *flink)
  1543. (do ((j (igetv *flink (- i 1)) (igetv *flink j)))
  1544. ((or (eq j -1) (eq (igetv p j) (igetv p (- i 1))))
  1545. (iputv *flink i (+ j 1))))))))
  1546. %%
  1547. %% p : input _string in vector format '[ a b c]
  1548. %% m : upper bound of vector p (answer for above is 2).
  1549. %% s : line of characters to be searched
  1550. %% format list of characters: '(A b c d e . ..)
  1551. %% *flink : failure link vector from emode_kmp_flowchart_construction.
  1552. %%
  1553. %% returns t if succeed, nil if not found.
  1554. %%
  1555. (defun emode_kmp_scan (p m s *flink)
  1556. (and s
  1557. (prog (j)
  1558. (setq j 0)
  1559. %%
  1560. %% if next character does not match use failure links
  1561. %% to back up and try again.
  1562. %%
  1563. loop (cond ((and (neq j -1) (neq (igetv p j) (car s)))
  1564. (setq j (igetv *flink j)) (go loop)))
  1565. %%
  1566. %% if you have matched the entire pattern => succeed.
  1567. %%
  1568. (and (= j m) (return t))
  1569. (or (setq j (+ 1 j) s (cdr s))
  1570. %%
  1571. %% move pointer in line,
  1572. %%
  1573. %% if no more line, fail.
  1574. (return nil))
  1575. (go loop))))
  1576. Date: 12-Aug-82 11:06:18
  1577. From: LANAM at HP-HULK
  1578. Subject: GO inside AND
  1579. Class: Compiler deficiency
  1580. The Psl compiler
  1581. does not allow a go inside an and clause inside a prog.
  1582. ex:
  1583. 10 lisp> (defun xx () (prog () loop (and (go loop))))
  1584. ***** (GO LOOP) INVALID GO
  1585. XX
  1586. Thus causing me to have to say
  1587. (cond (expression (go loop))) inside a prog
  1588. when i want to say (and should be allowed to say):
  1589. (and expression (go loop))
  1590. douglas
  1591. RESPONSE (Eric)
  1592. This use of GO within AND is in violation of Standard Lisp.
  1593. There isn't a good reason for this restriction and it should
  1594. probably be removed from the compiler. In the meantime, if you
  1595. use (WHEN foo (GO xx)) instead of (AND foo (GO xx)), everything
  1596. should be fine. Use of OR in this fashion should be replaced by
  1597. (UNLESS foo (GO xx)).
  1598. Date: 11 Aug 1982 0932-PDT
  1599. From: JOHNSON at HP-HULK
  1600. Subject: Documentation Bug
  1601. Class: Documentation Bug
  1602. Section 5.1, paragraph 2 of <HP-PSL>HP-PSL.R contains the meaningless
  1603. sentence: "Some of the <PSL> directories have no corresponding <PSL>
  1604. directory."
  1605. Date: 10 Aug 1982 1620-PDT
  1606. From: Kendzierski at HP-HULK (Nancy)
  1607. Subject: REPEAT
  1608. Class: Horrid documentation bug
  1609. The manual states that the REPEAT construct (section 9.3; page 9.7)
  1610. is repeated until the value of the expression is NIL.
  1611. RESPONSE (Perdue):
  1612. Actually, Nancy had quite a bit more to say, but the real problem
  1613. is that the documentation for the LISP REPEAT is totally
  1614. scrambled, though the RLISP documentation looks OK. Syntax for
  1615. repeat is really:
  1616. (REPEAT <stmt> . . . <condition>)
  1617. The statements are executed until the condition becomes true.
  1618. The condition is really and end-test.
  1619. Date: 10-Aug-82 13:28:27
  1620. From: LANAM at HP-HULK
  1621. Subject: word size
  1622. Class: Inquiry
  1623. Is there a function which returns the word size (number of bits) that
  1624. logical operations operate on, built into psl?
  1625. Date: 10-Aug-82 13:27:26
  1626. From: LANAM at HP-HULK
  1627. Subject: bug in print and lshift.
  1628. Class: Bug
  1629. type the following to the top level of the psl interpreter on the 20.
  1630. (lshift 2 34)
  1631. You get an endless unstoppable output of hyphens.
  1632. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...
  1633. douglas
  1634. RESPONSE (Eric)
  1635. See response above to Norman.
  1636. Date: 10-Aug-82 12:01:02
  1637. From: LANAM at HP-HULK
  1638. Subject: addresses
  1639. Class: Inquiry
  1640. What function returns the address of a lisp object?
  1641. What function takes an address (from above function) or some other int,
  1642. and gives me the lisp object at that address?
  1643. RESPONSE (Eric)
  1644. The first operation can be done but is probably not advisable.
  1645. There is no defined function to do it from the interpreter, but
  1646. the macro INF can be used in compiled code by LOADing SYSLISP.
  1647. The second probably cannot be done, since the tag defines the type
  1648. of an object and is not recoverable from the address. (This may
  1649. not be completely true, you can sometimes tell from the contents
  1650. of the object). Perhaps you could explain why you want to do this,
  1651. there may be some more appropriate operation.
  1652. Date: 10-Aug-82 11:40:02
  1653. From: LANAM at HP-HULK
  1654. Subject: documentation of compiled in line functions.
  1655. Class: Suggestion
  1656. They should be mentioned where their non compiled in line
  1657. counterpart is.
  1658. RESPONSE (Perdue):
  1659. The fast arithmetic procedures that are compiled in line turn out
  1660. to be described in the section on SYSLISP, section 21.4 in
  1661. particular.
  1662. Date: 10-Aug-82 11:37:05
  1663. From: LANAM at HP-HULK
  1664. Subject: (maxint) => ???
  1665. Class: Inquiry
  1666. Is there a function that return maxint and minint?
  1667. also maxfloat, and minfloat?
  1668. RESPONSE (Eric)
  1669. Currently none. The Common Lisp definition says these are
  1670. constant global variables (not exactly the same names, though).
  1671. Date: 10-Aug-82 10:31:26
  1672. From: LANAM at HP-HULK
  1673. Subject: bug in time with garbage collection
  1674. Class: Bug, deficiency
  1675. When *time = t,
  1676. the system should report cpu and garbage collection time seperately,
  1677. not as one total number.
  1678. Cpu time: 496 ms. GC time: 2500 ms.
  1679. not
  1680. Time: 2996 ms.
  1681. The current timing given is misleading.
  1682. douglas
  1683. RESPONSE (Eric)
  1684. Currently GC time is not saved. It would be pretty simple
  1685. to do, just a matter of choosing how.
  1686. Date: 9-Aug-82 11:03:03
  1687. From: LANAM at HP-HULK
  1688. Subject: Fast vector access
  1689. Class: Bug
  1690. I got the message:
  1691. (memory ($local y) (wconst 19)) not compiled
  1692. when I did:
  1693. (defun xx (y) (do ((i 100 (sub1 i))) (eq i 0)) (igetv y 18)))
  1694. RESPONSE (Perdue):
  1695. Looks like a bug. Please use WGETV rather than igetv until we
  1696. find out that igetv is for public consumption. I think they will
  1697. do the same thing anyway.
  1698. RESPONSE (Eric)
  1699. This is not a bug! See the comment above on "*** FOO not
  1700. compiled". If you want to have this compiled, you must do
  1701. something with a side effect inside the loop.
  1702. Date: 9-Aug-82 09:08:11
  1703. From: LANAM at HP-HULK
  1704. Subject: fluid
  1705. Class: Inquiry, documentation deficiency
  1706. (fluid '(abc)) will set the value of abc to nil.
  1707. Why? The documentation does not say that such a thing is done.
  1708. It should leave abc as an unbound variable.
  1709. douglas
  1710. RESPONSE (Eric)
  1711. This is in conformance with the Standard Lisp report. If it is
  1712. not described in the PSL manual it should be.
  1713. Date: 29 Jul 1982 17:39:24-PDT
  1714. From: Tony Hearn <HEARN at RAND-AI>
  1715. Subject: Strange REDUCE bug
  1716. Class: Bug
  1717. If you do in REDUCE on the VAX:
  1718. x := x+1;
  1719. x;
  1720. You SHOULD, I believe, get a "push down stack overflow" error. Instead,
  1721. you go off into mystery (system seems to hang) and finally get an "illegal
  1722. instruction" message and a core dump.
  1723. RESPONSE (Eric)
  1724. Stack overflow on VAX Unix is not handled well by the operating
  1725. system. Franz Lisp has the same problem. Perhaps 4.2BSD will
  1726. do a better job.
  1727. Date: 26 Jul 1982 17:35:58-PDT
  1728. from: lseward at RAND-UNIX
  1729. Subject: PSL distribution files
  1730. Class: News
  1731. I am listing off sources and have been straightening out the vax-comp and
  1732. vax-interp files. Suggestion: have subdirectories src, build, and bin
  1733. and put the appropriate things in them. Otherwise the statement (in the
  1734. documentation) "This directories contains sources for ..." is very
  1735. misleading.
  1736. larry
  1737. Date: 13 Jul 1982 12:23:31-PDT
  1738. From: Galway@UTAH-20 at HP-Speech
  1739. Subject: break loop "feature"
  1740. Class: Comment, proposal
  1741. The current break handler inherits the reader, evaluator, and printer from
  1742. whatever the current TopLoop uses (if TopLoop is being used). I suspect
  1743. that this is a mistake, since it makes it awkward to deal with special
  1744. "exotic" top loops. It's already somewhat confusing that depending upon
  1745. the circumstances you will either get a LISP reader, or and Rlisp reader.
  1746. Think about how wonderful it would be if your reader only returned vectors
  1747. to be "evaluated" by adding them up (say, for a desk calculator or
  1748. something).
  1749. I suggest that instead we only have one, or maybe two, break loops.
  1750. Default would use LISP's READ/EVAL/PRINT. And perhaps it should notice
  1751. when Rlisp is in effect, and use its READ/EVAL/PRINT in that case.
  1752. Comments?
  1753. RESPONSE (Eric)
  1754. Definitely. The break loop is all wrong. Lets redo it.
  1755. Date: 25 Jun 1982 2106-PDT
  1756. From: LANAM
  1757. Subject: package proprosal
  1758. Class: Proposal
  1759. I would like the system to remember the package definition name of a
  1760. variable and functions in .b files so that I dont' get the system
  1761. binding files which were compiled in package a but loaded in package
  1762. b refering to package b functions when a package is not specified.
  1763. Just binding everything to global would not work since then it would
  1764. be a nuisance to have to always write out a local package name in a
  1765. file on every function and variable.
  1766. (This is a proposal to send along with any bug reports to martin).
  1767. douglas
  1768. RESPONSE (Eric)
  1769. Packages are not fully integrated into the system. This will
  1770. probably have to wait for a redesign of PSL to include packages
  1771. in the kernel.
  1772. Date: 6-Aug-82 14:09:27
  1773. From: LANAM at HP-HULK
  1774. Subject: bug with *time
  1775. Class: Bug
  1776. If the first thing you say to psl is
  1777. (setq *time t)
  1778. you get back
  1779. Time: 211392 ms (or some such large number).
  1780. RESPONSE (Eric)
  1781. True.
  1782. Date: 4 Aug 1982 01:36:20-PDT
  1783. From: daemon at HP-Speech
  1784. From: Tony Hearn <HEARN at RAND-AI>
  1785. Subject: PSL cannot read bignums correctly
  1786. The source for the bigfloat package contains bignums. It does not seem
  1787. to read or maybe compile correctly.
  1788. Can PSL currently read bignums?
  1789. RESPONSE (Griss):
  1790. PSL can read bignums with BIG loaded. Without it, bignums will
  1791. not be read correctly. It is probably true that bignum
  1792. constants cannot be compiled in either case.
  1793. RESPONSE (Eric)
  1794. This has been fixed completely.
  1795. Date: 27 Jul 1982 16:18:52-PDT
  1796. From: Martin.Griss <Griss at UTAH-20>
  1797. Subject: ExitTopLoop
  1798. Class: Proposal
  1799. Id like to add and ExitTopLoop comand,
  1800. eg !$exitTopLoop!$ as distinguided atom? Or some such,
  1801. perhaps have on property list of atom and action function,
  1802. ala Break, perhaps using toploop name as key?
  1803. GET(InputValue,ModuleName,...).
  1804. Date: 27 Jul 1982 1058-PDT
  1805. From: BATALI
  1806. Subject: Easy file reading
  1807. Class: Complaint
  1808. There ought to be an expr to read a file.
  1809. The only way to do this now is something like:
  1810. (eval `(dskin ,filename))
  1811. I see no reason why dskin should not be an nexpr: virtually
  1812. all present uses of it use string arguments so it wouldn't
  1813. matter.
  1814. L&C,
  1815. John
  1816. RESPONSE (Eric)
  1817. Definitely. Let's make DSKIN an EXPR with ONE argument, since
  1818. that's all it's used for 99.99...% of the time. Incompatible
  1819. with some existing code?
  1820. Date: 27 Jul 1982 16:19:23-PDT
  1821. From: Martin.Griss <Griss at UTAH-20>
  1822. Subject: VAX QUIT
  1823. Class: Proposal, response
  1824. I think QUIT should have an associated function, FullStop or some such.
  1825. (Or have 2 low level functions, QuitAndKeep, QuitAndKill), and let
  1826. system admin choose which QUIT is which.
  1827. Date: 25 Jun 1982 1948-PDT
  1828. From: LANAM
  1829. Subject: VAX cntrl-d
  1830. Class: Bug
  1831. Type cntrl-d (eof) as the first character, and the system will go into
  1832. an endless loop.
  1833. douglas
  1834. Date: 26 Jul 1982 17:36:09-PDT
  1835. From: Eric Benson <BENSON at UTAH-20>
  1836. Subject: VAX QUIT
  1837. Class: Response, comment
  1838. Perhaps it's a misfeature. The alternative is to make (QUIT) irrevocable.
  1839. Reading EOF will cause the PSL process to terminate, which allows the use
  1840. of shell scripts and/or I/O redirection. If you want to do that from the
  1841. terminal, type one or more ^Ds.
  1842. Date: 26 Jul 1982 17:35:51-PDT
  1843. Subject:VAX QUIT
  1844. From: hearn at RAND-RELAY
  1845. Class: Comment, complaint
  1846. When you do (quit) to psl, you get the message "stopped", and you have
  1847. a job sitting there. My UNIX guys say this is a bug, and should be fixed.
  1848. I know that you can restart the stopped job, but apart from that facility,
  1849. the stopped job does get in the way every so often. Furthermore, when I
  1850. try to do "time preduce", I can't get the timing info out.
  1851. RESPONSE (Eric)
  1852. The function (EXITLISP) has been added to the VAX Unix version
  1853. and should be in the next edition of the manual. It calls the
  1854. Unix subroutine exit(), which will kill off the process as you wish.
  1855. Date: 29 Jul 1982 1412-PDT
  1856. From: BATALI
  1857. Subject: Use of variables w. same name as functions
  1858. Class: Bug, comment, complaint
  1859. The function:
  1860. (defun or-list? (list predicate)
  1861. (cond ((null list) nil)
  1862. ((funcall predicate (car list)) t)
  1863. (t (or-list? (cdr list) predicate))))
  1864. Is T if any of the predicate applied to any of its elements is T.
  1865. It works fine interpreted, but the compiler goes into an infinite loop
  1866. printing:
  1867. Functional form converted to (APPLY PREDICATE (LIST (CAR LIST)))
  1868. Not a pretty sight.
  1869. Ghastly,
  1870. John
  1871. RESPONSE (Perdue):
  1872. This bug is due to use of "list" as both a local variable and a
  1873. function, and it occurs even though "list" is not explicitly used
  1874. as a function here at all. The problem is inherent in any LISP
  1875. that allows variables in the "function position" and has both a
  1876. variable and function binding cell for atoms.
  1877. RESPONSE (Eric)
  1878. See previous comment.
  1879. Date: 6-Aug-82 10:31:49
  1880. From: LANAM at HP-HULK
  1881. Subject: structure of variable historylist*
  1882. Class: Inquiry, complaint
  1883. why is the car of history an endless structure:
  1884. (historylist* (historylist* (historylist* (historylist* ....
  1885. the (caddr historylist*) is also this strange structure.
  1886. isn't there a simplier structure that could be used?
  1887. douglas
  1888. RESPONSE (Eric)
  1889. This only happens when you try to get the value of historylist*
  1890. from the top loop! Of course it becomes circular. It's really
  1891. just an a-list of inputs and outputs.
  1892. Date: 5-Aug-82 16:20:10
  1893. From: LANAM at HP-HULK
  1894. Subject: + and - as start of atom names.
  1895. Class: Request
  1896. It would be nice if the scanner was changed such that if
  1897. + and - are followed directly by an alphabetic character,
  1898. (ex +a), then an atom is returned ( +a ), instead of
  1899. two atoms (+ and a).
  1900. douglas
  1901. RESPONSE (Eric)
  1902. Yes, it would be nice. This will require a rewrite of the
  1903. token scanner. Perhaps we can get Lisp code from CMU for
  1904. the Common Lisp token scanner.
  1905. Date: 5-Aug-82 16:05:15
  1906. From: LANAM at HP-HULK
  1907. Subject: (eval and macros)
  1908. Class: Inquiry, bug
  1909. is there any reason the following should produce different results:
  1910. (eval expression)
  1911. and
  1912. (eval (macroexpand expression))
  1913. I have an example (a bit hairy and long), where the second is correct
  1914. and the first gives a strange error message about trying to set the
  1915. number 2.
  1916. could someone spend some time to look at this to decide what may be
  1917. the problem.
  1918. thanks,
  1919. douglas
  1920. Date: 5-Aug-82 15:37:32
  1921. From: LANAM at HP-HULK
  1922. Subject: can the sytem just break instead of halt when bps size is exceeded?
  1923. Class: Inquiry, request
  1924. Date: 5-Aug-82 15:23:44
  1925. From: LANAM at HP-HULK
  1926. Subject: what is bps?
  1927. I got error ?
  1928. fatal error : bps exhausted during faslout.
  1929. and the system aborted.
  1930. what happened?
  1931. RESPONSE (Perdue):
  1932. You ran out of space for compiled code.
  1933. PSL provides no information about the sizes of spaces, so far as
  1934. I know. I'm very interested in this myself, and I don't even
  1935. know the initial sizes of most of the spaces. Binary program
  1936. space is not reclaimed. Maybe someday it will be.
  1937. RESPONSE (Eric)
  1938. Yes, this will require a redesign of low-level storage allocation
  1939. in PSL.
  1940. Date: 5-Aug-82 15:09:07
  1941. From: LANAM at HP-HULK
  1942. Subject: package system and faslout/faslin
  1943. Class: Comment, advice
  1944. faslout/faslin known nothing about the package system, and will produce
  1945. a file that can not be read in successfully, if that file references
  1946. variables in packages.
  1947. (usually you will get an operating system error (illegal instruction)).
  1948. The manual's suggestion to rename functions in global is not a real
  1949. solution, and suggests further that the package system is not really
  1950. usuable in a real sense yet.
  1951. This section of the system is not finished and I do not feel is in a
  1952. useful enough state to be advertised or included in the manual.
  1953. douglas
  1954. RESPONSE (Eric)
  1955. Totally true!
  1956. Date: 5-Aug-82 13:05:17
  1957. From: Cris Perdue <Perdue>
  1958. Subject: Unwanted PSL messages
  1959. Class: Response
  1960. To not get bothered about redefining system functions, set the
  1961. global flag *usermode to NIL. The flag *redefmsg determines whether
  1962. you are told when functions are redefined. There is currently
  1963. no way to get a quiet dskin, except modifying the code or writing
  1964. your own.
  1965. I don't know if you can turn off the "*** blah already loaded"
  1966. message. There is no mechanism established for forcing the system
  1967. to reload a library module unless you specify "pl:" as the location
  1968. of the module.
  1969. RESPONSE (Eric)
  1970. There is currently no way to turn off the *** ... already loaded
  1971. message. It mostly generates more heat than light, perhaps it
  1972. should just be removed?
  1973. Date: 5 Aug 1982 1259-PDT
  1974. From: Cris Perdue <Perdue at HP-HULK>
  1975. Subject: Re: start up file.
  1976. Class: Response
  1977. No, there is no "init file". We have had several requests for that
  1978. feature, so perhaps it can be added soon.
  1979. RESPONSE (Eric)
  1980. Yes, init files would be nice. They do require some system
  1981. dependent primitives, especially the ability to find the home
  1982. directory of a user. Not a hard job, but the primitives should
  1983. be specified before doing it.
  1984. Date: 5-Aug-82 08:31:23
  1985. From: LANAM at HP-HULK
  1986. Subject: tr bug
  1987. Class: Request
  1988. tr shouldn't ask me how many arguments a compiled function takes.
  1989. Why can't it just create a nexpr instead and not worry about the number
  1990. of arguments?
  1991. (sometimes I don't feel like looking up the answer to this question).
  1992. RESPONSE (Eric)
  1993. Code blocks should include the number of arguments they expect
  1994. so that this query needn't happen.
  1995. Date: 5-Aug-82 14:02:21
  1996. From: LANAM at HP-HULK
  1997. Subject: FASLOUT
  1998. Class: Bug, deficiency
  1999. (faslout) during (faslout) should not be executed.
  2000. (it currently is).
  2001. douglas
  2002. RESPONSE (Eric)
  2003. Fixed.
  2004. Date: 3-Aug-82 15:22:56
  2005. From: LANAM at HP-HULK
  2006. Subject: bug with faslout/faslend.
  2007. do
  2008. (faslout "foo")
  2009. then do something to cause an error, (any error or break will do).
  2010. such as:
  2011. (eval-when (compile) (+ 'a 'b))
  2012. {actually macros can cause errors, as can any eval-when construct}.
  2013. If you do (faslend) in the break point, then (reset),
  2014. the system will only echo your input after that.
  2015. If you do (faslend) again,
  2016. an error (illegal instruction) occurs, and psl will halt.
  2017. Date: 3-Aug-82 15:13:55
  2018. From: LANAM at HP-HULK
  2019. Subject: package/compiler/fasl bug
  2020. Class: Fatal bug
  2021. With the following file (called a.lisp), do the following and you will get
  2022. illegal instruction.
  2023. (load package)
  2024. (faslout "A")
  2025. (dskin "a.lisp")
  2026. (faslend)
  2027. (faslin "a.b")
  2028. file a.lisp:
  2029. -----------
  2030. (\load \package)
  2031. (\setpackage '\global)
  2032. (eval-when (compile)
  2033. (createpackage 'franz 'global)
  2034. (setpackage 'franz))
  2035. (createpackage 'franz 'global)
  2036. (setpackage 'franz)
  2037. (eval-when (compile)
  2038. (localintern 'franz\xx))
  2039. (de franz\xx (yy) yy)
  2040. Date: 2-Aug-82 15:43:38
  2041. From: BATALI at HP-HULK
  2042. Subject: TYPE function
  2043. Class: Request
  2044. It would be just dreamy if there were a function TYPE, which
  2045. returns an ID signifying the type of its argument:
  2046. (type 'foo) => ID
  2047. (type 5) => FIXNUM
  2048. (type '(a b)) => PAIR
  2049. Etc.
  2050. RESPONSE (Perdue):
  2051. Yes, probably named TYPEP, as in Common LISP. See similar
  2052. requests made very early.
  2053. Date: Fri Jul 30 14:04:39 1982
  2054. From: John Tupper (hp-pcd)
  2055. Subject: TR
  2056. Class: Bug
  2057. Vax psl bug:
  2058. When the debug package is loaded, the normal trace functions
  2059. don't work correctly.
  2060. After loading the debug stuff, (UNTR) does not restore the original
  2061. definition of the function. (TR) works fine, and (UNTR) will cause tracing
  2062. to halt; it just doesn't restore the original definition.
  2063. maddog
  2064. RESPONSE (Eric)
  2065. The "standard" PSL TR function is very poor. The 20 and Vax
  2066. systems should be changed to autoload DEBUG instead of using
  2067. this brain-damaged version.
  2068. Date: 30-Jul-82 15:41:22
  2069. From: Alan Snyder <AS at HP-HULK>
  2070. Subject: EMODE cursor movement
  2071. Class: Bug
  2072. EMODE (on the HP2648 at least) fails to check for attempts to move the
  2073. cursor off the right edge of the screen. For example, if you type in
  2074. a line that is longer than the screen width, the cursor will move to
  2075. the next line and occasionally random stuff will come out (parts of
  2076. escape sequences, it looks like).
  2077. Date: Fri Jul 30 11:40:05 1982
  2078. From: tw cook (hp-pcd)
  2079. Subject: testing 'bug' function - ignore
  2080. Class: News
  2081. I have implemented the 'bug' function in our PSL - it just fires up
  2082. 'mail' to PSL, which forwards both to PSL at labs and to the notesgroup
  2083. LISPERS here. Those of you at hplabs who are listening - does stuff
  2084. mailed to PSL@HULK get eventually sent on to Griss & crew? Should I
  2085. mail to them as well? If so, how do I get there (via mail)?
  2086. Thanks,
  2087. tw
  2088. Date: 30 Jul 1982 11:28-PDT (Friday)
  2089. From: Ching-Chao.Liu <hp-pcd!ching>
  2090. Subject: FUnboundP
  2091. Class: Manual bug
  2092. On page 10.4 of psl manual, the description of FUnBoundP is incorrect.
  2093. It should be
  2094. Tests whether there is a definition in the function cell of U;
  2095. returns NIL if there is a definition, T if not.
  2096. Date: 27-Jul-82 16:38:49
  2097. From: LANAM at HP-HULK
  2098. Subject: break package
  2099. Class: Comment
  2100. In a break package, if I have a variable i (or q, c, r, m, or e), and
  2101. want to print its value, i need to do
  2102. (eval 'i)
  2103. RESPONSE (Eric)
  2104. Yes, it's clumsy. Break loop needs reworking (actually starting
  2105. over). See other previous comments.
  2106. From: Alan Snyder <AS at HP-HULK>
  2107. Subject: PSL bug
  2108. Class: Deficiency
  2109. The ContError macro is not very robust. For example, consider
  2110. the following expansion (admittedly, the argument is improper):
  2111. (MacroExpand '(ContError 0 "" file-name file-name))
  2112. ==>
  2113. (CONTINUABLEERROR 0 (BLDMSG "" FILE-NAME) (LIST '#<Unknown:261740000002>))
  2114. Naturally, this form will cause the garbage collector to barf.
  2115. When the compiler is given this sort of stuff, it produces the
  2116. following lovely code:
  2117. ------------------------------------------------------------
  2118. Compiling TEST
  2119. Source Code:
  2120. (LAMBDA (FILE-NAME) (TEST1 (CONTERROR 0 "s" FILE-NAME FILE-NAME)))
  2121. ------------------------------------------------------------
  2122. Expanded Source Code:
  2123. (LAMBDA (FILE-NAME)
  2124. (TEST1
  2125. (CONTINUABLEERROR
  2126. 0
  2127. (BLDMSG "s" FILE-NAME)
  2128. (LIST '#<Unknown:254000006725>))))
  2129. ------------------------------------------------------------
  2130. Object Code:
  2131. (*ENTRY TEST EXPR 1)
  2132. (*ALLOC 1)
  2133. (*MOVE (REG 1) (REG 2))
  2134. (*MOVE '"s" (REG 1))
  2135. (*LINK BLDMSG EXPR 2)
  2136. (*MOVE (REG 1) (FRAME 1))
  2137. (*MOVE '#<Unknown:254000006725> (REG 1))
  2138. (*LINK NCONS EXPR 1)
  2139. (*MOVE (REG 1) (REG 3))
  2140. (*MOVE (FRAME 1) (REG 2))
  2141. (*MOVE '0 (REG 1))
  2142. (*LINK CONTINUABLEERROR EXPR 3)
  2143. (*LINKE 1 TEST1 EXPR 1)
  2144. L0003L0004 (FULLWORD 0)
  2145. (STRING "s")
  2146. (*ENTRY TEST EXPR 1)
  2147. (ADJSP (REG ST) 1)
  2148. (MOVE (REG 2) (REG 1))
  2149. (MOVE (REG 1) "L0001")
  2150. (PUSHJ (REG ST) (ENTRY BLDMSG))
  2151. (MOVEM (REG 1) (INDEXED (REG ST) 0))
  2152. (MOVE (REG 1) "L0002")
  2153. (PUSHJ (REG ST) (ENTRY NCONS))
  2154. (MOVE (REG 3) (REG 1))
  2155. (MOVE (REG 2) (INDEXED (REG ST) 0))
  2156. (SETZM (REG 1))
  2157. (PUSHJ (REG ST) (ENTRY CONTINUABLEERROR))
  2158. (ADJSP (REG ST) -1)
  2159. (JRST (ENTRY TEST1))
  2160. L0002 (FULLWORD (MKITEM 10 "L0003"))
  2161. L0001 (FULLWORD (MKITEM 4 "L0004"))
  2162. *** Function `TEST' has been redefined
  2163. *** (TEST): base 374744, length 17 words
  2164. ------------------------------------------------------------
  2165. There is no warning message of any kind. However, when
  2166. the compiled code is loaded and executed, it will also
  2167. create bad data that the garbage collector will barf on.
  2168. RESPONSE (Eric)
  2169. Fixed. See BUG-FIX.LOG
  2170. Date: 27 Jul 1982 1638-PDT
  2171. From: LANAM at HP-HULK
  2172. Subject: break package problem
  2173. Class: Deficiency
  2174. In a break package, if I have a variable i (or q, c, r, m, or e), and
  2175. want to print its value, i need to do
  2176. (eval 'i)
  2177. RESPONSE (Eric):
  2178. Same as above.
  2179. Date: 27 Jul 1982 1629-PDT
  2180. From: LANAM at HP-HULK
  2181. Subject: string "123" => 123 conversion function needed?
  2182. Class: Inquiry
  2183. Is there a function that will convert "123" into the number 123,
  2184. or "12.4e2" into the number "12.4e2" ?
  2185. RESPONSE (Eric):
  2186. A read-from-string function should be implemented. It should
  2187. be quite easy.
  2188. Date: 27 Jul 1982 1439-PDT
  2189. From: LANAM at HP-HULK
  2190. Subject: br
  2191. Class: Inquiry
  2192. If i use br, How do I continue from a break level.
  2193. I tried every letter given by ?.
  2194. 'R' gave an error, something about nil undefined.
  2195. 'c' did something similar.
  2196. 'q' went to top level.
  2197. douglas
  2198. RESPONSE (Eric)
  2199. BR has never worked right. It should be removed along with
  2200. TR in MINI-TRACE
  2201. Date: 27 Jul 1982 1433-PDT
  2202. From: LANAM at HP-HULK
  2203. Subject: untr
  2204. Class: Deficiency
  2205. untr does untrace a function, but unlike the manual says, it does
  2206. not restore the original definition. It leaves a strange lisp function
  2207. around which is similar to the function when it is traced. It would
  2208. be nice if the functions definition was restored to its original place.
  2209. RESPONSE (Eric)
  2210. Yes, UNTR in DEBUG doesn't remove the tracing function, it just
  2211. suppresses the tracing. The function to resore it to its
  2212. original state is RESTR, as described in the manual in section
  2213. 16.10.
  2214. Date: Mon Jul 26 15:10:41 1982
  2215. In-real-life: Tw Cook
  2216. Subject: psl bug?
  2217. Class: Bug
  2218. In the Vax version:
  2219. If you run (help emode) [or any long help] then do a control-C to try and
  2220. interrupt it, you get thrown into a break loop which I have not been able
  2221. to exit from. Is this an error in the help code, rather than
  2222. in psl itself?
  2223. RESPONSE (Eric)
  2224. The interrupt handler on the VAX has some strange behavior I have
  2225. not been able to track down.
  2226. Date: 26 Jul 1982 1520-PDT
  2227. From: LANAM at HP-HULK
  2228. Subject: bad feature : read macros on property list.
  2229. Class: Deficiency
  2230. By having the function associated with read macros stored on the property list,
  2231. there is an inability to have different read macros in different read tables,
  2232. for the same character.
  2233. douglas
  2234. RESPONSE (Eric)
  2235. True. The whole input/output subsystem is very poor, for which
  2236. there's no one to blame but me. See previous comments about the
  2237. token scanner.
  2238. Date: 26 Jul 1982 1155-PDT
  2239. From: Alan Snyder <AS>
  2240. Subject: EMODE bug
  2241. Class: Bug
  2242. EMODE believes that ^Z marks the end of a text file.
  2243. RESPONSE (Eric)
  2244. PSL uses a character as the EOF marker, which happens to be
  2245. ^Z on the Dec-20. Any file with a ^Z in it will not be read
  2246. correctly.
  2247. Date: 24 Jul 1982 1044-PDT
  2248. From: LANAM at HP-HULK
  2249. Subject: scanner read bug with numbers.
  2250. Class: Bug
  2251. 45 lisp> 1.000000000000000000000000000000000000000000000000000
  2252. 0.0
  2253. 46 lisp> 1.222222222222222222222222222222222222222222222222222222
  2254. 1.7682604E33
  2255. 47 lisp> 100000000000000000000000000000000000000000000000
  2256. 0
  2257. 48 lisp> 2222222222222222222222222222222
  2258. 2386092942
  2259. 49 lisp> 1000000000000000000000
  2260. 25209864192
  2261. 50 lisp> 1000000000000
  2262. 3567587328
  2263. douglas
  2264. FIXED (Benson):
  2265. Actually, just a crude patch that should improve things.
  2266. Date: 24 Jul 1982 1043-PDT
  2267. From: LANAM at HP-HULK
  2268. Subject: can prettyprint do better than this with the following please?
  2269. Class: Request
  2270. (DEF
  2271. FRANZ\FACT
  2272. (EXPR LAMBDA (N) (COND ((EQ N 0) 1) (T (* N (FRANZ\FACT (!- N 1)))) )))
  2273. I would like the cond split up into 2 lines (one per clause).
  2274. Date: 23 Jul 1982 1738-PDT
  2275. From: LANAM at HP-HULK
  2276. Subject: apply on macros.
  2277. Class: inquiry
  2278. Is there an apply that works on any function (whether the function is a
  2279. macro or not), and acts the same whether the function was written as
  2280. a macro or an expr or a fexpr? This would be very useful (especially
  2281. with the number of basic functions written as macros in psl).
  2282. RESPONSE (Eric)
  2283. The function you want is EVAL, not APPLY. APPLY is meant to
  2284. be a primitive operation which does no evaluation.
  2285. Date: 23 Jul 1982 1718-PDT
  2286. From: LANAM at HP-HULK
  2287. Subject: how easy is it to redefine the psl reader?
  2288. Class: inquiry
  2289. Is there a table describing the automaton? Or is it hardwired in?
  2290. Is the table accessable in lisp and changable? This would be very
  2291. useful.
  2292. RESPONSE (Eric)
  2293. It is hardwired in. See previous comments on the token scanner.
  2294. Date: 23 Jul 1982 1715-PDT
  2295. From: LANAM at HP-HULK
  2296. Subject: identifiers starting with numbers
  2297. Class: request
  2298. I would like the system to read an atom like 1+ as the atom |1+|, not
  2299. the number 1 and the atom +. How can I teach the system to handle this?
  2300. 1a would be an atom. 1 a would be the number 1 followed by the atom a.
  2301. I need this feature to handle a franz conversion since a basic franz function
  2302. is 1+ and 1-.
  2303. douglas
  2304. RESPONSE (Eric)
  2305. Likewise.
  2306. Date: 23 Jul 1982 1657-PDT
  2307. From: LANAM at HP-HULK
  2308. Subject: identifier bug.
  2309. Class: Deficiency
  2310. Characters and identifiers should be separate entities.
  2311. The character c and the identifier c are not the same
  2312. thing. Currently in the system, it is possible to
  2313. intern a single character-name identifier into a package,
  2314. but it is impossible to type its name back in.
  2315. (setpackage 'franz)
  2316. (localintern 'a)
  2317. => franz\a
  2318. (Setq franz\a 3) will set global\a
  2319. (set (localintern 'a) 3) will set franz\a.
  2320. franz\a is interpreted as global\a.
  2321. I should be able to have my franz\a.
  2322. douglas
  2323. RESPONSE (Eric)
  2324. Single character identifiers are treated very specially in PSL.
  2325. Since packages are not integrated, they cannot be interned in
  2326. packages other than GLOBAL.
  2327. Date: 21 Jul 1982 16:48:33-PDT
  2328. From: hearn@RAND-RELAY at HP-Speech
  2329. Subject: Readch()
  2330. Class: Inquiry, Bug
  2331. Readch does not do case conversion, irrespective of the setting of *raise.
  2332. If *raise is on, shouldn't lower case be converted to upper case?
  2333. RESPONSE:
  2334. Date: 21 Jul 1982 16:48:40-PDT
  2335. From: BENSON@UTAH-20 at HP-Speech
  2336. Subject: Re: Question on readch()
  2337. I've changed the source for ReadCh so that it does case
  2338. conversion on *Raise. This bit of Standard Lisp compatibility
  2339. seems to have slipped through the cracks until now. I guess
  2340. ReadCh just isn't used that much.
  2341. Date: 21 Jul 1982 1549-PDT
  2342. From: Alan Snyder <AS at HP-HULK>
  2343. Subject: UnBoundP
  2344. Class: Documentation deficiency
  2345. The function UnBoundP should be described (or mentioned)
  2346. in the chapter on Identifiers.
  2347. Date: 21 Jul 1982 1422-PDT
  2348. From: Alan Snyder <AS>
  2349. Subject: DEFSTRUCT
  2350. Class: Deficiency
  2351. Using DEFSTRUCT (from NSTRUCT) causes the PSL compiler
  2352. to produce "function redefined" messages. As far as
  2353. the user is concerned, these messages are spurious
  2354. and should be suppressed.
  2355. Date: 21 Jul 1982 1253-PDT
  2356. From: Alan Snyder <AS>
  2357. Subject: "Constant" list structure
  2358. Class: Deficiency, comment
  2359. PSL allows a program to modify "constant" list structure that
  2360. has been created by the compiler in the code space. Since
  2361. this "constant" list structure is not scanned by the garbage
  2362. collector, any pointers inserted into it will not be updated
  2363. when garbage collection occurs, and will henceforth point
  2364. to randomness. PSL should use the address protection provided
  2365. by the hardware to prevent modification of "constant"
  2366. list structure.
  2367. RESPONSE (Benson):
  2368. It is incorrect to modify list structure constants. They are placed
  2369. in code space on the VAX when a dumplisp is done.
  2370. Date: 21 Jul 1982 1127-PDT
  2371. From: Alan Snyder <AS>
  2372. Subject: Unhandled THROW
  2373. Class: Deficiency, documentation bug
  2374. The manual (section 9.4) says that an unhandled THROW is treated
  2375. as an ERROR in the context of the THROW. In fact, what happens
  2376. is that PSL is restarted at top-level. I would prefer that it
  2377. behave as the manual describes.
  2378. RESPONSE (Eric)
  2379. It's very hard to fix with the current implementation of CATCH.
  2380. Date: 16 Jul 1982 0244-PDT
  2381. From: BATALI
  2382. Subject: Compiler bug
  2383. Class: Bug
  2384. Here is an interesting function:
  2385. (de c3 () (cond ((= 3 3) 'yes) (t (= 3 3))))
  2386. Interpreted:
  2387. (c3)
  2388. YES
  2389. Compiled:
  2390. (c3)
  2391. T
  2392. Obviously the compiler is doing something grossly clever, obviously it
  2393. is doing it wrong.
  2394. --John
  2395. Date: 16 Jul 1982 0237-PDT
  2396. From: BATALI
  2397. Subject: Compiler bug
  2398. Class: Bug, deficiency
  2399. The compiler doesn't enforce the restrictions on the placement of
  2400. RETURN statements. (See pages 9.4 and 9.5 of the manual.)
  2401. This function gets an error if interpreted, but returns its argument
  2402. when compiled:
  2403. (de just-return (arg) (return arg))
  2404. Actually, the compiler ought to complain about this one.
  2405. --John
  2406. Date: 16 Jul 1982 0149-PDT
  2407. From: BATALI
  2408. Subject: RPLACHAR (String package)
  2409. Class: Bug, compiler bug
  2410. The function RPLACHAR stores a character into a string. It works fine
  2411. in interpreted code, but when called from a compiled function, we get:
  2412. ***** Undefined function STRINF called from compiled code
  2413. Looking on the property list of RPLACHAR, we notice a CMACRO property
  2414. whose value is:
  2415. (LAMBDA (S I X) (PUTSTRBYT (STRINF S) I X))
  2416. Which seems to be where the call to STRINF comes from.
  2417. Giving RPLACHAR a CMACRO property of nil "fixes" the problem.
  2418. --John
  2419. RESPONSE (Eric)
  2420. Fixed.
  2421. Date: 15 Jul 1982 1258-PDT
  2422. From: Alan Snyder <AS>
  2423. Subject: EMODE C-M-B
  2424. Class: Bug, comment
  2425. C-M-B (backwards s-expr) loses if the corresponding left paren
  2426. is the first character in the buffer: it leaves the cursor
  2427. to the right of the paren. There is explicit code that
  2428. makes this adjustment, and this code is marked in the source
  2429. as being a "KLUDGE!". I don't know why this kludge is there.
  2430. Date: 14 Jul 1982 1404-PDT
  2431. From: Alan Snyder <AS>
  2432. Subject: STRING< (String package)
  2433. Class: Bug
  2434. The function STRING< in STRINGS.LSP has the interesting property
  2435. that both of the following forms evaluate to NIL:
  2436. (string< "b" "aa")
  2437. (string< "aa" "b")
  2438. This anomoly results from the improper testing of string length
  2439. in the function. The other string comparison functions seem
  2440. to have the same bug.
  2441. [This seems to have been fixed.]
  2442. Date: 14 Jul 1982 0759-PDT
  2443. From: Alan Snyder <AS>
  2444. Subject: EMODE bug
  2445. Class: Bug
  2446. I fixed a bug in REFRESH.RED: ClearWindow() previously
  2447. failed to clear the associated virtual screen, causing
  2448. the old contents to later reappear in place of empty
  2449. lines.
  2450. Date: 13 Jul 1982 1739-PDT
  2451. From: Cris Perdue <Perdue at HP-HULK>
  2452. Subject: FIND module
  2453. Class: Documentation deficiency
  2454. The "find" module is not loaded in bare PSL, but the documentation
  2455. does not mention the fact.
  2456. Date: 13 Jul 1982 1144-PDT
  2457. From: Alan Snyder <AS>
  2458. Subject: FindPrefix, FindSuffix -- request
  2459. Class: Request
  2460. FindPrefix and FindSuffix should convert their string argument
  2461. to upper case.
  2462. Date: 13 Jul 1982 1140-PDT
  2463. From: Alan Snyder <AS>
  2464. Subject: PrettyPrint
  2465. Class: Request
  2466. For direct use by a human, it would be better if PRETTYPRINT returned
  2467. NIL, instead of its argument. That way, the user doesn't have to
  2468. see the same object printed twice by the Read/Eval/Print loop.
  2469. Date: 13 Jul 1982 1120-PDT
  2470. From: LANAM
  2471. Subject: Interning with the package system
  2472. Class: Inquiry
  2473. How can I get the package-specifier prefix in a string and concat it
  2474. with other strings, and then intern it.
  2475. I tried, and the package-specifier prefix character got an escape
  2476. character inserted before it.
  2477. RESPONSE (Benson):
  2478. Can't be done.
  2479. Date: 13 Jul 1982 1114-PDT
  2480. From: Alan Snyder <AS>
  2481. Subject: COND
  2482. Class: Deficiency
  2483. COND behaves differently in some cases depending upon whether
  2484. it is interpreted or compiled. An example is provided by
  2485. the following function:
  2486. (de foo (a) (cond ((= a 3) 4) a))
  2487. If interpreted, FOO will return the parameter A unless A is 3.
  2488. If compiled, FOO will return NIL in those same cases.
  2489. The compiled code is shown below:
  2490. ------------------------------------------------------------
  2491. Compiling FOO
  2492. Source:
  2493. (LAMBDA (A) (COND ((= A 3) 4) A))
  2494. ------------------------------------------------------------
  2495. Object:
  2496. (*ENTRY FOO EXPR 1)
  2497. (*ALLOC 0)
  2498. (*JUMPNOTEQ (LABEL G0004) (REG 1) '3)
  2499. (*MOVE '4 (REG 1))
  2500. (*EXIT 0)
  2501. (*LBL (LABEL G0004))
  2502. (*MOVE 'NIL (REG 1))
  2503. (*MOVE 'NIL (REG 1))
  2504. (*EXIT 0)
  2505. *** Function `FOO' has been redefined
  2506. *** (FOO): base 334750, length 7 words
  2507. ------------------------------------------------------------
  2508. Date: 13 Jul 1982 1056-PDT
  2509. From: Alan Snyder <AS>
  2510. Subject: ErrorSet
  2511. Class: Deficiency
  2512. ErrorSet is currently implemented as an EXPR. This fact has the subtle,
  2513. yet critical effect that the form enclosed in the error set can only
  2514. use fluid variables. If you don't declare the variables fluid, the
  2515. code will work interpretively, but will execute incorrectly when compiled.
  2516. No warning is given by the compiler, nor is there any hint in the manual
  2517. that this problem exists.
  2518. Note: the file directory.sl that we sent to Utah fails when compiled for
  2519. this reason. I suggest you send a message to Will about this.
  2520. RESPONSE (Eric)
  2521. Yes, this is also true of CATCH. I have implemented *CATCH which
  2522. is a special form and open-compiles. It will be easy to define
  2523. ERRSET as a macro or special form now.
  2524. Date: 13 Jul 1982 1045-PDT
  2525. From: BATALI
  2526. Subject: Readmacros
  2527. Class: Deficiency, comment
  2528. I've been experimenting with read macros in PSL. None of the
  2529. advertised functions for creating them exist, but the following
  2530. works:
  2531. (defmacro define-read-macro (table id fname)
  2532. `(progn
  2533. (put ',id 'lispreadmacro ',fname)
  2534. (putv ,table (id2int ',id) 11) ;; delimiter
  2535. ',id))
  2536. This does what PutReadMacro is supposed to do (but it doesn't evaluate
  2537. the id or the fname).
  2538. Note how this seems to work: If the reader (actually, the function
  2539. ChannelReadTokenWithHooks) sees a character with code 11 in the
  2540. scantable, it looks for the LISPREADMACRO property on the id
  2541. corresponding to the character. If there is one there, it applys it
  2542. in place of ChannelReadTokenWithHooks to the input channel.
  2543. This would be fine and not very interesting and I certainly wouldn't
  2544. be sending you this long message if it weren't for the fact that this
  2545. scheme means you can't "bind" a scantable and expect different
  2546. behaviour from characters. This is because, although the scantable
  2547. can be bound, the system still looks for the LISPREADMACRO property of
  2548. the id. So it is not possible for a character to have different
  2549. properties on different scantables. Thus:
  2550. (define-read-macro somerandomscantable* !( ChannelTotallyTrashSystem)
  2551. Would lose no matter which scan table is currently in effect.
  2552. We need the ability to pair characters with functions in particular
  2553. scantables only. It is very likely that the PSL people understand
  2554. this, and indeed, the relevant sections of the manual (pp 13.10 - 13.11
  2555. and 13.18) seem to claim that this is what ought to go on.
  2556. --John
  2557. RESPONSE (Eric)
  2558. This was reported earlier (actually later because this is in
  2559. reverse chronological order).
  2560. Date: 13 Jul 1982 1030-PDT
  2561. From: BATALI
  2562. Subject: Unwind-Protect
  2563. Class: Suggestion
  2564. Here is the code for unwind-protect.
  2565. It has the same semantics as the lisp-machine version
  2566. (except in interpreted code that happens to use the
  2567. variable unwind-protect-value). The only problem is
  2568. the problem with catch being an EXPR.
  2569. (defmacro unwind-protect (protected-form . undo-forms)
  2570. `(let ((unwind-protect-value (catch nil ',protected-form)))
  2571. (progn . ,undo-forms)
  2572. (if throwsignal!*
  2573. (throw throwtag!* unwind-protect-value)
  2574. unwind-protect-value)))
  2575. Date: 12 Jul 1982 1836-PDT
  2576. From: BATALI
  2577. Subject: Dipthongs
  2578. Class: Inquiry, documentation deficiency
  2579. What are dipthongs? Why are they neat?
  2580. How do I use them?
  2581. Why aren't they documented?
  2582. Date: 12 Jul 1982 1145-PDT
  2583. From: Cris Perdue <Perdue at HP-HULK>
  2584. Subject: EMODE terminal handling
  2585. Class: Deficiency
  2586. EMODE does not use the terminal driver that corresponds to TOPS-20's
  2587. idea of what the terminal type is. It just uses whatever terminal
  2588. driver is loaded (HP2648A in our case).
  2589. Date: 12 Jul 1982 1102-PDT
  2590. From: Johnson
  2591. Subject: PSL String Package
  2592. Class: Request, remark
  2593. A routine to convert from STRING to INTEGER would be nice.
  2594. The SUBSTRING function is peculiar: its last argument is
  2595. one greater than the index of the last character to be
  2596. extracted, even given that indexes begin at zero!
  2597. Date: 9 Jul 1982 1456-PDT
  2598. From: Alan Snyder <AS>
  2599. Subject: PSL internal bug
  2600. Class: Bug
  2601. The following example demonstrates a bug in PSL. It is the shortest example I
  2602. could find, derived from a real attempt at compiling a file. The offending
  2603. object is a machine instruction, the exact identity of which changes with
  2604. different programs. In this case, it is "CAMN 0(17)". The example is highly
  2605. sensitive to change. For instance, if the function name is changed to "FOO",
  2606. no error is reported. Similarly, no error is reported if any of the loaded
  2607. modules are omitted.
  2608. -------------------------------------------------------------------------------
  2609. @psl:bare-psl
  2610. PSL 3.0, 9-Jun-82
  2611. 1 lisp> (load emode common jsys)
  2612. NIL
  2613. 2 lisp> (faslout "nul:")
  2614. FASLOUT: (DSKIN files) or type in expressions
  2615. When all done execute (FASLEND)
  2616. T
  2617. 3 lisp> (de fooo (name)
  2618. 3 lisp> (let ((n (string-length name)))
  2619. 3 lisp> (cond ((= (indx name (- n 1)) (char >))
  2620. 3 lisp> (concat name "*.*.*"))
  2621. 3 lisp> name)))
  2622. FOOO4 lisp> (faslend)
  2623. *** Init code length is 1
  2624. **FASL**INITCODE**NIL
  2625. 5 lisp> (reclaim)
  2626. ***** Fatal error during garbage collection
  2627. Illegal item in heap at 502462
  2628. -------------------------------------------------------------------------------
  2629. Date: 30 Jul 1982 11:27-PDT (Friday)
  2630. From: John.Tupper <hp-pcd!maddog>
  2631. Subject: bug report
  2632. I have found a bug in the vax version of the psl zpedit.
  2633. When I add something to the end of an s-expression [with the n command]
  2634. the editor changes the old last expression to nil.
  2635. start:
  2636. (LIST (CAR X) (CDR Y))
  2637. execute:
  2638. (N (BOGUS BO GUS))
  2639. finish:
  2640. (LIST (CAR X) NIL (BOGUS BO GUS))
  2641. The same thing happens with the bo command.
  2642. start:
  2643. (LIST (CAR X) (CDR Y))
  2644. execute:
  2645. bo 3
  2646. finish:
  2647. (LIST (CAR X) NIL)
  2648. icky-poo,
  2649. maddog
  2650. Date: 9 Jul 1982 0948-PDT
  2651. From: SOREFF at HP-THOR
  2652. Subject: Structure editor "A" command
  2653. Class: Bug
  2654. I've constructed an example of how the "(a s-expression)" command in the
  2655. structure editor can fail. It seems to fail when one is adding an item after
  2656. the last expression in a list. I've edited the log slightly, removing blank
  2657. lines to make it more compact.
  2658. @take psl
  2659. PSL 3.0, 9-Jun-82
  2660. 1 lisp> (load zpedit)
  2661. NIL
  2662. 2 lisp> (setq a '(b c d e f g))
  2663. (B C D E F G)
  2664. 3 lisp> (editv a)
  2665. EDIT
  2666. -E- p
  2667. (B C D E F G)
  2668. -E- 3 p
  2669. D
  2670. -E- (a z) 0 p
  2671. (B C D (Z) E F G)
  2672. -E- 7 p (a y) 0 p
  2673. G
  2674. (B C D (Z) E F NIL (Y))
  2675. -E- pp
  2676. (B C D (Z) E F NIL (Y))
  2677. -E- 8 p
  2678. (Y)
  2679. -E- (a x)
  2680. -E- p
  2681. ... NIL (X))
  2682. -E- ^
  2683. -E- p
  2684. (B C D (Z) E F NIL NIL (X))
  2685. -E- ok
  2686. A
  2687. 4 lisp> (quit)
  2688. Date: 9 Jul 1982 0938-PDT
  2689. From: Alan Snyder <AS>
  2690. Subject: DOLIST
  2691. Class: Bug
  2692. DOLIST (in PU:COMMON.SL) fails to bind the loop variable.
  2693. Date: 8 Jul 1982 1447-PDT
  2694. From: Alan Snyder <AS>
  2695. Subject: EMODE C-M-B
  2696. Class: Bug, deficiency
  2697. EMODE C-M-B (backward sexpr) gets excessively confused by comments.
  2698. For example, when at the end of the following text
  2699. (setq a b)
  2700. %%%%%%%%%%
  2701. C-M-B will stop at the "b".
  2702. (Probably other commands have similar problems.)
  2703. I think the reason for this is that '%' (the comment character)
  2704. is ignored by scan-word by not by skip-blanks.
  2705. Thus in the implementation of C-M-B, skip-blanks skips back
  2706. to the '%', and then skip-word skips back to the 'b'.
  2707. The probable fix would be to change the scan table.
  2708. Date: 7 Jul 1982 1651-PDT
  2709. From: SOREFF at HP-THOR
  2710. Subject: Structure editor "N" command
  2711. Class: Bug
  2712. I think I've run into a bug in the PSL structure editor. The "N" command,
  2713. which appears to be supposed to append an s-expression on the end of the
  2714. current list, does that, but also changes the expression just before the
  2715. added one to NIL.
  2716. @login guest
  2717. Job 5 on TTY152 7-Jul-82 4:41PM
  2718. Previous LOGIN: 7-Jul-82 4:40PM
  2719. @take <psl>logical-names
  2720. @r <psl>bare-psl
  2721. PSL 3.0, 9-Jun-82
  2722. 1 lisp> (load zpede^F^Fit)
  2723. ***** `ZPED^FIT' load module not found {99}
  2724. Break loop
  2725. 2 lisp break>> q
  2726. 3 lisp> (load zpedit)
  2727. NIL
  2728. 4 lisp> (setq tst '(a b c d e f g))
  2729. (A B C D E F G)
  2730. 5 lisp> (editv tst)
  2731. EDIT
  2732. -E- p
  2733. (A B C D E F G)
  2734. -E- (-3 z) p
  2735. (A B Z C D E F G)
  2736. -E- (n x) p
  2737. (A B Z C D E F NIL X)
  2738. -E- ok
  2739. TST
  2740. 6 lisp> (quit)
  2741. Date: 7 Jul 1982 0929-PDT
  2742. From: Alan Snyder <AS>
  2743. Subject: NTH and PNTH
  2744. Class: Bug
  2745. The function NTH produces obscure error messages if the
  2746. index argument is out of range. The error messages are
  2747. obscure because (1) they refer to the function PNTH,
  2748. which the user should have no need to know about, and
  2749. (2) they report an index which is different than the
  2750. value given in the call to NTH.
  2751. [8/4/82 - This has been fixed.]
  2752. A similar comment applies to PNTH: the error message
  2753. reports an incorrect index value.
  2754. [8/4/82 - This hasn't.]
  2755. Date: 7 Jul 1982 0852-PDT
  2756. From: Cris Perdue <Perdue at HP-HULK>
  2757. Subject: IN and EVIN
  2758. Class: Documentation deficiency, bug
  2759. IN and EVIN, available from RLISP, are not defined as functions.
  2760. IN even has an entry in the manual, though there is no description
  2761. of what it does (page 31.12). These should be available from LISP.
  2762. Date: 6 Jul 1982 1212-PDT
  2763. From: Cris Perdue <Perdue at HP-HULK>
  2764. Subject: RDS, WRS
  2765. Class: Complaint
  2766. RDS and WRS are virtually guaranteed to cause lossage concerning
  2767. I/O channels, especially since there is no UNWIND-PROTECT in PSL.
  2768. Date: 6 Jul 1982 1209-PDT
  2769. From: Cris Perdue <Perdue at HP-HULK>
  2770. Subject: Debugging
  2771. Class: Deficiency
  2772. There are various deficiencies concerned with debugging.
  2773. There is no genuine backtrace that uses the saved variable bindings,
  2774. even for interpreted code.
  2775. The error handling system is so portable that it evidently cannot
  2776. use the DEC-20 APR trap mechanism, etc..
  2777. It is difficult to set up an interpreted version of a subsystem that
  2778. is usually compiled. (This is a separate issue from the capabilities
  2779. of the system internals.) In particular, facilities for requiring
  2780. certain files to be present when a procedure is loaded for interpretive
  2781. execution don't exist. Also functions for loading interpreted and
  2782. compiled code are distinct, not to mention the additional distinct
  2783. function for loading "system" files (files in pl:).
  2784. Date: 6 Jul 1982 1041-PDT
  2785. From: Johnson
  2786. Subject: DSKIN
  2787. Class: Inquiry
  2788. (DskIn "foo.lsp") prints the values of all the forms evaluated in
  2789. foo.lsp. Is there a silent version of DskIn?
  2790. RESPONSE (Benson):
  2791. Yes: LAPIN.
  2792. Date: 2 Jul 1982 2335-PDT
  2793. From: Cris Perdue <Perdue at HP-HULK>
  2794. Subject: DEC-20 REENTER and CONTINUE
  2795. To: psl at HP-HULK
  2796. On the DEC-20, ^C followed by REENTER or CONTINUE screws up
  2797. badly for some reason. I would think they would just not
  2798. be available commands.
  2799. Date: 2 Jul 1982 2334-PDT
  2800. From: Cris Perdue <Perdue at HP-HULK>
  2801. Subject: Debugger user interface
  2802. Class: Bug
  2803. The "break loop" does not establish echoing as it is entered.
  2804. Date: 2 Jul 1982 2329-PDT
  2805. From: Cris Perdue <Perdue at HP-HULK>
  2806. Subject: FINDPREFIX and FINDSUFFIX
  2807. Class: Documentation deficiency, bug
  2808. These are not loaded with the USEFUL library and there whereabouts
  2809. is not documented in the manual, though they themselves are.
  2810. They appear in pu:find.red.
  2811. Date: 1 Jul 1982 1406-PDT
  2812. From: Kendzierski (Nancy)
  2813. Subject: CRLF variable
  2814. Class: Bug, documentation bug
  2815. The manual (page 20.2, section 20.3.1 "TOPS-20 User Level
  2816. Interface") states that "a global variable, CRLF, is provided
  2817. with the <CR><LF> string. Attempts to use this global variable
  2818. result in a CRLF is an unbound id {99} message from psl.
  2819. RESPONSE (Benson):
  2820. Loading the EXEC module defines CRLF.
  2821. Date: 30 Jun 1982 1057-PDT
  2822. From: Cris Perdue <Perdue at HP-HULK>
  2823. Subject: "FLAGS"
  2824. Class: Inquiry, deficiency
  2825. In Chapter 12 of the manual the RLISP "On" and "Off" constructs are
  2826. discussed briefly. It appears that LISP users should not just
  2827. set the corresponding global variables, because On and Off may
  2828. have additional side effects. If this is true, there should be
  2829. some easy way of doing On and Off in LISP.
  2830. Date: 28 Jun 1982 1746-PDT
  2831. From: Cris Perdue <Perdue at HP-HULK>
  2832. Subject: C-M-rubout in EMODE
  2833. Class: Bug
  2834. Sometimes (always?) goes into an infinite loop.
  2835. Date: 28 Jun 1982 1714-PDT
  2836. From: Kendzierski (Nancy)
  2837. Subject: PSL logical names
  2838. Class: Inquiry
  2839. How come p20d: as <psl.20-dist> isn't defined in the
  2840. <psl>logical-names.cmd file? It is listed in the manual on page
  2841. 22.2.
  2842. Date: 6/23/82
  2843. From: Kendzierski
  2844. Subject: !*SAVENAMES
  2845. Where: Page 16.18
  2846. Class: Inquiry
  2847. Why is !*SAVENAMES initially NIL?
  2848. Date: 6/23/82
  2849. From: Kendzierski
  2850. Subject: RCRef
  2851. Where: Page 18.3
  2852. Class: Inquiry
  2853. Is RCRef only available in RLisp? Why? or How is it used in
  2854. Lisp?
  2855. From: Kendzierski
  2856. Date: 6/23/82
  2857. Subject: !*LOSE
  2858. Where: Page 16.18
  2859. Class: Documentation deficiency
  2860. !*LOSE -- what is this? It's constantly referred to, but never
  2861. defined/explained
  2862. Date: 6/23/82
  2863. From: Kendzierski
  2864. Subject: #+
  2865. Where: Page 18.3
  2866. Class: Inquiry
  2867. Why doesn't #+ accept three arguments? Because the third is
  2868. optional?
  2869. Date: 6/23/82
  2870. From: Kendzierski
  2871. Subject: ANYREG
  2872. Class: Inquiry
  2873. If the most common adjust function removes ANYREG to eliminate
  2874. looking for it in patterns, why have it?
  2875. Date: 6/11/82
  2876. From: AS
  2877. Subject: I/O channels
  2878. Class: improvement, section 13.1, page 13.1
  2879. Why is a channel an integer instead of something more abstact?
  2880. If you allow I/O to strings and lists, then why limit the maximum
  2881. number of channels?
  2882. Date: 6/11/82
  2883. From: AS
  2884. Re: improvement, section 13.2, page 13.3
  2885. Using global variables to initialize channel functions when a
  2886. channel is OPENed is poor. It would be better to define a
  2887. separate OPEN-SPECIAL that takes additional arguments, or use a
  2888. keyword init list a la Zetalisp. Similar comments about misuse
  2889. of global variables apply elsewhere, e.g. DUMPLISP.
  2890. Date: 6/11/82
  2891. From: AS
  2892. Re: manual, section 13.6, page 13.13
  2893. PRINTF is an expr that takes a variable number of arguments. If
  2894. this is possible then you should explain how users can do it.
  2895. Date: 6/11/82
  2896. From: AS
  2897. Subject: LISP vs. RLISP syntax
  2898. Class: Inquiry, bug
  2899. Where: manual, section 16.5, page 16.13
  2900. Can EMBEDding be done using Lisp syntax? If so, how? Can STUBs
  2901. be defined using Lisp syntax? If so, how?
  2902. Date: 6/11/82
  2903. From: AS
  2904. Subject: EDITF
  2905. Class: Bug, inquiry
  2906. Where: manual, section 17.5, page 17.11
  2907. I was not able to achieve any effect by giving extra command
  2908. arguments to EDITF. In any case, COMS:forms is not a defined
  2909. type; it should be either [COMS:form] or COMS:form-list.
  2910. Date: 6/11/82
  2911. From: AS
  2912. Subject: FIELD, GETFIELD
  2913. Class: Documentation deficiency
  2914. Re: manual, section 21.2.8, page 21.7
  2915. Is the field accessing function FIELD or GETFIELD? Both names
  2916. are used in the manual. Neither name is defined in our PSL.
  2917. Date: 6/25/82
  2918. From: Filman
  2919. Subject: READ, Interactive input
  2920. Class: Feature request
  2921. It would be very nice to have some way of telling PSL to consider
  2922. all open parens to be closed, like right square bracket ("]") in
  2923. some LISPs.
  2924. It would also be nice not to get an error message whenever one
  2925. types excess right parentheses.
  2926. Date: 6/25
  2927. From: Perdue, Griss, AS
  2928. Subject: Common-LISP compatibility library
  2929. Class: Documentation bug
  2930. The Common-LISP compatibility library has been split into 2
  2931. parts: a compatible part which redefines no PSL functions, and
  2932. an incompatible part that does. The incompatible part is
  2933. PL:CLCOMP.
  2934. Date: 18 Jun 1982
  2935. From: SOREFF at HP-THOR
  2936. Subject: Module loaded test
  2937. Is there any predicate which checks to see if an atom is the name
  2938. of a load module which has been loaded?
  2939. RESPONSE (Perdue):
  2940. No, but it is currently the practice to use the expression
  2941. "(memq <atom> options*)" to determine this.
  2942. Date: 18 Jun 1982 1424-PDT
  2943. From: Cris Perdue <Perdue at HP-HULK>
  2944. Subject: Char macro
  2945. The char macro is not well documented and the use of <Ctrl-G> is
  2946. almost certainly not correct.
  2947. Date: 18 Jun 1982 1425-PDT
  2948. From: Cris Perdue <Perdue at HP-HULK>
  2949. Subject: PLAP: logical name
  2950. Class: Distribution of PSL
  2951. The name PLAP: is used in the full-restore.ctl file, but is not
  2952. a standard logical name. It should be PL: instead.
  2953. RESPONSE (Griss):
  2954. The file full-restore.ctl is not documented, wasn't intended for
  2955. distribution. Something will be done to make things consistent.
  2956. Date: 18 Jun 1982 1429-PDT
  2957. From: Cris Perdue <Perdue at HP-HULK>
  2958. Subject: Batch control files
  2959. Class: Distribution of PSL
  2960. The batch control files use the standard logical names. For
  2961. this to work properly, users who rebuild PSL should have a
  2962. BATCH.CMD file that TAKEs the logical-names command file. This
  2963. approach is cleaner than having mentions of the actual name of
  2964. the PSL directory, if not others, in each batch control file.
  2965. Date: 18 Jun 1982 1431-PDT
  2966. From: Cris Perdue <Perdue at HP-HULK>
  2967. Subject: Building new directories
  2968. Class: Documentation bug
  2969. The DEC-20 release notes suggest the use of the standard logical
  2970. names as arguments to the TOPS-20 BUILD command. Our version of
  2971. BUILD does not accept a logical name for the building of a NEW
  2972. directory (it's OK for old ones, although that feature may be
  2973. a local addition to the code).
  2974. Date: 6/16/82
  2975. From: Alan Snyder <AS>
  2976. Subject: PSL compiler bug; RETURN
  2977. Class: Bug
  2978. I have discovered what appears to be a bug in the PSL compiler.
  2979. When you use (RETURN) with no argument, the compiler generates
  2980. a "call" to the function NIL, which is undefined. The interpreter
  2981. has no problem. For example:
  2982. 16 June 1982 Alan Snyder
  2983. ----------------------------------------
  2984. Compiling TEST
  2985. Source:
  2986. (LAMBDA NIL
  2987. (PROG NIL
  2988. (RETURN))
  2989. 3)
  2990. ----------------------------------------
  2991. Object:
  2992. (*ENTRY TEST EXPR 0)
  2993. (*ALLOC 0)
  2994. (*LINK NIL EXPR 0)
  2995. (*MOVE '3 (REG 1))
  2996. (*EXIT 0)
  2997. *** Function `TEST' has been redefined
  2998. *** (TEST): base 326164, length 3 words
  2999. ----------------------------------------
  3000. RESPONSE (csp):
  3001. Definitely a bug. Not hard to fix, the solution awaits a
  3002. decision about just what error checking there should be on
  3003. RETURN.
  3004. RESPONSE (Benson):
  3005. The compiler now gives a warning message.
  3006. From: Lanam
  3007. Subject: Packages
  3008. Class: Bugs, Information
  3009. Doug uncovered the following:
  3010. The current package is never changed as a module is loaded.
  3011. This means that if one changes the current package, it should be
  3012. reset as soon as possible. Some functions are "autoloaded". Be
  3013. aware of this when changing the current package.
  3014. Date: 5/27
  3015. From: Lanam
  3016. Class: Bug
  3017. asin (n) where n > 1 or n < -1 gives the error
  3018. that REDERR is an undefined function.
  3019. Date: 5/27
  3020. From: Lanam
  3021. Class: Deficiency
  3022. I can not find any method of general type checking or
  3023. type coersion.
  3024. Date: 5/27
  3025. From: Lanam
  3026. Class: Bug
  3027. (close) with no arguments says nil is an undefined
  3028. function.
  3029. Date: 5/27
  3030. From: Lanam
  3031. Class: Note
  3032. (car nil) and (cdr nil) is illegal. I would prefer
  3033. (car nil) => nil and (cdr nil) => nil.
  3034. Date: 5/27
  3035. From: Lanam
  3036. Subject: Reader
  3037. Class: Bug
  3038. Typing an extra ")" to the top level interpreter
  3039. gives you an error message. It would be nicer if it was just
  3040. ignored.
  3041. Date: 5/27
  3042. From: Lanam
  3043. Subject: Getd, Putd
  3044. Class: Comment
  3045. It would be nice if (putd new-function-name (getd old-function
  3046. name)) worked. At present the best I can see is
  3047. (let ((x (getd ..)))
  3048. (putd new (car x) (cdr x)))
  3049. Date: 5/27
  3050. From: Lanam
  3051. Subject: Lexprs
  3052. Class: Feature request
  3053. Need a package that allows lexpr and (arg n) inside
  3054. lexprs.
  3055. Date: 5/27
  3056. From: Lanam
  3057. Subject: Defun
  3058. Class: Deficiency
  3059. Defun in common lisp compatibility only handles
  3060. exprs, not macros, or fexprs.
  3061. Date: 5/27
  3062. From: Lanam
  3063. Subject: Function/special definition
  3064. Class: Bug
  3065. Cannot have the names of fexprs or macros or nexprs,
  3066. be the name of a special variable also.
  3067. Date: 5/27
  3068. From: Lanam
  3069. Subject: Char function
  3070. Class: Documentation bug
  3071. There are two char functions described in the manual. The one
  3072. mentioned as being loaded with the Common-LISP strings package is
  3073. not loaded in with the strings package.
  3074. Date: 5/24
  3075. From: Goldstein
  3076. Subject: Argument checking
  3077. Class: Clarification
  3078. Is it the case that PSL does not check for functions that receive
  3079. the wrong number of arguments? Is it able to do so (for
  3080. interpretive & for compiled code)? It would be nice if it had
  3081. such an error checking mode.
  3082. Date: 5/24
  3083. From: Goldstein
  3084. Subject: Section 8.7
  3085. Class: Documentation deficiency
  3086. The arguments to the string functions are not defined.
  3087. Date: 5/24
  3088. From: Goldstein
  3089. Subject: Globals, fluids; Section 10.4
  3090. Class: Bug, Documentation bug
  3091. The manual claims that global variables cannot be rebound.
  3092. However, no error occured for: ((lambda (throwtag*) 1) 1) which
  3093. rebinds this global??
  3094. Date: 5/24
  3095. From: Goldstein
  3096. Subject: Closures, Section 10.3.1
  3097. Class: Question
  3098. What is the timetable for implementing closures. Altbind is
  3099. unavailable at our site.
  3100. Date: 5/24
  3101. From: Goldstein
  3102. Subject: Global variables; Section 12.2
  3103. The description of the globals is frequently missing or too
  3104. cryptic.
  3105. Date: 5/24
  3106. From: Goldstein
  3107. Subject: Lisp Rlisp compatibility
  3108. Class: Deficiency
  3109. If RLISP is only a parser for Lisp, then there should be
  3110. functions: On, Off, In, Out. Why don't these functions exist.
  3111. Ditto for <=, >=, etc.
  3112. RESPONSE (Griss, as told to Perdue):
  3113. This situation is basically historical. The problems with On,
  3114. Off, In, Out, etc. are due to the RLISP preprocessor doing some
  3115. semantics as well as parsing. It is gradually being cleaned up.
  3116. Date: 5/23
  3117. From: Goldstein
  3118. Subject: Definition of Equal, sec 4.2
  3119. Class: Documentation deficiency
  3120. Comment about open-compiling that begins "... Otherwise, ..." is
  3121. confusing. The text says that "This is not true of EQ and Eqn".
  3122. What is not true. EQ is supposed to be open-compiled as well.
  3123. Date: 5/23
  3124. From: Goldstein
  3125. Subject: Definition of EqCar, sec 4.2
  3126. Class: Deficiency, Inquiry
  3127. EqCar(U,V) does not complain if (Car U) is illegal, e.g. (EQCAR
  3128. "ab" V). (1) Does the definition check, or is some random thing
  3129. happening; and (2) should it report an error if (CAR U) is
  3130. illegal.
  3131. RESPONSE (Perdue):
  3132. 1) The definition checks that U is pairp.
  3133. 2) It evidently should not report an error if U is not pairp.
  3134. Date: 5/23
  3135. From: Goldstein
  3136. Subject: Definition of Null, sec 4.2
  3137. Class: Manual, Inquiry
  3138. Is it reasonable to place documentation of Null in 4.2.2, Is Null
  3139. a predicate for testing Type of an Object?
  3140. Date: 5/23
  3141. From: Goldstein
  3142. Subject: Definition of Intern and NewId, sec 4.2
  3143. Class: Manual deficiency
  3144. Interning a newId does not lose NewId's property list, if no previous
  3145. ID with this print name has been interned, e.g.
  3146. (setq x (newId "ABC")) %No atom with this print name exists.
  3147. (put x 'prop 'val)
  3148. (intern x)
  3149. (get 'ABC 'prop) --> val
  3150. Manual could be clearer in this regard.
  3151. Date: 5/23
  3152. From: Goldstein
  3153. Subject: Arithmetic functions
  3154. Class: Manual, Inconsistency
  3155. MACRO rather than NEXPR is used for the multi-argument functions
  3156. like PLUS. What is the rationale for this.
  3157. Date: 5/23
  3158. From: Goldstein
  3159. Subject: Help function
  3160. Class: Inconsistency
  3161. (help top-loop) and (help toploop) are not the same. The former
  3162. just prints the file. The latter executes a function that prints
  3163. the file, then prints the current bindings of the reader,
  3164. printer, etc. This might be confusing to a novice user.
  3165. Perhaps, the file should be toploop.hlp (without the - sign).
  3166. Date: 5/22
  3167. From: Goldstein
  3168. Subject: Backtrace
  3169. Class: Improvement
  3170. It would be nice if BACKTRACE did not print the functions that it
  3171. itself put on the stack, since they are artifacts of its use and
  3172. not relevant to debugging.
  3173. Date: 5/22
  3174. From: Goldstein
  3175. Subject: EMODE
  3176. Class: Improvement
  3177. (1) bind backspace to the rubout handler.
  3178. (2) Commands like read and write file should use the default file
  3179. associated with the current buffer.
  3180. (3) Auto save and Auto fill are two important additions.
  3181. (4) Write should say that the file was written.
  3182. Date: 5/22
  3183. From: Goldstein
  3184. Subject: HELP function
  3185. Class: Improvement
  3186. It would be nice if the HELP function also informed the user of
  3187. some dynamic properties, e.g. HELP <module> should let the user
  3188. know if the module is loaded.
  3189. Date: 5/22
  3190. From: Goldstein
  3191. Subject: HELP function
  3192. Class: Documentation deficiency
  3193. (HELP) states that a certain set of help files are available. In
  3194. fact, there is a larger set corresponding to thse described in
  3195. the manual.
  3196. Date: 5/22
  3197. From: Goldstein
  3198. Subject: EMACS function
  3199. Class: Bug
  3200. (EMACS) tries to run <EDITORS>EMACS.EXE. The HP HULK has no
  3201. directory <EDITORS>.
  3202. Date: 5/22
  3203. From: Goldstein
  3204. Subject: MMFORK variable
  3205. Class: Consistency
  3206. The manual describes the convention that globals have the suffix
  3207. !*. But, the MM command uses the variable MMFORK with no suffix.
  3208. Date: 5/22
  3209. From: Goldstein
  3210. Subject: HELP function
  3211. Class: Bug
  3212. In RLISP mode, HELP FOR; losses because the parser
  3213. attempts to parse FOR unless FOR appears in quotes.
  3214. Date: 5/22
  3215. From: Goldstein
  3216. Subject: External, Internal, Exported; section 21.2
  3217. Class: Documentation bug
  3218. In the example, EXPORTED ... appears, but it is not documented in
  3219. the preceding text. Only external, internal are documented.
  3220. Date: 5/22
  3221. From: Goldstein
  3222. Subject: SYSLISP; p21.3
  3223. Class: Documentation deficiency
  3224. The manual does not explain how to reformulate a LISP function
  3225. into a SYSLISP function when in LISP mode, i.e. is there a some
  3226. kind of reformulator that converts calls to plus to calls to
  3227. wplus2.
  3228. Date: 5/22
  3229. From: Goldstein
  3230. Subject: *TIME variable
  3231. Class: Bug
  3232. Executing (setq !*Time T) causes an error which caused system to
  3233. begin prompting with line number 1. This only happened the first
  3234. time, and did not repeat when !*Time was toggled. Repeatable in
  3235. a fresh PSL. Does not occur in RLISP mode, only in LISP mode.
  3236. Date: 5/8
  3237. From: Goldstein
  3238. Subject: How to make a dribble file
  3239. Class: Inquiry
  3240. It appears that PSL cannot write to two channels at the same
  3241. time, thus preventing a dribble file.
  3242. RESPONSE (Griss):
  3243. Redefine PRINT functions to write to two channels or define your
  3244. own special channel with a writechannel function that writes to
  3245. two other channels.
  3246. Date: 5/8
  3247. From: Goldstein
  3248. Subject: TOPS-20, DOCMDS, CMDS
  3249. Class: Documentation deficiency, Bug
  3250. These functions do not seemed to be defined.
  3251. RESPONSE (Griss):
  3252. Help file erroneously mentions exec0. Exec, MM and EMACS are
  3253. autoloading. The rest are obtained by LOAD EXEC;.
  3254. Date: 5/8
  3255. From: Goldstein
  3256. Subject: Prettyprinting
  3257. Class: Inquiry
  3258. Is there a prettyprinter?
  3259. RESPONSE (Griss):
  3260. Yes, the function Prettyprint.
  3261. Date: 5/8
  3262. From: Goldstein
  3263. Subject: PPF
  3264. Class: Bugs
  3265. Debug module has the function PPF which apparently pretty
  3266. prints in RLISP format. PPF tries to print according to
  3267. the currently loaded parser. Unfortunately, it detects whats
  3268. loaded by looking for the function RPRINT, which is autoloading.
  3269. Also, ppf and plist lose when the fn or plist is not defined.
  3270. RESPONSE (Griss):
  3271. True.
  3272. Date: 5/8
  3273. From: Goldstein
  3274. Subject: Interrupt characters
  3275. Class: Documentation deficiency
  3276. There don't seem to be any interrupt characters, e.g. control-g
  3277. to return to toplevel. (An interrupt package is mentioned, but
  3278. not cited as complete.).
  3279. RESPONSE (Griss):
  3280. Interrupts exist (Load Interrupt), but not documented.
  3281. Date: 5/8
  3282. From: Goldstein
  3283. Subject: LAPOUT, LAPEND
  3284. Class: Obsolete, Inquiry
  3285. The functions LAPOUT, and LAPEND do not seem to exist. Possibly
  3286. a renaming has taken place since the 18 January manual.
  3287. RESPONSE (Griss):
  3288. FASLOUT and FASLEND are the correct functions.
  3289. Date: 5/8
  3290. From: Goldstein
  3291. Subject: Saving a PSL
  3292. Class: Inquiry, obsolete
  3293. I tried SAVESYSTEM, followed by the TOPS-20 SAVE command.
  3294. However, when I tried to run the resulting .exe file, I got the
  3295. complaint "No starting address". How is a PSL saved and
  3296. restarted. (Manual, p.14.1)
  3297. RESPONSE (Griss):
  3298. The file on the tape is still incorrect. Patch needed to handle
  3299. tops 20 release.
  3300. RESOLUTION:
  3301. Apparently fixed.
  3302. Date: 5/8
  3303. From: Goldstein
  3304. Subject: HELP
  3305. Class: Documentation bug, documentation deficiency
  3306. The manual claims that HELP of no arguments prints a message. It
  3307. works in Lisp mode as (HELP) and in RLISP mode as HELP; but
  3308. HELP(); loses??
  3309. RESPONSE (Griss):
  3310. help() still loses. help mini-editor requires ! before -.
  3311. Date: 5/8
  3312. From: Goldstein
  3313. Subject: Rubout handler
  3314. Class: Inquiry
  3315. The Rubout handler is line-oriented, and apparently one cannot
  3316. rubout accross cr's. Is this true?
  3317. RESPONSE (Griss):
  3318. Yes.
  3319. Date: 5/8
  3320. From: Goldstein
  3321. Subject: PSL memory usage
  3322. Class: Inquiry
  3323. What is the size of various PSL spaces.
  3324. Date: 5/8
  3325. From: Goldstein
  3326. Subject: PSL memory usage
  3327. Class: Feature request
  3328. One would like an INQUIR function that prints out PSL memory
  3329. usage statistics.
  3330. Date: 5/8
  3331. From: Goldstein
  3332. Subject: HELP facility
  3333. Class: Documentation bug; Bug
  3334. Note that some help files are incorrect; eg HELP editor refers to
  3335. minieditor, not mini-editor