Fix make-array transforms.
[sbcl.git] / CREDITS
diff --git a/CREDITS b/CREDITS
index d7de58c..b2061fb 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -1,10 +1,11 @@
+-*- coding: utf-8; mode: text; -*-
 
       The programmers of old were mysterious and profound.  We
    cannot fathom their thoughts, so all we do is describe their
    appearance.
       Aware, like a fox crossing the water.  Alert, like a general
    on the battlefield.  Kind, like a hostess greeting her guests.
-      Simple, like uncarved blocks of wood.  Opaque, like black 
+      Simple, like uncarved blocks of wood.  Opaque, like black
    pools in darkened caves.
       Who can tell the secrets of their hearts and minds?
       The answer exists only in the Tao.
@@ -25,7 +26,7 @@ in CMU CL 18b,
   Lisp implementation for use in the CMU community.
 and
   CMU CL has been under continuous development since the early 1980's
-  (concurrent with the Common Lisp standardization effort.) 
+  (concurrent with the Common Lisp standardization effort.)
 Apparently most of the CMU Common Lisp implementors moved on to
 work on the Gwydion environment for Dylan.
 
@@ -154,7 +155,7 @@ The CMU CL seq.lisp code also gave credits for later work by Jim Muller
 and Bill Chiles.
 
 The modules system (code/module.lisp, containing REQUIRE, PROVIDE,
-and friends, now deprecated by ANSI) was written by Jim Muller and 
+and friends, now deprecated by ANSI) was written by Jim Muller and
 rewritten by Bill Chiles.
 
 The CMU CL garbage collector was credited to "Christopher Hoover,
@@ -176,7 +177,7 @@ code to pretty-print backquote expressions says that unparsing support
 was provided by Miles Bader.
 
 The CMU implementations of the Common Lisp query functions Y-OR-N-P
-and YES-OR-NO-P were originally written by Walter van Roggen, and 
+and YES-OR-NO-P were originally written by Walter van Roggen, and
 updated and modified by Rob MacLachlan and Bill Chiles.
 
 The CMU CL sort functions (code/sort.lisp) were written by Jim Large,
@@ -208,7 +209,7 @@ originally written by Robert MacLachlan:
        toplevel interface functions and drivers
                compiler/main.lisp
 Besides writing the compiler, and various other work mentioned elsewhere,
-Robert MacLachlan was also credited with tuning the implementation of 
+Robert MacLachlan was also credited with tuning the implementation of
 streams for Unix files, and writing
        various floating point support code
                code/float-trap.lisp, floating point traps
@@ -217,7 +218,7 @@ streams for Unix files, and writing
                code/time.lisp
 
 William Lott is also credited with writing or heavily maintaining some
-parts of the CMU CL compiler. He was responsible for lifting 
+parts of the CMU CL compiler. He was responsible for lifting
 compiler/meta-vmdef.lisp out of compiler/vmdef.lisp, and also wrote
        various optimizations
                compiler/array-tran.lisp
@@ -225,7 +226,7 @@ compiler/meta-vmdef.lisp out of compiler/vmdef.lisp, and also wrote
                compiler/seqtran.lisp (with some code adapted from an older
                        seqtran written by Wholey and Fahlman)
        the separable compiler backend
-               compiler/backend.lisp   
+               compiler/backend.lisp
                compiler/generic/utils.lisp
        the implementation of LOAD-TIME-VALUE
                compiler/ltv.lisp
@@ -239,7 +240,7 @@ compiler/meta-vmdef.lisp out of compiler/vmdef.lisp, and also wrote
                compiler/generic/vm-typetran.lisp, FOO=type ops
                compiler/generic/objdef.lisp, FOO=object representation
                compiler/generic/primtype.lisp, FOO=primitive types
-Also, Christopher Hoover and William Lott wrote compiler/generic/vm-macs.lisp 
+Also, Christopher Hoover and William Lott wrote compiler/generic/vm-macs.lisp
 to centralize information about machine-dependent macros and constants.
 
 Sean Hallgren is credited with most of the Alpha backend.  Julian
