Continuous Unix commit history from 1970 until today
github.com
github.com
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?
That’s poetry. Nice find.
Reminds me a lot of writing my own compiler/assembler in university, where it’s expected that all this happens automatically nowadays.
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);
}
}Running B was a challenge on the PDP-7 but easier on the PDP-11, apparently, because of the increase of memory size. The linked document has an interesting history about compiling B to threaded code, a form of interpreted code, and then to machine language. B never really made the jump to a full-fledged citizen because it quickly got replaced by C, although BCPL was popular for a long time.
EDIT: ops, the "auto" here means automatic allocation.
did old keyboards not have curly braces or what?
int main() <%
printf("hello, world\n");
return 0;
%>> Video unavailable > This video is no longer available because the YouTube account associated with this video has been terminated.
YouTube is free to delete any account, even just to cut costs.
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.
Something like Mastodon/Pleroma.
Also there is a solution already, it's called "The Internet". Upload your content far and wide.
"Terminated" is a pretty harsh wording for an account that was willingly deleted.
When you resign nobody says you got terminated. You are terminated when you are fired.
But you do see it every year for the last number of years
Some previous discussion from 3 years ago:
https://github.com/dspinellis/unix-history-repo/blob/Researc...
https://github.com/illumos/illumos-gate/blob/9ecd05bdc59e4a1...
There are an infinite number of infinities, so surely one of them is the maximum possible commits in github.
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.
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 ).
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.
A true labor of love.
Thanks!
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.
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!.
Finally, the people who created this repo are some of the primary authors of the code. They wanted this to be in the open.
Rob Pike spoke out against the effort, calling it “distasteful.” https://inbox.vuxu.org/tuhs/CAKzdPgw0Vz8UFbK7c_Jr+RHGMssSxN=...
Nonetheless, in the end every password was cracked. Some highlights:
Steve Bourne: “bourne”
Dennis Ritchie: “dmac”
Kirk McKusick: “foobar”
Brian Kernighan: “/.,/.,”
Ken Thompson: “p/q2-q4!” (a chess move)
Bill Joy: cracked but not posted due to Rob Pike’s comments, but it contained a control character
What’s the longest-lived line of code in the repo?
Unix (1969) predates source version control (1972).
https://www.opengroup.org/about-us/who-we-are
https://www.opengroup.org/trademarks
Together with IEEE they are the ones giving the POSIX certification http://get.posixcertified.ieee.org/certification_guide.html
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.