2 # Create Maxima's "AUTHORS" file from the Git log.
3 # Copyright (C) by Wolfgang Dautermann
4 # License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
5 # This is free software: you are free to change and redistribute it.
6 # There is NO WARRANTY, to the extent permitted by law.
11 use List
::MoreUtils
qw(uniq);
14 my $headtext=<<'ENDHEAD';
15 Maxima's development history spans three distinct periods: The
16 research project at MIT, the stewardship of William Schelter and the
17 current Maxima project.
19 MACSYMA (Project MAC's SYmbolic MAnipulation System) was developed by
20 the Mathlab group of the MIT Laboratory for Computer Science
21 (originally known as Project MAC), during the years 1969-1972. Their
22 work was supported by grants NSG 1323 of the National Aeronautics and
23 Space Administration, N00014-77-C-0641 of the Office of Naval
24 Research, ET-78-C-02-4687 of the U.S. Department of Energy, and
25 F49620-79-C-020 of the U.S. Air Force. MACSYMA was further modified
26 for use under the UNIX operating system (for use on DEC VAX computers
27 and Sun workstations), by Richard Fateman and colleagues at the
28 University of California at Berkeley; this version of MACSYMA is known
31 William Schelter developed and maintained this version, Maxima, from
32 the project's inception until his untimely death in 2001. We are
33 eternally grateful for his enormous contribution.
35 William Schelter thanked the following people for having tested
36 the code under various common lisp implementations, and for helpful
39 hagiya%kurims.kurims.kyoto-u.junet%utokyo-relay.csnet@RELAY.CS.NET
41 steve@spock.ncsa.uiuc.edu (Steve on sun/franz common lisp)
42 spar!malcolm@decwrl.dec.com (malcolm) sun/lucid
43 raible@orville.nas.nasa.gov (Eric Raible on iris(kcl))
44 fateman@peoplesparc.Berkeley.EDU (Richard Fateman)
47 In November, 2001, the Maxima project moved to the Sourceforge
48 project hosting site. The following people contributed to the Maxima
49 sourcecode (according to Git logs):
54 my $foottext=<<'ENDFOOT';
56 Maxima also includes contributions from:
65 Juan Pablo Hierro Álvarez
77 Starting with version 5.9.0, Maxima uses mk::defsystem and (slightly
78 modified) run-lisp from the Common Lisp Open Code Collection,
79 <http://clocc.sourceforge.net>.
81 The nregex code was written by Lawrence E. Freil.
86 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
91 # the first year is 2000 (git log | tail)
92 for (my $y=$year; $y >= 2000; $y--) {
93 print "Contributors in $y\n====================\n";
94 my $since = $y . '-01-01';
95 my $until = $y . '-12-31';
96 my @authors=`git log --since=$since --until=$until --format='format:%an'`;
98 foreach my $i (0 .. $#authors) {
100 # correct author names:
101 # This should be finished, before the "AUTHORS" file is generated
102 # But I do not know every Git log name <=> Realname
103 # completed (as good as possible) using https://sourceforge.net/p/maxima/_members/
104 $authors[$i] =~ s/^amundson$/James Amundson/;
105 $authors[$i] =~ s/^andrejv$/Andrej Vodopivec/;
106 $authors[$i] =~ s/^are_muc$/Andreas Eder/;
107 $authors[$i] =~ s/^Andreas Eder \(are_muc\)$/Andreas Eder/;
108 $authors[$i] =~ s/^belanger$/Jay Belanger/;
109 $authors[$i] =~ s/^beshenov$/Alexey Beshenov/;
110 $authors[$i] =~ s/^billingd$/David Billinghurst/;
111 $authors[$i] =~ s/^crategus$/Dieter Kaiser/;
112 $authors[$i] =~ s/^dgildea$/Dan Gildea/;
113 $authors[$i] =~ s/^dstang$/Dan Stanger/;
114 $authors[$i] =~ s/^dtc$/Douglas Crosher/;
115 $authors[$i] =~ s/^fabriziocaruso$/Fabrizio Caruso/;
116 $authors[$i] =~ s/^FabrizioCaruso$/Fabrizio Caruso/;
117 $authors[$i] =~ s/^Fabrizio CARUSO$/Fabrizio Caruso/;
118 $authors[$i] =~ s/^ficmatinfmag$/Jorge Barros de Abreu/;
119 # unknown: Author: grozin <grozin>
120 $authors[$i] =~ s/^hgeyer$/Harald Geyer/;
121 $authors[$i] =~ s/^jpromerobx-max$/Juan Pablo Romero Bernal/;
122 $authors[$i] =~ s/^l_butler$/Leo Butler/;
123 $authors[$i] =~ s/^macrakis$/Stavros Macrakis/;
124 $authors[$i] =~ s/^mhw2$/Mark H. Weaver/;
125 $authors[$i] =~ s/^Mark H Weaver$/Mark H. Weaver/; # same spelling as above.
126 $authors[$i] =~ s/^mikeclarkson$/Mike Clarkson/;
127 $authors[$i] =~ s/^riotorto$/Mario Rodriguez Riotorto/;
128 $authors[$i] =~ s/^Mario Rodriguez$/Mario Rodriguez Riotorto/; # same spelling as above
129 $authors[$i] =~ s/^robert_dodier$/Robert Dodier/;
130 $authors[$i] =~ s/^Robert$/Robert Dodier/; # unknown, git log entry was: Robert <robert@robert-laptop.(none)> - perhaps Robert Dodier?
131 $authors[$i] =~ s/^rtoy$/Raymond Toy/;
132 $authors[$i] =~ s/^starseeker$/Cliff Yapp/;
133 $authors[$i] =~ s/^van_nek$/Volker van Nek/;
134 $authors[$i] =~ s/^villate$/Jaime E. Villate/;
135 $authors[$i] =~ s/^Jaime Villate$/Jaime E. Villate/; # same spelling as above
136 $authors[$i] =~ s/^vttoth$/Viktor T. Toth/;
137 $authors[$i] =~ s/^vvzhy$/Vadim V. Zhytnikov/;
138 $authors[$i] =~ s/^wfs$/William F. Schelter/; # unknown (Author: wfs <wfs>), I assume, that is William F. Schelter?
139 $authors[$i] =~ s/^willisbl$/Barton Willis/;
140 $authors[$i] =~ s/^wjenkner$/Wolfgang Jenkner/;
141 # unknown: Author: xefe <xefe@xefe.(none)>
142 $authors[$i] =~ s/^yasu-honda$/Yasuaki Honda/;
143 $authors[$i] =~ s/^yycamm$/Camm Maguire/;
145 @authors=sort(@authors);
146 @authors=uniq
(@authors);
148 foreach my $i (0 .. $#authors) {
149 print $authors[$i] . "\n";