Update ancillary documentation for release
[clinton/bobotpp.git] / TODO
diff --git a/TODO b/TODO
index db39a60..524470c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -12,57 +12,52 @@ Done (2.2):
 * Add DCC_CHAT_END hook for Scheme
 * Implement ctcp-quote
 
-2.2.1:
-* Finish Texinfo manual
-* Implement ctcp-dequote
-* Finish adding commands to Scheme for sending messages
-* Finish adding hooks/send hooks
+Solved By  Inactivity:
+* Remove gh_* when Guile 1.8 is released
+  Guile 1.8 was released ages ago; no need to put this off to 3.0
+* Add a networked interface to guile repl
+  Guile Debugging Server (GDS) does a fine job of this albeit only
+  intentionally on the localhost. The bot is not particularly
+  threadsafe and so the usefulness of GDS is limited...
 
 2.4: 
-* Use configuration database class
+* Finish converting UserCommands to use Commands
+* Eliminate String class
+* Make internals threadsafe
+  - Need to lock *List, Hooks, and ServerQueue it seems
+* Convert Hooks and ServerQueue to internally use a std::priority_queue<>
 * Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v)
 * Add !setcommandlevel (move ScriptCommands implementation to Commands
   and add a UserCommands)
 * Improve the help system
+  - Generate help dynamically rather than using a static file
+  - Commands register help entries
 * Enhance the scripting layer
+ - Implement ctcp-dequote
+ - Finish adding commands to Scheme for sending messages
+ - Finish adding hooks/send hooks
+ - Add commands to delete a hook
+ - Saner module loading
+ - Higher level interface (e.g. define-command NAME (ARGS) vs define +
+   bot:addcommand)
+ - New API in module (bobot++ FOO) instead of (bobotpp ...) to allow
+   old script to continue working with the old interface
+* DCC FILE support (sending and recieving)
+* Finish configuration database class
+* Finish Texinfo manual
 
 2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise):
 General:
-* Eliminate String class
-* Finish converting UserCommands to use Commands
 * Audit code and see what data in classes should be made private and
   have getters/setters added (e.g. logFileName in Bot--if this is
   changed the log file doesn't change after the Bot is started).
-* DCC FILE support (sending and recieving)
 * Possibly convert BotConfig to use boost::any instead of std::string
   as t_value
 * Remove StrinkTokenizer, replace with boost::tokenizer
 * Remove string procedures from Utils, replace with boost::string_algo
 * Use boost::timer for internal timers
 
-Scripting:
-* Add commands to delete a hook
-   - return an iterator to the Hook
-   - this would require a new SMOB to be created
-   - Scheme could pass Hook objects around and do nifty things
-   - At least allow all hooks of a type with the same name field to be
-     deleted at once (also all hooks with the same name). Also allow
-     deleting based on the regexp
-
-Networking:
-* Add a networked interface to guile repl
-   - This can (should) be done as a script, but requires non-coop threads
-     support to be done easily (and thus requires Guile 1.8)
-   - Admins only
-   - Telnet
-   - Store authorized users and passwords in bot.telnet file
-   - Bot master can add new telnet users
-   - MUST HAVE PASSWORD
-* See if Socket::readLine could be sped up (profile it first to see if
-   it even matters)
-
 Definitely 3.0:
-* Remove gh_* when Guile 1.8 is released
 * Replace large select-loop in Bot::waitForInput with multithreaded
    - To clarify: There will be one thread for DCCs and another thread
       for the current irc server connection, each with its own select