Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.unix.shell Subject: Re: Early history of Bash Date: Sun, 26 Jan 2025 15:43:44 -0800 Organization: None to speak of Lines: 63 Message-ID: <87zfjd9m4v.fsf@nosuchdomain.example.com> References: <87msfebbkf.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Mon, 27 Jan 2025 00:43:49 +0100 (CET) Injection-Info: dont-email.me; posting-host="df2892f8d3f5a816ff37ef3545b28f91"; logging-data="277746"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/E3rhd5MOWnOxYAsLnh2t2" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:sJh7iBxCwxN1YEXikbmMEVJshKA= sha1:XYFmO0WDRbZjdOdMsI6eimNYeA8= Bytes: 3789 Christian Weisgerber writes: > On 2025-01-26, Keith Thompson wrote: >> This is obviously deliberate, and I see similar code (without the >> posixly_correct condition) in bash 1.05 from 1990. >> >> According to Wikipedia, POSIX began in 1988, and the initial >> release of bash was in 1989, just a year later. Obviously the >> authors thought that expanding literal '~'s in $PATH was a good >> idea at the time, and it's not suprising that they didn't pay much >> attention to POSIX. It would have been nice if they'd documented it. > > In recent years, I've been wondering about the early history of > Bash, but cursory searches came up empty. Versions before 1.14 > have even been expunged from ftp.gnu.org. > > My vague impression is that Bash started as an attempt to combine > csh and sh, but it's not clear to me how soon people noticed the > infeasibility and pivoted to a sh-based model. Or maybe that's not > at all how it happened. > > If anybody has pointers to the early history or old source code, > I'd love to know. The oldest version I've found is 1.05. bash is maintained in a git repo at git://git.savannah.gnu.org/bash.git but the earliest commit is : commit 726f63884db0132f01745f1fb4465e6621088ccf Author: Jari Aalto Date: 1996-08-26 18:22:31 +0000 Imported from ../bash-1.14.7.tar.gz. so it doesn't have the full history. I downloaded a tarball for bash 1.05 from oldlinux.org. It's been reorganized since then and moved to GitHub. https://github.com/oldlinux-web/oldlinux-files/tree/master/gnu/bash has 1.05, 1.13.5, and 1.14, from 1990, 1993, and 1994, respectively. The direct download URLs are: https://github.com/oldlinux-web/oldlinux-files/raw/refs/heads/master/gnu/bash/bash-1.05-linux.tar.gz https://github.com/oldlinux-web/oldlinux-files/raw/refs/heads/master/gnu/bash/bash-1.13.5.tar.gz https://github.com/oldlinux-web/oldlinux-files/raw/refs/heads/master/gnu/bash/bash-1.14.tar.gz bash-1.05-linux.tar.gz isn't just the original bash 1.05 sources. The tarball includes object and executable files from a build apparently done in 2004 for a Linux i386 system. There are also some changes to some of the source files to let it build on Linux. I've just created a GitHub repo that includes the original bash-1.05.tar.gz, which doesn't appear to be available elsewhere : https://github.com/Keith-S-Thompson/old-bash -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */