declare smobs in alloc.c
[bpt/emacs.git] / etc / TODO
index 0496359..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,8 +304,17 @@ 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:
 
+** 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
@@ -382,6 +428,8 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
 
 ** 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
@@ -416,6 +464,8 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
 
 ** 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
@@ -490,7 +540,7 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
 ** 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.
 
@@ -505,8 +555,8 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
   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],
@@ -514,8 +564,8 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
   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.
@@ -600,18 +650,16 @@ rather than interactively.  This a trivial one-liner in easy-mode.el.
 
 *** Bugs
 
-**** The event loop relies on polling and that hurts performance.
-     A better strategy is to have the select part in its own thread and let
-     the main thread communicate with that thread (see how Gdk does it for
-     inspiration).  A problem is that redraw don't happen during resize,
+**** The event loop does not redraw.
+     A problem is that redraw don't happen during resize,
      because we can't break out from the NSapp loop during resize.
-     There is a special trick to detect mouse press in the lower right
-     corner and track mouse movements, but this does not work well, and is
+     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
 
@@ -1185,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, ...