[project @ 2004-06-13 02:03:43 by unknown_lamer]
[clinton/bobotpp.git] / TODO
diff --git a/TODO b/TODO
dissimilarity index 72%
index 774f1de..dd870c0 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,45 +1,55 @@
-2.2 will be released when most of these are done
-
-General:
-* Make String operator >> act like all other >>'s, and add getline?
-* finish ISO C++-ification (remove deprecated uses of static, casts)
-* 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).
-
-Scripting:
-* Make bot:random use the Guile RNG instead of C RNG (better?)
-   - definition would be (define (bot:random) (random BIG_NUMBER))
-   - Just use max-fixnum from the test scripts for BIG_NUMBER
-* Add commands to delete a hook
-   - return an iterator to the hook and let the user kill it?
-   - this would require a new SMOB to be created
-* Add Scheme utils function to convert "normal" dates into time since
-   1970.
-* Finish adding commands to Scheme for sending messages
-   (e.g. bot:send-CTCP to send a CTCP message)
-* Add util functions for doing stuff like quoting CTCP messages
-
-Networking:
-* Add a networked interface to guile repl
-   - Admins only
-   - SSH? Telnet? DCC-Chat?
-   - Access to repl will require user to authenticate
-   - Allow server to be disabled at run because of security...
-* Fix DCC support
-   - Note that Socket will have a buffer overflow problem with DCC
-     because it uses a buffer of 512 characters, and a DCC line is not
-     limited to 512 chars like an IRC line is. The question is: should
-     I rewrite readLine to be more general (allocate buffer on the
-     fly) or rename readLine to ircReadLine and add a more general
-     readLine? I think I could use a static std::string and have it
-     grow as needed, with a default size of 512.
-* Add Channel logging (log full text of channel if enabled) script
-* Make connecting to irc.oftc.net work...I wonder if their ircd is b0rked
-
-Documentation:
-* Work on Texinfo manual (especially scripting section)
-
-Other (post 2.2 release):
-* Remove gh_* when Guile 1.8 is released
\ No newline at end of file
+2.2:
+* Finish adding commands to Scheme for sending messages
+  (e.g. bot:send-CTCP to send a CTCP message)
+* Add util functions for doing stuff like quoting CTCP messages
+* Finish adding hooks/send hooks
+* Write Texinfo manual
+* DCC CHAT min user level
+* Configuration Database
+* Improve the help syst
+* DCC FILE support (sending and recieving)
+* XDCC file server script (requires DCC FILE support)
+
+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).
+
+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 be done as a script, but requires non-coop threads
+     support to be done easily
+   - Admins only
+   - Telnet
+   - Store authorized users and passwords in bot.telnet file
+   - Bot master can add new telnet users
+   - MUST HAVE PASSWORD
+   - Maybe use SSL?
+
+Definitely 3.0:
+* Remove gh_* when Guile 1.8 is released
+* Make it possible to use Scheme functions in the Parser itself
+* Replace large select-loop in Bot::waitForInput with multithreaded
+   CC++ sockets (this will require locking around everything Guile
+   related). UPDATE[2002-11-02]: Guile CVS now has coop threads built
+   on top of pthreads, which I could probably use when 1.8 nears
+   release.
+   UPDATE[2002-12-22]: Guile CVS now has support for full pthreads, no
+   more coop stuff. After 1.8 is released threads will probably be
+   used.
+   - To clarify: There will be one thread for DCCs and another thread
+   for the current irc server connection, each with its own select
+   loop. There may also be a thread for the network repls if I
+   implement those.
\ No newline at end of file