====== The News =====================================================
=====================================================================
-Version 2.2.3:
+Version 2.2.3 (2008-11-12):
- Building with Guile in a non-standard location now works
+- Building without Guile now works again
+- Building with GCC 4.x now works
+ + GCC prior to 4.x's libc headers exported the libc symbols from
+ both :: and std:: leading to a few unqualified libc calls sneaking
+ into Bobot++'s source
+- All uses of the long deprecated GH API have been removed
+ + Building against libguile 1.8 built with --disable-deprecated now
+ works
+ + Building against Guile 1.6 likely no longer works
+ + However, building against guile-vm libguile does work and Bobot++
+ is the first application built this way
+- This will be the last of the 2.2.x series; a 2.3.x series /might/ be
+ started to enhance the scripting interface and finish the manual
Version 2.2.2 (2006-06-28):
- No longer segfaults when loading bobot-utils.scm
* 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