declare smobs in alloc.c
[bpt/emacs.git] / etc / TODO
index cf67140..4c7955c 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,15 +1,30 @@
 Emacs TODO List                                                   -*-outline-*-
 
-Copyright (C) 2001-2013 Free Software Foundation, Inc.
+Copyright (C) 2001-2014 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
 If you are ready to start working on any of these TODO items, we
 appreciate your help; please write to emacs-devel@gnu.org so we can be
 aware that the problem is being addressed, and talk with you how to do
-it best.  Since Emacs is an FSF-copyrighted package, please be
-prepared to sign legal papers to transfer the copyright on your work
-to the FSF.
+it best.  Also to check that it hasn't been done already, since we
+don't always remember to update this file!  It is best to consult
+the latest version of this file in the Emacs source code repository.
+
+Since Emacs is an FSF-copyrighted package, please be prepared to sign
+legal papers to transfer the copyright on your work to the FSF.
+For more details on this, see the section "Copyright Assignment"
+in etc/CONTRIBUTE.  That file also contains some more practical
+details about getting involved.
+
+As well as the issues listed here, there are bug reports at
+<http://debbugs.gnu.org>.  Bugs tagged "easy" ought to be suitable for
+beginners to work on, but unfortunately we are not very good at using
+this tag.  Bugs tagged "help" are ones where assistance is required,
+but may be difficult to fix.  Bugs with severity "important" or higher
+are the ones we consider more important, but these also may be
+difficult to fix.  Bugs with severity "minor" may be simpler, but this
+is not always true.
 
 * Tentative plan for Emacs-24
 
@@ -62,6 +77,7 @@ to use it.
 of appropriate :type and :group.
 
 ** Remove any leading `*'s from defcustom doc-strings.
+[done?] [A lot of them are in CC Mode.]
 
 ** Remove unnecessary autoload cookies from defcustoms.
 This needs a bit of care, since often people have become used to
@@ -92,8 +108,6 @@ for users to customize.
 ** Distribute a bar cursor of width > 1 evenly between the two glyphs
    on each side of the bar (what to do at the edges?).
 
-** buffer-offer-save should be a permanent local.
-
 ** revert-buffer should eliminate overlays and the mark.
    For related problems consult the thread starting with
    http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
@@ -163,6 +177,15 @@ where <device> is the network device found under the first key.
 
 ** Check for any included packages that define obsolete bug-reporting commands.
 Change them to use report-emacs-bug.
+*** Related functions:
+**** gnus-bug
+**** report-calc-bug
+**** org-submit-bug-report
+**** lm-report-bug
+**** tramp-bug
+**** c-submit-bug-report
+**** ffap-bug and ffap-submit-bug (obsoleted)
+[Do all of them need changing?]
 
 ** Allow fringe indicators to display a tooltip (provide a help-echo property?)
 
@@ -176,6 +199,14 @@ dired buffers and DTRT WRT `auto-revert-mode'.
 http://lists.gnu.org/archive/html/emacs-devel/2008-08/msg00456.html
 
 * Important features:
+
+** "Emacs as word processor"
+http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00515.html
+    rms writes:
+    25 years ago I hoped we would extend Emacs to do WYSIWYG word
+    processing.  That is why we added text properties and variable
+    width fonts.  However, more features are still needed to achieve this.
+
 ** Extended text-properties (to make overlays "obsolete")
 *** Several text-property planes
 This would get us rid of font-lock-face property (and I'd be happy to
@@ -198,6 +229,12 @@ never really made it work for this.
 
 Perspectives also need to interact with the tabs.
 
+** FFI (foreign function interface)
+See eg http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00246.html
+
+** Replace unexec with a more portable form of dumping
+See eg http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01034.html
+
 ** Imenu could be extended into a file-structure browsing mechanism
 using code like that of customize-groups.
 
@@ -267,20 +304,22 @@ specified filters, specified timers, and specified hooks.
 ** Remove the limitation that window and frame widths and heights can
   be only full columns/lines.
 
+** The GNUstep port needs some serious attention, ideally from someone
+familiar with GNUstep and Objective C.
+
 * Other features we would like:
 
-** Make longlines-mode wrap lines based on screen position instead
-   of character position, so that variable-width fonts can be handled
-   properly.
+** A more modern printing interface.  One that pops up a dialog that lets
+you choose printer, page style, etc.
+Integration with the Gtk print dialog is apparently difficult.  See eg:
+http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00501.html
+http://lists.gnu.org/archive/html/emacs-devel/2009-04/msg00034.html
 
 ** Allow frames(terminals) created by emacsclient to inherit their environment
 from the emacsclient process.
 ** Remove the default toggling behavior of minor modes when called from elisp
 rather than interactively.  This a trivial one-liner in easy-mode.el.
 
-** Create a category of errors called `user-error' for errors which are
-typically due to pilot errors and should thus be in debug-ignored-errors.
-
 ** Give Tar mode all the features of Archive mode.
 
 ** Create a category of errors called `process-error'
@@ -389,6 +428,8 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
 
 ** Save undo information in special temporary files, and reload it
   when needed for undoing.  This could extend undo capacity.
+  undo-tree, in ELPA, already does this; its saving code could be
+  integrated without requiring the use of undo-tree.
 
 ** Change the Windows NT menu code
   so that it handles the deep_p argument and avoids
@@ -406,14 +447,6 @@ typically due to pilot errors and should thus be in debug-ignored-errors.
   Check the assignments file for other packages which might go in and
   have been missed.
 
-** Possibly install python-mode in place of python.el, or combine the two.
-Someone needs to do the work of figuring out who all the non-trivial
-python-mode.el contributors are and getting assignments.
-http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02156.html
-http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02201.html
-http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02489.html
-http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
-
 ** Make keymaps a first-class Lisp object (this means a rewrite of
   keymap.c).  What should it do apart from being opaque ?
   multiple inheritance ?  faster where-is ?  no more fix_submap_inheritance ?
@@ -423,7 +456,7 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
   an example how to do part of this; see the XMenu* functions on msdos.c.
 
 ** Implement popular parts of the rest of the CL functions as compiler
-  macros in cl-macs.
+  macros in cl-macs.  [Is this still relevant now that cl-lib exists?]
 
 ** Make compiler warnings about functions that might be undefined at run time
  smarter, so that they know which files are required by the file being
@@ -431,6 +464,8 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
 
 ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs).  Already in CUA,
   but it's a valuable feature worth making more general.
