Number: 671 Date: 11-Apr-84 18':46':58 Submitter: masinter.PA Source: masinter.PA Subject: rationalize file package information about file location Assigned To: Masinter Attn: Release Status: Fixed In/By: Problem Type: Design - UI Impact: Moderate Difficulty: Moderate Frequency: Priority: Hopefully System: Programming Environment Subsystem: File Package Machine: Disk: Lisp Version: 8-Apr Source Files: Microcode Version: Memory Size: File Server: Server Software Version: Disposition: ' ["Masinter" " 1-Sep-84 14':00':26" Assigned% To': Attn': Status':(Wish->Fixed)] Description: Currently, the internal representation of where the ' ''external'' source of a file is is pretty ad-hoc. For example, when you ' LOAD a file, it pays attention to the filename in the FILECREATED ' expression. In fact, this turns out to be a non feature in environments ' like Interlisp-D where users tend to move files from one place to ' another quite frequently.' ' I think the right way of handling this is to remove the pretense that ' the system can keep track of where the file was originally made as a ' meaningful concept. Rather, it should only pay attention to where it ' FOUND the file. To ensure that this is adhered to, we would change the ' file name in FILECREATED to be the generic (internal) file name rather ' than the external name. Secondly, we would make LOAD and LOADFROM etc. ' explicitly store in some kind of a-list database the correspondence ' between internal external etc. files. (This is an off the cuff design ' but it is the simplest.) For example, one list might be just a list of ' ''load events''': (internalname externalname filetype loadtype time) in ' reverse order of occurrence. Then we would ensure that those packages ' which were looking up some information about a file would just look it ' up in the ''load event'' database with the appropriate functional ' interface. This would simplify a lot of internal hackery in the file ' package, and also allow us to rationalize what happens when you make a ' file on the floppy, copy it to disk, compile it on the disk, move both ' to the file server, etc. ' ' It would mean tht files wouldn''t have {phylum} built in and the system ' wouldn''t be looking for it all the time. We could remove the hack from ' FINDFILE and every place that was looking at the FILEDATE property.' If, for performance reasons, the A-list becomes to onerous, we could ' build a cache. This discussion belongs in the one about ''moving files'' ' that somebody submitted.' Workaround: Test Case: Edit-By: Masinter Edit-Date: 1-Sep-84 14':00':26