XEmacs supports many human languages as well as editing-modes for many programming and markup-languages. XEmacs runs on many operating systems including Unix/Linux, BSDs and Mac OS X. Running on Mac OS requires X11; while development has on a native Carbon version. Two versions of XEmacs for the Microsoft Windows environment exist: a native installer and a Cygwin package. Users can reconfigure almost all of the functionality in the editor by using the Emacs Lisp language. Changes to the Lisp code do not require the user to restart or recompile the editor. Programmers have made available many pre-written Lisp extensions. Many packages exist to extend and supplement the capabilities of XEmacs. Users can either download them piecemeal through XEmacs' package manager or apply them in bulk using the xemacs-sumo package or "sumo tarballs". The package manager in XEmacs predates the ELPA package system used by GNU Emacs by almost a decade and is incompatible with it. Since XEmacs 21.1 functionality has been moved out of XEmacs core and made available separately as packages. This allows users to exclude packages they have no need for. XEmacs had a package manager for over a decade before GNU Emacs developed one, but XEmacs must be restarted before new packages are loaded. Development From the project's beginnings, the developers of XEmacs aimed to have a frequent release-cycle. They also aimed for more openness to experimentation, and XEmacs often offers new features before other emacsen—pioneering (for example) inline images, variable fonts and terminal coloring. Over the years, the developers have extensively rewritten the code in order to improve consistency and to follow modern programming conventions stressing data abstraction. XEmacs has a packaging system for independently maintained Lisp packages. The version has GTK+ support and a native Carbon port for Mac OS X. XEmacs has always had a very open development-environment, including anonymous CVS, later Mercurial access and publicly accessible development mailing-lists. XEmacs comes with a 500+ page internals manual (Wing, et al., 2004). Support for Unicode has become a problem for XEmacs. As of 2005, the released version depends on the unmaintained package called Mule-UCS to support Unicode, while the development branch of XEmacs has had robust native support for external Unicode encodings since May 2002, but the internal Mule character sets lack completeness, and development seems stalled as of September 2005. XEmacs development features three branches: stable, gamma, and beta, with beta getting new features