Remix.run Logo
pico303 6 days ago

I love how the initial commit is "48 years ago."

JdeBP 6 days ago | parent | next [-]

If you enjoyed the datestamps on that repository, you will definitely enjoy the datestamps on this one:

* https://github.com/dspinellis/unix-history-repo

You'll also enjoy the contributors list.

user3939382 6 days ago | parent | next [-]

I recently diffed Unix 10 and NetBSD to see if or how many common actual byte-for-byte original code I could find. I found some.

xeviousrr 6 days ago | parent [-]

Of course, because if you have two similar applications, some of the code will likely be the same if the codebase is large enough.

user3939382 6 days ago | parent | next [-]

Yes it’s due to architecture. Apparently because of the 4.4BSD-Lite lineage it wouldn’t possess the original source with those exceptions.

6 days ago | parent | prev [-]
[deleted]
bee_rider 6 days ago | parent | prev | next [-]

Man, imagine a 2.5k line kernel. You could probably fully understand how part of the computer works.

userbinator 6 days ago | parent | next [-]

2.5 lines of J, K, or some other APL-family language?

https://news.ycombinator.com/item?id=13590065

cout 6 days ago | parent | prev | next [-]

How do you write half a line of code?

mmmlinux 6 days ago | parent | next [-]

Do you know about half button presses?

pxx 5 days ago | parent [-]

An A press is an A press. You can't say it's only a half

bee_rider 5 days ago | parent [-]

I can’t remember which generation of console it was, but IIRC some video game controllers made a big deal of their special buttons that could tell the difference between partial and full presses.

This lead to the phrase “pressure sensitive buttons” being bandied about, which is kind of funny (what is a pressure insensitive button? An immobile lump I guess).

bee_rider 6 days ago | parent | prev | next [-]

Odd, I guess my autocorrect got rid of the k. Thanks! Luckily the edit window was still open.

mrheosuper 4 days ago | parent | prev [-]

\cr in \cr\lf system

jmbwell 6 days ago | parent | prev [-]

Used to be, with a scope, you could watch it working

dramm 6 days ago | parent | prev [-]