@@ -247,7 +248,7 @@ Dolby created the CMU CL Alpha/Linux port. Douglas Crosher added
 complex-float support.
 
 The original PPC backend was the work of Gary Byers.  Some bug fixes
-and other changes to update it for current CMUCL interfaces were made 
+and other changes to update it for current CMUCL interfaces were made
 by Eric Marsden and Douglas Crosher
 
 The CMU CL machine-independent disassembler (compiler/disassem.lisp)
@@ -268,7 +269,7 @@ Bill Chiles also modified code/macros.lisp. Much of the implementation
 of PURIFY was rewritten in C by William Lott.
 
 The CMU CL number functions (code/number.lisp) were written by Rob
-MacLachlan, but acknowledge much code "derived from code written by 
+MacLachlan, but acknowledge much code "derived from code written by
 William Lott, Dave Mcdonald, Jim Large, Scott Fahlman, etc."
 
 CMU CL's weak pointer support (code/weak.lisp) was written by
@@ -283,7 +284,7 @@ by Bill Chiles to add encapsulation, and modified more by William Lott
 to add FDEFN objects.
 
 The CMU CL condition system (code/error.lisp) was based on
-some prototyping code written by Ken Pitman at Symbolics.
+some prototyping code written by Kent Pitman at Symbolics.
 
 The CMU CL HASH-TABLE system was originally written by Skef Wholey
 for Spice Lisp, then rewritten by William Lott, then rewritten
