>>>> "Steven" == Steven T Hatton
<hattons(a)globalsymmetry.com> writes:
Steven> I would love to attempt a refactoring of the core.
Emacs was first refactored long before "refactor" was a word, at least
as early as 1978. See
http://www.jwz.org/doc/emacs-timeline.html (a
now somewhat dated graphical timeline), and a more detailed text timeline
focusing on GNU Emacs and XEmacs in the XEmacs Internals Manual.
And several of the in-progress projects are refactoring. Ben just
broke up all the blah-{x,gtk,msw}.c files into blah-{x,gtk,msw}.c and
blah-common.c files, unifying about 2/3 of the code. Buffer
accessors, ditto, preliminary to supporting (a) Unicode as internal
encoding and (b) wide-character buffers for efficiency. Mike Sperber
and students have done a bunch of refactoring on the garbage
collection code, which should make it possible to start plug'n'play
implementation of different collectors. Jerry James has polished up
the DSO implementation, and ported some stuff that used to be linked
internally to be loadable modules. Etc. etc.
True, there has never (AFAIK) been a refactoring from first
principles. But the history of Emacs (and XEmacs) has basically been
one of more or less continuous refactoring and reimplementation of
internal functionality. Surely this is an important factor in its
longevity.
Steven> But, for now I guess I just wait around for Ben to fix
Steven> it. ;-)
You realize that almost certainly what caused the bug is a
refactoring? And undoubtedly fixing it will require adding special
case code to what was a clean design? ;-)
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.