Bison was originally written by Robert Corbett.  It would not be what
it is today without the invaluable help of these people:

Aaro Koskinen             aaro.koskinen@iki.fi
Аскар Сафин               safinaskar@mail.ru
Adam Sampson              ats@offog.org
Adrian Vogelsgesang       avogelsgesang@tableau.com
Ahcheong Lee              dkcjd2000@gmail.com
Airy Andre                Airy.Andre@edf.fr
Akim Demaille             akim@gnu.org
Albert Chin-A-Young       china@thewrittenword.com
Alexander Belopolsky      alexb@rentec.com
Alexandre Duret-Lutz      adl@lrde.epita.fr
Andre da Costa Barros     andre.cbarros@yahoo.com
Andreas Damm              adamm@onica.com
Andreas Schwab            schwab@suse.de
Andrei Malashkin          malashkin.andrey@gmail.com
Andrew Suffield           asuffield@users.sourceforge.net
Angelo Borsotti           angelo.borsotti@gmail.com
Anthony Heading           ajrh@ajrh.net
Antonio Silva Correia     amsilvacorreia@hotmail.com
Arnold Robbins            arnold@skeeve.com
Art Haas                  ahaas@neosoft.com
Arthur Schwarz            aschwarz1309@att.net
Askar Safin               safinaskar@mail.ru
Balázs Scheidler          balazs.scheidler@oneidentity.com
Baron Schwartz            baron@sequent.org
Ben Pfaff                 blp@cs.stanford.edu
Benoit Perrot             benoit.perrot@epita.fr
Bernd Edlinger            bernd.edlinger@hotmail.de
Bernd Kiefer              kiefer@dfki.de
Bert Deknuydt             Bert.Deknuydt@esat.kuleuven.ac.be
Bill Allombert            Bill.Allombert@math.u-bordeaux1.fr
Bob Rossi                 bob@brasko.net
Brandon Lucia             blucia@gmail.com
Brooks Moses              bmoses@google.com
Bruce Lilly               blilly@erols.com
Bruno Belanyi             bruno.belanyi@epita.fr
Bruno Haible              bruno@clisp.org
Charles-Henri de Boysson  de-boy_c@epita.fr
Christian Burger          cburger@sunysb.edu
Clément Démoulins         demoulins@lrde.epita.fr
Colin Daley               colin.daley@outlook.com
Cris Bailiff              c.bailiff+bison@awayweb.com
Cris van Pelt             cris@amf03054.office.wxs.nl
Csaba Raduly              csaba_22@yahoo.co.uk
Dagobert Michelsen        dam@baltic-online.de
Daniel Frużyński          daniel@poradnik-webmastera.com
Daniel Galloway           dg1751@att.com
Daniel Hagerty            hag@gnu.org
Daniela Becker            daniela@lrde.epita.fr
David Barto               david.barto@sparqlcity.com
David J. MacKenzie        djm@gnu.org
David Kastrup             dak@gnu.org
David Michael             fedora.dm0@gmail.com
Dengke Du                 dengke.du@windriver.com
Denis Excoffier           gcc@Denis-Excoffier.org
Dennis Clarke             dclarke@blastwave.org
Derek Clegg               derek@me.com
Derek M. Jones            derek@knosof.co.uk
Di-an Jan                 dianj@freeshell.org
Dick Streefland           dick.streefland@altium.nl
Didier Godefroy           dg@ulysium.net
Don Macpherson            donmac703@gmail.com
Dwight Guth               dwight.guth@runtimeverification.com
Efi Fogel                 efifogel@gmail.com
Enrico Scholz             enrico.scholz@informatik.tu-chemnitz.de
Eric Blake                ebb9@byu.net
Eric S. Raymond           esr@thyrsus.com
Étienne Renault           renault@lrde.epita.fr
Evan Lavelle              eml-bison@cyconix.com
Evan Nemerson             evan@nemerson.com
Evgeny Stambulchik        fnevgeny@plasma-gate.weizmann.ac.il
Fabrice Bauzac            noon@cote-dazur.com
Ferdinand Thiessen        ferdinand@fthiessen.de
Florian Krohm             florian@edamail.fishkill.ibm.com
Frank Heckenbach          frank@g-n-u.de
Frans Englich             frans.englich@telia.com
Gabriel Rassoul           gabriel.rassoul@epita.fr
Gary L Peskin             garyp@firstech.com
Gavin Smith               gavinsmith0123@gmail.com
Georg Sauthoff            gsauthof@TechFak.Uni-Bielefeld.DE
George Neuner             gneuner2@comcast.net
Gilles Espinasse          g.esp@free.fr
Giorgos Pap               giorgos551pap@gmail.com
Goran Uddeborg            goeran@uddeborg.se
Guido Trentalancia        trentalg@aston.ac.uk
H. Merijn Brand           h.m.brand@hccnet.nl
Hans Åberg                haberg-1@telia.com
Horst Von Brand           vonbrand@inf.utfsm.cl
Jacob L. Mandelson        jlm-bbison@jlm.ofb.net
Jan Nieuwenhuizen         janneke@gnu.org
Jannick                   thirdedition@gmx.net
Jeff Hammond              jeff_hammond@acm.org
Jerry Quinn               jlquinn@optonline.net
Jesse Thilo               jthilo@gnu.org
Jim Kent                  jkent@arch.sel.sony.com
Jim Meyering              jim@meyering.net
Joel E. Denny             joeldenny@joeldenny.org
Johan van Selst           johans@stack.nl
John Horigan              john@glyphic.com
Jonathan Fabrizio         jonathan.fabrizio@lrde.epita.fr
Jonathan Nieder           jrnieder@gmail.com
Josh Soref                jsoref@gmail.com
Juan Manuel Guerrero      juan.guerrero@gmx.de
Karl Berry                karl@freefriends.org
Kees Zeelenberg           kzlg@users.sourceforge.net
Keith Browne              kbrowne@legato.com
Ken Moffat                zarniwhoop@ntlworld.com
Kiyoshi Kanazawa          yoi_no_myoujou@yahoo.co.jp
Lars Maier                lars.maier@tefax.net
Lars Wendler              polynomial-c@gentoo.org
László Várady             laszlo.varady93@gmail.com
Laurent Mascherpa         laurent.mascherpa@epita.fr
Lie Yan                   lie.yan@kaust.edu.sa
Maarten De Braekeleer     maarten.debraekeleer@gmail.com
Magnus Fromreide          magfr@lysator.liu.se
Marc Autret               autret_m@epita.fr
Marc Mendiola             mmendiol@usc.edu
Marc Schönefeld           marc.schoenefeld@gmx.org
Mark Boyall               wolfeinstein@gmail.com
Marko Mäkelä              marko.makela@iki.fi
Martin Blais              blais@furius.ca
Martin Jacobs             martin.jacobs@arcor.de
Martin Mokrejs            mmokrejs@natur.cuni.cz
Martin Nylin              martin.nylin@linuxmail.org
Matt Kraai                kraai@alumni.cmu.edu
Matt Rosing               rosing@peakfive.com
Maxim Prohorenko          Maxim.Prohorenko@gmail.com
Michael Catanzaro         mcatanzaro@gnome.org
Michael Felt              mamfelt@gmail.com
Michael Hayes             m.hayes@elec.canterbury.ac.nz
Michael Raskin            7c6f434c@mail.ru
Michel d'Hooge            michel.dhooge@gmail.com
Michiel De Wilde          mdewilde.agilent@gmail.com
Mickael Labau             labau_m@epita.fr
Mike Castle               dalgoda@ix.netcom.com
Mike Frysinger            vapier@gentoo.org
Mike Sullivan             Mike.sullivan@Oracle.COM
Nate Guerin               nathan.guerin@riseup.net
Neil Booth                NeilB@earthling.net
Nelson H. F. Beebe        beebe@math.utah.edu
neok m4700                neok.m4700@gmail.com
Nick Bowler               nbowler@elliptictech.com
Nicolas Bedon             nicolas.bedon@univ-rouen.fr
Nicolas Burrus            nicolas.burrus@epita.fr
Nicolas Tisserand         nicolas.tisserand@epita.fr
Nikita Popov              nikic@php.net
Nikki Valen               nicolettavalencia.nv@gmail.com
Noah Friedman             friedman@gnu.org
Odd Arild Olsen           oao@fibula.no
Oleg Smolsky              oleg.smolsky@pacific-simulators.co.nz
Oleksii Taran             oleksii.taran@gmail.com
Oliver Mangold            o.mangold@gmail.com
Paolo Bonzini             bonzini@gnu.org
Paolo Simone Gasparello   djgaspa@gmail.com
Pascal Bart               pascal.bart@epita.fr
Patrice Dumas             pertusus@free.fr
Paul Eggert               eggert@cs.ucla.edu
Paul Hilfinger            Hilfinger@CS.Berkeley.EDU
Per Allansson             per@appgate.com
Peter Eisentraut          peter_e@gmx.net
Peter Fales               psfales@lucent.com
Peter Hamorsky            hamo@upjs.sk
Peter Simons              simons@cryp.to
Petr Machata              pmachata@redhat.com
Pho                       pho@cielonegro.org
Piotr Gackiewicz          gacek@intertel.com.pl
Piotr Marcińczyk          piomar123@gmail.com
Pramod Kumbhar            pramod.s.kumbhar@gmail.com
Quentin Hocquet           hocquet@gostai.com
Quoc Peyrot               chojin@lrde.epita.fr
R Blake                   blakers@mac.com
Raja R Harinath           harinath@cs.umn.edu
Ralf Wildenhues           Ralf.Wildenhues@gmx.de
Rich Wilson               richaw@gmail.com
Richard Stallman          rms@gnu.org
Rici Lake                 ricilake@gmail.com
Rob Conde                 rob.conde@ai-solutions.com
Rob Vermaas               rob.vermaas@gmail.com
Robert Anisko             anisko_r@epita.fr
Robert Yang               liezhi.yang@windriver.com
Roland Levillain          roland@lrde.epita.fr
Ryan                      dev@splintermail.com
Satya Kiran Popuri        satyakiran@gmail.com
Sebastian Setzer          sebastian.setzer.ext@siemens.com
Sebastien Fricker         sebastien.fricker@gmail.com
Sébastien Villemot        sebastien@debian.org
Sergei Steshenko          sergstesh@yahoo.com
Shura                     debil_urod@ngs.ru
Simon Sobisch             simonsobisch@web.de
Stefano Lattarini         stefano.lattarini@gmail.com
Stephen Cameron           stephenmcameron@gmail.com
Steve Murphy              murf@parsetree.com
Suhwan Song               prada960808@gmail.com
Sum Wu                    sum@geekhouse.org
Théophile Ranquet         theophile.ranquet@gmail.com
Thiru Ramakrishnan        thiru.ramakrishnan@gmail.com
Thomas Jahns              jahns@dkrz.de
Thomas Petazzoni          thomas.petazzoni@bootlin.com
Tim Josling               tej@melbpc.org.au
Tim Landscheidt           tim@tim-landscheidt.de
Tim Van Holder            tim.van.holder@pandora.be
Tobias Frost              tobi@debian.org
Todd Freed                todd.freed@gmail.com
Tom Kramer                kramer@nist.gov
Tom Lane                  tgl@sss.pgh.pa.us
Tom Tromey                tromey@cygnus.com
Tomasz Kłoczko            kloczko.tomasz@gmail.com
Tommy Nordgren            tommy.nordgren@chello.se
Troy A. Johnson           troyj@ecn.purdue.edu
Tys Lefering              gccbison@gmail.com
Uxio Prego                uxio@uma.es
Valentin Tolmer           nitnelave1@gmail.com
wcventure                 wcventure@126.com
Victor Khomenko           victor.khomenko@newcastle.ac.uk
Victor Zverovich          victor.zverovich@gmail.com
Vin Shelton               acs@alumni.princeton.edu
W.C.A. Wijngaards         wouter@NLnetLabs.nl
Wayne Green               wayne@infosavvy.com
Wei Song                  wsong83@gmail.com
Wojciech Polak            polak@gnu.org
Wolfgang S. Kechel        wolfgang.kechel@prs.de
Wolfgang Thaller          wolfgang.thaller@gmx.net
Wolfram Wagner            ww@mpi-sb.mpg.de
Wwp                       subscript@free.fr
xolodho                   xolodho@gmail.com
Yuichiro Kaneko           spiketeika@gmail.com
Yuriy Solodkyy            solodon@gmail.com
Zack Weinberg             zack@codesourcery.com
江 祖铭                    jjzuming@outlook.com
長田偉伸                   cbh34680@iret.co.jp
马俊                       majun123@whu.edu.cn

Many people are not named here because we lost track of them.  We
thank them!  Please, help us keeping this list up to date.

Local Variables:
mode: text
coding: utf-8
End:

-----

Copyright (C) 2000-2015, 2018-2022, 2025 Free Software Foundation, Inc.

This file is part of Bison, the GNU Parser Generator.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
