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


Problem Type: Design - UI

Impact: Moderate

Difficulty: Moderate


Priority: Hopefully

System: Programming Environment

Subsystem: File Package



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.'


Test Case: 

Edit-By: Masinter

Edit-Date:  1-Sep-84 14':00':26