10 ms·
Continuous Unix commit history from 1970 until today
- sydthrowaway 4y agoWho holds the canonical unix repo?
- kps 4y agoThere is no canonical Unix repository. Unix (1969) predates source version control (1972).
- throw0101a 4y ago> IBM's OS/360 IEBUPDTE software update tool dates back to 1962, arguably a precursor to version control system tools. A full system designed for source code control was started in 1972, Source Code Control System for the same system (OS/360). Source Code Control System's introduction, having been published on December 4, 1975, historically implied it was the first deliberate revision control system.[4] RCS followed just after,[5] with its networked version Concurrent Versions System. The next generation after Concurrent Versions System was dominated by Subversion,[6] followed by the rise of distributed revision control tools such as Git.[7] * https://en.wikipedia.org/wiki/Version_control#History https://en.wikipedia.org/wiki/Version_control#History
- sydthrowaway 4y agoWho owns the modern unix copyright?
- haunter 4y agoThe Open Group (Intel, IBM, Fujitsu, Huawei, Philips etc) https://www.opengroup.org/about-us/who-we-are https://www.opengroup.org/about-us/who-we-are https://www.opengroup.org/trademarks https://www.opengroup.org/trademarks Together with IEEE they are the ones giving the POSIX certification http://get.posixcertified.ieee.org/certification_guide.html http://get.posixcertified.ieee.org/certification_guide.html
- pdw 4y agoNo, they own the trademark. I think the copyright of the old Unix code ended up with Novell in the 90s, so it would now be owned by Micro Focus.
- dgrin91 4y agoI like how Github shows it as infinity commits
- ollien 4y agoYeah, is that a bug? lol
- mywittyname 4y agoSounds like a overflow bug prevention mechanism. There are an infinite number of infinities, so surely one of them is the maximum possible commits in github.
- kps 4y agoGit runs into problems with more than 2¹⁶⁰ commits in a repository.
- deathanatos 4y agoWhat's up with that? There only seem to be 4, on HEAD?
- caslon 4y agoCheck the other branches.
- kevincox 4y agoI always expected that the commit count was for that branch. I guess it is global?
- deathanatos 4y agoI saw the other branches when I made the comment. The commit count is — usually — the commit count from the currently selected ref. E.g., on a sample repo, "master" displays as 29,474 commits. "master^" displays as 29,473.
- ChrisMarshallNY 4y agoThat's a lot of work! A true labor of love. Thanks!
- justsomeguy123 4y agoGource Visualization video which points to https://www.youtube.com/watch?v=S7JB0mhrGCQ https://www.youtube.com/watch?v=S7JB0mhrGCQ does not work anymore. > Video unavailable > This video is no longer available because the YouTube account associated with this video has been terminated.
- danuker 4y agoWe need to solve this problem. YouTube is free to delete any account, even just to cut costs.
- alar44 4y ago
- cmeacham98 4y agoI'm not sure what the problem to be solved here is. It doesn't seem reasonable to force YouTube (or any other free video host) to indefinitely store and host content. If you want something to stay around on the internet it has to take up space on somebody's drive and bandwidth on somebody's network connection - and for sufficiently large content like video you're going to have to do that yourself or convince/pay someone you trust to do so on your behalf.
- wolverine876 4y agoI assume Github, the host of the OP, can do the same. How many people have entrusted their life's work to it?
- vandahm 4y agoYou don't see this every day: https://github.com/dspinellis/unix-history-repo/blob/Research-PDP7-Snapshot-Development/lcase.b https://github.com/dspinellis/unix-history-repo/blob/Researc... Is this B, or is it BCPL? What would have compiled this code back in the day?
- swatcoder 4y agoI don’t know, but I love how clearly and concisely it expresses what would later become ubiquitous as do-while and continue. That’s poetry. Nice find.
- stingraycharles 4y agoI love how thin the layer above assembly is: without knowing B, is my interpretation correct that this function effectively “inherits” the stack of the calling function? In other words, rather than passing function arguments and let the compiler deal with it, you’re supposed to push the string you want to lcase onto the top of the stack? Reminds me a lot of writing my own compiler/assembler in university, where it’s expected that all this happens automatically nowadays.
- anyfoo 4y agoHmm, don’t think so. The function does not operate on a string, it seems to read a character using read() and write it back, transformed, using write(). Given that the function is named main, it’s probably the top level function anyway (from the programmer’s point of view, often the OS actually calls into a different function that is part of the language runtime, e.g. _start, which in turn calls main eventually, but that is usually hidden from the programmer).
- messe 4y agoNo, that's not correct. It reads the string from standard input. A C translation would look like this: main() { int ch; while ((ch = read()) != 4) { if (ch > 0100 && ch < 0133) ch = ch + 040; if (ch == 015) continue; if (ch == 014) continue; if (ch == 011) { ch = 040040; write(040040); write(040040); } write(ch); } } A more modern C version would look like: #include <stdio.h> int main(void) { int ch; while ((ch = getchar()) != -1) { if (ch > 0100 && ch < 0133) ch = ch + 040; if (ch == 015) continue; if (ch == 014) continue; // No need to handle tabstop specially putchar(ch); } }
- roansh 4y agoHow would you feel if your commits become publicly available for everyone to see forever?
- alar44 4y agoFine. You?
- ARandomerDude 4y agoThis is the point of GitHub. Also Unix was(/is) a masterwork of craftsmanship. Struggling to see a problem here.
- wbl 4y agoEh, I think the select and poll system calls are both kludges, the sockets API inferior to P9 dial, gethostbyname deeply problematic. Then there are the ways threads interact badly with many classic functions, the way signal handlers play messily with everything else. Don't even ask about X.
- ARandomerDude 4y agoAn important question: Could I have thought of something at that time, with all the same constraints and without the benefit of hindsight, that would have been better? For the vast -- and I mean vast -- majority of us, the answer to that question is a resounding No!.
- wbl 4y agoAt what time? Many of the issues are the result of evolution and bolting things on vs. redesigning things as conditions changed.
- midislack 4y agoX is fantastic and amazing, not just for the time, even now. Not switching.
- 4y ago
- projektfu 4y agoI love Spinellis' work on teaching reading of code.
- PAPPPmAc 4y agoDiomidis Spinellis' "Code Reading: The Open Source Perspective" is a thing I've wanted but didn't know existed, browsing it now to hopefully recommend, thanks for the pointer. I work with computer engineering students and often tell them that reading more code would be good for them but have never had a great generic but concrete suggestion for how to get there. The second best programming class I took in college was a graduate elective and the _only_ code-reading-based course I took or knew of being offered: a guided safari in the Linux kernel sources where we had to make targeted changes for the assignments. FTR, the best programming class was set up as "new language in a different paradigm every few weeks, write one small program that suits it and one small program that doesn't," not incidentally taught by the same person ( https://en.wikipedia.org/wiki/Raphael_Finkel https://en.wikipedia.org/wiki/Raphael_Finkel ).
- ChrisArchitect 4y agoYou don't see this every day..... But you do see it every year for the last number of years Some previous discussion from 3 years ago: https://news.ycombinator.com/item?id=19429249 https://news.ycombinator.com/item?id=19429249
- mprovost 4y agoThis repo has been super useful as I've been writing a book that teaches Rust by rewriting classic Unix utilities. I settled on using the 4.4 BSD source as a base but having the whole history available has been really interesting. Recently I came across a bug in the 4.4 version of cat that wasn't fixed until a few years later (in FreeBSD).
- danschuller 4y agoWe have all this commit data at scale, it really feels like there are interesting stories or lessons that could be extracted from them. There's kind of the obvious operational stuff like: What are the properties of commits that introduce bugs compared to those that don't. Which type of commits are rarely changed and which are more likely to be changed over time. But what I'd find even more interesting is some insight into how we solve problems and how well we're able to solve them. I guess part of the puzzle is missing - the external requirements / environment that give rise to some number of the commits.
- DSpinellis 4y agoThere is a series of conferences MSR — Mining Software Repositories — with research papers looking at such questions. http://www.msrconf.org/ http://www.msrconf.org/ In fact, I presented this work in the 2015 MSR conference.
- ninefathom 4y agoAnybody feel brave enough to try merging in SVR4? https://github.com/dspinellis/unix-history-repo/blob/Research-V7-Snapshot-Development/usr/src/cmd/sh/blok.c https://github.com/dspinellis/unix-history-repo/blob/Researc... https://github.com/illumos/illumos-gate/blob/9ecd05bdc59e4a1091c51ce68cce2028d5ba6fd1/usr/src/cmd/sh/blok.c https://github.com/illumos/illumos-gate/blob/9ecd05bdc59e4a1...
- smartineng 4y agoDoes any one is able to fully bootstrappe it now ?
- relaxing 4y agoSo what’s the oldest line of code currently active? What’s the longest-lived line of code in the repo?