+  [Basic support added 2013/10:
+  http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00904.html ]
 
 ** Eliminate the storm of warnings concerning char/unsigned char
   mismatches that we get with GCC 4.x and proprietary compilers on
@@ -464,7 +499,8 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
 
 ** Allow unknown image types to be rendered via an external program
   converting them to, say, PBM (in the same way as PostScript?). [does
-  doc-view.el do this, or could it be extended to do this?]
+  doc-view.el do this, or could it be extended to do this?
+  Does ImageMagick obsolete this idea?]
 
 ** Allow displaying an X window from an external program in a buffer,
   e.g. to render graphics from Java applets.  [gerd and/or wmperry
@@ -504,7 +540,7 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
 ** Optionally make the cursor a little thinner at the end of a line
   or the end of the buffer.
 
-** Port the conservative stack marking code of Emacs' garbage collector
+** Port the conservative stack marking code of Emacs's garbage collector
   to more systems, so that we can completely get rid of GCPROs.  Note
   that Boehm garbage collector provides this.
 
@@ -519,8 +555,8 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
   aim for completeness, but some may be worth documenting.
 
   Here's a list which is probably not complete/correct: align, allout,
-  artist, ansi-color, array, battery, calculator, cdl, cmuscheme,
-  completion, cua, delim-col, dirtrack, double, echistory, elide-head,
+  artist, ansi-color, array, calculator, cdl, cmuscheme,
+  completion, delim-col, dirtrack, double, echistory, elide-head,
   easymenu, expand, flow-ctrl, format [format-alist],
   generic/generic-x [various modes], kermit, log-edit,
   makesum, midnight [other than in Kill Buffer node],
@@ -528,8 +564,8 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
   snmp-mode [?], soundex [should be interactive?], strokes [start from
   the web page], talk, thingatpt [interactive functions?], type-break,
   vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt,
-  feedmail [?], uce, gametree, meese, page-ext,
-  refbib, refer, scribe, sgml-mode, spell, texinfo, underline,
+  feedmail [?], uce, gametree, page-ext,
+  refbib, refer, scribe, texinfo, underline,
   cmacexp, hideif, mantemp [obsolete?], pcomplete, xml,
   cvs-status (should be described in PCL-CVS manual); other progmodes,
   probably in separate manual.
@@ -620,9 +656,10 @@ http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
      There was a special trick to detect mouse press in the lower right
      corner and track mouse movements, but this did not work well, and was
      not scalable to the new Lion "resize on every window edge" behavior.
+     [As of trunk r109635, 2012-08-15, the event loop no longer polls.]
 
 **** (mouse-avoidance-mode 'banish) then minimize Emacs, will pop window back
-up on top of all others
+up on top of all others (probably fixed in bug#17439)
 
 **** free_frame_resources, face colors
 
@@ -726,12 +763,6 @@ images with lower bit depth.
 *** Decide what to do with some uncommitted imagemagick support
 functions for image size etc.
 
-*** Test with more systems.
-Tested on Fedora 12, 14, and the libmagick that ships with it.
-I also tried using an ImageMagick compiled from their SVN, in
-parallel with the one packaged by Fedora, it worked well.
-Ubuntu 8.04 was tested, but it seems it ships a broken ImageMagick.
-
 ** nxml mode
 
 *** High priority
@@ -1202,6 +1233,9 @@ systems for HTML/XML files automatically."
    More specifically do what's needed to make ibuffer.el the default,
    or just an extension of buff-menu.el.
 
+** Replace linum.el with nlinum.el
+   http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00379.html
+
 ** Use pcomplete by default in shell-mode.
    This means to make it behave (by default) more like the current code.
    Use it also for read-shell-command, M-x compile, ...