@@ -304,7 +305,7 @@ Steven Handerson (based on Skef's idea), and that it was rewritten by
 William Lott to remove assumptions about length of fixnums on the MIPS
 port.
 
-The comments in the main body of the CMU CL debugger 
+The comments in the main body of the CMU CL debugger
        code/debug.lisp
 say that it was written by Bill Chiles. Some other related files
        code/debug-int.lisp, programmer's interface to the debugger
@@ -324,7 +325,7 @@ MacLachlan.
 
 Various CMU CL support code was written by William Lott:
        the bytecode interpreter
-               code/byte-interp.lisp 
+               code/byte-interp.lisp
        bitblt-ish operations a la SYSTEM-AREA-COPY
                code/bit-bash.lisp
        Unix interface
@@ -452,8 +453,9 @@ Aronson, and Steve Handerson.
 
 Douglas Crosher wrote code to support Gray streams, added X86 support
 for the debugger and relocatable code, wrote a conservative
-generational GC for the X86 port, and added X86-specific extensions to
-support stack groups and multiprocessing.
+generational GC for the X86 port.  He also added X86-specific
+extensions to support stack groups and multiprocessing, but these are
+not present in SBCL
 
 The CMU CL user manual credits Robert MacLachlan as editor. A chapter
 on the CMU CL interprocess communication extensions (not supported in
@@ -506,15 +508,33 @@ Martin Atzmueller:
   I've lost count. See the CVS logs.)
 
 Daniel Barlow:
-  He made SBCL play nicely with ILISP. He figured out how to get the
-  CMU CL dynamic object file loading code to work under SBCL. He
-  ported CMU CL's support for Alpha and PPC CPUs to SBCL, and then
-  continued to improve the ports. He wrote code (e.g. grovel_headers.c
-  and stat_wrapper stuff) to handle machine-dependence and
-  OS-dependence automatically, reducing the amount of hand-tweaking
-  required to keep ports synchronized. He's also provided support
-  for SBCL (as well as for free Common Lisp in general) through
-  his CLiki website.
+  His contributions have included support for shared object loading
+  (from CMUCL), the Cheney GC for non-x86 ports (from CMUCL), Alpha
+  and PPC ports (from CMUCL), control stack exhaustion checking (new),
+  native threads support for x86 Linux (new), and the initial x86-64
+  backend (new).  He also refactored the garbage collectors for
+  understandability, wrote code (e.g. grovel-headers.c and
+  stat_wrapper stuff) to find machine-dependent and OS-dependent
+  constants automatically, and was original author of the asdf,
+  asdf-install, sb-bsd-sockets, sb-executable, sb-grovel and sb-posix
+  contrib packages.
+
+Zach Beane:
+  He provided a number of additions to SB-POSIX, implemented the
+  original timer facility on which SBCL's timers are based. and also
+  contributed the :SAVE-RUNTIME-OPTIONS support for SAVE-LISP-AND-DIE.
+
+James Bielman:
+  He assisted in work on the port to the Windows operating system, and
+  was instrumental in :EXECUTABLE support for SAVE-LISP-AND-DIE.
+
+Alastair Bridgewater:
+  He contributed a port of the system to the Windows operating system.
+
+Robert E. Brown:
+  He has reported various bugs and submitted several patches,
+  especially improving removing gratuitous efficiencies in the
+  standard library.
 
 Cadabra, Inc. (later merged into GoTo.com):
   They hired Bill Newman to do some consulting for them,
@@ -523,79 +543,275 @@ Cadabra, Inc. (later merged into GoTo.com):
   giving SBCL (and CMU CL) its EQUALP hash tables.
 
 Douglas Crosher:
-  He continued to improve CMU CL after SBCL forked from it, creating 
+  He continued to improve CMU CL after SBCL forked from it, creating
   many patches which were directly applicable to SBCL. Notable examples
   include fixes for various compiler bugs, the implementation of
   CL:DEFINE-SYMBOL-MACRO, and a generalization of the type system's
-  handling of the CONS type to allow ANSI-style (CONS FOO BAR) types. 
+  handling of the CONS type to allow ANSI-style (CONS FOO BAR) types.
+
+Larry D'Anna:
+  He provided several parts of SB-CLTL2 environment access, and has
+  also worked on bugs in the IR2 conversion stage of the compiler.
 
 Alexey Dejneka:
-  He has fixed many, many bugs. There's no single summary theme, but
-  he's fixed about a dozen different bugs in LOOP alone, and more
-  in the compiler itself. It appears that a lot of his fixes there
-  and elsewhere reflect systematic public-spiritedness, fixing bugs
-  as they show up in sbcl-devel or as archived in the BUGS file.
+  He fixed many, many bugs on various themes, and has done a
+  tremendous amount of work on the compiler in particular, fixing
+  bugs and refactoring.
+
+Paul Dietz:
+  He is in the process of writing a comprehensive test suite
+  for the requirements of the ANSI Common Lisp standard. Already, at
+  the halfway stage, it has caught hundreds of bugs in SBCL, and
+  provided simple test cases for them. His random crash tester has
+  caught an old deep problem in the implementation of the stack
+  analysis phase in the compiler.
+
+Brian Downing:
+  He fixed the linker problems for building SBCL on Mac OS X.  He
+  found and fixed the cause of backtraces failing for undefined
+  functions and assembly routines. He wrote the core of SBCL's 
+  alternative interpreter-based EVAL.
+
+Miles Egan:
+  He creates binary packages of SBCL releases for Red Hat and other
+  (which?) platforms.
+
+Helmut Eller:
+  A lot of the code in the SB-INTROSPECT and SB-COVER contrib modules
+  was originally written by him for Slime/Swank.
+
+Lutz Euler:
+  He made a large number of improvements to the x86-64 disassembler.
+
+Andreas Fuchs:
+  He provides infrastructure for monitoring build and performance
+  regressions of SBCL.  He assisted with the integration of the
+  Unicode work.
+
+Stephan Frank:
+  He contributed the SB-GMP contrib to exploit libgmp in bignum and
+  ratio arithmetic.
 
 Nathan Froyd:
   He has fixed various bugs, and also done a lot of internal
   cleanup, not visible at the user level but important for
   maintenance. (E.g. converting the PCL code to use LOOP instead
   of the old weird pre-ANSI ITERATE macro so that the code can be
-  read without being an expert in ancient languages and so that
-  can delete a thousand lines of implement-ITERATE macrology.)
+  read without being an expert in ancient languages and so that we
+  can delete a thousand lines of implement-ITERATE macrology from
+  the codebase.)
+
+Bruno Haible:
+  He devised an accurate continued-fraction-based implementation of
+  RATIONALIZE, replacing a less-accurate version inherited from
+  primordial CMUCL.
+
+Cyrus Harmon:
+  He fixed many PPC FFI and callback bugs.  He ported Raymond Toy's
+  work on the generational garbage collector for PPC to Linux, finding
+  and fixing other SBCL bugs in the process.
 
 Matthias Hoelzl:
   He reported and fixed COMPILE's misbehavior on macros.
 
+Daisuke Homma:
+  He added support for SunOS on x86 processors.
+
+ITA Software:
+  They hired Juho Snellman as a consultant to work on improvements to
+  SBCL, to be released into the public domain. The work they've funded
+  includes faster compilation, various improvements to the statistical
+  profiler, the SB-COVER code coverage tool, the interpreter-based
+  evaluator and the IR2-based single-stepper.
+
 Espen S Johnsen:
   He provided an ANSI-compliant version of CHANGE-CLASS for PCL.
 
+Teemu Kalvas:
+  He worked on Unicode support for SBCL, including parsing the Unicode
+  character database, restoring the FAST-READ-CHAR optimization and
+  developing external format support.
+
+Dmitry Kalyanov:
+  His work was crucial in bringing the Windows backend forward; he
+  implemented pthreads and ported SB-THREAD to this platform.
+
+Yaroslav Kavenchuk:
+  He implemented several missing features and fixed many bugs in
+  the win32 port. He also worked on external-format support for
+  SB-ALIEN.
+
+Anton Kovalenko:
+  He introduced a safepoint-based stop-the-world protocol and greatly
+  contributed to features and bugfixes related to the Windows port.
+
+Richard M Kreyter:
+  He added documentation support for CLOS slot readers and writers,
+  provided several SB-POSIX and NetBSD patches, and cleaned up
+  several of the filesystem/pathname interfaces.
+
+Frederik Kuivinen:
+  He showed how to implement the DEBUG-RETURN functionality.
+
 Arthur Lemmens:
   He found and fixed a number of SBCL bugs while partially porting
-  SBCL to bootstrap under Lispworks for Windows
+  SBCL to bootstrap under Lispworks for Windows.
+
+David Lichteblau:
+  He repeatedly failed to update his entry in this file.
 
 Robert MacLachlan:
-  He has continued to answer questions about, and contribute fixes to, 
+  He has continued to answer questions about, and contribute fixes to,
   the CMU CL project. Some of these fixes, especially for compiler
   problems, has been invaluable to the CMU CL project and, by
   porting, invaluable to the SBCL project as well.
 
 Pierre Mai:
   He has continued to work on CMU CL since the SBCL fork, and also
-  patched code to SBCL to enable dynamic loading of object files 
-  under OpenBSD.
+  patched code to SBCL to enable dynamic loading of object files
+  under OpenBSD.  He contributed to the port of SBCL to MacOS X,
+  implementing the Lisp side of the PowerOpen ABI.
+
+Eric Marsden:
+  Some of his fixes to CMU CL since the SBCL fork have been ported
+  to SBCL.  He also maintains the cl-benchmark package, which gives
+  us some idea of how our performance changes compared to earlier
+  releases and to other implementations.  He assisted in development
+  of Unicode support for SBCL.
+
+Antonio Martinez-Shotton:
+  He has contributed a number of bug fixes and bug reports to SBCL.
+
+Brian Mastenbrook:
+  He contributed to and extensively maintained the port of SBCL to
+  MacOS X. His contributions include overcoming binary compatibility
+  issues between different versions of dlcompat on Darwin, other
+  linker fixes, and signal handler bugfixes.
 
 Dave McDonald:
   He made a lot of progress toward getting SBCL to be bootstrappable
   under CLISP.
 
+Gabor Melis:
+  He mainly worked on robustness related to signal handling, threads,
+  timers with small excursions to constraint propagation, weak hash
+  tables (based on CMUCL code) and optimizing x86/x86-64 calling
+  convention.
+
+Perry E. Metzger:
+  He ported SBCL to NetBSD with newer signals, building on the
+  work of Valtteri Vuorikoski.  He also provided various cleanups to
+  the C runtime.
+
+Gerd Moellman:
+  He has made many cleanups and improvements, small and large, in
+  CMU CL (mostly in PCL), which we have gratefully ported to SBCL.  Of
+  particular note is his ctor MAKE-INSTANCE optimization, which is both
+  faster in the typical case than the old optimizations in PCL and
+  less buggy.
+
+Timothy Moore:
+  He designed and implemented the original CMUCL linkage-table, on
+  which the SBCL implementation thereof is based.
+
 William ("Bill") Newman:
   He continued to maintain SBCL after the fork, increasing ANSI
   compliance, fixing bugs, regularizing the internals of the
-  system, deleting unused extensions, improving performance in 
+  system, deleting unused extensions, improving performance in
   some areas (especially sequence functions and non-simple vectors),
   updating documentation, and even, for better or worse, getting
   rid of various functionality (e.g. the byte interpreter).
 
-Christophe Rhodes:
-  He ported SBCL to SPARC, made various port-related and SPARC-related
-  changes (like *BACKEND-SUBFEATURES*), made many fixes and
-  improvements in the compiler's type system, has done a substantial
-  amount of work on bootstrapping SBCL under unrelated (non-SBCL,
-  non-CMU-CL) Common Lisps, and contributed in other ways as well.
+NIIMI Satoshi:
+  He contributed a number of fixes to the FreeBSD port, implemented
+  some external-formats and JOIN-THREAD, and also worked on
+  the :EXECUTABLE support.
+
+Patrik Nordebo:
+  He contributed to the port of SBCL to MacOS X, finding solutions for
+  ABI and assembly syntax differences between Darwin and Linux.
+
+Luís Oliveira:
+  He contributed to the port of SBCL to the Windows operating system,
+  particuarly in the area of FFI.
+
+Scott Parish:
+  He ported SBCL to OpenBSD-with-ELF.
+
+Timothy Ritchey:
+  He implemented SB-BSD-SOCKETS support for the win32 port.
 
-Stig Erik Sandoe:
+Tobias Rittweiler
+  He has made several contributions relating to source locations,
+  pretty printing, SB-INTROSPECT, and the reader.
+
+Kevin M. Rosenberg:
+  He provided the ACL-style toplevel (sb-aclrepl contrib module), and
+  a number of MOP-related bug reports.  He also creates the official
+  Debian packages of SBCL.
+
+Joshua Ross:
+  He fixed some bugs relating to foreign calls and callbacks on the
+  Linux PowerPC platform.
+
+Christophe Rhodes:
+  He ported SBCL to SPARC (based on the CMUCL backend), made various
+  port-related and SPARC-related changes (like *BACKEND-SUBFEATURES*),
+  made many fixes and improvements in the compiler's type system, has
+  essentially completed the work to enable bootstrapping SBCL under
+  unrelated (non-SBCL, non-CMU-CL) Common Lisps.  He participated in
+  the modernization of SBCL's CLOS implementation, implemented the
+  treatment of compiler notes as restartable conditions, provided
+  optimizations to compiler output, and contributed in other ways as
+  well.
+
+Stig Erik Sandø:
   He showed how to convince the GNU toolchain to build SBCL in a way
   which supports callbacks from C code into SBCL.
 
+Rudi Schlatte:
+  He ported Paul Foley's simple-streams implementation from cmucl,
+  converted the sbcl manual to Texinfo and wrote a documentation
+  string extractor that keeps function documentation in the manual
+  current.
+
+Thiemo Seufer:
+  He modernized the MIPS backend, fixing many bugs, and assisted in
+  cleaning up the C runtime code.
+
+Julian Squires:
+  He worked on Unicode support for the PowerPC platform.
+
+Nikodemus Siivola:
+  He provided build fixes, in particular to tame the SunOS toolchain,
+  implemented package locks, ported the linkage-table code from CMUCL,
+  reimplemented STEP, implemented the compare-and-swap interface, and
+  has fixed many bugs besides.
+
+Juho Snellman:
+  He provided a number of bug fixes and performance enhancements to
+  the compiler, the standard library functions, and to the garbage
+  collector. He ported and enhanced the statistical profiler written
+  by Gerd Moellmann for CMU CL. He completed the work on the x86-64
+  port of SBCL.
+
 Brian Spilsbury:
   He wrote Unicode-capable versions of SBCL's character, string, and
-  stream types and operations on them.
+  stream types and operations on them.  (These versions did not end up
+  in the system, but did to a large extent influence the support which
+  finally did get merged.)
+
+Robert Swindells:
+  He ported SBCL to NetBSD/Sparc.
 
 Raymond Toy:
   He continued to work on CMU CL after the SBCL fork, especially on
   floating point stuff. Various patches and fixes of his have been
-  ported to SBCL.
+  ported to SBCL, including his Sparc port of linkage-table.
+
+Larry Valkama:
+  He resurrected the HPUX port, and worked on the HPPA backend in
+  general.
 
 Peter Van Eynde:
   He wrestled the CLISP test suite into a mostly portable test suite
@@ -603,11 +819,18 @@ Peter Van Eynde:
   of bug reports resulting from that, and submitted many other bug
   reports as well.
 
+Valtteri Vuorikoski:
+  He ported SBCL to NetBSD, and also fixed a long-standing bug in
+  DEFSTRUCT with respect to colliding accessor names.
+
 Colin Walters:
   His O(N) implementation of the general case of MAP, posted on the
   cmucl-imp@cons.org mailing list, was the inspiration for similar MAP
   code added in sbcl-0.6.8.
 
+Cheuksan Edward Wang:
+  He assisted in debugging the SBCL x86-64 backend.
+
 Raymond Wiker:
   He ported sbcl-0.6.3 back to FreeBSD, restoring the ancestral
   CMU CL support for FreeBSD and updating it for the changes made
@@ -617,14 +840,31 @@ Raymond Wiker:
 
 INITIALS GLOSSARY (helpful when reading comments, CVS commit logs, etc.)
 
+AB   Alastair Bridgewater
+AK   Anton Kovalenko
 AL   Arthur Lemmens
-MNA  Martin Atzmueller
-DB   Daniel Barlow
-DTC  Douglas Crosher
 APD  Alexey Dejneka
+CLH  Cyrus Harmon
+CSR  Christophe Rhodes
+DB   Daniel Barlow (also "dan")
+DFL  David Lichteblau
+DTC  Douglas Crosher
+JES  Juho Snellman
+JRXR Joshua Ross
+LAV  Larry Valkama
+LEU  Lutz Euler
+MG   Gabor Melis
+MNA  Martin Atzmueller
 NJF  Nathan Froyd
+NS   Nikodemus Siivola
+PFD  Paul F. Dietz
+PRM  Pierre Mai
+PVE  Peter Van Eynde
+PK/PVK Paul-Virak Khuong
+PW   Paul Werkowski
 RAM  Robert MacLachlan
+RLT  Raymond Toy
+TCR  Tobias Rittweiler
+THS  Thiemo Seufer
+VJA  Vincent Arkesteijn
 WHN  William ("Bill") Newman
-CSR  Christophe Rhodes
-PVE  Peter Van Eynde
-PW   Paul Werkowski
\ No newline at end of file