Aw darn :-(

Contributors: There was an error generating this graph

msgilligan 6 days ago | parent | prev | next [-]

Although that date should really only apply to the `m6502.asm` file. I think for a historical archive accuracy should be important. For example when was it licensed under the MIT license, I assume fairly recently. The file date should reflect that.

achrono 6 days ago | parent | prev | next [-]

I love even more how it's a .md file from well before Markdown even existed.

perching_aix 6 days ago | parent | next [-]

I bet it being a Git repo must straight up feel otherwordly then.

It's just a nice touch.

prerok 6 days ago | parent [-]

No, skynet went to the past and gave git and md to microsoft, which then proceeded to create the doc format from the md as a starting point :P

nodesocket 6 days ago | parent | prev [-]

Way before git was even released in 2005.

ezoe 6 days ago | parent | prev | next [-]

I wish they set the author to the appropriate person. I assume Bill Gates.

canucker2016 5 days ago | parent [-]

Bill Gates wrote the initial BASIC interpreter using Paul Allen's PDP-10 assembler macros so they could run the generated interpreter on a PDP-10, while also extracting a native binary for the targeted CPU/OEM hardware.

from Paul Allen's Idea Man biography:

  ... It gathered steam with the release of the 6502 chip from MOS Technology at an unheard-of $25. For each new microprocessor, I created a new set of development tools on the PDP-10, while Ric [Weiland, 2nd new-hire, 4th employee] helped with the BASIC interpreter rewrites. 
Bill Gates was involved with the business-side of the company at this point, trying to sign new clients for the BASIC interpreter.

So Ric Weiland would have done much of the 6502 BASIC interpreter.

leecoursey 5 days ago | parent [-]

Lines 6913-6918:

   AUTTXT: ACRLF
   12 ; ANOTHER LINE FEED.
   DT"WRITTEN "
   DT"BY WEILAND & GATES"
   ACRLF
   0>
canucker2016 5 days ago | parent [-]

for thoroughness, from https://www.pagetable.com/?p=43#comment-1033 (comment supposedly by Bill Gates)

  Rick Weiland and I (Bill Gates) wrote the 6502 BASIC.

  I put the WAIT command in.

  Mark Chamberlin and I wrote the 6800 BASIC.

Earlier in that blog post:

  Now who wrote the 6502 version? The KIM-1 BASIC manual credits Gates, Allen and Davidoff, the original authors of the 8080 version, but it might only be left over from the manual for the 8080 version. Davidoff, who worked for Microsoft in the summers of 1975 and 1977, had not been there when BASIC 6502 was written in the summer of 1976, but he probably changed the 6 digit floating point code into the 9 digit version that is first found in BASIC 6502 1.1 (KIM-1, 1977).

  The ROM of the 1977/1978 Ohio Superboard II Model 500/600 (6 digit BASIC 1.0) credits RICHARD W. WEILAND, and the 1977 9 digit KIM-1 BASIC 1.1 as well as the 1981 Atari Microsoft BASIC 2.7 credit “WEILAND & GATES”. Ric Weiland was the second Microsoft employee. These credits, again, were easter eggs: While they were clearly visible when looking at the ROM dump, they were only printed when the user entered “A” when BASIC asked for the memory size.

  According to apple2history.org, Marc McDonald (employee number 1) wrote the 6502 version, but it is more likely that McDonald wrote the 6800 simulator and Weiland ported 8080 BASIC to the 6800 and then McDonald adapted the 6800 simulator to the 6502 and Weiland wrote the 6502 BASIC.

  This and the hidden credits in version 1.0 of 6502 BASIC suggest that Weiland was the main author of 6502 BASIC. Gates is added to the hidden credits in the 1.1 version, so Gates probably contributed to the 1.1 update..
xattt 6 days ago | parent | prev | next [-]

Are GitHub commit timestamps stored as Unix epoch time? If so, could we get similar timestamp accuracy when working with historical source code from systems like UNIVAC?

prerok 6 days ago | parent | next [-]

Yes, somebody could doctor those commits with the right timestamp so that we would get a clear historical progression.

It's doable, but would have to doctored, there was no git then, obviously.

badc0ffee 6 days ago | parent | prev [-]

Even if it was a 32-bit timestamp, you could still express dates back to December 13, 1901.

dgl 6 days ago | parent [-]

It's not; the git format defines it as a positive integer, see git help commit:

    DATE FORMATS
       The GIT_AUTHOR_DATE and GIT_COMMITTER_DATE environment variables support the following date formats:

       Git internal format
           It is <unix-timestamp> <time-zone-offset>, where <unix-timestamp> is the number of seconds since the UNIX epoch.
Changing a commit's timestamp is as simple as:

    $ git commit --amend --date='1970-01-01T00:00:00' --reset-author
    [main 6e1d001] test
     Date: Thu Jan 1 00:00:00 1970 +0000
     1 file changed, 1 insertion(+)
But dates before 1970 really don't work (in some cases it gives "fatal: invalid date format"):

    TZ=UTC git commit --amend --date='1969-12-31T23:59:59Z' --reset-author
    [main 47e54f0] test
     Date: Mon Dec 31 23:59:59 2012 +0000
     1 file changed, 1 insertion(+)
badc0ffee 6 days ago | parent [-]

Ah, too bad. TIL.

shanselman 6 days ago | parent | prev | next [-]

Thanks!

qingcharles 6 days ago | parent [-]

Scott, you should do this :)

https://news.ycombinator.com/item?id=45120440

commandlinefan 6 days ago | parent | prev | next [-]

I noticed that right away, too - I didn't know you could force backdates of git history like that.

mananaysiempre 6 days ago | parent | next [-]

The GIT_AUTHOR_DATE and GIT_COMMITTER_DATE environment variables[1] are what you use for things like that. (The former can also be overridden by the --date= option to git commit, and there’s also various situational stuff like --reset-author for git commit or --reset-author-date and --committer-date-is-author-date for git rebase. No, that last one is not parody.)

[1] https://git-scm.com/docs/git-commit#_commit_information

Tor3 6 days ago | parent | prev | next [-]

I have source I wrote using SCCS as version control, which later was moved to CVS, preserving the commits as well as commit dates, and at some point moved to Git, again preserving commits and dates. So some of my personal Git repositories have commit entries going back to the late eighties.

For any ordinary commit you can simply include "--date=" with the 'git commit' command, e.g. -m "This is an old change" --date="2001-03-02 18:05:47"

pavon 6 days ago | parent [-]

I have definitely not done this to fake TDD-ordered commits. Nope not me.

int_19h 5 days ago | parent | prev | next [-]

You might find this repo interesting:

https://github.com/dspinellis/unix-history-repo

meesles 6 days ago | parent | prev [-]

All git data can be modified

antod 5 days ago | parent | prev | next [-]

At this rate, we could get AmigaBASIC released in about 8yrs.

mandeepj 6 days ago | parent | prev [-]

< redacted >

kaszanka 6 days ago | parent [-]

Anyone can do this by changing the author and committer date. Take a look at https://github.com/dspinellis/unix-history-repo, linked in the comments here, for example.