From: Seebs on
On 2009-12-06, Ben Bacarisse <ben.usenet(a)bsb.me.uk> wrote:
> Another oddity is that I could swear to using a UNIX with a file
> creation time. I am certain I never used V3 UNIX (my first use was
> in 1978 just before V7 came out) so I wonder if I am fantasising. Did
> early BSD have one? Did System III re-introduce it?

Are you sure it was actually creation time, rather than inode-change time?
The latter was sometimes the same thing as creation time, but not always,
and since it was "st_ctime", people often called it a creation time.

-s
--
Copyright 2009, all wrongs reversed. Peter Seebach / usenet-nospam(a)seebs.net
http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
From: Ben Bacarisse on
Seebs <usenet-nospam(a)seebs.net> writes:

> On 2009-12-06, Ben Bacarisse <ben.usenet(a)bsb.me.uk> wrote:
>> Another oddity is that I could swear to using a UNIX with a file
>> creation time. I am certain I never used V3 UNIX (my first use was
>> in 1978 just before V7 came out) so I wonder if I am fantasising. Did
>> early BSD have one? Did System III re-introduce it?
>
> Are you sure it was actually creation time, rather than inode-change time?
> The latter was sometimes the same thing as creation time, but not always,
> and since it was "st_ctime", people often called it a creation time.

Too long ago for me to be sure what is was, but the recollection was
strong enough to make me look at the 1978 Bell labs. paper and the
wording there is definitely about creation time.

It's certainly not the name. I've never assumed the st_ctime was
creation time.

--
Ben.
From: Randal L. Schwartz on
>>>>> "Ben" == Ben Bacarisse <ben.usenet(a)bsb.me.uk> writes:

Ben> Too long ago for me to be sure what is was, but the recollection was
Ben> strong enough to make me look at the 1978 Bell labs. paper and the
Ben> wording there is definitely about creation time.

The Unix V6 that I used in 1977 had inode change time, not create time.
I believe Unix V7 was the same.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn(a)stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion
From: Ben Bacarisse on
merlyn(a)stonehenge.com (Randal L. Schwartz) writes:

>>>>>> "Ben" == Ben Bacarisse <ben.usenet(a)bsb.me.uk> writes:
>
> Ben> Too long ago for me to be sure what is was, but the recollection was
> Ben> strong enough to make me look at the 1978 Bell labs. paper and the
> Ben> wording there is definitely about creation time.
>
> The Unix V6 that I used in 1977 had inode change time, not create time.
> I believe Unix V7 was the same.

Yes indeed. That's been confirmed by looking at the sources. V3 had
a create time (at least that is what the sources say the field
denotes) but that is much earlier than the 1978 paper that states that
the inode stores a create time.

Since it is not an essential feature, I suppose it is possible that
the paper describes the field as a create time despite it having
ceased to be one several revisions previously.

--
Ben.
From: Sven Mascheck on
Ben Bacarisse wrote:

> Another oddity is that I could swear to using a UNIX with a file
> creation time. I am certain I never used V3 UNIX (my first use was
> in 1978 just before V7 came out) so I wonder if I am fantasising. Did
> early BSD have one? Did System III re-introduce it?

I couldn't find any hints on SysIII, and I also tried on SIMH.
But there seems to be a documentation bug on 2.8BSD ff., which is still
present in http://minnie.tuhs.org/UnixTree/2.11BSD-UFS/inode.h.html
There is a 'creation time' in <sys/lstat.h>

struct lstat
{
[...]
time_t ls_atime; /* access time */
time_t ls_mtime; /* mod time */
time_t ls_ctime; /* creation time */
};

and in <sys/ino.h>

/*
* Inode structure as it appears on
* a disk block.
*/
struct dinode
{
[...]
time_t di_atime; /* time last accessed */
time_t di_mtime; /* time last modified */
time_t di_ctime; /* time created */
};

and lstat(2) fills the former with the latter.
However, the macros in <sys/inode.h> for related operations on inodes are

#define IUPD 02 /* file has been modified */
#define IACC 04 /* inode access time to be updated */
[...]
#define ICHG 0100 /* inode has been changed */

with code e.g. in sys/iget.c

iupdat(ip, ta, tm, [...])
[...]
if(ip->i_flag&IACC)
dp->di_atime = *ta;
if(ip->i_flag&IUPD)
dp->di_mtime = *tm;
if(ip->i_flag&ICHG)
dp->di_ctime = time;

That's why it looks like a documentation bug to me.

I also had a look at the PWB, but apart from yet another
documentation bug in TOOLS/v7 (examine an unmounted V7 FS),
I couldn't find anything.