diff --git a/assemblers/lineage.txt b/assemblers/lineage.txt new file mode 100644 index 00000000..0ad23770 --- /dev/null +++ b/assemblers/lineage.txt @@ -0,0 +1,263 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Assemblers lineage (x86 assemblers mostly) +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/Comparison_of_assemblers +#src: wikipedia articles on different programs +# at least the ones listed in the box at +# https://en.wikipedia.org/wiki/Template:X86_assembly_topics +#src: infoworld magazine ads found via Google + +#part of a compiler suite: +# - as/ld/cc (but actually there was an 'as' long before a 'cc' and even 'ld') +# - 5a/5l/5cc +# - gas/GNU ld/gcc +# - llvm-mc/lld/llvm-clang +# - asxxxx/aslink/sdcc (but independent originally of sdcc) +# - as86/ld86/bcc +# - em_ass/led/ack +# - MASM (?)/Linker?/C? (there was probably MASM long before C compiler) +# - TASM (?)/Turbo Linker/Turbo Pascal (but TASM long after?) +# - !!fbas/fbld??/fbcc!! (not in diagram) + +#part of native-targeted: +# - Go/2a/5a/... (5l) +# - Free Pascal? +# - SBCL? + +#-------------------------------------------------------------------------- +# Pre-Historical (DEC) +#-------------------------------------------------------------------------- + +#IBM 701 first symbolic assembler? +# 1952 +#src: https://researcher.watson.ibm.com/researcher/view_page.php?id=7209 +# by Nathaniel Rochester + +#A-0 first assembler/linker? +# 1952 +#src: https://en.wikipedia.org/wiki/A-0_System + +#Tons of assemblers already in 1957 +#src:http://shape-of-code.coding-guidelines.com/2017/05/21/evidence-for-28-possible-compilers-in-1957/ +# they use 'assembler' for 'linker/loader', and 'compiler' for 'assembler' :) + + +PAL11R + 1971 + #DEC-provided assembler for PDP11 + #manual: https://archive.org/details/bitsavers_decpdp11do11RAssemblerProgrammersManualMay71_2572677 +MACRO-11 + 1975 + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +# Ken thompson had a PDP-7 assembler (without any linker, and generated a.out) + +*as + 1971 + PAL11R + SY:2 +#as UNIX v1 +#... +#as UNIX v7 (still in assembly) + +#-------------------------------------------------------------------------- +# Open source (GNU) +#-------------------------------------------------------------------------- + +*gas + as + 1986 + SY:2 +gas 2.0 + 1993 + # use BFD and started ELF support + +*as86 + 1991 + SY:2 + #date: copyright in informagic/bin86/.../as.c says 1992, but I've found some + # as86 binaries dating back to 1991, and some of its files dates back to 1989 + # wikipedia article comparing assemblers says 88 + + +*ASxxxx + 1989 + #date: see copyright + #src: http://web.mit.edu/~6.121j/arch/i386_rhel4/versions/sdcc/2.5.0/share/sdcc/doc/aslink/asxhtm.html + # says derived from DECUS from PDP11 assembler :) + # part of SDCC now + PAL11R +ASxxxx 1.5 + 1990 + #src: http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/decus/110918.html +ASxxxx 2.0 + 1998 + #src: http://web.mit.edu/~6.121j/arch/i386_rhel4/versions/sdcc/2.5.0/share/sdcc/doc/aslink/asxhtm.html +ASxxxx 5.10 + 2014 + +sdas + ASxxxx + # sdcc's assembler + +ASMXXX + ASxxxx 5.10 + # on github + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*2a/5a/8a/... + 1993 + as + SY:1 + # there was no 5a yet in 1993 (there was 2a/6a/8a/ka/va/za) +Inferno assemblers + 1996 + # mostly unchanged I think (contains also an asm/ written in Limbo) +*Go assemblers + 2009 + # originally still in C, but rewritten in Go in 2016? + + +5a in OCaml + 2015 + 2a/5a/8a/... + +#-------------------------------------------------------------------------- +# Educational +#-------------------------------------------------------------------------- + +*mixal + 1968 + # not really an assembler at that time, mixal by ESR first is 1998 +*mmixal + 1999 + SY:2 +#GNU mdk +# 2002 + +fbas + 1996 + # from fbcc + +s86 + 1993 + # from subc + +*yasp + 2013 + # web-based with IDE and debugger, great for teaching + +spim + 1990 + #date: see copyright + #weird mix assembler/simulator + +pep/8 assembler + +#-------------------------------------------------------------------------- +# Post-2000 +#-------------------------------------------------------------------------- + +*LLVM-mc + 2010 + SY:2 + +*WebAssembly + 2017 + +#-------------------------------------------------------------------------- +# Industry (mostly x86) +#-------------------------------------------------------------------------- + +# Intel provided assembler? mother of all? + +A86 + 1980 + SY:6 + #date: shareware, not exact date +A386 + 1995 + SY:6 + #date: not exact date + + +*MASM + 1981 + SY:6 +#Visual Studio + # 19?? + +*TASM + 1989 + MASM + SY:6 + #date: ad in infoworld Sep12 1988 though, but wikipedia says 1989 + # it followed Turbo Pascal/Prolog/C, not the reverse. + +*WASM + 1991 + MASM + SY:6 + # Watcom + + +MPW assembler +# Mac? Programmer's workbench + + +*ACK em_ass + 1987 + SY:6 +ACK em_ass open source + 2003 + + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +*NASM + 1996 + MASM,TASM + SY:2 + +*YASM + 2002 + NASM + # history provided here: http://yasm.tortall.net/Download.html + # modular assembler (can be used as a library by compilers), retargatable + +*FASM + 2000 + NASM + # has IDE + +*vasm + 2002 + gas + +#-------------------------------------------------------------------------- +# Exotic +#-------------------------------------------------------------------------- +ARB Assembly language + # for openGL, shader, ancestor of GLSL + +HLA + +#-------------------------------------------------------------------------- +# TODO? +#-------------------------------------------------------------------------- + +GoAsm + 2001 + # not related to golang diff --git a/builders/lineage.txt b/builders/lineage.txt new file mode 100644 index 00000000..c6063654 --- /dev/null +++ b/builders/lineage.txt @@ -0,0 +1,359 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Build systems lineage +#-------------------------------------------------------------------------- + +#src: wikipedia articles on different programs +#src: copyright dates in source files +#src: http://software.wikia.com/wiki/List_of_build_automation_software + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +*Make + 1976 + SY:2 +# in UNIX PWB + +#-------------------------------------------------------------------------- +# Open source +#-------------------------------------------------------------------------- + +*GNU Make + 1988 + Make + SY:2 + # copyright in make.texinfo in first commit of make git repo + # Changelog says 3.03 in 1988 already + +remake + GNU Make + 2005 + # fork of GNU Make 3.80 with better error reporting/tracing/etc. + +*pmake + 1988 + Make + # aka BSD Make + # copyright in pmake-1.0 from infomagic says 1988 +bmake + #NetBSD +bsdmake + + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*mk + Make + 1987 + SY:1 + +mk in Go + 2013 + mk + # independent developer (not Tom Duff), 2285 LOC + +mk in OCaml + 2017 + mk + +#-------------------------------------------------------------------------- +# Java (and XML) +#-------------------------------------------------------------------------- + +*Ant + 2000 + Make + SY:2 + # from Tomcat project, to replace the proprietary make they were using + +Ivy + 2004 + # transitive package manager, just that + +*Maven + 2004 + Ant,Ivy + # still XML but introduced external dependencies (dependency management) + # relies on conventions over configuration (state only exceptions) +Maven 2.0 + 2005 +Maven 3.0 + 2010 + +*Gradle + 2007 + Ant,Maven + # no more XML, use Groovy-based DSL + +NAnt + 2001 + Ant + # for .NET, Not Ant + +#-------------------------------------------------------------------------- +# Distributed compilation +#-------------------------------------------------------------------------- + +distcc + +ccache + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +*Microsoft nmake + 1991 + Make + SY:6 + # found reference to nmake in old inforworld + +*MSBuild + 2007 + SY:6 + Microsoft nmake,Ant + # part of .NET, to build managed code + # found article talking about msbuild at 2007 + # bundled originally with .NET but then with Visual Studio 2013 +*MSBuild open source + 2015 + +Borland Make + +Sun DevPro make + 1986 + +MPW make + 1986 + SY:6 + + +Perforce Jam + # was open source + +SparkBuild + Make,Microsoft nmake + + +#-------------------------------------------------------------------------- +# Recent +#-------------------------------------------------------------------------- + +*Ninja + Make + 2012 + + +#-------------------------------------------------------------------------- +# Meta +#-------------------------------------------------------------------------- +configure + 1984 + #first program to use a configure script was Larry Wall's rn in 1984 + +metaconfig + # used in Perl + +*Autoconf + 1991 + configure,metaconfig + + +*Automake + 1996 + GNU Make,Autoconf + #autotools: autconf,automake,aclocal,libtool + # written in Perl + +*imake + 1987 + Make + # built on top of cpp and make; replaced by autotools at Xorg X11R7.0 + + +*Cmake + 2000 + Make,Autoconf + SY:2 + # inspired by pcmaker, that was supporting VTK + + +Meson + 2013 + Cmake,Ninja + #Cmake G Ninja does the same job than Meson now + # use ccache; Python DSL. strongly typed! + # XOrg is supposed to switch to Meson + + + +Premake + +qmake + # by trolltech +Qbs + 2012 + +mkmk + 1993 + # ask a series of questions and then generate Makefile (very small) + +smake + Make,Automake + # in Brew + +xmake + Make + # in Lua, found in Brew + +aap + 2004 + Make + # in Brew + +#-------------------------------------------------------------------------- +# Integrated +#-------------------------------------------------------------------------- + +Microsoft PWB + #Programmer Workbench + +Visual Studio + SY:6 + +MPW + +CodeWarrior + +Xcode + SY:6 + +xctool + +#-------------------------------------------------------------------------- +# Continuous build +#-------------------------------------------------------------------------- +Jenkins + +Hudson + +buildbot + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +Cons + 1999 + Autoconf,Automake + # written in Perl +SCons + # written in Python + +Waf + SCons + # used in KDE community, but now they use CMake + + +Tup + 2009 + +redo + # by author of qmail? + + + +icmake + Make + # use C to express deps, a bit like in Rake/Sbt/...? + +Glenn Fowler nmake + +#-------------------------------------------------------------------------- +# Lang-specific +#-------------------------------------------------------------------------- + +# Scala + +sbt + Maven + +# ruby + +Rake + 2003 + SCons,Make + # copyright in rake.rb says 2003 + +# ocaml + +omake + +jenga + +jbuilder + +# haskell + +Cabal + +Shake + 2012 + # see paper about Shake in ICFP'12 + +Stack + 2015 + +# Clojure + +Leiningen + +# Rust + +Cargo + +# Javascript + +#-------------------------------------------------------------------------- +# Google-like +#-------------------------------------------------------------------------- + +*Blaze + 2009 + SY:6 + # not exact date, but I've found some google tech talk about it in 2010 + # distcc? +*Bazel + 2015 + +*GYP + 2009 + Blaze + # copyright says 2009 + +GN + 2013 + GYP,Ninja + # chromium switched from GYP to GN recently + + +*Buck + 2013 + Blaze + # by facebook + +Pants + Blaze + # by twitter + +#-------------------------------------------------------------------------- +# TODO classify +#-------------------------------------------------------------------------- + +Please.build diff --git a/compilers/lineage.txt b/compilers/lineage.txt new file mode 100644 index 00000000..83b8c4b9 --- /dev/null +++ b/compilers/lineage.txt @@ -0,0 +1,12 @@ +cc +pcc +gcc + +DJGPP + +Borland C + +Microsoft C + +QuickC + diff --git a/debuggers/lineage.txt b/debuggers/lineage.txt new file mode 100644 index 00000000..4737effe --- /dev/null +++ b/debuggers/lineage.txt @@ -0,0 +1,12 @@ + +*Turbo Debugger + 1988 + # ad in infoworld for Turbo Debugger 1.0 sep 12 1998 + +*Microsoft CodeView + 1985 + # ad for Turbo compares itself with CodeView 2.2 + +D86 +D386 +# from A386 guy diff --git a/docs/latex/language-study.list2dot b/docs/latex/language-study.list2dot new file mode 100755 index 00000000..9f61ecd8 --- /dev/null +++ b/docs/latex/language-study.list2dot @@ -0,0 +1,194 @@ +#!/usr/bin/perl +#src: http://rigaux.org/language-study/diagram.html + +#pad: related work: +# - gnuclad +# https://launchpad.net/gnuclad (cladogram tree) +# - gldt (gnu/linux distro timeline) +# http://futurist.se/gldt/ , uses gnuclad + +sub min { (sort { $a <=> $b } @_)[0] } +sub max { (sort { $b <=> $a } @_)[0] } +sub uniq { my %l; @l{@_} = (); keys %l } +sub difference2 { my %l; @l{@{$_[1]}} = (); grep { !exists $l{$_} } @{$_[0]} } +sub round_down { my ($i, $r) = @_; $i = int $i; $i -= $i % $r; } +sub round_up { my ($i, $r) = @_; $i = int $i; $i += $r - ($i + $r - 1) % $r - 1; } +sub round { + my ($i, $r) = @_; + my $x1 = round_down($i, $r); + my $x2 = round_up($i, $r); + my $diff1 = $i - $x1; + my $diff2 = $x2 - $i; + if ($diff1 <= $diff2) { + return $x1; + } else { + return $x2; + } +} + +sub allocation2color { + ${{ GC => 'cyan', Static => 'gray', Stack => 'aquamarine2', Heap => 'lightblue' }}{$_[0]}; +} +sub ds2color { + ${{ + 'arrays' => 'gray', + 'records' => 'orange', + 'arrays,records' => 'yellow', + 'objects' => 'red', + 'lists' => 'cyan', + 'datatypes,lists' => 'lightblue', + 'strings' => 'green', + 'lists,strings', => 'aquamarine2', + }}{$_[0]}; +} +sub sy2color { + ${{ + 0 => 'white', + 1 => 'red', # selected + 2 => 'orange', #considered + 3 => 'yellow', + 4 => 'aquamarine2', + 5 => 'green', + 6 => 'grey', #closed source (originally at least) + + }}{$_[0]}; +} +sub color { +# return; +# my $e = allocation2color($allocation{$_[0]}); +# my $e = ds2color($ds{$_[0]}); + my $e = sy2color($sy{$_[0]} || '0'); + print STDERR "$_[0] $sy{$_[0]} $e\n" unless $e; + $e ? "[color=$e; style=filled]" : ''; +} +sub inheritate { + my ($to, $from) = @_; + + $allocation{$to} = $allocation{$from}; + $ds{$to} = $ds{$from}; + #$sy{$to} = $sy{$from}; +} + +my $sons; +my $was_empty = 1; +while (<>) { + /^\s*#/ and next; + s/\s+$//; + if (/^\S/) { + # new language + $importance{$_} = s/^\*//; + $is_evolution{$_} = !$was_empty; + $links{$_} = $was_empty ? [] : [ $lang ]; + $son{$_} = $was_empty ? $sons++ : $son{$lang}; + inheritate($_, $lang); + $lang = $_; + } elsif (/^ (\d{4})\??$/) { + $date{$lang} = $1; + } elsif (/^ DS:(.*)/) { + $ds{$lang} = join(',', sort split(',', $1)); + } elsif (/^ SY:(\d+)/) { + $sy{$lang} = $1; + } elsif (/^ (http:.*)/) { + $url{$lang} = $1; + } elsif (/^ (.* typing.*)/) { + $typing{$lang} = $1; + } elsif (/^ (Static|Stack|Heap) allocation$/ || /^ (GC)$/) { + $allocation{$lang} = $1; + } elsif (/^ (.*)/) { + my @l = split ',', $1; + difference2($links{$lang}, \@l) and warn "overriding @{$links{$lang}} with @l for $lang\n"; + $links{$_} or die "$ARGV $.: unknown lang $_\n" foreach @l; + $links{$lang} = \@l; + inheritate($lang, $l[0]); + } + $was_empty = /^$/; +} + +print ' +digraph dd { + { + node [ shape=plaintext,fontsize=45 ]; + +'; +#pad: orig - 25 + +my $bloated = $ENV{BLOATED}; +my $step = $bloated ? 1 : 5; +my $min = round_down(min(values %date), $step); +my $max = round_up(max(values %date), $step); +my ($prev); +for ($date = $min; $date <= $max; $date += $step) { + print " -> " if $prev; + print "$date"; + $prev = $date; +} +print ' + } + +node [ fontsize=30, style=filled ]; +'; + +if (!$bloated) { + my %all_links = %links; + %links = (); + + foreach my $lang (grep { $importance{$_} } keys %importance) { + my %l = map { $_ => 1 } @{$all_links{$lang}}; + my %r; + + while (%l) { + my ($e) = keys %l; my $depth = delete $l{$e}; + if ($importance{$e}) { + $r{$e} = $depth; + } else { + my @sub = @{$all_links{$e}}; + my $i; + foreach (@sub) { + my $depth2 = $depth + ($i == 0 && $is_evolution{$e} ? 0 : 1); + $l{$_} = min($depth2, $l{$_} || 99); + $i++; + } + } + } + %r or next; + for (my $depth = 1; ; $depth++) { + my @l = grep { $r{$_} <= $depth } keys %r or next; + @{$links{$lang}} = @l; + last; + } + } + + delete $date{$_} foreach grep { !$importance{$_} } keys %importance; +} + +my %d; +push @{$d{$date{$_}}}, $_ foreach keys %date; +while (my ($date, $langs) = each %d) { + print "{ rank = same ; ", round($date, $step); + foreach (@$langs) { + print " ; "; + print qq("$_"); + print " [ fontsize=40 ]" if $importance{$_}; + my $c = color($_); + #print STDERR "ERR: $_=$c\n"; + print $c; + } + print " }\n"; +} + +print "\n"; + +while (my ($lang, $links) = each %links) { + foreach (uniq(@$links)) { + print qq("$_" -> "$lang"); + print " [weight=3]" if $is_evolution{$lang} && $_ eq $links->[0]; + print "\n"; + } +} + + +print ' +} +'; + +1; diff --git a/editors/lineage.txt b/editors/lineage.txt new file mode 100644 index 00000000..aec0f961 --- /dev/null +++ b/editors/lineage.txt @@ -0,0 +1,388 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Editors lineage +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/Comparison_of_text_editors + +#-------------------------------------------------------------------------- +# Pre-Historical (line editor) +#-------------------------------------------------------------------------- + +*TECO + 1963 + # both editor and PL (inspiration for Emacs), Macros (really programs) + # source shared on DECUS tapes. for DEC. + + +*QED + 1965 + # introduced regular expression! + # originally written by Lampson, rewrote for CTSS by Ken, rewrote again + # in BCPL for Multics by Ken too. + +*ed + 1969 + QED + # one of 3 elts ken thompson developed! first released in 1971. + # mostly to be used in script, because quite terse (line editor) + +em + 1975 + ed + # editor for mortal (ed was considered for immortal as it was very unfriendly) + # use raw keyboard mode and can visualize whole line! +en +ex + 1976 + # extended ed, Bill Joy + + + +*Bravo + 1974 + # modal editor, full-screen, bitmap, first WYSIWYG word processor, for Alto + +WordStar + 1979 + +#-------------------------------------------------------------------------- +# Historical (Unix/Multics) +#-------------------------------------------------------------------------- + +*Emacs + 1975 + TECO + #Editor Macros, originally implemented in TECO + # Emacs stallman paper 1981, but also tech report in 1979 AI memo ??? + # programmability and modelessness (2 things Bill Joy says he missed in vi) + + +*Multics Emacs + 1978 + Emacs + # unpublished paper about it in 1979, written in Lisp with extension in Lisp! + +Gosling Emacs + 1981 + + +*vi + 1976 + ed,Bravo + SY:2 + # visual editor, Bill Joy too (he did also csh, BSD, ...) full-screen + #ex + + +#-------------------------------------------------------------------------- +# Open source +#-------------------------------------------------------------------------- + +*GNU Emacs + Emacs,Multics Emacs,Gosling Emacs + 1984 + SY:2 + +*JED + 1992 + Emacs + + + +*vim + 1991 + vi + #,elvis,stevie + SY:2 + +neovim + 2015 + vim + + + +Pico + # pine composer + +*Nano + 1999 + Pico + # original TIP (Tip is not Pine) +GNU Nano + 2001 + + + +*JOE + 1988 + #WordStar,Turbo C + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*Sam + 1982 + ed + SY:2 + # no precise date + +*Acme + 1993 + Sam + +#-------------------------------------------------------------------------- +# Emacs clones +#-------------------------------------------------------------------------- +#src: https://en.wikipedia.org/wiki/Template:EmacsNavbox + + +*MicroEMACS + 1985 + Emacs + # used by Torvalds + +*mg + 1986 + MicroEMACS,GNU Emacs + SY:2 + #MicroGnuEmacs, release mod.sources, and comp.sources.unix + + +*qemacs + 2000 + GNU Emacs + SY:2 + +*efuns + 1998 + GNU Emacs + SY:1 + + + +Lucid Emacs + +*XEmacs + GNU Emacs + 1991 + +XSEmacs + XEmacs + 2004 + + +Aquamacs + 2005 + GNU Emacs + # for macOS + + +JOVE + 1983 + Gosling Emacs + + +#-------------------------------------------------------------------------- +# Vi/vim clones +#-------------------------------------------------------------------------- + +stevie + +elvis + 1990 + # syntax higlighting + +nvi + elvis + +busybox vi + + +vile + vi,MicroEMACS + +vis + vi,Sam + + + + +#-------------------------------------------------------------------------- +# Educational +#-------------------------------------------------------------------------- + +kilo + + +#-------------------------------------------------------------------------- +# IDEs (open source) +#-------------------------------------------------------------------------- +#src: https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments + +#Turbo Pascal/Delphi see later + +Fabrik + +NeXT interface Builder + 1988 + +IBM VisualAge + 1985 + #No precise date + #NeXT interface Builder + #In Smalltalk + +*Eclipse + 2001 + IBM VisualAge + # ACM software award in 20011 +Eclipse 3.0 + 2003 + +Intellij IDEA + + + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +Epsilon + Emacs + 1984 + SY:6 + + +*Textmate + 2004 + GNU Emacs + SY:6 +Textmate 2.0 + 2009 +Textmate open source + 2012 + +*Sublime Text + 2008 + Textmate + SY:6 + +*Atom + 2014 + GNU Emacs,Sublime Text + #github company + +# ------------ +# Apple +# ------------ +Edit Application +TeachText +SimpleText + #RTF +TextEdit + 2001 + SY:6 + # light word processor too + +Xcode + +# ------------ +# Microsoft +# ------------ +Edlin + 1980 + ed + +MS-DOS Editor + 1991 + Edlin + # aka edit + +*Notepad + 1985 + SY:6 + # written with MASM initially, since Windows 1.0 + +MicrosoftWrite + 1985 + # light Word processor +WordPad + 1995 + +*Visual Studio C++ + +*Visual Studio Code + 2015 + Atom + +# ------------ +# Borland +# ------------ + +*Turbo Pascal + 1983 + SY:6 +Turbo C + 1987 +Turbo C++ + 1990 + +Delphi + 1995 + #RAD + +# ------------ +# Misc +# ------------ + +SlickEdit + 1988 + SY:6 + +UltraEdit + 1994 + SY:6 + +Source Insight + SY:6 + # program editor and analyzer (to help understand large codebase) + + + +#-------------------------------------------------------------------------- +# Recent +#-------------------------------------------------------------------------- + + +#-------------------------------------------------------------------------- +# Exotic +#-------------------------------------------------------------------------- + +*Light Table + 2012 + # inspired by Bret Victor Demo, not free at the beginning? + +#-------------------------------------------------------------------------- +# Desktop +#-------------------------------------------------------------------------- +Kate + 2000 + +KWrite + 2000 + +gedit + 2000 + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +Yi + 2005 + # in haskell + diff --git a/generators/lineage.txt b/generators/lineage.txt new file mode 100644 index 00000000..75ee92e2 --- /dev/null +++ b/generators/lineage.txt @@ -0,0 +1,41 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Compiler compiler lineage +#-------------------------------------------------------------------------- + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +lex + +yacc + +#-------------------------------------------------------------------------- +# Open source +#-------------------------------------------------------------------------- + +flex + +bison + + +byacc + + + +ocamlyacc + +ocamllex + +#-------------------------------------------------------------------------- +# Lang-specific +#-------------------------------------------------------------------------- + +# haskell + +# ocaml + +# diff --git a/kernel/lineage.txt b/kernel/lineage.txt new file mode 100644 index 00000000..b73a9b72 --- /dev/null +++ b/kernel/lineage.txt @@ -0,0 +1,531 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Kernel lineage +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/Comparison_of_operating_systems +# has origin date and predecessor, so very nice +#src: https://en.wikipedia.org/wiki/Comparison_of_operating_system_kernels +# not so good +#src: https://en.wikipedia.org/wiki/Timeline_of_operating_systems +# good, but too many entries + +#src: https://en.wikipedia.org/wiki/History_of_Unix +# especially the following nice diagram +# https://en.wikipedia.org/wiki/History_of_Unix#/media/File:Unix_history-simple.svg +#src: https://en.wikipedia.org/wiki/Research_Unix +# for detailed history of early UNIX versions + +#src: wikipedia articles on different kernels + +#src: https://en.wikipedia.org/wiki/Template:Operating_system +# at least major elements I remember + +#src: classic OS book by Per Brinch Hansen + + +#-------------------------------------------------------------------------- +# Pre-Historical +#-------------------------------------------------------------------------- +#Atlas +# 1957 +# concept of OS breakthrough!, managing resources for independent tasks + +CTSS + 1961 + # paper in 1962, + # introduced RUNCOM, RUNOFF, QED, email ancestor + + +Berkeley Timesharing System + 1964 + +ITS + 1968 + CTSS + # not precise date + # Incompatible Timesharing System, against Multics directions, released + # something before Multics actually + # lots of nice software started on ITS (Emacs, MacLisp, Scheme, ...) + + + +OS/360 + 1966 + # announced in 1964, finished in 1966 + # Fred Brooks, IBM huge project + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +*Multics + 1965 + CTSS + # started in 1965, release in 1969, open sourced in 2006, + + + +*UNIX + 1971 + Multics + SY:2 + # 1971 is first ed of unix manual, but was already apparently 2 years old + # osh, mail, cp, su +UNIX V2 + 1972 + # echo and cc +UNIX V3 + 1973 + # C, pipes, crypt, yacc, search path because of split /bin and /usr/bin +UNIX V4 + 1973 + # rewritten in C, groups, grep, printf, troff, first CACM article +UNIX V5 + 1974 + # find, dd, sticky bit +UNIX V6 + 1975 + # Lions book is in 1977 + # ratfor, bc, non PDP hardware +UNIX V7 + 1979 + # sh, cpio, sed, ioctl, awk, f77, spell, stdio, pcc + PWB/UNIX utilities +UNIX V8 + 1985 + # Blit, network file system, sockets, +UNIX V9 + 1985 + # code from 4.3 BSD, mount with program at the end (ancestor plan9), sam +UNIX V10 + 1989 + # C interpreter, many plan9 tools: mk, rc + +PWB/UNIX + UNIX V4 + 1977 + +UNIX System V + UNIX V7 + 1983 + #SVR4 + +#-------------------------------------------------------------------------- +# Oldies +#-------------------------------------------------------------------------- + +OS/400 + 1988 + SY:6 + +MVS + 1972 + OS/360 + +MPE + 1974 + +MCP + 1961 + +VMS + 1977 + # Virtual Memory System + +OpenVMS + 1977 + #RSX-11M + +#-------------------------------------------------------------------------- +# Educational +#-------------------------------------------------------------------------- + +*Minix + 1987 + UNIX V7 + SY:2 + # it says its goas was to be system-call compatible with UNIX v7 +Minix 1.5 + 1991 +Minix 2.0 + 1997 +*Minix 3.0 + 2005 + +*Xinu + 1981 + UNIX + SY:2 + # first ed of XINU book in 1984 +Xinu internetworking + 1987 + # vol II + +*xv6 + 2006 + UNIX V6 + SY:2 + +*Oberon + 1987 + # book in 1992, started in 1985, first release in 1987 + +Ulix + # literate program! + +#-------------------------------------------------------------------------- +# BSD Families +#-------------------------------------------------------------------------- +#src: https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems + +*BSD + 1978 + UNIX V5 +BSD 3.0 + 1980 +BSD 4.2 + 1983 +BSD 4.3 + 1986 +BSD 4.4 + 1992 + +386BSD + 1991 + BSD 4.3 + +*FreeBSD + 1992 + 386BSD + +*NetBSD + 1992 + BSD 4.3 + +*OpenBSD + 1994 + NetBSD + +DragonFly BSD + FreeBSD + 2003 + +#-------------------------------------------------------------------------- +# Other UNIX Families +#-------------------------------------------------------------------------- + +HP-UX + 1983 + UNIX System V + +AIX + 1986 + UNIX System V + +IRIX + 1988 + UNIX System V + +SunOS + 1982 + BSD 3.0 + +Solaris + 1992 + SunOS +OpenSolaris + 2008 + + +Xenix + 1980 + UNIX V7 + + +#-------------------------------------------------------------------------- +# Open source (Linux) +#-------------------------------------------------------------------------- + +*Linux + 1991 + UNIX V7,Minix + SY:2 +Linux 1.0 + 1992 +Linux 2.0 + 1996 +#Linux 3.0 +# 2011 +#Linux 4.0 +# 2016 + +MkLinux + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*Plan 9 + 1993 + UNIX V10 + SY:2 + # kernel is called 9 + +*Inferno + Plan 9 + 1998 +Inferno 4.0 + 2007 + +#9 in OCaml +# 2017 + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +Accent + +*Mach + 1985 + UNIX,Accent +Mach 3.0 + 1994 + # true microkernel +Mach 4.0 + # from CMU to University of UTAH + + +GNU Mach + 1996 + Mach 4.0 +GNU Mach 1.0 + 1997 +#GNU Mach 1.4 +# 2013 +#GNU Mach 1.8 +# 2016 + + +*GNU Hurd + 1996 + GNU Mach + # started work in 1990, but Hurd 0.1 is 1996 on gnu FTP + # also one based on L4 + +L3 + 1988 + Mach + # inspired to improve Mach +*L4 + 1993 +L4Ka::Hazelnut + 1999 + +L4/Fiasco + 1998 + L4 + +*OKL4 + L4 + 2006 + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +*CP/M + 1974 + SY:6 + # Gary Kildall +DR-DOS + 1988 + +# ------------ +# Microsoft +# ------------ + +86-DOS + 1980 + CP/M + +*MS-DOS + 1981 + 86-DOS + SY:6 + +OS/2 + 1987 + #with IBM + +*Windows NT + 1993 + SY:6 + MS-DOS,OS/2 + +# ------------ +# Apple +# ------------ + +*Mac OS + 1984 + SY:6 + # aka Classic Mac OS + # until 2001 +Mac OS System 7 + 1991 +Mac OS 8 + 1997 +Mac OS 9 + 1999 + +*NeXTStep + 1988 + BSD 4.3 + SY:6 + # includes BSD 4.3 tools, but not based on BSD 4.3 kernel + # based on Mach? + +*Mac OS X + 2001 + NeXTStep,Mac OS 9,Mach + SY:6 + # use FreeBSD 3.0 tools + # XNU, non real microkernel + +tvOS + +# ------------ +# Google +# ------------ + +#Android +# 2008 +# really just Linux + +#Fuschia +# 2018 + +# ------------ +# Other +# ------------ +BeOS + 1996 + # v1 in 1990 + SY:6 + +Haiku + BeOS + 2009 + +QNX + 1982 + UNIX + SY:6 + + +#-------------------------------------------------------------------------- +# Industry Failed +#-------------------------------------------------------------------------- + +Atari DOS + # book: Inside Atari DOS! + +AmigaOS + 1985 + #TRIPOS + +RISC OS + 1987 + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +NuttX + +HelenOS + +ReactOS + 1996 + Windows NT + +#-------------------------------------------------------------------------- +# Research OS +#-------------------------------------------------------------------------- + +Pebble + +#-------------------------------------------------------------------------- +# Mobile +#-------------------------------------------------------------------------- +Newton OS + 1993 + +Palm OS + 1996 + +*iOS + Mac OS X + 2007 + SY:6 + +watchOS + +#-------------------------------------------------------------------------- +# Seminal or influential research OS +#-------------------------------------------------------------------------- +#Atlas + +#CTSS + +THE multiprogramming system + 1968 + # layered OS, started in 1965 + +RC 4000 + 1969 + # microkernel + +Solo5 + +Hydra + # capability + +Pilot + 1981 + # for Xerox Star + +SPIN + 1994 + +Singularity + 2008 + +#-------------------------------------------------------------------------- +# Exotic +#-------------------------------------------------------------------------- + +*TempleOS + MS-DOS + 2013 + # started in 2003 + +sel4 + 2009 + L4 + # haskell paper in 2009 +#sel4 open source +# 2012 + +#-------------------------------------------------------------------------- +# Wannabee +#-------------------------------------------------------------------------- + +Sortix + 2011 + # minimal libc, but no GUI, no network +Sortix 1.0 + 2016 diff --git a/lib_core/lineage.txt b/lib_core/lineage.txt new file mode 100644 index 00000000..69f5e709 --- /dev/null +++ b/lib_core/lineage.txt @@ -0,0 +1,44 @@ +Libc + +Libc Plan9 +(Go std lib?) + +Libc Linux + +GNU libc + +uClibc + +dietlibc + +musl + + + +glib + + + +Industry + +MSDN + +Apple Core XXX? +NS stuff + + + +STL + +Boost + +lots of components, Rave something for C++? + + + + +Java + + + +.NET diff --git a/lib_graphics/lineage.txt b/lib_graphics/lineage.txt new file mode 100644 index 00000000..0fea25cf --- /dev/null +++ b/lib_graphics/lineage.txt @@ -0,0 +1,603 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Graphics systems lineage +#-------------------------------------------------------------------------- + +#src: wikipedia articles on different programs +#src: https://excelsior.asc.ohio-state.edu/~carlson/history/timeline.html +# very complete (too much actually, too many entries) + +#-------------------------------------------------------------------------- +# Pre-Historical +#-------------------------------------------------------------------------- + +#Memex +# 1945 +# # "As We May Think", a vision, not a real computer + +*Sketchpad + 1963 + #Memex + +# Bresenham Algorithm: 1962 + +#-------------------------------------------------------------------------- +# Historical +#-------------------------------------------------------------------------- + +*Alto + 1973 + Sketchpad + #,NLS + #bitblt() + +Perq + 1980 + +*X Window + Alto + 1984 + +#-------------------------------------------------------------------------- +# Misc Standards +#-------------------------------------------------------------------------- + +GINO + 1971 + +GPGS + +Siggraph Core + 1977 + #3D already + +GKS + 1977 + # final ratification was done in 1985 + # Graphical Kernel System =~ 2D version of Core + +#SGP +# Simple Graphics Package, used in Newman first graphics textbook + +PHIGS + 1989 + GKS + #Programmers Hierarchical Interactive Graphics System, 3D stuff + # in X11 via PEX extension + +#-------------------------------------------------------------------------- +# OpenGL standard (3D) +#-------------------------------------------------------------------------- + +IrisGL + # Integrated Raster Imaging System Graphics Library +*OpenGL + 1992 + IrisGL + # release in 1992 by SGI. 1.0 + # won over PHIGS becauser lower-level and so could be optimized more + # Book 1st ed in 19?? +# Kronos group +# 2006 +OpenGL 1.3 + 2001 +OpenGL 2.0 + 2004 + #GLSL OpenGL Shading Language +OpenGL 3.0 + 2008 +OpenGL 4.0 + 2010 + +OpenGL ES + 2003 + OpenGL 1.3 +OpenGL ES 2.0 + 2007 + +VOGL + IrisGL + # very ordinary GL-like library + +MiniGL + 1996 + OpenGL + # origin: 3DFX + ID software, enough to run OpenGL version of Quake + +EGL + # to interact with windowing system + +*WebGL + 2011 + OpenGL ES 2.0 + +#-------------------------------------------------------------------------- +# Adobe +#-------------------------------------------------------------------------- + +*Postscript + 1982 + Sketchpad + SY:6 + # by people who worked before with Sutherland and later at Xerox + # Page Description Language (PDL), Printer Control Language (PCL) + # Adobe book 1st ed in 1985 + +*Display Postscript + 1987 + Postscript + SY:6 + # used for NeXTStep, a real graphics engine + +*PDF + 1993 + Postscript + SY:6 + # Portable Document Format = + # Postscript + Font embedding + compressed storage format +PDF 1.1 + 1994 +PDF 1.4 + 2001 +PDF 1.7 + 2006 +PDF open + 2008 +PDF 2.0 + 2017 + +Flash + # animation + +#-------------------------------------------------------------------------- +# Mini +#-------------------------------------------------------------------------- + +Oberon + 1992 + Alto + +*Mini-X + 1991 + X Window +# MicroWindows/NanoX are less important for graphics; +# more windowing systems innovations + +#-------------------------------------------------------------------------- +# X Window +#-------------------------------------------------------------------------- + +Xlib + 1985 + X Window + # first C API, aka libX11 +X11 + 1987 +X11R2 + 1988 +X11R5 + 1991 +X11R6 + 1994 +X11R6.4 + 1998 +X11R6.6 + 2001 + +Pixman + 2000 + # again Keith Packard, Copyright says 2000 Suse and after 2007 + +X386 + 1991 + X11R5 +*XFree86 + 1992 + X386 +XFree86 4.4 + 2004 +*Xorg + 2004 + XFree86 4.4,Pixman + #,X11R6.6 + SY:2 + +DRI + 1998 + X Window + # Direct Rendering Infrastructure + # direct hardware access under X Window +DRI 2.0 + 2008 +DRI 3.0 + 2013 + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*Blit + Alto,Perq + 1982 + # paper in 1983 about Blit and also about layers + # course notes by Pike in 1984 +*Plan 9 draw + 1993 + SY:1 + # better date than first release? + +#-------------------------------------------------------------------------- +# Open source +#-------------------------------------------------------------------------- + +*Ghostscript + 1986 + Postscript + SY:2 +Aladdin Ghostscript + # proprietary fork by Ghostscript creator +GNU Ghostscript + 2006 + # branch reunited + +xpost + Postscript + 2013 + +Xpdf 3.0 + + +*Libart + 1998 + Postscript + # copyright and Changelog start in 1998 + # SVG,Java 2D + # Postscript + antialiasing and alpha-transparency + # obsoleted by cairo + + +*Cairo + 2003 + Postscript,Xorg,Pixman + # called Xr before, 7000LOC in paper, Xr presented at OLS 2003 + SY:2 + +Poppler + 2005 + PDF,Xpdf 3.0,Cairo + +Xephyr + 2007 + X Window,rio + # X-on-X so can have recursive X like in rio + +TWIN + 2005 + Xorg + # paper at OLS 2005. # based on Xr? Xr was 2003. + # still used in petitboot + + +*Skia + 2008 + SY:2 + # open sourced in 2008, but Google acquired company in 2005 + + +*Mesa + 1993 + OpenGL,VOGL + #aka Mesa3D, MesaGL + SY:2 +Mesa 1.0 + 1995 +Mesa Hardware support + 1997 + # based on Glide API of 3dFX +Mesa 10.0 + 2013 + + +Wayland + 2008 + Xorg,Cairo + # but rely mostly on Cairo for stuff, really just compositor + + +#-------------------------------------------------------------------------- +# Oldies +#-------------------------------------------------------------------------- + +VGALib + 1993 +*SVGALib + 1994 + +#-------------------------------------------------------------------------- +# For games mostly (and often just wrappers) +#-------------------------------------------------------------------------- +#src: https://en.wikipedia.org/wiki/Template:Video_game_engines + +Allegro + 1995 + # Atari Low-Level Game Routines + +SDL + 1998 + # Simple DirectMedia Layer (maybe not just a wrapper?) + # released while working at Loki +SDL 2.0 + 2012 + +SFML + +Clanlib + +#-------------------------------------------------------------------------- +# Wrappers? +#-------------------------------------------------------------------------- + +GGI + SVGALib + 1995 + # needed patch to kernel called KGI +GGI 1.0 + 1996 +GGI 2.0 + 2001 + +GDK + # of GTK + +#Qt has a drawing component? + +#-------------------------------------------------------------------------- +# High level +#-------------------------------------------------------------------------- +Open Inventor + +#-------------------------------------------------------------------------- +# Linux stuff +#-------------------------------------------------------------------------- +Linux Framebuffer + 1998 + #fbdev, introduced in Linux 2.1.109, FrameBuffer Howto v1.0 is 1999 + +Direct Rendering Manager + 1999 + # similar to Linux Framebuffer, but for direct transmision of GPU commands + +# DRI is in X Window section + +DirectFB + 2000 + # abandonned, but seems focused on hardware acceleration + # can use different backends: Framebuffer, SDL, X11 + + +Graphics Execution Manager + +Kernel Mode Setting + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +# ------------ +# Apple +# ------------ + +LisaGraf + 1983 +*QuickDraw + 1984 + # with Macintosh + SY:6 + +QuickDraw GX + 1995 + QuickDraw + +QuickDraw 3D + OpenGL,QuickDraw + 1995 + # but abandonned for OpenGL in Mac OS X + +Quartz + 2000 + QuickDraw,PDF 1.4 + # Quartz 2D and Quartz Compositor + +*Quartz 2D + 2000 + QuickDraw,PDF 1.4 + # part of Core Graphics framework + SY:6 + +Quartz Extreme + + +*Javascript Canvas + 2004 + Quartz 2D + # competition to SVG, but raster-based + +# ------------ +# Microsoft +# ------------ + +# Before GDI MS-DOS was using Video BIOS and VGA cards and programs were +# manipulating video memory directly +*Microsoft GDI + 1985 + #src: byte magazine in 1983 talks about it, but Windows went out in 85 + SY:6 +*GDI+ + 2001 + # System.Drawing in .NET, software rendering + SY:6 + + +*DirectX + 1995 + Microsoft GDI + # with Windows 95 + # replaced DCI and WinG +DirectX 2.0 + 1996 + # includes Direct3D +DirectX 9.0 + 2002 +DirectX 10.0 + 2006 +DirectX 12.0 + 2015 + +Direct2D + 2008 + GDI+,DirectX + # component of DirectX, use hardware for rendering even for 2D operations + +DirectDraw + DirectX + # deprecated, was introduced for mobile + +DirectWrite + DirectX + +*Direct3D + 1996 + OpenGL,DirectX 2.0 + SY:6 + # component of DirectX +#Direct3D 3.0 +Direct3D 8.0 + 2000 +Direct3D 9.0 + 2002 +Direct3D 11 + 2008 + + +WPF + 2007 + # just wrapper over DirectX, for .NET, started with Windows Vista (hence 2007) + # used in CGPP 3rd ed + DirectX + +# ------------ +# Misc +# ------------ + +SVG + +Wine + Direct3D + # 100% support for 8.0, some support for 9.0 and 10.0 + +Mantle + 2013 + OpenGL,Direct3D + # by AMD, competition to Direct3D and OpenGL + +Direct3D 12 + Direct3D 11,Mantle + +Metal + 2014 + #Direct3D 12,Vulkan + # for iOS, by Apple + + +NeWS + X Window,Postscript + SY:6 + +Java3D + +RenderMan + +VRML + + +*Vulkan + 2016 + OpenGL,OpenGL ES + # 1.0 in 2016, "OpenGL Next" + #Direct3D 12,Metal,Mantle + +#-------------------------------------------------------------------------- +# Recent +#-------------------------------------------------------------------------- + +#-------------------------------------------------------------------------- +# Font rendering +#-------------------------------------------------------------------------- + +Metafont + +freetype +# and fontconfig for font discovery + +Uniscribe + 1999 +# windows + +Pango + +#-------------------------------------------------------------------------- +# High-level graphics (scene graph) +#-------------------------------------------------------------------------- +Clutter + 2010 + +Core Animation + +#-------------------------------------------------------------------------- +# Educational +#-------------------------------------------------------------------------- +SRGP + 1990 + QuickDraw + # Simple Raster Graphics Package, written specially for CGPP + # but probably just wrapper anyway, no real graphics engine code + # 2nd ed CGPP + +SPHIGS + 1990 + PHIGS + # Simple PHIGS + +*tinyGL + 1997 + OpenGL,Mesa + # rendered in software, headers come from Mesa + +#-------------------------------------------------------------------------- +# Graphics file format (images/pictures) +#-------------------------------------------------------------------------- + +# postscript before +# PDF before + +IGES + 1979 + #graphics file format + +TIFF + +JPG + +PNG + +DJVU + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +NuttX + +HelenOS diff --git a/linkers/lineage.txt b/linkers/lineage.txt new file mode 100644 index 00000000..c13b7d72 --- /dev/null +++ b/linkers/lineage.txt @@ -0,0 +1,155 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Linkers lineage +#-------------------------------------------------------------------------- + +#src: copyright dates in source files +#src: wikipedia articles on different programs +#src: infoworld magazine ads found via Google + +#part of compiler suite: +# see lineage assembler +#part of native-targeted : +# see lineage assembler + +#-------------------------------------------------------------------------- +# Pre-Historical (DEC) +#-------------------------------------------------------------------------- + +Link-11 + 1971 + #DEC-provided linker for PDP11 + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +*ld + 1971 + Link-11 + SY:2 +#ld UNIX v1 (assembly) +#... +#ld UNIX v7 (C) +#Needed ld in UNIX v1? 'as' was concatenating assembly files together + +#-------------------------------------------------------------------------- +# Open source (GNU) +#-------------------------------------------------------------------------- + +*GNU ld + ld + 1991 + SY:2 + # copyright in infomagic/.../binutils-2.4/ld/ld.h says 1991 + # Ian Lance Taylor says in paper about Gold he rewrote core algo of ld in 1994 +*Gold + 2008 + SY:2 + +*elfutils + 2001 + GNU ld + # copyright of ld.c in first version of elfutils in its git repo says 2001 + + +*ld86 + 1991 + SY:2 + # copyright in informagic/bin86/.../ld.c says 1992, but I've found some + # ld86 binaries dating back to 1991, and some of its files dates back to 1989 + +*ASLINK + 1989 + # see lineage ASxxxx + # part of SDCC now + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*2l/5l/8l/... + 1993 + ld + SY:1 + # there was no 5l yet in 1993 (there was 2l/6l/8l/kl/vl/zl) +Inferno linkers + 1996 +*Go linkers + 2009 + +5l in OCaml + 2016 + 2l/5l/8l/... + +#-------------------------------------------------------------------------- +# Post-2000 +#-------------------------------------------------------------------------- + +*lld + 2015 + SY:2 + +#-------------------------------------------------------------------------- +# Bytecode +#-------------------------------------------------------------------------- + +Cecil + 2004 +Mono Linker + 2004 + # same author than cecil + # mostly bytecode space optimizer, not really linker +.NET IL Linker + 2017 + +jlink + Mono Linker + 2017 + +#-------------------------------------------------------------------------- +# Misc +#-------------------------------------------------------------------------- + +*vlink + 2002 + +GoLink + 2002 + # not related to golang + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +PC-DOS Linker + 1981? + +*Microsoft Linker + 1981 + SY:6 + # Link.exe, also called Microsoft Overlay Linker in Borldand's ads + +*Turbo Linker + 1987 + Microsoft Linker,PC-DOS Linker + SY:6 + # ad for Turbo linker 1.0 with Turbo C 1.0 in infoworld Nov 2 1987 + # (maybe was already with Turbo Pascal and Turbo Prolog which preceded Turbo C) + +MPW linker + + + +*optlink + 1994 + SY:6 + # copyright in source (put on github in 2013) + +*ACK led + 1987 + SY:6 +ACK led open source + 2003 diff --git a/machine/lineage.txt b/machine/lineage.txt new file mode 100644 index 00000000..7891fc64 --- /dev/null +++ b/machine/lineage.txt @@ -0,0 +1,13 @@ +mix + 1968 +# TAOCP includes a MIX simulator +mmix + 1999 + +spim + 1990 +# 1990 according to copyright + + +QEMU + diff --git a/profilers/lineage.txt b/profilers/lineage.txt new file mode 100644 index 00000000..a8cca1cd --- /dev/null +++ b/profilers/lineage.txt @@ -0,0 +1,4 @@ +prof + +gprof + diff --git a/shells/lineage.txt b/shells/lineage.txt new file mode 100644 index 00000000..2f4390dc --- /dev/null +++ b/shells/lineage.txt @@ -0,0 +1,218 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Shells lineage (UNIX shells really) +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/Comparison_of_command_shells +#src: wikipedia articles on different programs +# at least the ones listed in the box at +# https://en.wikipedia.org/wiki/Template:Unix_shells + +#src: https://www.ibm.com/developerworks/library/l-linux-shells/#fig1 +#src: https://gitlab.com/graphviz/webdot/blob/master/html/webdot/graphs/directed/shells.dot + +#-------------------------------------------------------------------------- +# Pre-Historical (CTSS/Multics) +#-------------------------------------------------------------------------- + +# DEC monitor? +# need interactive system to require a command interpreter + +*RUNCOM + 1964 + +#-------------------------------------------------------------------------- +# Historical (UNIX) +#-------------------------------------------------------------------------- + +*Thompson sh + 1971 + RUNCOM + SY:2 +#sh UNIX V1 assembly +#... +#sh UNIX V6 C + +Mashey PWB + 1976 + Thompson sh + # already idea full language I think, but Bourne designed something better + +*sh + 1977 + Thompson sh,Mashey PWB + SY:2 + +#-------------------------------------------------------------------------- +# Open Source +#-------------------------------------------------------------------------- + +*csh + 1978 + Thompson sh + #SY:2 +*tcsh + 1983 + +*ash + 1989 + sh +*dash + 1997 + +*ksh + 1983 + sh + #SY:2 +ksh88 + 1988 +ksh93 + 1993 +ksh98 + 1998 + +*pdksh + 1989 + ksh + #notes: public domain korn shell +mksh + 2003 + +*POSIX shell + 1992 + ksh + +*bash + 1989 + sh,ksh,csh + SY:2 +bash 2.0 + 1996 +bash 3.0 + 2004 + +psh + 1999 + bash + # ?? + + +*zsh + 1990 + sh,ksh,tcsh + SY:2 +zsh 3.0 + 1997 +zsh 4.0 + 2001 + + +#-------------------------------------------------------------------------- +# Exotic +#-------------------------------------------------------------------------- + +*scsh + 1994 + # maybe some inspired by bash, but so different better not put lineage + +*wish + 1988 + + +*sash + 1993 + #notes: found sash 1.0 on infomagic 93 + +#busybox stuff? + +*fish + 2005 + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*rc + 1989 + sh + SY:1 + +rc by Rakitzis + 1991 + rc + # independent implem so interesting to compare, 1.2 was 6837 LOC +*es + 1993 + SY:0 + +Inferno shell + rc + +#rc in OCaml +# rc +# 2017 + +#-------------------------------------------------------------------------- +# Non shell +#-------------------------------------------------------------------------- + +sed + 1979 + +awk + 1978 +nawk + 1985 + +Perl + 1987 + nawk,sed,sh +Perl 4 + 1991 +Perl 5 + 1994 +Perl 5.005 + 1998 +Perl 5.6.0 + 2000 +Perl 5.8.0 + 2002 + +Tcl + 1988 + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +*COMMAND.COM + 1980 + SY:6 +*cmd.exe + 1993 + SY:6 +*PowerShell + 2006 + SY:6 + # open sourced in 2016 + +MPW Shell + 1986 + # but only one tool could be run at a time, because no fork() + +4DOS + 1989 + +DR-DOS +# Digital Research + + +Hamilton + 1988 + csh + +BeanShell + 2005 + # Java stuff diff --git a/version_control/lineage.txt b/version_control/lineage.txt new file mode 100644 index 00000000..7ef7d227 --- /dev/null +++ b/version_control/lineage.txt @@ -0,0 +1,299 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# VCS lineage +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/Comparison_of_version_control_software#History_and_adoption +#src: https://en.wikipedia.org/wiki/Template:Version_control_software +# the template includes origin date of many VCSs +#src: wikipedia articles on different programs + +#-------------------------------------------------------------------------- +# Historical +#-------------------------------------------------------------------------- +*SCCS + 1972 + SY:6 + # article is in 1975, and first public release is actually 1974 +SCCSv4 + 1977 + # text history files +SCCS open source + 2006 + + +MySC + 1993 + SCCS + #src: https://www.gnu.org/software/cssc/early-history.html +*CSSC + 1997 + +#-------------------------------------------------------------------------- +# Open source +#-------------------------------------------------------------------------- + +*RCS + 1982 + SCCS + SY:2 + # wikipedia template says 1982, some copyright says also 1982 + +SRC + RCS + #by Eric Raymond + + +*CVS + 1986 + RCS + SY:2 + # invented to collaborate on ACK +CVS in C + 1991 + # CVS-II paper in 1990 +*CVS client/server + 1995 + SY:2 + # client-server +CVSNT + 1998 + +*Subversion + 2000 + CVS client/server + + +EVS + 2008 + CVS + +*PRCS + 1996 + RCS,CVS + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +DSEE + 1984 + +*Rational ClearCase + 1992 + SY:6 + DSEE + # not exact date + + +*Perforce + 1995 + SY:6 +Perforce Helix + 2015 + + +*Visual Sourcesafe + 1994 + SY:6 + #AKA VSS + # bought by Microsoft from One Tree Software company + # originally local, then client/server +VSS 2005 + # client/server +*TFVC + 2005 + SY:6 + #aka TFVC, but more than just a VCS, part of Team Foundation Server + #Team Foundation Version Control +Team Foundation Server distributed + 2013 + SY:6 + # git support since 2013 + + + +MPW Projector + + +AccuREV SCM + 2002 + +StarTeam + 1995 + +PVCS + 1985 + +QVCS + 1991 + + +#-------------------------------------------------------------------------- +# DVCS industry +#-------------------------------------------------------------------------- +*Sun WorkShop TeamWare + 1990 + SY:6 + SCCS + # not exact date; use SCCS internally + +*BitKeeper + 2000 + # some betas were accessible for Linux in 1999, but first public release:2000 + Sun WorkShop TeamWare + SY:6 +BitKeeper open source + 2016 + + +Code Co-op + 1997 + # claim to be first DVCS; use email for exchanging diffs + +Plastic SCM + 2006 + +#-------------------------------------------------------------------------- +# DVCS open source +#-------------------------------------------------------------------------- + +*Arch + 2001 + CVS client/server + # command-line was called tla, for Tom Lord's Arch +GNU Arch + 2003 + +Baz + Arch + 2004 + # fork of Arch + +*Bazaar-NG + 2005 + Arch + # not a fork, a reimplem + #brz 0.0.1 in 2005, aka Bazaar-ng +Bazaar 1.0 + 2007 +*GNU Bazaar + 2008 + + +arX + 2003 + Arch + # also a fork of Arch + + + +*Monotone + 2003 + CVS client/server + # copyright goes up to 2002 though. 2003 = first commit = 0.4 release + + +*Git + 2005 + BitKeeper,Monotone + SY:2 +Git 2.0 + 2014 + + +*Mercurial + 2005 + BitKeeper + SY:2 + +Mononoke + 2016 + Mercurial + # a Mercurial Server in Rust by Facebook + + +*Darcs + 2002 + Arch + # David Roundy was designing a new patch format for Arch +Darcs 2.0 + 2008 + +*Camp + 2008 + Darcs + + + + +revc + Arch,Git + 2005 + +Fossil + 2007 + # used for SQLite + +SVK + 2003 + + +Codeville + 2005 + +DCVS + 2002 + +Veracity + + +Pijul + Darcs,Git + 2014 +# Pijul in ocaml, then scala, then Rust + + +#-------------------------------------------------------------------------- +# Git clones (or very similar) +#-------------------------------------------------------------------------- + +Libgit2 + 2010 + Git + # tags/v0.1.0 says 2010 + +gg + 2008 + Git + +*Dulwich + 2009 + Git + SY:2 + +*ocamlgit + 2017 + Dulwich + SY:1 + +git-go + 2015 + Git + +#-------------------------------------------------------------------------- +# Recent +#-------------------------------------------------------------------------- + +*Visual Studio Team Services + 2014 + SY:6 + TFVC,Git + #Team Foundation Version Control,Git + +#-------------------------------------------------------------------------- +# Mini +#-------------------------------------------------------------------------- + diff --git a/windows/lineage.txt b/windows/lineage.txt new file mode 100644 index 00000000..7c494475 --- /dev/null +++ b/windows/lineage.txt @@ -0,0 +1,381 @@ +# -*- sh -*- +# See http://rigaux.org/language-study/diagram.html for the format of this file + +#-------------------------------------------------------------------------- +# Windowing systems lineage +#-------------------------------------------------------------------------- + +#src: https://en.wikipedia.org/wiki/History_of_the_graphical_user_interface +#src: http://toastytech.com/guis/guitimeline.html +# great timeline, with screenshots and notable features introduced each time +#src: wikipedia articles on different programs +#src: https://en.wikipedia.org/wiki/Display_server + +#-------------------------------------------------------------------------- +# Pre-Historical +#-------------------------------------------------------------------------- + +#Memex +# 1945 +# # "As We May Think", a vision, not a real computer +# +#Sketchpad +# 1963 +# Memex +# +#NLS +# Sketchpad +# 1968 + +#-------------------------------------------------------------------------- +# Historical +#-------------------------------------------------------------------------- + +*Alto + 1973 +# NLS +*Xerox Star + 1981 + SY:6 + +Perq + 1980 + +Display Manager + 1981 + # from Apollo Computer + + +*W + Alto + 1983 + # for V operating system at stanford + +*X Window + 1984 + W + # MIT + + +*MGR + 1984 + Alto + # paper in 1987 + +Andrew Window Manager + 1982 + + +*NeWS + 1989 + X Window,Andrew Window Manager + SY:6 + + +Y Window System + # dead since 2006 + X Window + +#-------------------------------------------------------------------------- +# X Window +#-------------------------------------------------------------------------- + +X11 + 1987 + X Window +#MIT X consortium +# 1988 +X11R2 + 1988 +X11R5 + 1991 +#X consortium +# 1993 +X11R6 + 1994 +#X consortium end +# 1996 +#The Open Group +# 1997 +X11R6.4 + 1998 +#X.org formed +# 1999 +X11R6.6 + 2001 + + +X386 + 1991 + X11R5 + # then started to become proprietary + +*XFree86 + 1992 + X386 +# tinyX/Kdrive +XFree86 4.4 + 2004 +XFree86 4.8 + 2008 + +*Xorg + 2004 + XFree86 4.4,X11R6.6 + SY:2 +X11R6.9 + 2005 +X11R7.0 + 2005 + # no more imake, and split in many repositories, modular X + #TODO: Xquartz/Xwin now merged in Xorg. + +#-------------------------------------------------------------------------- +# Plan9 +#-------------------------------------------------------------------------- + +*Blit/mpx + Alto,Perq + 1982 + # windowing system of the Blit, for UNIX V8 +mux + # for UNIX V9 +Concurrent Window System + 1989 +*8 1/2 + 1991 + # see paper +*rio + 2000 + # see slides, that talks about history of rio + SY:1 + +#rio in OCaml +# rio +# 2016 + + +#-------------------------------------------------------------------------- +# Mini +#-------------------------------------------------------------------------- + +*Oberon + 1992 + Alto + + +*Mini-X + 1991 + X Window + # but no client/server really; kept here for history tracing to Nano-X + + +*MicroWindows + 1999 + Mini-X + # date based on Changelog, version 0.1 +*Nano-X + 2005 + SY:2 + +Pico GUI + 2000 + # copyright in source says 2000-2003 + +#TWIN + # but no client/server really, so more graphics system than windowing system + +#-------------------------------------------------------------------------- +# Other +#-------------------------------------------------------------------------- + +Berlin +Fresco + # dead since 2004 + + + +NuttX + +HelenOS + +MenuetOS + # all in assembly + +ReactOS 0.2.0 + 2004 + +Redox OS +# Orbital + +Arcan/durden + + +#-------------------------------------------------------------------------- +# Compositing window manager X Window +#-------------------------------------------------------------------------- +# For window manager see URL below, but I did not put those WMs here +# https://en.wikipedia.org/wiki/Comparison_of_X_window_managers + +Metacity + 2004 + +Xfvwm + 2005 + +Compiz + 2005 + +KWin + +#-------------------------------------------------------------------------- +# Desktop Linux +#-------------------------------------------------------------------------- + +KDE 1.0 + 1998 + # started in 1996 according to some history + +Gnome 1.0 + 1999 + # started in 1997 according to some history +Gnome 3.0 + 2011 + +Ubuntu Unity + 2011 + # but dead now, Ubuntu will go back to Gnome + + +#-------------------------------------------------------------------------- +# Industry +#-------------------------------------------------------------------------- + +# ------------ +# Apple +# ------------ + +*Lisa + 1983 + Alto + SY:6 +*Macintosh + 1984 + SY:6 + #Classic Mac OS +Macintosh II + 1987 + # colors +*Mac OS 8 + 1997 + SY:6 + + +*NeXTStep + Macintosh + 1988 + SY:6 + +*Mac OS X + 1999 + NeXTStep,Mac OS 8 + SY:6 +Aqua + 2000 +macOS Quartz compositor + # compositing window manager + + +# ------------ +# Microsoft +# ------------ + +*Microsoft Windows + 1985 + Macintosh + SY:6 + # windowing system part handled by Window USER (user32.dll), and GDI graphics +Microsoft Windows 2.0 + 1987 + SY:6 +*Microsoft Windows 3.0 + 1990 + SY:6 + # I remember 3.1 :) +Windows NT + 1993 + # same interface than Windows 3.1 +*Windows 95 + 1995 + SY:6 +Windows NT 4.0 + 1996 + # same interface than Windows 95 +Windows 98 + 1998 +Windows 2000 + 2000 +Windows XP + 2001 +*Windows Vista + 2007 + SY:6 + # started to use DWM (Desktop Window Manager) replacing user32.dll + # originally for Longhorm, and for Windows Aero (answer to Mac OS Aqua?) + # use hardware acceleration, compositing window manager +Windows 7 + 2009 +Windows 8 + 2012 +Windows 10 + 2015 + + +# ------------ +# Other +# ------------ + +*BeOS + Macintosh + 1996 + SY:6 + +*QNX Photons + 1994 + SY:6 + # on one floppy! amazing + + +GEM + 1984 + # sued later by Apple +GEM 2.0 + 1986 + +Geos + 1985 + +Amiga Workbench 1.0 + 1985 +Amiga Workbench 2.0 + 1990 + + +OS/2 + +#-------------------------------------------------------------------------- +# Recent +#-------------------------------------------------------------------------- + +Android SurfaceFlinger + 2008 + # copyright says 2007, but first android release was 2008 + +*Wayland + 2008 + Xorg + SY:2 + +Mir + 2013 + # dead, killed by Canonical