2002-06-02 08:41  rossta

	* cpp/RuleSAXHandler.cpp: MSVC fix

2002-05-27 04:45  blackh

	* raisen/: grapevine/incoming-net-http.xml,
	grapevine/incoming-untrusted.xml, grapevine/join-transaction.xml,
	grapevine/transmit.xml, test/cut.xml: Some progress I think.

2002-05-25 00:19  ajones

	* doc/searching.lyx: More work on the description of the search
	algorithm.

2002-05-22 07:44  ajones

	* doc/searching.lyx: Started on documenting the searching
	algorithm.

2002-05-22 04:14  blackh

	* cpp/: Engine.cpp, Engine.h, Firing.cpp, Firing.h, Operation.cpp,
	Operation.h, Optimizer.cpp, Rule.cpp, Rule.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h: Fixed cut - it wasn't right before.

2002-05-22 03:24  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/Operation.cpp, cpp/Operation.h,
	cpp/RuleSAXHandler.cpp, raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/join.xml, raisen/grapevine/transmit.xml,
	raisen/test/all.xml, raisen/test/cut.xml: Added cut !! just like in
	Prolog (in which it is a single bang).

2002-05-15 03:58  blackh

	* cpp/RuleSAXHandler.cpp, raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/transaction-routing.xml,
	raisen/grapevine/transmit.xml: Some progress.  The problem at the
	moment is that welcome messages are not being generated.  (It works
	OK the first time, then afterwards it goes funny.)  It seems to be
	stopping somewhere in
	grapevine.join-transaction:respond_with_welcome.

2002-05-15 01:34  blackh

	* raisen/grapevine/: incoming-untrusted.xml, join-transaction.xml,
	join.xml: [no log message]

2002-05-13 04:09  blackh

	* raisen/test/listenBug.xml: Remove debugs.

2002-05-13 04:08  blackh

	* cpp/IOLoop.cpp, cpp/IOLoop.h, cpp/Operation.cpp, cpp/Operation.h,
	cpp/RuleSAXHandler.cpp, raisen/grapevine/join-transaction.xml,
	raisen/test/all.xml, raisen/test/localInterfaceFor.xml: A new
	'localInterfaceFor' function that tells us what local interface
	will be used to connect to the specified remote address.  This
	allows the Grapevine to know which of our IP addresses will be
	visible to that remote node correctly on a multi-homed box.  This
	breaks down when there is a firewall in between, but in other cases
	it should work correctly.
	
	Ross - Can you try 'test.localInterfaceFor' on Windows?

2002-05-12 08:42  rossta

	* cpp/win32/config.h: Turn off *very* whiny warning message

2002-05-12 03:19  blackh

	* raisen/grapevine/join-transaction.xml: Coded the routing of
	'welcome' reply messages back along the request path, but it isn't
	debugged yet.

2002-05-12 02:59  blackh

	* raisen/grapevine/: init.xml, join-transaction.xml,
	transaction-routing.xml, transaction.xml: Some more progress with
	routing of the join request.  Next thing to do is routing the
	'welcome' reply back to the requestor.

2002-05-12 01:32  blackh

	* configure, cpp/Engine.h: [no log message]

2002-04-25 02:25  blackh

	* raisen/grapevine/: address-ref.xml, incoming-net-http.xml,
	incoming-untrusted.xml, join-transaction.xml, join.xml,
	transmit.xml: Join works, apart from the fact that there is no
	routing over the existing network.

2002-04-24 04:14  blackh

	* raisen/: msg.xml, grapevine/incoming-local-http.xml,
	grapevine/incoming-net-http.xml, grapevine/incoming-untrusted.xml,
	grapevine/interface.xml, grapevine/join-transaction.xml,
	grapevine/join.xml, grapevine/negotiate-key.xml,
	grapevine/transaction.xml, grapevine/transmit.xml, sys/http-in.xml:
	Made it so address-ref indirection is used throughout, and
	debugged.

2002-04-24 01:29  blackh

	* raisen/grapevine/: interface.xml, join-transaction.xml, join.xml:
	Joining node now set up all the internal representation of the new
	neighbours it receives.

2002-04-24 00:31  blackh

	* cpp/EngineEventQueue.cpp, cpp/Operation.cpp, cpp/grapevine.cpp,
	raisen/grapevine/init.xml, raisen/grapevine/interface-control.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/sahp.xml,
	raisen/grapevine/validate-prospective-neighbour.xml,
	raisen/local/request.xml: Various tweaks.

2002-04-23 05:25  blackh

	* raisen/local/request.xml: Added version (thank you, Ross).

2002-04-23 03:55  blackh

	* raisen/grapevine/: incoming-untrusted.xml, init.xml,
	interface.xml, join-transaction.xml, join.xml, transmit.xml:
	Further progress with join.  I'm going to try not to stay up late
	tonight.

2002-04-23 03:17  blackh

	* cpp/EngineEventQueue.cpp, cpp/RuleBase.cpp,
	raisen/grapevine/address-ref.xml, raisen/grapevine/address.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/transmit.xml: Startup is a little bit faster.

2002-04-23 02:28  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/grapevine.cpp,
	raisen/test/listenBug.xml: Bug fix (phew).

2002-04-23 01:46  blackh

	* cpp/grapevine.cpp, raisen/test/all.xml,
	raisen/test/causesAssertionFailure.xml, raisen/test/listenBug.xml:
	Added a 'listenBug' test cases that shows the Engine bug I am
	currently having an experience with.

2002-04-22 16:48  blackh

	* raisen/sys/http-in.xml: Different haiku.

2002-04-22 16:15  blackh

	* raisen/sys/http-in.xml: Improve 404 message with Haiku.

2002-04-22 07:52  blackh

	* cpp/: Engine.cpp, Engine.h: Engine is now a lot faster.  All the
	test cases work, and it's definitely obviously faster.	Two
	problems: * Observed some strange stuff with the main program
	refusing to process incoming local HTTP requests.  It would accept
	the socket, and hang, and a <sys.socket.accept fact would be
	hanging around.  * Doesn't fix the problem of a long list of
	<obj.addresses being VERY slow to load when persisted.	I will
	probably have to find out why it is looping so much by mucking
	about with the code in grapevine.address.

2002-04-22 05:20  blackh

	* cpp/: Engine.cpp, Engine.h: Yet another re-write in preparation
	for speeding this baby up.

2002-04-22 04:01  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/Operation.cpp,
	cpp/Reference.cpp, raisen/grapevine/init.xml: Lots of code changes,
	and it does just the same as it did before.  Getting closer to
	making Raisen faster.

2002-04-21 11:42  rossta

	* INSTALL, INSTALL.debian, INSTALL.msvc, ad, alocal.sh, cfbuild.sh,
	cfconfig.sh, cfsense.sh, cfsetup.sh, configure.in, debian_setup.sh,
	env.sh, cpp/grapevine.cpp, cpp/grapevine.dsp: MSVC build fixes. 
	Cleaned up documentation and replaced all (?) references to xerces
	with expat.

2002-04-21 08:27  blackh

	* raisen/grapevine/: address-ref.xml, address.xml,
	incoming-net-http.xml, incoming-untrusted.xml, init.xml,
	interface.xml, join-transaction.xml, negotiate-key.xml,
	neighbour.xml, transmit.xml: Added 'address-ref' stuff and debugged
	join-transaction a bit more.

2002-04-21 04:09  blackh

	* cpp/RuleBase.cpp, cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h,
	raisen/grapevine/incoming-untrusted.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/neighbour.xml, raisen/grapevine/route.xml,
	raisen/grapevine/transaction.xml, raisen/grapevine/vector.xml: A
	fair bit of progress with regard to joining.  There are some bugs
	that I need to sort out: - A possible engine bug. (See comments in
	join-transaction.xml.) - Need to do something about scrunching
	addresses together that end up	 having the same IP address and
	port.  Best thing to do is probably   to introduce a new
	'logicalAddress' and 'physicalAddress' distinction   to replace
	<obj.address.  Also, the engine is very slow when the list of
	addresses gets long.  Need to look into doing a more efficient
	search in the core of the engine, which shouldn't be too difficult
	now.  It's just a matter of changing the various loops that call
	doCombine() do find the matches using an STL map rather than by
	looping.

2002-04-21 00:37  blackh

	* raisen/grapevine/: address.xml, incoming-net-http.xml,
	interface.xml, join-transaction.xml: [no log message]

2002-04-20 23:57  blackh

	* cpp/RuleSAXHandler.cpp, raisen/obj.xml,
	raisen/grapevine/address.xml, raisen/grapevine/interface.xml,
	raisen/grapevine/join-transaction.xml,
	raisen/grapevine/neighbour.xml, raisen/grapevine/sahp.xml,
	raisen/local/request.xml, raisen/test/all.xml,
	raisen/test/arrayRef.xml: Improved local web interface and fixed an
	engine bug.

2002-04-20 20:32  blackh

	* cpp/Fact.cpp, cpp/Fact.h, cpp/Persist.cpp, cpp/Persist.h,
	raisen/grapevine/sahp.xml: Fixed a bug in persistence that I
	introduced.

2002-04-20 20:31  blackh

	* expat.mak: Attempt to fix missing quotes.

2002-04-20 20:11  blackh

	* ad2: [no log message]

2002-04-20 19:52  blackh

	* cpp/RuleSAXHandler.cpp, cpp/SAHP.cpp, cpp/SAHP.h,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/sahp.xml: I added a salt to the SAHP calculation. 
	All the SAHP stuff works again now.

2002-04-20 19:04  blackh

	* cpp/Crypt.cpp, cpp/SAHP.cpp, cpp/SAHP.h,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/sahp.xml,
	raisen/sys/socket.xml, raisen/test/persist2a.xml,
	raisen/test/persist2b.xml, raisen/test/sha1.xml: SAHP stuff works
	again.

2002-04-20 10:32  blackh

	* cpp/BerkDB.cpp, cpp/BerkDB.h, cpp/IOLoop.cpp, cpp/IOLoop.h,
	cpp/Operation.cpp, cpp/ParseXML.cpp, cpp/ParseXML.h,
	cpp/Persist.cpp, cpp/Persist.h, cpp/grapevine.cpp,
	raisen/demo/random64.xml, raisen/demo/vector.xml,
	raisen/grapevine/incoming-net-http.xml, raisen/grapevine/init.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/negotiate-key.xml, raisen/grapevine/neighbour.xml,
	raisen/grapevine/transmit.xml, raisen/grapevine/vector.xml,
	raisen/sys/http-in.xml, raisen/sys/http-out.xml,
	raisen/sys/linesocket.xml, raisen/sys/socket.xml,
	raisen/test/binaryManipulations.xml, raisen/test/formatHTML.xml,
	raisen/test/formatXML.xml, raisen/test/parseXML.xml: A whole lot of
	fixes to the main program.  Berkeley DB is sync'ed once a second so
	there is no data loss if it is killed.

2002-04-20 08:28  blackh

	* cpp/Operation.cpp, cpp/Operation.h, cpp/RuleSAXHandler.cpp,
	raisen/sys/http-in.xml, raisen/sys/linesocket.xml,
	raisen/test/all.xml, raisen/test/binaryManipulations.xml: Added
	binary manipulation operators.

2002-04-20 05:13  blackh

	* cpp/Crypt.cpp, cpp/Crypt.h, cpp/Fact.cpp, cpp/Fact.h,
	cpp/IOLoop.cpp, cpp/Object.cpp, cpp/Object.h, cpp/Operation.cpp,
	cpp/Persist.cpp, cpp/SAHP.cpp, raisen/grapevine/identity.xml,
	raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/incoming-untrusted.xml, raisen/sys/socket.xml,
	raisen/test/base64decode.xml, raisen/test/bigIntegerToSigned.xml,
	raisen/test/binaryToHex.xml, raisen/test/blockCrypt.xml,
	raisen/test/persist2a.xml, raisen/test/randomString.xml,
	raisen/test/rsa.xml, raisen/test/signedToBigInteger.xml,
	raisen/test/unsignedToBigInteger.xml: Binary data is now abolished.
	 All binary data is represented as Base64.  I have not finished
	fixing up the main program code, so the main program is currently
	broken.

2002-04-20 03:10  blackh

	* configure, cpp/BerkDB.cpp, cpp/Fact.cpp,
	cpp/GrapevineSAXHandler.h, cpp/RuleBase.cpp,
	cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h, cpp/SAXHandler.cpp,
	cpp/SAXHandler.h, raisen/test/persist1a.xml,
	raisen/test/persist1b.xml, raisen/test/persist2a.xml: Bug fixes.

2002-04-20 02:18  blackh

	* ad, configure, configure.in, cpp/BerkDB.cpp, cpp/Crypt.cpp,
	cpp/Crypt.h, cpp/Fact.cpp, cpp/Fact.h, cpp/FactSAXHandler.cpp,
	cpp/FactSAXHandler.h, cpp/GrapevineSAXHandler.cpp,
	cpp/GrapevineSAXHandler.h, cpp/Makefile.am, cpp/Object.cpp,
	cpp/Object.h, cpp/ParseXML.cpp, cpp/ParseXML.h,
	cpp/ParseXMLSAXHandler.cpp, cpp/ParseXMLSAXHandler.h,
	cpp/Persist.cpp, cpp/Persist.h, cpp/RuleBase.cpp,
	cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h, cpp/SAXHandler.cpp,
	cpp/SAXHandler.h, cpp/grapevine.cpp, cpp/utils.cpp, cpp/utils.h,
	raisen/test/persist-tests.sh, raisen/test/persist2a.xml: Grapevine
	now works with EXPAT instead of XERCES.

2002-04-19 22:28  blackh

	* cpp/grapevine.cpp, raisen/demo/call.xml, raisen/demo/connect.xml,
	raisen/demo/http-out.xml, raisen/demo/onretract.xml,
	raisen/demo/random64.xml, raisen/demo/sahp.xml,
	raisen/demo/test.xml, raisen/demo/vector.xml,
	raisen/grapevine/address.xml, raisen/grapevine/identity.xml,
	raisen/grapevine/init.xml, raisen/grapevine/sahp.xml,
	raisen/search/test.xml, raisen/sys/http-out.xml,
	raisen/test/abs.xml, raisen/test/all.xml,
	raisen/test/appendChild.xml, raisen/test/base64decode.xml,
	raisen/test/base64encode.xml, raisen/test/bigIntegerToSigned.xml,
	raisen/test/bigIntegerToUnsigned.xml, raisen/test/binaryToHex.xml,
	raisen/test/blockCrypt.xml, raisen/test/charAt.xml,
	raisen/test/chr.xml, raisen/test/condemn1.xml,
	raisen/test/condemn1a.xml, raisen/test/condemn2.xml,
	raisen/test/condemn2a.xml, raisen/test/condemn3.xml,
	raisen/test/condemn3a.xml, raisen/test/condemn4.xml,
	raisen/test/condemn4a.xml, raisen/test/eitheror.xml,
	raisen/test/endsWith.xml, raisen/test/entities.xml,
	raisen/test/failedToRemoveNullState.xml,
	raisen/test/failedToRemoveNullState2.xml,
	raisen/test/formatHTML.xml, raisen/test/formatXML.xml,
	raisen/test/get.xml, raisen/test/getenv.xml,
	raisen/test/hexToBinary.xml, raisen/test/iif.xml,
	raisen/test/indexOf.xml, raisen/test/insertChild.xml,
	raisen/test/length.xml, raisen/test/listenWrite.xml,
	raisen/test/loadDomain.xml, raisen/test/lower.xml,
	raisen/test/max.xml, raisen/test/min.xml,
	raisen/test/multipleFactChanges.xml,
	raisen/test/multipleFactChanges2.xml,
	raisen/test/multipleFactChanges3.xml, raisen/test/neg.xml,
	raisen/test/onretract.xml, raisen/test/operators.xml,
	raisen/test/ord.xml, raisen/test/paren.xml,
	raisen/test/parseXML.xml, raisen/test/persist1a.xml,
	raisen/test/persist1b.xml, raisen/test/persist2a.xml,
	raisen/test/persist2b.xml, raisen/test/precedence.xml,
	raisen/test/random.xml, raisen/test/randomString.xml,
	raisen/test/retractPropagateBug.xml, raisen/test/rsa.xml,
	raisen/test/samePatternBug.xml, raisen/test/set.xml,
	raisen/test/sgn.xml, raisen/test/sha1.xml,
	raisen/test/shiftLeft.xml, raisen/test/shiftRight.xml,
	raisen/test/signedToBigInteger.xml, raisen/test/startsWith.xml,
	raisen/test/subfactAttrBug.xml, raisen/test/substring.xml,
	raisen/test/time.xml, raisen/test/toBigInteger.xml,
	raisen/test/toInteger.xml, raisen/test/toString.xml,
	raisen/test/unsignedToBigInteger.xml, raisen/test/upper.xml: Fixed
	up test cases so they work nicely.

2002-04-19 21:42  blackh

	* raisen/test/: persist-tests.sh, persist.xml, persist1a.xml,
	persist1b.xml, persist2.xml, persist2a.xml, persist2b.xml:
	Persistence test cases sorted out.

2002-04-19 21:05  blackh

	* cpp/Engine.cpp, cpp/Object.cpp, cpp/Object.h,
	raisen/grapevine/sahp.xml, raisen/test/toBigInteger.xml: Fixed a
	bug to do with number conversion.  SAHPs are now persisted EXCEPT
	that persistence of binary data does not work correctly, so the RSA
	keys get screwed up.

2002-04-19 05:34  blackh

	* cpp/grapevine.cpp, raisen/grapevine/address.xml,
	raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/incoming-untrusted.xml, raisen/grapevine/init.xml,
	raisen/grapevine/interface-control.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/negotiate-key.xml, raisen/grapevine/transmit.xml,
	raisen/sys/http-in.xml, raisen/sys/http-out.xml: Lots of general
	testing, debugging and improving of the maintenance of the list of
	IP addresses.

2002-04-19 02:24  blackh

	* cpp/grapevine.cpp, raisen/sys/init.xml: Command line processing
	changed a bit.

2002-04-18 18:10  blackh

	* doc/searching-physically-nearby.lyx: [no log message]

2002-04-18 17:42  blackh

	* doc/index.php: [no log message]

2002-04-18 17:40  blackh

	* doc/: firewalling.lyx, grape-juice.lyx, grapevine-manifesto.lyx,
	grapevine.lyx, joining-algorithm.lyx, raisen.lyx,
	routing-mixnet-filexfer.lyx, stage-0.lyx: Fixed dates.	We don't
	want them generated automatically.  Dates are important!!

2002-04-18 17:35  blackh

	* doc/: firewalling.lyx, routing-mixnet-filexfer.lyx: [no log
	message]

2002-04-18 17:23  blackh

	* doc/searching-physically-nearby.lyx: New strategy.

2002-04-18 07:07  blackh

	* cpp/: Engine.cpp, Engine.h: Removed some dead code, and fixed the
	memory leak.

2002-04-18 03:14  blackh

	* cpp/Prime.cpp, raisen/grapevine/init.xml: Fix small memory leak.
	Large memory leak remains. (Argh.)

2002-04-18 02:32  blackh

	* cpp/BerkDB.cpp, cpp/Persist.cpp, cpp/RuleBase.cpp,
	cpp/RuleBase.h, cpp/RuleSAXHandler.cpp, cpp/grapevine.cpp,
	raisen/grapevine/init.xml: This corrects the problem (re-introduced
	since my re-writes) of it initializing all screwy when restoring
	persistent state.

2002-04-18 01:17  blackh

	* cpp/Engine.cpp: Bug fix.  All tests now pass, so not only is the
	original problem fixed (see condemn test cases) but everything now
	works again.

2002-04-18 00:45  blackh

	* cpp/grapevine.cpp: Stop signals being received multiple times on
	Linux.

2002-04-18 00:41  blackh

	* cpp/RuleBase.cpp: Bug fix: Stop it from hanging when restoring a
	saved state.

2002-04-17 07:17  ajones

	* raisen/search/: add.xml, test.xml: Slowly grinding through
	writing Raisen code.

2002-04-17 06:07  ajones

	* raisen/search/: add.xml, insert.xml, search.xml, test.xml: Slowly
	making progress with searching. Still learning Raisen more than
	anything else.

2002-04-17 05:10  blackh

	* cpp/Engine.cpp, cpp/EngineEventQueue.cpp,
	raisen/test/failedToRemoveNullState.xml,
	raisen/test/failedToRemoveNullState2.xml: All the test cases work. 
	grapevine.address (run by itself works).  The main program
	partially works.

2002-04-17 04:50  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/test/all.xml,
	raisen/test/failedToRemoveNullState2.xml: failedToRemoveNullState
	test cases ALMOST work.

2002-04-17 01:56  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/EngineEventQueue.cpp,
	cpp/EngineEventQueue.h, cpp/Firing.cpp, cpp/Firing.h, cpp/Meme.cpp,
	cpp/Prime.cpp, cpp/RuleBase.cpp, raisen/test/condemn3a.xml,
	raisen/test/failedToRemoveNullState.xml,
	raisen/test/multipleFactChanges.xml: Minor progress: Got all the
	'condemn' test cases working, but failedToRemoveNullState still
	fails, and so does grapevine.address (run by itself).  Running the
	grapevine main program also fails horribly.

2002-04-17 01:49  rossta

	* cpp/: Fact.cpp, ParseXML.cpp, Persist.cpp, RuleBase.cpp,
	grapevine.dsp: Added expat migration files.  My thoughts were to
	leave the Xerces stuff in place, and wrap the expat library inside
	Xerces stub files.  Crazy?  Probably.

2002-04-16 23:58  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/EngineEvent.h,
	cpp/EngineEventQueue.cpp, cpp/EngineEventQueue.h, cpp/Prime.h,
	raisen/test/all.xml, raisen/test/condemn4.xml,
	raisen/test/condemn4a.xml: Slightly better.

2002-04-16 12:13  rossta

	* cpp/RuleBase.cpp: MSVC build fix

2002-04-16 10:11  rossta

	* cpp/grapevine.dsp: added Prime.*

2002-04-16 02:53  blackh

	* cpp/BerkDB.cpp, cpp/Engine.cpp, cpp/Engine.h,
	cpp/EngineEventQueue.cpp, cpp/Firing.cpp, cpp/RuleBase.cpp,
	cpp/RuleBase.h, raisen/test/all.xml, raisen/test/condemn3.xml,
	raisen/test/condemn3a.xml, raisen/test/failedToRemoveNullState.xml:
	More condemn test cases added and fixed.

2002-04-16 01:19  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/test/loadDomain.xml:
	"Condemn" test cases work now, but "failedToRemoveNullState" test
	case does NOT work.

2002-04-16 00:16  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/test/all.xml,
	raisen/test/condemn1a.xml, raisen/test/condemn2a.xml: Rewrite
	#423412.

2002-04-15 23:17  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/EngineEventQueue.h,
	raisen/test/all.xml, raisen/test/condemn.xml,
	raisen/test/condemn1.xml, raisen/test/condemn2.xml: Rewrite #792.

2002-04-15 03:16  blackh

	* cpp/Engine.cpp, cpp/EngineEventQueue.cpp, cpp/Firing.cpp,
	cpp/Firing.h, raisen/test/all.xml, raisen/test/condemn.xml: Added a
	regression test for the bug I'm trying to fix.

2002-04-15 02:56  blackh

	* cpp/: Engine.cpp, Engine.h: Re-write #3 (minor).

2002-04-15 02:45  blackh

	* cpp/: Engine.cpp, Engine.h, Firing.cpp: Re-write #2.

2002-04-15 00:32  blackh

	* cpp/: BerkDB.cpp, Engine.cpp, Engine.h, Firing.h: Rewrite #1.

2002-04-11 12:24  blackh

	* aclean, configure: [no log message]

2002-04-10 06:18  ajones

	* raisen/search/: add.xml, insert.xml, search.xml, test.xml: Made a
	start on searching.

2002-04-08 22:54  rossta

	* expat.mak: type: make -f expat.mak!

2002-04-07 17:36  xiarcel

	* java/: GAsciiString.java, GString.java: Ok..removed 'stringval'
	from Ascii. not needed.  GString fixed... the convert-to-ascii was
	adding a null-char set of bytes at the beginning

2002-04-07 15:20  blackh

	* cpp/EngineEventQueue.cpp: Comment out this logic that breaks
	grapevine.address.  Need to work out what the proper solution to
	this problem is.

2002-04-05 21:16  xiarcel

	* java/: GAsciiString.java, GObject.java, GString.java: Fixed
	Ascii->Unicode conversion.  Unicode->Ascii.  //borrowed code//

2002-04-05 20:33  blackh

	* raisen/grapevine/incoming-net-http.xml: [no log message]

2002-04-05 20:32  blackh

	* cpp/grapevine.cpp: Bug fix.

2002-04-05 20:10  blackh

	* cpp/: IOLoop.cpp, grapevine.cpp: Seed nodes now get stored into
	persistent storage correctly!

2002-04-05 19:48  blackh

	* cpp/Assertion.h, cpp/Engine.cpp, cpp/Engine.h, cpp/Firing.cpp,
	cpp/Firing.h, cpp/Makefile.am, cpp/Persist.cpp, cpp/Prime.cpp,
	cpp/Prime.h, cpp/RuleBase.cpp, cpp/RuleBase.h,
	raisen/grapevine/address.xml,
	raisen/grapevine/incoming-untrusted.xml, raisen/grapevine/init.xml,
	raisen/grapevine/interface-control.xml: Retrieving things out of
	persistence is working a little better.

2002-04-05 17:55  blackh

	* cpp/RuleBase.cpp, cpp/RuleBase.h, raisen/test/persist2.xml:
	Persistent facts now take effect before other facts, which is what
	we want.  test/persist2.xml now does not report both that the fact
	was not and was retrieved.

2002-04-05 17:34  xiarcel

	* java/: GAsciiString.java, GString.java, GUnicodeString.java:
	Commits for true ascii-byte[] representations

2002-04-04 20:57  xiarcel

	* java/: GInteger.java, GNumber.java: Alterations to add div/mult
	in GNumber (GBigInteger) .. test cases in main() of Number (java
	GNumber)

2002-04-04 18:41  rossta

	* cvschangeroot.sh: For Josh

2002-04-04 18:32  xiarcel

	* java/: GBigInteger.java, GInteger.java, GNumber.java,
	GObject.java: Modifications: GNumber-abstract now, GObject(main()
	cannot instantiate GNumber in example, removed new GNumber()) ....
	GBigInteger-add,subtract GInteger add,subtract,multiply,divide

2002-04-04 13:44  woolyquay

	* juice/: SearchPanel.cpp, SearchPanel.h: Grabs search string from
	textbox on Enter/Button click

2002-04-04 09:39  blackh

	* juice/: SearchPanel.cpp, SearchPanel.h: Code submitted by Josh
	Woolever.

2002-04-03 21:30  xiarcel

	* java/GBigInteger.java: 
	
	(int N, int C) {random N-bit BigInt w/ certainty of 1 - (1/(2*C))
	that its Prime

2002-04-03 20:29  xiarcel

	* java/: GNumber.java, GObject.java: Fixed GNumber for comparisons
	(equals, greater than, etc..) removed static GObject method...

2002-04-03 19:39  xiarcel

	* java/: GNumber.java, GObject.java: fix for compareTo(GNumber)

2002-04-03 18:58  xiarcel

	* java/: GBigInteger.java, GNumber.java, GString.java: Fixes for
	compareTo() operators.	These could work fine... if need be,
	though... 'greater_than()' methods can be put in also...

2002-04-03 11:39  blackh

	* cpp/IOLoop.cpp: Information about a strange assertion failure.

2002-04-03 11:22  rossta

	* autogen.sh: [no log message]

2002-04-02 23:21  xiarcel

	* java/: GBigInteger.java, GNumber.java: A couple of tweaks...

2002-04-02 23:09  xiarcel

	* java/GInteger.java: added "public int intValue()" (woops)

2002-04-02 20:41  xiarcel

	* java/: GAsciiString.java, GBigInteger.java, GInteger.java,
	GNumber.java, GObject.java, GReference.java, GString.java,
	GUnicodeString.java, GVariable.java: Initial CVS check-in,
	'Grapevine Wrapper-Object Hierarchy' -stub

2002-04-02 02:53  blackh

	* cpp/EngineEventQueue.cpp, raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/join-transaction.xml, raisen/grapevine/join.xml,
	raisen/grapevine/neighbour.xml, raisen/grapevine/vector.xml: Lists
	of neighbours are being created now.

2002-03-31 22:08  rossta

	* xerces.mak: 1_6_0 moved to an archive directory; need to test
	grapevine with 1_7_0

2002-03-28 13:01  blackh

	* cpp/Assertion.cpp, cpp/Fact.cpp, cpp/FactChangeMeme.cpp,
	raisen/test/persist.xml, raisen/test/persist2.xml: Persistence
	tweaks:  Made FactChangeMeme re-persist the fact if it is modified.

2002-03-28 12:38  blackh

	* ad: Added a useful comment.

2002-03-27 18:11  rossta

	* a, alocal.sh, autogen.sh, env.sh, cpp/Fact.cpp,
	cpp/Operation.cpp, cpp/grapevine.cpp: Added comments.  *FINALLY*
	determined autoconf bug where PLATFORM/VERSION wasn't being
	defined.  Added "standard" autogen.sh Added comments to last
	night's codefest.

2002-03-27 04:21  blackh

	* raisen/: demo/vector.xml, grapevine/join-transaction.xml,
	grapevine/neighbour.xml, grapevine/vector.xml: More progress.

2002-03-27 03:34  rossta

	* cpp/: Assertion.cpp, BerkDB.cpp, BerkDB.h, Fact.cpp, Fact.h,
	Operation.cpp, Persist.cpp, Persist.h, Retraction.cpp,
	UniqueID.cpp, UniqueID.h, grapevine.cpp: [no log message]

2002-03-27 02:39  blackh

	* cpp/Fact.cpp, raisen/test/subfactAttrBug.xml: Engine bug fix.

2002-03-27 02:22  blackh

	* raisen/test/: all.xml, persist.xml: Better message.

2002-03-27 02:20  blackh

	* raisen/: grapevine/incoming-net-http.xml,
	grapevine/join-transaction.xml, grapevine/join.xml,
	grapevine/neighbour.xml, test/persist.xml, test/persist2.xml,
	test/subfactAttrBug.xml: Test cases fixed.

2002-03-27 01:46  blackh

	* raisen/test/persist2.xml: [no log message]

2002-03-27 01:44  rossta

	* cpp/: BerkDB.cpp, BerkDB.h, Persist.cpp, Persist.h, Thread.h,
	grapevine.cpp: Fixed seg fault in Linux.  Problem stemmed from
	Linux creating Global objects in a different order than Winblows. 
	test.persist2 still fails as the domain name is interfering. 
	Working on it now, but it's getting late.

2002-03-27 01:13  blackh

	* raisen/test/persist2.xml: Try this...

2002-03-26 23:39  rossta

	* configure.in, cryptopp.mak, db.mak, xerces.mak,
	cpp/Assertion.cpp, cpp/BerkDB.cpp, cpp/BerkDB.h, cpp/Fact.cpp,
	cpp/Fact.h, cpp/Persist.cpp, cpp/Persist.h, cpp/Retraction.cpp,
	cpp/UniqueID.cpp, cpp/UniqueID.h, cpp/grapevine.cpp,
	raisen/test/persist.xml: Persistence seems to be working now, but
	I'm sure more testing is needed.  To test, type: ./grapevine -d 8
	test.persist

2002-03-26 03:18  rossta

	* acconfig.h, ad, configure.in, db.mak, cpp/AtomicInt.h,
	cpp/BerkDB.cpp, cpp/BerkDB.h, cpp/Crypt.cpp, cpp/Crypt.h,
	cpp/Debug.cpp, cpp/Debug.h, cpp/Fact.cpp, cpp/Fact.h,
	cpp/IOLoop.cpp, cpp/Makefile.am, cpp/Operation.cpp,
	cpp/ParseXML.cpp, cpp/Persist.cpp, cpp/Persist.h,
	cpp/RuleSAXHandler.cpp, cpp/SAHP.cpp, cpp/System.cpp,
	cpp/UniqueID.cpp, cpp/UniqueID.h, cpp/grapevine.cpp,
	cpp/grapevine.dsp: Added the beginnings of fact persistence.  Test
	using ./grapevine -d 8 Steve: I'm confused about domains and how
	they will be stored and retrieved from the database.  I'd like to
	"talk" with you about it, can we jabber or IRC?

2002-03-25 03:05  blackh

	* raisen/grapevine/: init.xml, join-transaction.xml, join.xml,
	neighbour.xml, sahp.xml, vector.xml: Got a wee bit more of it
	working.

2002-03-25 01:25  blackh

	* raisen/grapevine/: incoming-net-http.xml, transmit.xml: [no log
	message]

2002-03-25 01:20  blackh

	* configure, cpp/Engine.cpp, cpp/EngineEventQueue.cpp,
	cpp/Firing.cpp, cpp/Firing.h, raisen/grapevine/transmit.xml: Fixed
	engine bug that caused grapevine.transmit:do_flush to execute the
	'remember new <gather ..' twice if there was more than one
	obj.transport.	The problem was that upon execution with the second
	obj.transport, the fact that a new <gather .. fact had been raised
	was not being plucked out of the queue of pending stuff (via
	EngineEventQueue::extractPendingFirings) and therefore was not
	registering.  The rule would then happily execute thinking that
	<gather .. had NOT been raised.

2002-03-24 00:35  rossta

	* INSTALL, INSTALL.debian, ad, configure.in, db.mak,
	debian_setup.sh: The beginnings of Berkeley DB support.

2002-03-23 04:22  blackh

	* raisen/grapevine/: incoming-net-http.xml, incoming-untrusted.xml,
	init.xml, interface-control.xml, join-transaction.xml, join.xml,
	negotiate-key.xml, route.xml, transaction.xml, transmit.xml:
	Strange goings-on with transport layer still, but getting there.

2002-03-23 01:35  rossta

	* cpp/: Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added
	version(). Hi Steve!

2002-03-23 01:08  blackh

	* raisen/grapevine/: incoming-net-http.xml, neighbour.xml,
	transmit.xml, vector.xml: Transport layer seems to work now.

2002-03-23 00:28  blackh

	* cpp/: IOLoop.cpp, IOLoop.h, RuleBase.cpp: Improve the fact dump
	you get when you use ctrl-\.

2002-03-18 03:18  blackh

	* configure, raisen/grapevine/broadcast.xml,
	raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/incoming-untrusted.xml, raisen/grapevine/join.xml,
	raisen/grapevine/negotiate-key.xml, raisen/grapevine/transmit.xml,
	raisen/sys/http-out.xml, raisen/sys/socket.xml: Establishment of
	encrypted session is all working now, but there's a bug whereby it
	gets stuck in a loop after it has established the session.

2002-03-15 11:33  rossta

	* acconfig.h, configure.in: Oops.  Forgot to cvs up from /grapevine
	instead of /grapevine/cpp.  Why didn't anyone tell me?!

2002-03-13 14:41  rossta

	* cpp/: Crypt.cpp, Debug.cpp, Debug.h, grapevine.cpp,
	win32/config.h: [no log message]

2002-03-13 09:42  rossta

	* doc/raisen.lyx: Added new functions.

2002-03-13 09:07  rossta

	* cpp/: Crypt.cpp, Debug.cpp, Debug.h, SAHP.cpp, Thread.cpp,
	Thread.h, grapevine.cpp, win32/config.h: Cleaned up Debug code. 
	Added -x flag.	TRACE() statements are now prepended with:
	
	23:30:00 12345 File.cpp 1234 Class::function:
	
	Date: 1 (turned off by default) Time: 2 Thread ID: 4 Filename and
	line #: 8 Function name: 16
	
	So -x 16 would just this the function name
	
	-x -1 would list everything.

2002-03-13 03:23  blackh

	* raisen/grapevine/: address.xml, incoming-net-http.xml,
	incoming-untrusted.xml, negotiate-key.xml, neighbour.xml,
	transmit.xml, transport.xml: Much tidying up and commenting.

2002-03-13 02:47  blackh

	* raisen/: grapevine/broadcast.xml, grapevine/identity.xml,
	grapevine/incoming-local-http.xml, grapevine/incoming-net-http.xml,
	sys/http-in.xml, sys/http-out.xml: Tidied up and debugged.

2002-03-13 02:14  blackh

	* raisen/grapevine/transmit.xml: Bug fix.

2002-03-13 02:12  blackh

	* configure, raisen/grapevine/address.xml,
	raisen/grapevine/incoming-net-http.xml, raisen/grapevine/init.xml,
	raisen/grapevine/transmit.xml, raisen/grapevine/transport.xml: Code
	tidy-up.

2002-03-11 03:21  blackh

	* raisen/grapevine/: incoming-net-http.xml, incoming-untrusted.xml,
	init.xml, transmit.xml: Gathering of multiple replies together
	works better.

2002-03-11 01:59  blackh

	* cpp/Object.cpp, raisen/obj.xml, raisen/grapevine/broadcast.xml,
	raisen/grapevine/incoming-net-http.xml,
	raisen/grapevine/incoming-untrusted.xml,
	raisen/grapevine/interface.xml, raisen/grapevine/join.xml,
	raisen/grapevine/negotiate-key.xml, raisen/grapevine/transmit.xml,
	raisen/sys/http-in.xml: Made some progress on the transport layer. 
	At the end of the HTTP request, the code is now gathering up reply
	messages and sending them back in the HTTP reply.  I've also got it
	generating an RSA key, and sending the public half of it, and the
	receiving node is generating a session key and sending that back
	encrypted.  So, this is the first stages of establishing an
	communications session with a remote node.

2002-03-10 11:47  rossta

	* juice/: .cvsignore, DownloadPanel.cpp, DownloadPanel.h,
	SearchPanel.cpp, SearchPanel.h, StatusPanel.cpp, StatusPanel.h,
	UploadPanel.cpp, UploadPanel.h, juice.cpp, juice.dsp, juice.dsw,
	juice.h: Compiles in MSVC now.	I then tried to compile it in linux
	but I got tons of errors.  I didn't try compiling it in linux
	before the changes, so I don't know if the errors are due to my
	change or not.
	
	Tony: if I screwed it up, just change it back, OK?

2002-03-10 05:55  ajones

	* juice/: SearchPanel.cpp, SearchPanel.h: Added a list to the
	search panel.

2002-03-03 19:21  rossta

	* cpp/: IOLoop.cpp, SAHP.cpp: MSVC compile fixes.

2002-02-28 18:32  blackh

	* raisen/grapevine/interface.xml: Fix memory leak in Raisen code -
	old interfaces not being cleared out.

2002-02-28 18:21  blackh

	* cpp/: Fact.cpp, Fact.h: FUCKING found the FUCKING memory FUCKING
	leak BASTARD at FUCKING last FUCKFUCKFUCKSHITBUGGERFUCK

2002-02-28 15:46  blackh

	* cpp/Engine.cpp: Made the copying of another list explicit in
	order to try to find the memory leak.

2002-02-28 15:34  blackh

	* cpp/: Engine.cpp, Engine.h, Fact.cpp, Retraction.cpp: Various
	inconsequential tweaks.

2002-02-28 14:47  blackh

	* cpp/: Assertion.cpp, Assertion.h, Crypt.cpp, Engine.cpp,
	Engine.h, Fact.cpp, Object.cpp, Object.h, Retraction.cpp,
	RuleBase.cpp, RuleSAXHandler.cpp: Just spent hours trying to find
	the memory leak and failed to find it.	However, I have found out
	the following: * It's a leak of Fact objects.  * It is interesting
	to dump out the names of facts that DO get deleted.  The obvious
	exception would seem to be facts that are not involved in the
	'assert parent/child' relationships, but try as I might, I can't
	find any problem in this mechanism.  The leaf nodes of the
	assertion seem to get cleaned up, though: <sys.socket.write ../>
	and <sys.socket.close ../>

2002-02-28 11:50  blackh

	* raisen/sys/http-in.xml: Really fix fact leak.

2002-02-28 11:45  blackh

	* raisen/sys/http-in.xml: Fix fact leak.

2002-02-28 11:24  blackh

	* raisen/grapevine/sahp.xml: Fix complaint about missing file when
	you request SAHP status through the HTTP interface.  You don't need
	to set the domain to nothing when you add a subfact, because only
	the root fact has a domain designation.  As soon as you add it to a
	subfact, it gets "stripped" anyway.

2002-02-28 11:11  blackh

	* raisen/local/request.xml: Remove debugs.

2002-02-28 11:08  blackh

	* raisen/sys/: cat.xml, node.xml: Remove some obsolete files.

2002-02-28 10:56  blackh

	* raisen/: grapevine/incoming-local-http.xml, local/request.xml,
	sys/http-in.xml: Tweaks.

2002-02-28 10:51  blackh

	* raisen/: grapevine/incoming-http.xml,
	grapevine/incoming-local-http.xml, grapevine/incoming-net-http.xml,
	grapevine/init.xml, local/request.xml, sys/http-in.xml,
	sys/http-out.xml, sys/http.xml, sys/incoming.xml: Completed the
	tidy-up of all the HTTP input related code.  It was a terrible
	tangle before, and now it's much nicer.

2002-02-26 21:34  blackh

	* raisen/sys/: http-in.xml, http.xml, socket.xml: Started a tidyup
	of HTTP input code.  http-in.xml will ultimately replace http.xml.

2002-02-25 18:19  blackh

	* cpp/: SAHP.cpp, Thread.cpp: Nice wasn't quite working right. 
	Fixed now.

2002-02-25 18:01  blackh

	* raisen/grapevine/identity.xml: Put something back the way it was.

2002-02-25 17:38  blackh

	* raisen/sys/incoming.xml: Slight tweak to make it so you can
	access the grapevine local page when you point your browser at
	http://localhost:7588/ rather than using localhost:7588 as a proxy.

2002-02-25 03:00  blackh

	* raisen/grapevine/sahp.xml: SAHP solutions were coming out twice
	and I didn't understand why before.  I figured it out and this
	fixes it.

2002-02-25 02:29  blackh

	* cpp/IOLoop.cpp, raisen/grapevine/incoming-http.xml,
	raisen/grapevine/incoming-untrusted.xml, raisen/sys/socket.xml: Now
	we get the IP address and remote port of the incoming connection. 
	This will be used for TCP/IP discovery.

2002-02-25 02:11  blackh

	* raisen/grapevine/: identity.xml, sahp.xml: Turn verbose switches
	off.  Tony - you needn't have commented that line out.	I've put
	"verbose" switches at the top of each domain.

2002-02-25 02:06  blackh

	* cpp/RuleSAXHandler.cpp, cpp/SAHP.cpp, cpp/SAHP.h,
	raisen/grapevine/identity.xml, raisen/grapevine/sahp.xml,
	raisen/sys/sahp.xml: Fixed up SAHP/threading stuff.

2002-02-24 19:51  rossta

	* cpp/AtomicInt.h, cpp/Crypt.cpp, cpp/Crypt.h, cpp/Debug.h,
	cpp/FactSAXHandler.cpp, cpp/Object.cpp, cpp/ParseXML.cpp,
	cpp/ParseXML.h, cpp/ParseXMLSAXHandler.cpp,
	cpp/ParseXMLSAXHandler.h, cpp/RuleSAXHandler.cpp, cpp/SAHP.cpp,
	cpp/SAHP.h, cpp/System.cpp, cpp/grapevine.cpp, raisen/sys/sahp.xml:
	Added setSAHPQuality() function per Steve.  More Thread related
	cleanup.  Bug fixes to AtomicInt.

2002-02-24 15:15  ajones

	* raisen/: grapevine/route.xml, grapevine/sahp.xml,
	local/request.xml: A few more touch ups. I've removed the printing
	out of SAHP's (hope no-one minds) because you can get them from the
	status system.

2002-02-24 01:37  ajones

	* raisen/grapevine/route.xml: Logic to find the nearest node to the
	specified destination.

2002-02-24 00:21  rossta

	* configure.in, cpp/AtomicInt.h, cpp/Crypt.cpp, cpp/Crypt.h,
	cpp/IOLoop.cpp, cpp/Object.cpp, cpp/ParseXML.cpp, cpp/ParseXML.h,
	cpp/ParseXMLSAXHandler.cpp, cpp/ParseXMLSAXHandler.h, cpp/SAHP.cpp,
	cpp/SAHP.h, cpp/Thread.cpp, cpp/grapevine.cpp, cpp/grapevine.dsp,
	doc/.cvsignore, raisen/test/parseXML.xml: Added AtomicInt class
	(used by Crypt) Optimized Crypt's idle() function.  Cleaned up
	SAHP.  Added comments.

2002-02-23 03:38  blackh

	* cpp/IOLoop.cpp, cpp/ParseXML.cpp, cpp/SAHP.cpp,
	raisen/grapevine/incoming-http.xml,
	raisen/grapevine/incoming-untrusted.xml: Thread tweaks + a little
	more on the transport layer.

2002-02-23 01:56  blackh

	* cpp/ParseXML.cpp, cpp/ParseXMLSAXHandler.cpp,
	cpp/ParseXMLSAXHandler.h, cpp/RuleSAXHandler.cpp,
	raisen/grapevine/incoming-http.xml, raisen/test/parseXML.xml: Some
	tweaks to parseXML.  Made it so the caller specifies the domain,
	which I think is going to work better.

2002-02-23 01:34  blackh

	* cpp/: SAHP.cpp, Thread.cpp: Fixed thread priority problem in a
	half-arsed manner that should not cause any problems on Windows. 
	Linux doesn't seem to have a way to set the priority of any thread
	other than your own - without delving into horribly Linux-specific
	stuff.	Simple solution:  Call SetPriority from the SAHPThread.

2002-02-22 07:51  ajones

	* doc/grape-juice.lyx, raisen/grapevine/sahp.xml,
	raisen/sys/http-out.xml: Bits and pieces.

2002-02-22 02:42  blackh

	* raisen/test/blockCrypt.xml: typo

2002-02-22 02:36  blackh

	* cpp/Crypt.cpp, cpp/Crypt.h, cpp/Operation.cpp,
	cpp/RuleSAXHandler.cpp, raisen/test/all.xml,
	raisen/test/blockCrypt.xml, raisen/test/chr.xml: Added block
	encryption functions - see raisen/test/blockCrypt.xml for
	documentation and test case.

2002-02-22 00:55  rossta

	* cpp/: Assertion.cpp, Engine.cpp, FactSAXHandler.cpp,
	ParseXML.cpp, ParseXMLSAXHandler.cpp, RuleBase.cpp,
	RuleSAXHandler.cpp, System.cpp, longlong.h, win32/config.h: Tagged
	potential memory leak spots

2002-02-21 15:03  ajones

	* juice/: DownloadPanel.cpp, DownloadPanel.h, Makefile,
	SearchPanel.cpp, SearchPanel.h, StatusPanel.cpp, StatusPanel.h,
	UploadPanel.cpp, UploadPanel.h, juice.cpp, juice.h: Here's a start.

2002-02-21 14:03  rossta

	* cpp/: ParseXML.cpp, ParseXMLSAXHandler.cpp, ParseXMLSAXHandler.h:
	Even more cleaned up.

2002-02-21 13:24  rossta

	* cpp/: Makefile.am, Operation.cpp, Operation.h, ParseXML.cpp,
	ParseXML.h, ParseXMLParser.cpp, ParseXMLParser.h,
	RuleSAXHandler.cpp, grapevine.dsp: Moved logic from Operation.cpp
	to ParseXML.cpp, to clean things up.

2002-02-21 12:23  rossta

	* cpp/: Operation.cpp, ParseXMLParser.cpp, ParseXMLParser.h,
	ParseXMLSAXHandler.cpp, ParseXMLSAXHandler.h, grapevine.cpp:
	Cleaned up logic per Steve, that we don't about domains and rules
	in parseXML().

2002-02-21 12:16  blackh

	* raisen/test/rsa.xml: Improve output.

2002-02-21 12:14  blackh

	* cpp/BigInt.h, cpp/Crypt.cpp, cpp/Crypt.h, cpp/RuleSAXHandler.cpp,
	raisen/test/all.xml, raisen/test/rsa.xml: Added RSA encryption and
	decryption functions.

2002-02-21 10:23  blackh

	* raisen/grapevine/transmit.xml: Add XML header.

2002-02-21 10:23  rossta

	* cpp/: BigInt.cpp, BigInt.h, CriticalSection.cpp,
	CriticalSection.h, Crypt.cpp, Crypt.h, Debug.cpp, Debug.h,
	Event.cpp, Event.h, Exception.h, Fact.cpp, Fact.h,
	FactSAXHandler.h, Mutex.cpp, Mutex.h, Object.cpp, Object.h,
	Operation.cpp, Optimizer.h, ParseXMLParser.cpp, ParseXMLParser.h,
	ParseXMLSAXHandler.cpp, Reference.cpp, RuleListener.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, SAHP.cpp, Semaphore.cpp,
	Semaphore.h, System.cpp, System.h, Thread.cpp, Thread.h,
	VarSlotAllocator.h, grapevine.cpp, longlong.cpp, longlong.h,
	utils.cpp, utils.h: Removed embedded CRs to be nice.

2002-02-21 10:17  rossta

	* cpp/Engine.cpp, cpp/Fact.cpp, cpp/FactSAXHandler.cpp,
	cpp/Makefile.am, cpp/Operation.cpp, cpp/Operation.h,
	cpp/ParseXMLParser.cpp, cpp/ParseXMLParser.h,
	cpp/ParseXMLSAXHandler.cpp, cpp/ParseXMLSAXHandler.h,
	cpp/RuleSAXHandler.cpp, cpp/grapevine.cpp, cpp/grapevine.dsp,
	raisen/demo/precedence.xml, raisen/test/all.xml,
	raisen/test/parseXML.xml: Added parseXML().  Use ./grapevine
	test.parseXML to test.	Doesn't currently process domains or rules,
	but the basics are there.

2002-02-20 11:31  blackh

	* doc/Makefile: Wasn't cleaning out unwanted files.

2002-02-20 02:07  blackh

	* cpp/IOLoop.cpp, cpp/IOLoop.h, cpp/Operation.cpp,
	cpp/RuleSAXHandler.cpp, raisen/grapevine/incoming-http.xml,
	raisen/grapevine/init.xml, raisen/sys/http.xml,
	raisen/sys/socket.xml: Messages get sent from one grapevine node to
	another, but we can't parse them at the far end, since we don't
	have a parseXML(..) function yet.

2002-02-20 00:58  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/grapevine/init.xml,
	raisen/sys/http-out.xml, raisen/sys/incoming.xml: [no log message]

2002-02-18 02:44  blackh

	* raisen/grapevine/: init.xml, join.xml, transmit.xml: Almost sends
	messages.

2002-02-18 01:29  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/Operation.cpp, cpp/Operation.h,
	raisen/grapevine/interface.xml, raisen/grapevine/join.xml: Fix bug
	to do with not being in the right join when a begin-end (i.e. 
	curly bracket) block contains a pattern match and therefore spans a
	join.

2002-02-18 01:06  blackh

	* cpp/: Engine.cpp, Engine.h: Fixed engine bug that was causing the
	Raisen code to get stuck in a loop.

2002-02-17 09:05  rossta

	* doc/Makefile: Added missing file

2002-02-13 08:01  ajones

	* raisen/: grapevine/sahp.xml, local/request.xml, sys/http-out.xml:
	Had a go at adding sahp status.
	
	Try this:
	
	$ export http_proxy=http://localhost:7588 $ lynx
	http://grapevine.org/?sahp-status

2002-02-13 04:55  ajones

	* doc/grape-juice.lyx: Added spec for Grape Juice - the Grapevine
	music client.

2002-02-13 01:56  blackh

	* raisen/: obj.xml, grapevine/address.xml, grapevine/identity.xml,
	grapevine/init.xml, grapevine/interface-control.xml,
	grapevine/interface.xml, grapevine/join.xml, grapevine/sahp.xml,
	sys/grapevine.xml, sys/incoming.xml, sys/init.xml: Wrote some
	Raisen code.  To see something interesting, type
	
	  grapevine grapevine.init localhost:7589 localhost:7590

2002-02-12 11:38  blackh

	* raisen/test/multipleFactChanges3.xml: [no log message]

2002-02-11 22:39  blackh

	* cpp/Engine.cpp, raisen/grapevine/broadcast.xml,
	raisen/grapevine/identity.xml,
	raisen/grapevine/interface-control.xml,
	raisen/grapevine/interface.xml, raisen/sys/grapevine.xml: Engine
	works even better!

2002-02-11 22:20  blackh

	* cpp/Engine.cpp, cpp/EngineEventQueue.cpp, cpp/RuleBase.cpp,
	cpp/RuleBase.h, raisen/demo/interface-control.xml,
	raisen/grapevine/interface-control.xml: Engine seems to be working
	now.

2002-02-11 03:26  blackh

	* cpp/EngineEventQueue.cpp,
	raisen/test/failedToRemoveNullState.xml: Engine works correctly now
	with failedToRemoveNullState test, thank goodness.

2002-02-11 02:53  blackh

	* cpp/: Engine.cpp, EngineEventQueue.cpp: [no log message]

2002-02-11 02:39  blackh

	* cpp/: Engine.cpp, EngineEventQueue.cpp, Firing.cpp, Firing.h,
	Meme.cpp, RuleBase.cpp, RuleBase.h: A step in the right direction.

2002-02-11 02:07  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/EngineEventQueue.cpp,
	cpp/EngineEventQueue.h, cpp/FactChangeMeme.cpp,
	cpp/FactChangeMeme.h, cpp/Firing.cpp, cpp/Firing.h,
	cpp/RuleBase.cpp, cpp/RuleBase.h,
	raisen/test/failedToRemoveNullState.xml: Various tidyups in
	preparation for a change.

2002-02-08 06:05  ajones

	* raisen/grapevine/sahp.xml: A simple fix to make make it so that
	it'll take any sahps until its list is full.

2002-02-07 14:24  blackh

	* raisen/: demo/identity.xml, test/failedToRemoveNullState.xml:
	Small tweaks.

2002-02-07 14:16  blackh

	* cpp/RuleBase.cpp: Added a \todo explaining why the test cases are
	coming out in alphabetical order.

2002-02-07 14:09  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/FactChangeMeme.cpp,
	cpp/Firing.cpp, cpp/RuleBase.cpp, raisen/test/all.xml,
	raisen/test/failedToRemoveNullState.xml: Fixed after a mammoth
	effort.

2002-02-07 12:16  blackh

	* cpp/: Engine.cpp, EngineEventQueue.cpp: Slight improvement.

2002-02-07 12:04  blackh

	* cpp/Engine.cpp: [no log message]

2002-02-07 11:19  blackh

	* cpp/Engine.cpp, cpp/EngineEventQueue.cpp, cpp/EngineEventQueue.h,
	cpp/Firing.h, raisen/grapevine/identity.xml: This fixes some stuff,
	but it's still got bugs.

2002-02-06 16:09  blackh

	* raisen/test/all.xml: Added a missing test case from the tests. 
	Ross - I see what you mean about things being loaded in
	alphabetical order.  I'm not sure exactly why this is, but I'll
	think about it.

2002-02-06 16:05  blackh

	* cpp/: Engine.cpp, Engine.h, FactChangeMeme.cpp, FactChangeMeme.h,
	Firing.cpp, Firing.h, RuleBase.cpp, RuleBase.h: Complexity of
	Engine implementation greatly reduced, AND IT STILL WORKS!!!

2002-02-06 10:00  rossta

	* cpp/: CriticalSection.cpp, CriticalSection.h, Crypt.cpp,
	Debug.cpp, Debug.h, Event.cpp, Event.h, IOLoop.cpp, IOLoop.h,
	Mutex.cpp, Mutex.h, SAHP.cpp, Semaphore.cpp, Semaphore.h,
	System.cpp, System.h, Thread.cpp, Thread.h, grapevine.cpp,
	win32/config.h: Changed pthread_sched() to setpriority().  Tony:
	see if this solves the problem you described.  Also, changed all
	WIN32 to __WIN32__ for portability.

2002-02-06 05:36  ajones

	* cpp/Thread.cpp: Tried converting to msdos format by "set
	fileformat=dos" to see if it helps.

2002-02-06 02:43  blackh

	* raisen/: grapevine/interface-control.xml,
	grapevine/interface.xml, sys/grapevine.xml: [no log message]

2002-02-06 02:31  blackh

	* cpp/Engine.cpp: Engine bug fix.

2002-02-06 02:07  blackh

	* cpp/Engine.cpp, cpp/Fact.cpp,
	raisen/grapevine/interface-control.xml, raisen/sys/grapevine.xml:
	Engine bug fix and progress with a new interface-control module,
	whose job it is to decide when interfaces are to be brought up and
	down.

2002-02-01 10:18  rossta

	* cpp/Engine.cpp: MSVC compile fix

2002-02-01 03:24  blackh

	* cpp/Engine.cpp, cpp/SAHP.cpp, raisen/demo/identity-test.xml,
	raisen/grapevine/identity.xml, raisen/grapevine/sahp.xml,
	raisen/sys/grapevine.xml, raisen/sys/sahp.xml: grapevine.sahp now
	keeps a track of the 10 best SAHPs, and you can see it if you just
	run grapevine with no arguments.

2002-02-01 01:05  blackh

	* cpp/IOLoop.cpp: Ross, your off-line RSA stuff is bloody
	fantastic.  Thank you.	That was destined to stay in the too much
	bother basket for a long time otherwise.  I've just tweaked IOLoop
	as follows:
	
	- I removed an 'if' inside the while that was surrounding most of
	the code.  It was preventing the select from running, which was
	making it go into a tight loop, which isn't quite what we want.  It
	was also stopping it from dumping all facts when you sent it a
	SIGQUIT, which I was using a lot for debug.
	
	- I don't want there to be any yields in the main loop.  See the
	comment in the code for the explanation.
	
	Please check out what I've done and make sure it doesn't screw up
	anything you're trying to do.

2002-01-31 19:45  blackh

	* cpp/: Engine.cpp, Engine.h: Engine bug fix.  Firing of rules upon
	retraction is perhaps not entirely perfect now, but all the code I
	have been trying to write before is now working.  I'll have to do a
	bit more work on it, but I think I'm just about there.	I can now
	carry on with the grapevine code, anyway, which is what I REALLY
	want to do.

2002-01-30 20:54  rossta

	* cpp/CriticalSection.cpp, cpp/CriticalSection.h, cpp/Crypt.cpp,
	cpp/Crypt.h, cpp/Debug.cpp, cpp/IOLoop.cpp, cpp/IOLoop.h,
	cpp/Makefile.am, cpp/SAHP.cpp, cpp/Thread.cpp,
	raisen/grapevine/identity.xml, raisen/test/all.xml: Fixed Crypt to
	allow multiple generateRSA() calls.  May not be fully debugged. 
	Seems to run OK for a few minutes, then silently hangs.  Debug via:
	./grapevine -d 0x80000000 grapevine.identity

2002-01-30 12:35  blackh

	* cpp/Engine.cpp: Add a todo indicating the bug that still exists. 
	(I'll think about how to fix it.)

2002-01-30 12:21  blackh

	* cpp/Engine.cpp, cpp/Object.cpp, raisen/grapevine/identity.xml:
	Great improvement.  grapevine/identity.xml is still behaving very
	slightly strangely.

2002-01-30 11:22  rossta

	* cpp/: Crypt.cpp, Crypt.h, IOLoop.cpp, IOLoop.h, Thread.cpp,
	grapevine.cpp, win32/config.h: Moved RSAGenerate logic to separate
	thread MSVC compile fixes.  Added logic to avoid: select(): invalid
	parameter error in Win32 due to grapevine.identity calling
	stayRunning(true) but there are no active sockets.

2002-01-30 10:27  blackh

	* cpp/: Engine.cpp, Engine.h: Even more fixed.

2002-01-30 10:02  blackh

	* cpp/Engine.cpp, raisen/grapevine/identity.xml: Bug fix.

2002-01-28 02:40  blackh

	* cpp/Engine.cpp: [no log message]

2002-01-28 02:23  blackh

	* cpp/Crypt.cpp, cpp/Crypt.h, cpp/Engine.cpp, cpp/Engine.h,
	cpp/Firing.cpp, cpp/Meme.cpp, cpp/RuleBase.cpp, cpp/RuleBase.h,
	cpp/RuleSAXHandler.cpp, raisen/grapevine/identity.xml,
	raisen/grapevine/sahp.xml, raisen/test/all.xml,
	raisen/test/multipleFactChanges2.xml: Various debug output
	improvements.  Test case of YET ANOTHER engine problem that's
	causing identity not to work right.

2002-01-24 13:07  blackh

	* cpp/IOLoop.cpp: Would not build on Potato.

2002-01-24 12:32  blackh

	* aclean: Did not remove Makefile and Makefile.in from
	subdirectories.

2002-01-22 03:02  blackh

	* cpp/: SAHP.cpp, SAHP.h: SAHP thread tweaks.

2002-01-22 02:50  blackh

	* cpp/RuleSAXHandler.cpp, cpp/SAHP.cpp, cpp/SAHP.h,
	raisen/grapevine/sahp.xml, raisen/sys/sahp.xml: The minimum quality
	of an SAHP solution is now under Raisen control. 
	raisen/sys/sahp.xml changed to add the necessary new stuff to make
	it work as before.

2002-01-22 01:27  blackh

	* raisen/grapevine/address.xml: "limbo" state is no longer
	necessary.

2002-01-22 01:26  blackh

	* cpp/: IOLoop.h, RuleBase.cpp: Can now co-operatively break
	grapevine with ctrl-C when it is stuck in a tight loop.

2002-01-22 01:07  blackh

	* raisen/sys/: http-out.xml, http.xml, incoming.xml,
	linesocket.xml, socket.xml: Got http proxy working again.

2002-01-21 12:42  blackh

	* cpp/Assertion.cpp, cpp/Assertion.h, cpp/EngineEventQueue.cpp,
	cpp/EngineEventQueue.h, cpp/FactChangeMeme.cpp, cpp/Firing.cpp,
	cpp/Firing.h, cpp/Retraction.cpp, cpp/RuleBase.cpp,
	raisen/test/multipleFactChanges.xml: Fixed engine so
	'multipleFactChanges' works.

2002-01-20 22:23  blackh

	* raisen/: demo/test.xml, sys/http-out.xml, test/all.xml,
	test/multipleFactChanges.xml: Check in a test case for how the
	engine should wokr.  Now all I've got to do is get it to actually
	work like that.

2002-01-20 21:34  blackh

	* cpp/Engine.cpp, raisen/demo/test.xml, raisen/sys/http-out.xml:
	Engine bug fix.

2002-01-20 21:17  blackh

	* cpp/Firing.cpp: Tweak engine slightly.  I'm sure this is the way
	it should be, and it doesn't break anything.

2002-01-20 02:16  blackh

	* cpp/Operation.cpp, raisen/sys/http-out.xml, raisen/sys/http.xml,
	raisen/sys/sahp.xml, raisen/sys/socket.xml: Discovered another
	engine bug while trying to get the HTTP proxy code to work, but I
	think this one should be pretty easy to fix.

2002-01-20 02:00  blackh

	* raisen/grapevine/address.xml: Remove some unnecessary bits.

2002-01-20 01:59  blackh

	* raisen/grapevine/address.xml: Add a duplicate for good measure.

2002-01-20 01:50  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/grapevine/address.xml:
	'retract propagate' engine bug fixed (at last)! Fixed address so it
	works properly.

2002-01-20 01:13  blackh

	* cpp/Fact.cpp, cpp/FactChangeMeme.cpp,
	raisen/grapevine/address.xml: Make it so attributes that have not
	been set to anything have a value of "" (empty string).

2002-01-20 01:11  blackh

	* raisen/test/: all.xml, retractPropagateBug.xml: Test case for an
	engine bug.

2002-01-18 23:35  rossta

	* raisen/test/entities.xml: Added test for embedding entities in
	strings

2002-01-18 23:28  rossta

	* raisen/test/paren.xml: Added missing file

2002-01-18 23:28  rossta

	* cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h, doc/Makefile,
	raisen/test/all.xml, raisen/test/getenv.xml,
	raisen/test/indexOf.xml, raisen/test/operators.xml,
	raisen/test/precedence.xml, raisen/test/substring.xml: Fixed bug
	#483187: Can't name a variable the same as a func Cleaned up
	doc/Makefile. Made it more grandular.  Cleaned up test scripts to
	support = not returning true all the time.

2002-01-17 14:25  blackh

	* raisen/sys/: http.xml, sahp.xml, socket.xml: Get rid of
	'bound(..)' and replace it with the new way.

2002-01-17 14:22  blackh

	* cpp/Engine.cpp, cpp/Operation.cpp, doc/raisen.lyx,
	raisen/sys/http-out.xml, raisen/sys/incoming.xml,
	raisen/sys/linesocket.xml: Everything sort of working.	Still some
	bugs in the HTTP proxy and grapevine/address.xml still isn't
	working (seems to be another engine bug - rules firing with things
	that they couldn't possibly fire with).

2002-01-17 13:37  blackh

	* cpp/Engine.cpp, cpp/Fact.cpp, raisen/grapevine/address.xml: Fix
	bug, only to find that there's a new bug!

2002-01-17 08:00  blackh

	* cpp/Engine.cpp, cpp/EngineEvent.cpp, cpp/EngineEvent.h,
	cpp/EngineEventQueue.cpp, cpp/EngineEventQueue.h, cpp/Firing.cpp,
	cpp/Firing.h, cpp/IOLoop.cpp, raisen/grapevine/address.xml: Bug
	fixes and debug tweaks.

2002-01-16 21:07  blackh

	* cpp/FactChangeMeme.cpp, cpp/FactChangeMeme.h, cpp/Firing.cpp,
	cpp/Firing.h, raisen/grapevine/address.xml: Fix two bugs in the
	engine!
	
	First, FactChangeMeme was sorting firings in order of the join to
	which they pertained.  This wasn't enough - join AND side both need
	to be taken into account, so I converted it to a char pointer, and
	added 1 if it was a RIGHT side.  This is a little ugly, and may
	possibly be unportable, but probably won't be.
	
	Second, the firings of retracts were actually being queued, though
	they were queued before asserts.  I changed it so they are executed
	immediately.  This may possibly have unpleasant side-effects when
	triggering a rule on the retration of a fact, however it fixes the
	current problem:  The queueing that was taking place was not
	ensuring that all retract-firings came before all assert-firings,
	so it was possible for the Rete networks to be in an inconsistent
	state long enough to cause problems.
	
	The second bug caused raisen/grapevine/address.xml's test code to
	screw up.  It still doesn't quite work as I want, but at least that
	particular bug is gone.  It was previously outputting 'a2=' with an
	attribute of 'added="<null>"' and this should NOT be possible.	It
	was executing the rule with a fact that could not possibly match
	it.  Yuck.

2002-01-16 03:31  blackh

	* raisen/grapevine/address.xml: It still doesn't work.

2002-01-16 03:08  blackh

	* cpp/: Engine.cpp, RuleSAXHandler.cpp: Changed engine so you can
	explicitly match a null attribute value by specifying	<fact
	value="[]"/>

2002-01-16 02:42  blackh

	* cpp/Firing.cpp, cpp/Firing.h, raisen/test/samePatternBug.xml:
	Yay! Bug fixed.

2002-01-16 02:18  blackh

	* raisen/: grapevine/address.xml, test/all.xml,
	test/samePatternBug.xml: Created a test case for another bug in the
	engine. ARGH!

2002-01-16 01:12  blackh

	* configure, raisen/grapevine/address.xml: It doesn't work.

2002-01-16 00:32  blackh

	* doc/Makefile: Various improvements to the Makefile that should
	hopefully get rid of our permission problems.

2002-01-16 00:09  rossta

	* doc/: Makefile, raisen.lyx: Added all functions to raisen doc. 
	Changed Makefile to be more granular.  Steve: Please re-run make
	publish, as you've created rw-r--r-- directories in htdocs/doc. 
	Thanks.

2002-01-15 20:46  blackh

	* raisen/grapevine/address.xml: Not finished.

2002-01-14 14:12  rossta

	* cpp/Operation.cpp, cpp/Operation.h, cpp/RuleSAXHandler.cpp,
	raisen/test/all.xml, raisen/test/chr.xml,
	raisen/test/listenWrite.xml, raisen/test/ord.xml,
	raisen/test/time.xml: Added chr() and ord() functions.

2002-01-14 11:51  rossta

	* cpp/: Engine.cpp, Engine.h, Fact.cpp, Fact.h, Object.cpp,
	Object.h, Operation.cpp, Reference.cpp, Reference.h, RuleBase.cpp:
	Removed Atom class.

2002-01-14 00:02  rossta

	* cpp/: Makefile.am, Object.cpp, System.cpp, System.h,
	grapevine.cpp, longlong.cpp, longlong.h: Added longlong class from
	wxWindows.

2002-01-12 18:06  rossta

	* configure.in, cpp/Object.cpp, cpp/Object.h, cpp/Operation.cpp,
	cpp/RuleSAXHandler.cpp, cpp/System.cpp, cpp/System.h,
	cpp/grapevine.dsp, cpp/win32/config.h, raisen/test/all.xml,
	raisen/test/sleep.xml: Code cleanup

2002-01-12 13:04  rossta

	* cpp/demo/: .cvsignore, Makefile.am: Forget to add these

2002-01-12 04:29  blackh

	* cpp/Engine.cpp, cpp/Engine.h, raisen/sys/grapevine.xml,
	raisen/test/all.xml, raisen/test/loadDomain.xml,
	raisen/test/loadDomain2.xml: Fixed a bug, and added a regression
	test to test for it.

2002-01-12 03:45  blackh

	* raisen/test/time.xml: Change this test case so it won't fail. 
	This reflects the real underlying implementation.

2002-01-12 03:32  blackh

	* cpp/Assertion.cpp, cpp/Assertion.h, cpp/Domain.h, cpp/Engine.cpp,
	cpp/Engine.h, cpp/Firing.cpp, cpp/Firing.h, cpp/RuleBase.cpp,
	raisen/sys/grapevine.xml, raisen/sys/init.xml,
	raisen/test/time.xml: Fixed the extremely annoying bug 481652.

2002-01-12 01:13  blackh

	* raisen/sys/grapevine.xml: Make the specification of seed nodes
	create an <obj.address ../> object according to the new way.  Bug
	481652 is getting very annoying now.  I just HAVE to fix it.

2002-01-12 01:04  blackh

	* cpp/Operation.cpp, doc/raisen.lyx, raisen/sys/socket.xml: Fix
	small bug in sys/socket caused by changing it so '=' always returns
	true.  Made print() and println() always return true - which is
	much more sensible.  Updated Raisen doc for above.

2002-01-12 00:56  blackh

	* raisen/sys/: grapevine.xml, http-out.xml, http.xml,
	linesocket.xml: Fixed HTTP proxy code so it works again now that we
	have changed '=' always to return true.

2002-01-12 00:55  blackh

	* cpp/RuleSAXHandler.cpp: Fixed bug that caused test.time and
	test.precedence to fail.

2002-01-12 00:35  blackh

	* raisen/test/: precedence.xml, time.xml: These test cases are now
	correct, but they fail due to a bug in the engine.

2002-01-12 00:20  blackh

	* cpp/IOLoop.cpp, cpp/IOLoop.h, cpp/Operation.cpp, cpp/Operation.h,
	cpp/RuleSAXHandler.cpp, cpp/grapevine.cpp, raisen/obj.xml,
	raisen/sys/time.xml, raisen/test/time.xml: * Make it so
	<sys.time.now secs=".."/> fact is asserted before any other facts,
	so it is always available right from the start.  * Fix
	test/time.xml test case.  * Got rid of 'sleep(n)' which we should
	have no need for.  * Added 'stayRunning(true/null)' which adds to
	or subtracts from a stayRunningCount, allowing us to explicitly
	tell the grapevine engine to stay running if this doesn't
	automatically happen due to the presence of sockets.  * There seems
	to be some kind of precedence-related problem, because
	'count_ticks#last_tick+1 == now' is performing '1 == now' first.
	Will work on this problem now.

2002-01-11 13:27  rossta

	* raisen/test/: abs.xml, insertChild.xml, max.xml, min.xml,
	neg.xml, sgn.xml: Removed all unaryminus hacks from test scripts.

2002-01-11 13:16  rossta

	* cpp/BigInt.h, cpp/Object.cpp, cpp/Object.h, cpp/Operation.cpp,
	cpp/Operation.h, cpp/RuleBase.cpp, cpp/RuleBase.h,
	cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h, cpp/System.cpp,
	cpp/System.h, cpp/Thread.cpp, cpp/grapevine.cpp,
	raisen/grapevine/neighbour.xml: Closed bug 493215: Can't use
	negative numbers.  The following code now works: result = -1; Added
	neg() function.  Added operator-() (unary minus) to Integer and
	BigInteger classes.

2002-01-11 13:12  rossta

	* raisen/test/: all.xml, neg.xml, operators.xml: [no log message]

2002-01-11 09:03  rossta

	* cpp/: Platform.cpp, Platform.h, System.cpp, System.h: Renamed
	Platform.* to System.*

2002-01-11 09:02  rossta

	* configure.in, cpp/IOLoop.cpp, cpp/Makefile.am, cpp/Operation.cpp,
	cpp/Operation.h, cpp/Platform.h, cpp/RuleBase.cpp, cpp/RuleBase.h,
	cpp/RuleSAXHandler.cpp, cpp/grapevine.cpp, cpp/grapevine.dsp,
	cpp/win32/config.h, raisen/test/abs.xml, raisen/test/all.xml,
	raisen/test/eitheror.xml, raisen/test/iif.xml, raisen/test/max.xml,
	raisen/test/min.xml, raisen/test/sgn.xml, raisen/test/sleep.xml:
	Added abs(), iif(), min(), max() and sgn().  Added -p option to
	specify raisen directory location.

2002-01-10 18:23  rossta

	* raisen/test/: all.xml, sleep.xml, time.xml: grapevine test.all
	works, but grapevine test.time doesn't report anything ... hmmmm.

2002-01-10 18:19  rossta

	* cpp/Fact.cpp, cpp/Fact.h, cpp/IOLoop.cpp, cpp/IOLoop.h,
	cpp/Operation.cpp, cpp/Operation.h, cpp/Platform.cpp,
	cpp/Platform.h, cpp/RuleSAXHandler.cpp, cpp/Thread.cpp,
	cpp/grapevine.cpp, cpp/win32/config.h, raisen/sys/time.xml: Added
	<sys.time.now>.

2002-01-10 15:13  rossta

	* cpp/: IOLoop.cpp, Platform.cpp, Platform.h: Added logic for:	
	This is simply a case of waking the IOLoop up once a second, and
	asserting   a fact <sys.time.now secs="[secs]"/> with an
	ever-increasing seconds count.	  Don't forget to retract the old
	fact first.  Not yet completed.

2002-01-10 13:39  rossta

	* raisen/: evt.xml, msg.xml, obj.xml, demo/call.xml,
	demo/connect.xml, demo/http-out.xml, demo/onretract.xml,
	demo/precedence.xml, demo/random64.xml, demo/sahp.xml,
	demo/test.xml, grapevine/broadcast.xml, grapevine/interface.xml,
	grapevine/join.xml, grapevine/neighbour.xml, grapevine/sahp.xml,
	grapevine/vector.xml, sys/grapevine.xml, sys/http-out.xml,
	sys/http.xml, sys/incoming.xml, sys/init.xml, sys/linesocket.xml,
	sys/node.xml, sys/sahp.xml, test/all.xml, test/appendChild.xml,
	test/base64decode.xml, test/base64encode.xml,
	test/bigIntegerToSigned.xml, test/bigIntegerToUnsigned.xml,
	test/binaryToHex.xml, test/charAt.xml, test/eitheror.xml,
	test/endsWith.xml, test/formatHTML.xml, test/formatXML.xml,
	test/get.xml, test/getenv.xml, test/hexToBinary.xml,
	test/indexOf.xml, test/insertChild.xml, test/length.xml,
	test/listenWrite.xml, test/lower.xml, test/onretract.xml,
	test/operators.xml, test/precedence.xml, test/random.xml,
	test/randomString.xml, test/set.xml, test/sha1.xml,
	test/shiftLeft.xml, test/shiftRight.xml,
	test/signedToBigInteger.xml, test/startsWith.xml,
	test/substring.xml, test/toBigInteger.xml, test/toInteger.xml,
	test/toString.xml, test/unsignedToBigInteger.xml, test/upper.xml:
	Added $Id: ChangeLog,v 1.2 2002/07/08 14:35:13 rossta Exp $ to all files.  Changed $Id: ChangeLog,v 1.2 2002/07/08 14:35:13 rossta Exp $ to $Revision: 1.2 $ in rev tag.

2002-01-10 12:45  blackh

	* doc/raisen.lyx: Updated raisen doc for '=' always returning true.

2002-01-10 12:41  rossta

	* cpp/Operation.cpp, cpp/Operation.h, cpp/RuleSAXHandler.cpp,
	raisen/test/all.xml, raisen/test/indexOf.xml,
	raisen/test/substring.xml: Removed isNull() Changed '=' to always
	return true.

2002-01-10 12:19  blackh

	* raisen/grapevine/: join.xml, neighbour.xml: Fix examples of me
	being caught by the '= null' gotcha.

2002-01-10 12:00  rossta

	* cpp/Operation.cpp, cpp/Operation.h, cpp/RuleSAXHandler.cpp,
	raisen/test/all.xml, raisen/test/indexOf.xml,
	raisen/test/substring.xml: Added isNull() This function probably
	serves no purpose, but I added it before I realized that
	
	result = null, !result,
	
	fails, instead you have to use:
	
	result = null || true, !result,
	
	'result = null || true' seems to me, to be saying:
	
	  set result to null, or if null is 'false' (and it would be), to
	set it to true.
	
	But what it's saying is:
	
	  set result to null, and don't fail the rule, but keep going.
	
	Hmmm...

2002-01-10 11:42  rossta

	* cpp/Operation.cpp, raisen/test/formatHTML.xml,
	raisen/test/formatXML.xml, raisen/test/indexOf.xml,
	raisen/test/insertChild.xml, raisen/test/substring.xml: Fixed
	formatHTML()/formatXML() to not add root domain (see
	formatHTML.xml).  The test suite fails when checking that result ==
	null.  I've tried: result == null and !result but neither work. 
	See indexOf.xml and substring.xml for examples.

2002-01-10 11:24  rossta

	* cpp/Fact.cpp, cpp/Fact.h, cpp/Operation.cpp, cpp/Operation.h,
	cpp/RuleSAXHandler.cpp, raisen/test/all.xml,
	raisen/test/appendChild.xml, raisen/test/eitheror.xml,
	raisen/test/formatHTML.xml, raisen/test/insertChild.xml,
	raisen/test/onretract.xml, raisen/test/substring.xml,
	raisen/test/toBigInteger.xml: Added insertChild() and appendChild()
	functions.  I'd like to allow a negative number for insertChild()
	to insert and the end of a fact: insertChild(-1, fact, atom) <!--
	inserts atom at the end of fact --> but the .insert() function
	doesn't work when using a reverse_iterator (as least in MSVC).	Any
	ideas?

2002-01-10 02:41  blackh

	* raisen/: evt.xml, grapevine/interface.xml, grapevine/join.xml,
	grapevine/neighbour.xml: More core logic.

2002-01-10 02:24  blackh

	* raisen/: evt.xml, msg.xml, obj.xml, grapevine/broadcast.xml,
	grapevine/interface.xml, grapevine/join.xml,
	grapevine/neighbour.xml: More core logic.

2002-01-10 00:38  blackh

	* cpp/Operation.cpp: Fix length.

2002-01-09 20:42  rossta

	* raisen/test/length.xml: [no log message]

2002-01-09 20:00  rossta

	* cpp/: Fact.cpp, Fact.h, Operation.cpp, Platform.cpp, Platform.h,
	RuleBase.cpp, grapevine.cpp, grapevine.dsp: Job 3: added:
	length(fact)

2002-01-09 14:00  rossta

	* cpp/: BigInt.h, win32/config.h: More file moving.  MSVC bug fix.

2002-01-09 13:50  rossta

	* cpp/lib/: Makefile, Makefile.in: Checked in by mistake

2002-01-09 10:50  rossta

	* .cvsignore, aclean, configure.in, debian_setup.sh, env.sh,
	cpp/.cvsignore, cpp/demo/rsa.cpp, cpp/include/.cvsignore,
	cpp/lib/.cvsignore, cpp/lib/Makefile, cpp/lib/Makefile.am,
	cpp/lib/Makefile.in, cpp/lib/getopt.c, cpp/lib/getopt.h: Cleanin'
	up and moving stuff around due to c++ code moving to cpp directory.

2002-01-08 10:25  blackh

	* Doxyfile: Updated Doxyfile for new directory structure.

2002-01-05 20:05  blackh

	* raisen/: obj.xml, demo/vector.xml, grapevine/neighbour.xml: Start
	on neighbour.xml.

2002-01-05 19:15  blackh

	* cpp/Optimizer.cpp: Remove an optimization that I'm not happy
	with.

2002-01-05 18:13  blackh

	* doc/raisen.lyx: Added stuff about attachParent(..) and
	detachParent(..).

2002-01-05 18:05  blackh

	* cpp/Engine.cpp, cpp/Engine.h, cpp/Makefile.am, cpp/Operation.cpp,
	cpp/Operation.h, cpp/RuleSAXHandler.cpp, raisen/demo/vector.xml,
	raisen/grapevine/vector.xml: Improvement to memory management:
	Added attachParent(..) and detachParent(..) so that the Raisen code
	can explicitly make changes to the list of assert-parents, and used
	them in raisen/grapevine/vector.xml.

2002-01-05 17:21  blackh

	* raisen/grapevine/vector.xml: Bug fix.

2002-01-05 17:15  blackh

	* cpp/Operation.cpp, cpp/RuleSAXHandler.cpp, raisen/demo/call.xml,
	raisen/demo/vector.xml, raisen/grapevine/vector.xml: Calculating
	the distance between two vectors works!

2002-01-05 16:55  blackh

	* cpp/: EngineEventQueue.cpp, EngineEventQueue.h, Retraction.cpp,
	Retraction.h: Engine bug fixes.  They do keep coming, but they're
	getting less frequent now.

2002-01-05 16:33  blackh

	* cpp/: Assertion.cpp, EngineEvent.cpp, EngineEventQueue.cpp,
	EngineEventQueue.h, FactChangeMeme.cpp, Firing.cpp: Slight tidyup
	of engine.

2002-01-05 16:19  blackh

	* cpp/: BigInt.h, Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: Added squareRoot() function that works on big
	integers.  Fixed a minor bug in Object.cpp to do with binary
	operators on numeric types.

2002-01-05 15:07  blackh

	* config.h.in, msg.xml, obj.xml, cpp/RuleBase.cpp, cpp/RuleBase.h,
	cpp/grapevine.cpp, raisen/msg.xml, raisen/obj.xml,
	raisen/demo/animal.xml, raisen/demo/animal2.xml,
	raisen/demo/call.xml, raisen/demo/connect.xml,
	raisen/demo/http-out.xml, raisen/demo/matchopt.xml,
	raisen/demo/onretract.xml, raisen/demo/precedence.xml,
	raisen/demo/random64.xml, raisen/demo/retract-1.xml,
	raisen/demo/sahp.xml, raisen/demo/test.xml, raisen/sys/cat.xml,
	raisen/sys/grapevine.xml, raisen/sys/http-out.xml,
	raisen/sys/http.xml, raisen/sys/incoming.xml, raisen/sys/init.xml,
	raisen/sys/linesocket.xml, raisen/sys/node.xml,
	raisen/sys/sahp.xml, raisen/sys/socket.xml, raisen/test/all.xml,
	raisen/test/base64decode.xml, raisen/test/base64encode.xml,
	raisen/test/bigIntegerToSigned.xml,
	raisen/test/bigIntegerToUnsigned.xml, raisen/test/binaryToHex.xml,
	raisen/test/charAt.xml, raisen/test/eitheror.xml,
	raisen/test/endsWith.xml, raisen/test/formatHTML.xml,
	raisen/test/formatXML.xml, raisen/test/get.xml,
	raisen/test/getenv.xml, raisen/test/hexToBinary.xml,
	raisen/test/indexOf.xml, raisen/test/length.xml,
	raisen/test/listenWrite.xml, raisen/test/lower.xml,
	raisen/test/onretract.xml, raisen/test/operators.xml,
	raisen/test/precedence.xml, raisen/test/random.xml,
	raisen/test/randomString.xml, raisen/test/set.xml,
	raisen/test/sha1.xml, raisen/test/shiftLeft.xml,
	raisen/test/shiftRight.xml, raisen/test/signedToBigInteger.xml,
	raisen/test/startsWith.xml, raisen/test/substring.xml,
	raisen/test/toBigInteger.xml, raisen/test/toInteger.xml,
	raisen/test/toString.xml, raisen/test/unsignedToBigInteger.xml,
	raisen/test/upper.xml: Made grapevine load classes from
	"../raisen/" relative to the directory from which the executable
	was loaded.  Moved all Raisen code into the new raisen/ directory.

2002-01-05 14:32  blackh

	* Makefile.am: Was missing.

2002-01-05 14:25  blackh

	* acconfig.h: Reinstated.

2002-01-05 14:24  blackh

	* Assertion.cpp, Assertion.h, BigInt.cpp, BigInt.h,
	CriticalSection.cpp, CriticalSection.h, Crypt.cpp, Crypt.h,
	Debug.cpp, Debug.h, Domain.cpp, Domain.h, Engine.cpp, Engine.h,
	EngineEvent.cpp, EngineEvent.h, EngineEventQueue.cpp,
	EngineEventQueue.h, Event.cpp, Event.h, Exception.cpp, Exception.h,
	Fact.cpp, Fact.h, FactChangeMeme.cpp, FactChangeMeme.h,
	FactListener.h, FactSAXHandler.cpp, FactSAXHandler.h, Firing.cpp,
	Firing.h, GrapevineSAXHandler.cpp, GrapevineSAXHandler.h,
	IOLoop.cpp, IOLoop.h, Makefile.am, Meme.cpp, Meme.h, Mutex.cpp,
	Mutex.h, Object.cpp, Object.h, Operation.cpp, Operation.h,
	Optimizer.cpp, Optimizer.h, Platform.cpp, Platform.h,
	Reference.cpp, Reference.h, Retraction.cpp, Retraction.h, Rule.cpp,
	Rule.h, RuleBase.cpp, RuleBase.h, RuleListener.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, SAHP.cpp, SAHP.h,
	Semaphore.cpp, Semaphore.h, Thread.cpp, Thread.h,
	VarSlotAllocator.cpp, VarSlotAllocator.h, acconfig.h, config.h.bot,
	config.h.in, config.h.top, configure.in, grapevine.cpp,
	grapevine.dsp, grapevine.dsw, obj.xml, utils.cpp, utils.h,
	cpp/Assertion.cpp, cpp/Assertion.h, cpp/BigInt.cpp, cpp/BigInt.h,
	cpp/CriticalSection.cpp, cpp/CriticalSection.h, cpp/Crypt.cpp,
	cpp/Crypt.h, cpp/Debug.cpp, cpp/Debug.h, cpp/Domain.cpp,
	cpp/Domain.h, cpp/Engine.cpp, cpp/Engine.h, cpp/EngineEvent.cpp,
	cpp/EngineEvent.h, cpp/EngineEventQueue.cpp,
	cpp/EngineEventQueue.h, cpp/Event.cpp, cpp/Event.h,
	cpp/Exception.cpp, cpp/Exception.h, cpp/Fact.cpp, cpp/Fact.h,
	cpp/FactChangeMeme.cpp, cpp/FactChangeMeme.h, cpp/FactListener.h,
	cpp/FactSAXHandler.cpp, cpp/FactSAXHandler.h, cpp/Firing.cpp,
	cpp/Firing.h, cpp/GrapevineSAXHandler.cpp,
	cpp/GrapevineSAXHandler.h, cpp/IOLoop.cpp, cpp/IOLoop.h,
	cpp/Makefile.am, cpp/Meme.cpp, cpp/Meme.h, cpp/Mutex.cpp,
	cpp/Mutex.h, cpp/Object.cpp, cpp/Object.h, cpp/Operation.cpp,
	cpp/Operation.h, cpp/Optimizer.cpp, cpp/Optimizer.h,
	cpp/Platform.cpp, cpp/Platform.h, cpp/Reference.cpp,
	cpp/Reference.h, cpp/Retraction.cpp, cpp/Retraction.h,
	cpp/Rule.cpp, cpp/Rule.h, cpp/RuleBase.cpp, cpp/RuleBase.h,
	cpp/RuleListener.h, cpp/RuleSAXHandler.cpp, cpp/RuleSAXHandler.h,
	cpp/SAHP.cpp, cpp/SAHP.h, cpp/Semaphore.cpp, cpp/Semaphore.h,
	cpp/Thread.cpp, cpp/Thread.h, cpp/VarSlotAllocator.cpp,
	cpp/VarSlotAllocator.h, cpp/grapevine.cpp, cpp/grapevine.dsp,
	cpp/grapevine.dsw, cpp/utils.cpp, cpp/utils.h,
	raisen/grapevine/interface.xml: C++ code moved into cpp/ directory.

2002-01-04 21:35  blackh

	* raisen/grapevine/vector.xml: [no log message]

2002-01-04 12:58  blackh

	* raisen/grapevine/vector.xml: Tweaks.

2002-01-04 12:34  blackh

	* raisen/grapevine/: broadcast.xml, vector.xml: Added some code to
	calculate vectors.  +Some tweaks.

2002-01-03 14:08  blackh

	* raisen/grapevine/broadcast.xml: Tweaks.

2002-01-03 13:53  blackh

	* raisen/grapevine/broadcast.xml: Broadcast more or less finished
	now.

2002-01-03 03:07  blackh

	* raisen/grapevine/: broadcast.xml, sahp.xml: Another tweak.

2002-01-03 03:01  blackh

	* raisen/grapevine/sahp.xml: Tweaks.

2002-01-03 02:47  blackh

	* raisen/grapevine/: broadcast.xml, interface.xml, sahp.xml: Did
	part of the mechanism of broadcast.

2002-01-03 00:41  blackh

	* raisen/grapevine/interface.xml: Raise an interface upon the
	creation of a new sahp.  Retract the interface upon destruction of
	the sahp, notifying our neighbours that we have disconnected.

2002-01-03 00:26  blackh

	* raisen/grapevine/sahp.xml: Some rules that maintain a list of
	<obj.sahp/> objects in descending order of power, limiting them to
	a maximum number, deleting the worst whenever the maximum is
	exceeded.

2001-12-29 03:05  blackh

	* obj.xml: Tweaks.

2001-12-29 02:59  blackh

	* msg.xml, obj.xml: Notes about how the transport will work, what
	message formats there will be, and how karmic debt works.

2001-12-26 20:03  blackh

	* Operation.cpp: Minor bug fix.

2001-12-26 19:58  blackh

	* IOLoop.cpp: Remove unwanted assertion!

2001-12-26 19:37  blackh

	* Operation.cpp: Bug fix.

2001-12-26 19:13  blackh

	* Retraction.cpp: Make sys/http.xml use sys/linesocket to handle
	its line I/O.  Make 'assert parents' logic a little more sensible.

2001-12-23 16:45  blackh

	* Engine.cpp: Not quite there, but making progress.

2001-12-23 16:28  blackh

	* Engine.cpp: Partially fixed.

2001-12-23 15:58  blackh

	* Engine.cpp, Fact.cpp, Fact.h: Cleanup & tweaking of
	not-quite-right engine logic.

2001-12-20 16:26  rossta

	* Doxyfile, debian_setup.sh: Removed obsolete file.  Change
	netebb.com to netebb.com:8080 Doxygen is now on a daily cron. 
	Output is at http://netebb.com:8080/grapevine/

2001-12-20 12:20  blackh

	* Assertion.cpp, Assertion.h, Engine.cpp, Engine.h,
	EngineEvent.cpp, EngineEventQueue.cpp, EngineEventQueue.h,
	Fact.cpp, Fact.h, FactChangeMeme.cpp, FactChangeMeme.h,
	FactSAXHandler.cpp, Firing.cpp, Firing.h, Meme.cpp, Meme.h,
	Object.cpp, Operation.cpp, Retraction.cpp, Retraction.h: I have
	*FINALLY* got the new code working.  Rules can now fired upon
	retraction of a fact by saying !<fact ../> Blocking of writes is
	now handled correctly!

2001-12-18 23:49  rossta

	* CriticalSection.cpp, CriticalSection.h, Event.cpp, Event.h,
	Exception.cpp, Exception.h, IOLoop.cpp, Makefile.am, Mutex.cpp,
	Mutex.h, Platform.cpp, Platform.h, RuleBase.cpp, SAHP.cpp, SAHP.h,
	Semaphore.cpp, Semaphore.h, Thread.cpp, Thread.h, acconfig.h,
	config.h.top, configure.in, grapevine.cpp, grapevine.dsp: Added
	Thread class to abstract pthread/win32 threads.  Code is much
	cleaner, but of course, this may have introduced thread related
	bugs.  It seems to work for me ok, though.  Added
	CriticalSection/Event/Mutex/Semaphore classes but they're not
	currently used.  Added Exception class but were not using it
	either.  Moved PATH_SEPARATOR_CHAR to Platform.  Kinda like java's
	System.getProperty('file.separator').  Reworked configure.in
	significantly per wxWindows's configure.in.

2001-12-18 15:54  ajones

	* IOLoop.cpp: Removed inline from CPP file.

2001-12-18 14:24  rossta

	* Fact.cpp, Fact.h, INSTALL, IOLoop.cpp, SAHP.cpp, SAHP.h,
	config.h.bot, configure.in, debian_setup.sh, grapevine.dsp: Minor
	changes before adding Thread class.

2001-12-15 03:52  blackh

	* Object.cpp, doc/raisen.lyx: Bug fix.

2001-12-15 03:07  blackh

	* FactChangeMeme.cpp: Bug fix.

2001-12-15 02:49  blackh

	* IOLoop.cpp: Cosmetic tweak.

2001-12-15 02:30  blackh

	* SAHP.cpp, SAHP.h: Fixed build errors in PTHREAD implementation. 
	Made PTHREAD implementation get used in preference to FORK
	implementation.  SAHP now works properly again on Linux.  FORK
	implementation does not work quite right.
	
	See bug [ #493616 ] FORK impl of SAHP doesn't notify  The FORK
	implementation of the SAHP thread fails to  notify the main thread
	when it calculates a new solution.

2001-12-15 02:13  blackh

	* SAHP.cpp: Fix bug 49150: SAHP thread stays running on exit.  The
	code was shutting the SAHP thread down co-operatively using a
	global boolean when exiting from the IOLoop.  In builds with
	HAVE_FORK set true, this wasn't working, because the SAHP thread
	was running in a different process.  Solution:	In HAVE_FORK mode,
	add a new signal handler to capture SIGINT on the SAHP thread and
	shut that thread down co-operatively.

2001-12-15 01:48  blackh

	* Assertion.cpp, Firing.cpp, Firing.h, Retraction.cpp: Fixed
	another minor engine bug.

2001-12-15 01:39  blackh

	* Assertion.cpp, Assertion.h, Engine.cpp, EngineEvent.cpp,
	EngineEvent.h, Fact.cpp, Fact.h, FactChangeMeme.cpp, Firing.cpp,
	Firing.h, Retraction.cpp, Retraction.h, RuleBase.cpp: Engine bug
	fixes.

2001-12-15 01:14  blackh

	* Object.cpp: Bug fix in AsciiStringImpl::substring.  Also, I'd
	rather have null strings returned if the parameters are illegal
	than empty strings, so I've tweaked the code for that.

2001-12-15 00:55  blackh

	* Firing.cpp, Operation.cpp, configure: Put indexOf back the way I
	had it - sorry, Ross.  See my explanation in the code.

2001-12-14 13:37  rossta

	* Object.cpp, Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added
	more tests.  Added hexToBinary().  Added upper() and lower().  If
	invalid parameters are passed to substring(), etc, returns -1
	instead of asserting a failure.

2001-12-14 01:42  rossta

	* RuleSAXHandler.cpp: End of day check in.

2001-12-14 00:49  rossta

	* Crypt.cpp, IOLoop.cpp, IOLoop.h, RuleSAXHandler.cpp: Created test
	directory and several test suite files.  Raised several bugs in
	substring(), formatHTML(), negative numbers, and string can't
	contain XML characters such as < or entities such as &lt;
	Currently, you need to use: <![CDATA["A string with a <"]]> ...
	yuk.  To run test suite, use: ./grapevine test.all

2001-12-13 18:29  blackh

	* Engine.cpp: Work around a bug so we have a working system.  Tweak
	debug output.

2001-12-13 17:26  rossta

	* Object.cpp: Bug fix

2001-12-13 14:58  blackh

	* Object.cpp: Bug fix.	Ross - does that stop it crashing on
	Windows?

2001-12-13 14:12  rossta

	* ad2: [no log message]

2001-12-13 13:35  rossta

	* Object.cpp, Object.h, grapevine.dsp: MSVC bug fix.  Seems MSVC
	can't intuit Object != Object from Object == Object, but gcc can.

2001-12-13 12:33  blackh

	* Engine.cpp, Engine.h, FactChangeMeme.cpp, Firing.cpp, Firing.h,
	Retraction.cpp: Bug fixes.  Remove some extraneous asserts that are
	not needed now that FactChangeMeme fires rules activated by
	assignments.

2001-12-13 10:43  blackh

	* Fact.cpp, Fact.h, FactChangeMeme.cpp, Operation.cpp, Reference.h,
	RuleBase.cpp: Horrible old implementation of Bind, which implements
	assignment and equality replaced with nice new object oriented
	version that uses the new FactChangeMeme class to perform the
	change and properly fire any newly activated rules.

2001-12-13 08:38  blackh

	* FactChangeMeme.cpp, Firing.cpp, Firing.h, Makefile.am,
	Operation.cpp: New FactChangeMeme (that handles the changing of
	facts better) is now active for the set(..) function, but not for
	normal assignments yet.

2001-12-12 15:51  rossta

	* Platform.cpp, Platform.h: Added missing files

2001-12-12 15:31  rossta

	* Makefile.am, configure.in, grapevine.cpp: More code cleanup.

2001-12-12 12:16  blackh

	* FactChangeMeme.cpp, FactChangeMeme.h: New code - not debugged yet
	(and therefore not included in the build yet).

2001-12-12 08:58  rossta

	* configure.in: Replaced AC_FUNC_MMAP() check with code the works
	better.  As a result, the linux build now finds a working mmap(). 
	Therefore, the SAHP stuff may break again as mmap() is getting
	called again.

2001-12-12 08:34  rossta

	* Assertion.cpp, Assertion.h, BigInt.cpp, EngineEvent.cpp,
	EngineEvent.h, EngineEventQueue.cpp, EngineEventQueue.h, Fact.h,
	Firing.cpp, Firing.h, INSTALL, Makefile.am, Meme.cpp, Meme.h,
	Operation.h, Retraction.cpp, Retraction.h, SAHP.cpp,
	debian_setup.sh, grapevine.dsp, utils.cpp: MSVC fixes.	MSVC is
	very picky about "config.h" beginning in every file as it has stuff
	which turns off the warnings that it spits 100's of.

2001-12-12 06:34  ajones

	* BigInt.cpp, BigInt.h, Makefile.am, Object.cpp, Object.h,
	Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added &, ^ and |
	operators - they needed to be written by implemented in BigInt.cpp.
	Replaced a bit of repeating code with #defines to reduce the chance
	of errors.

2001-12-12 01:32  blackh

	* Assertion.cpp, Retraction.cpp: Better.

2001-12-12 01:13  blackh

	* Assertion.cpp, Assertion.h, Domain.cpp, Domain.h, Engine.cpp,
	Engine.h, EngineEvent.cpp, EngineEvent.h, EngineEventQueue.cpp,
	EngineEventQueue.h, Fact.cpp, Fact.h, FactListener.h,
	FactSAXHandler.cpp, Firing.cpp, Firing.h, IOLoop.cpp, Makefile.am,
	Meme.cpp, Meme.h, Operation.cpp, Operation.h, Retraction.cpp,
	Retraction.h, RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h, SAHP.cpp, grapevine.cpp: Replace horrible code
	with nice new object oriented code.  Grapevine now works again with
	the new code, so I can check it in.

2001-12-10 23:28  rossta

	* SAHP.cpp: Minor cleanup

2001-12-10 23:18  rossta

	* SAHP.cpp: Fixed mmap() wierdness.

2001-12-10 23:03  rossta

	* SAHP.cpp, a, cfsense.sh, cfsetup.sh, configure.in, cryptopp.mak,
	grapevine.dsp: mmap fix?

2001-12-10 20:38  rossta

	* env.sh: [no log message]

2001-12-10 20:31  rossta

	* grapevine.cpp: [no log message]

2001-12-10 19:29  rossta

	* xerces.mak: Build fix.

2001-12-10 18:23  blackh

	* Assertion.cpp, Assertion.h, EngineEvent.h, Firing.cpp, Firing.h,
	Meme.cpp, Meme.h, Retraction.cpp, Retraction.h: More progress
	towards nicer code.  I have kept some of the code changes back to
	avoid breaking the build.  These new files should not be included
	in the build yet, as they won't build!

2001-12-10 17:36  rossta

	* cfbuild.sh, cfsense.sh, cfsetup.sh, xerces.mak: [no log message]

2001-12-10 16:54  rossta

	* INSTALL, alocal.sh, cfbuild.sh, cfconfig.sh, cfsetup.sh, env.sh:
	Added compile farm scripts.

2001-12-10 13:39  rossta

	* alocal.sh, env.sh: [no log message]

2001-12-10 13:33  rossta

	* alocal.sh, config-xerces-from-source.sh, configure.sh: [no log
	message]

2001-12-10 13:30  rossta

	* Makefile.am, SAHP.h, acconfig.h, configure.in: [no log message]

2001-12-10 13:28  rossta

	* Makefile.am: FreeBSD fixes

2001-12-10 12:49  rossta

	* SAHP.h, acconfig.h: FreeBSD fixes

2001-12-10 12:26  rossta

	* Makefile.am, configure.in: FreeBSD fixes

2001-12-10 11:56  rossta

	* Makefile.am, configure.in: FreeBSD fixes.

2001-12-10 10:40  rossta

	* configure.in: FreeBSD fixes

2001-12-10 10:32  rossta

	* Makefile.am, configure.in, cryptopp.mak, grapevine.cpp: Created
	lib directory to hold utility functions, such as getopt_long(),
	that are missing from some OS's, such as Windoze and FreeBSD.

2001-12-10 02:28  blackh

	* Assertion.h, AssertionQueue.cpp, AssertionQueue.h,
	EngineEvent.cpp, EngineEvent.h, EngineEventQueue.cpp,
	EngineEventQueue.h, Firing.h: New nice code.

2001-12-10 02:13  blackh

	* Firing.cpp, Firing.h: More nice code to ultimately replace nasty
	code.

2001-12-10 01:59  blackh

	* Assertion.cpp, Assertion.h, AssertionQueue.cpp, AssertionQueue.h:
	The beginnings of turning some horrible nasty code into nice code.

2001-12-09 01:57  rossta

	* IOLoop.cpp, SAHP.cpp: Minor code cleanup to improve portability.

2001-12-09 01:39  rossta

	* .cvsignore, configure.in: Build fixes

2001-12-09 01:36  blackh

	* Fact.cpp, Fact.h, Operation.cpp, Operation.h, RuleBase.cpp,
	RuleSAXHandler.cpp, doc/raisen.lyx: Fixed memory leak problem and
	added a dumpFacts(..) function to Raisen for help with debugging.

2001-12-09 00:22  rossta

	* acconfig.h, grapevine.cpp: Build fixes.

2001-12-09 00:16  rossta

	* Makefile.in, aclean, config.guess, config.h.in, config.sub,
	configure, install-sh, missing, mkinstalldirs: Removed files that
	are generated by the build process

2001-12-09 00:08  rossta

	* configure.sh, configure.sh: [no log message]

2001-12-09 00:03  rossta

	* configure.sh, configure.sh: [no log message]

2001-12-08 23:54  rossta

	* IOLoop.cpp, Makefile.in, acconfig.h, aclean, config.h.in,
	configure, configure.in, mkinstalldirs: Attempting to fix in_addr_t
	problem as this typedef is not universal.

2001-12-08 23:43  blackh

	* Makefile.am: Fix broken Linux build.

2001-12-08 19:49  rossta

	* a: [no log message]

2001-12-08 19:41  rossta

	* configure.sh: [no log message]

2001-12-08 19:37  rossta

	* cryptopp.mak, xerces.mak: [no log message]

2001-12-08 19:05  rossta

	* Makefile.in, config.h.in, configure, configure.in, mkinstalldirs:
	Added --with-xerces-root option

2001-12-08 18:47  rossta

	* Makefile.in, config.h.in, configure, configure.in, mkinstalldirs:
	Changed configure.in so it uses c++ by default.  Should be more
	portable now.  Will try on FreeBSD box.

2001-12-08 17:21  rossta

	* Makefile.in, config.h.in, configure, configure.in, mkinstalldirs:
	Cleaned up configure.in.

2001-12-08 17:12  rossta

	* .cvsignore, Crypt.cpp, Makefile.in, Object.h, a, aclean,
	config.h.bot, config.h.in, config.h.top, configure, configure.ac,
	configure.in, mkinstalldirs: Replaced configure.ac with
	configure.in to make the build process more portable.  It seems
	configure.ac is not at all portable.

2001-12-08 14:05  rossta

	* Makefile.in, configure, configure.ac, mkinstalldirs: [no log
	message]

2001-12-08 13:51  rossta

	* config.guess, config.sub, missing, mkinstalldirs: [no log
	message]

2001-12-08 13:04  rossta

	* install-sh: [no log message]

2001-12-08 12:55  rossta

	* Makefile.in, a: Jeez, seems we have to check in Makefile.in too!

2001-12-08 12:40  rossta

	* a, aclean, configure: Trying to fix Joshs build problem

2001-12-08 08:32  rossta

	* config.h.in, config.h.in: [no log message]

2001-12-08 08:30  rossta

	* config.h.in: Trying to fix Jeffs build problem

2001-12-08 08:25  rossta

	* IOLoop.cpp, configure.ac: Trying to fix Jeffs build problem

2001-12-07 17:46  rossta

	* IOLoop.cpp: Fixed windows bug: connection failed: A non-blocking
	socket operation could not be completed immediately.

2001-12-07 17:25  rossta

	* INSTALL.msvc: Added more MSVC instructions.  Building on Windows
	is *complicated*!

2001-12-07 15:44  rossta

	* INSTALL, INSTALL.msvc, beecrypt.mak, configure.ac, cryptopp.mak,
	xerces.mak: Removed the last traces of beecrypt.  Upgraded to
	xerces 1.6.0.  Upgraded to crypto++ 4.2.  Added an 'uninstall'
	option to cryptopp.mak and xerces.mak.	Added installation
	instructions for MSVC users (they're complicated!).  We should
	probably explore using tmake so we can have one common command line
	build system.

2001-12-07 08:43  rossta

	* INSTALL, a, debian_setup.sh: Removed all references to beecrypt
	in installation instructions.  Added ability to define ./configure
	options via the environment variable GRAPEVINE_CONFIGURE_OPTIONS.

2001-12-07 01:33  rossta

	* SAHP.cpp, SAHP.h, configure.ac: MSVC build fixes.

2001-12-06 22:18  ajones

	* BigInt.h, Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: SAHP now computes the "power" of each solution.
	 This is (1<<160)/diff where diff is the difference between the
	guess and the target.

2001-12-06 20:46  ajones

	* BigInt.h, Crypt.cpp, IOLoop.cpp, RuleSAXHandler.cpp, SAHP.cpp,
	SAHP.h: Fixed BigInt bugs.  Got SAHP working much better on Linux
	by allocating shared memory.

2001-12-06 01:28  ajones

	* Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: Added proxy support on http-out.xml.  This was
	mainly an exercise in Raisen to learn the language.  Also fixed
	'endsWith' so that it works with AsciiString/UnicodeString combos
	correctly.  Added "getenv()" function.	To set a proxy use:
	
	grapevine_proxy=http://localhost:3128/
	
	If you're using Squid on the default port anyway.

2001-12-05 11:50  rossta

	* BigInt.h, Crypt.cpp, Crypt.h, Debug.cpp, Domain.cpp, Domain.h,
	Engine.cpp, Engine.h, Fact.cpp, Fact.h, IOLoop.cpp, Makefile.am,
	Object.cpp, Object.h, Operation.cpp, Operation.h, Reference.cpp,
	Reference.h, Rule.cpp, Rule.h, RuleBase.cpp, RuleBase.h,
	RuleSAXHandler.cpp, SAHP.cpp, SAHP.h, VarSlotAllocator.h,
	configure.ac, grapevine.dsp, utils.cpp, utils.h: Removed beecrypt
	references.  Renamed all ::ostream to ostream because I finally got
	MSVC to work without it.  Clean up and streamlined the #include
	files as a result.  Moved utils.h::FAIL() to utils.cpp.  Steve: is
	this ok?

2001-12-04 17:35  blackh

	* RuleSAXHandler.cpp: Fix operator precedence problem.	The problem
	was that the precedence numbers supplied by Ross made a different
	assumption about what the numbers mean from what I had originally
	made, so the precedences were being enforced in reverse of what
	they should have been.

2001-12-04 16:43  ajones

	* Object.cpp, Object.h: Installed new UTF8 encoding.  Now things
	get magically converted to AsciiStrings to get compared,
	concatenated, etc.  The UTF8 encoding is much simpler and faster
	than faffing around with XMLString::transcode.	It now proxies. 
	I'm so happy.

2001-12-04 07:36  ajones

	* BigInt.h, Crypt.h, Object.cpp, Object.h, Operation.cpp,
	Operation.h, RuleSAXHandler.cpp: Abstracted CryptoPP::Integer so
	that it is only directly accessed from BigInt.h  Added
	'signedToBigInteger', 'unsignedToBigInteger', etc.  also added
	binaryToHex which converts an Ascii string to hex.

2001-12-04 05:09  ajones

	* Object.cpp: Made it so that concatenating a string with an empty
	string (zero-length) will return the string.  This makes
	concatenating with an empty string slightly faster and also means
	that an empty string is not treated as a UnicodeString as when
	concatenating, so:
	
	asciiString##"" and ""##asciiString both result in ascii strings.

2001-12-03 03:45  blackh

	* Fact.cpp: Almost acts as an HTTP proxy now, except for a couple
	of bugs in the Engine.	One of them is string-related.	TONY??? It
	bails out at Object.cpp:434:  assert(this->length == textPos); when
	you set it as a proxy and use this URL:  
	http://www.eff.org/Privacy/Surveillance/Terrorism_militias/20011031
	_eff_usa_patriot_analysis.html

2001-12-03 02:46  ajones

	* Fact.cpp, Fact.h, Object.cpp, Object.h, Operation.cpp,
	Operation.h, Reference.cpp, Reference.h, RuleSAXHandler.cpp: Added
	BigInteger functions for * / + - and <.  The '<' function has been
	re-orgainsed and I haven't done extensive checking of it.  Be aware
	that there could be some bugs in the comparison.  The comparison
	works like this:
	
	To compute:
	
	  a < b
	
	If both a and b are the same type then just use the right
	comparison - simple.
	
	If a or b are numbers, then check to see if the other is either (a)
	a number or (b) can be converted into a number.  If this is the
	case it is compared as a numbers.
	
	If neither a nor b are numbers or either can't be converted into a
	number then the comparison is done by converting everything to a
	string.

2001-12-03 02:11  blackh

	* RuleSAXHandler.cpp: Parser now accepts a function with zero args.

2001-12-03 00:11  blackh

	* RuleBase.cpp, RuleBase.h: Make it so when a rule starts
	executing, new facts get asserted at the beginning of the queue. 
	This will cause events to be processed depth-first.

2001-11-29 09:42  rossta

	* VarSlotAllocator.cpp: Fixed typo

2001-11-29 09:07  rossta

	* .cvsignore, Debug.cpp, Debug.h, Engine.cpp, Fact.cpp, Fact.h,
	GrapevineSAXHandler.cpp, GrapevineSAXHandler.h, IOLoop.cpp,
	RuleSAXHandler.cpp, SAHP.h, VarSlotAllocator.cpp, configure.ac,
	utils.cpp, utils.h, doc/raisen.lyx: Removed all \r and \t's from
	files.	Sorry guys.  It's MSVC's editor that inserts \r's.  The
	tabs are my fault ... but no more! Cleaned up configure.ac a bit. 
	Documented Random() May have introduced other changes.

2001-11-29 00:34  blackh

	* RuleSAXHandler.cpp, RuleSAXHandler.h: Fix bug that was making it
	bomb out with an error message when not in DEBUG mode.

2001-11-28 23:32  ajones

	* Fact.h, Operation.cpp, Operation.h, RuleBase.cpp, RuleBase.h,
	SAHP.cpp: Minor fiddling... Getting rid of some the annoying
	carriage returns.  In ExecutionEnvironment, changed:
	
	  UnicodeString trueString;
	into   static String;
	
	This means it is only initialized once rather than every time an
	ExecutionEnvironment is created.  There is still an overhead if it
	needs to convert it into a UnicodeString for some reason but I
	don't think this will happen anywhere near as often as
	ExecutionEnvironment construction.

2001-11-22 01:00  ajones

	* Object.cpp, SAHP.cpp, SAHP.h: Removed a possible deadlock
	situation.  GetSAHP still doesn't work yet.. some kind of parsing
	problem.

2001-11-22 00:01  ajones

	* Object.h, RuleSAXHandler.cpp, SAHP.cpp, SAHP.h, config.h.in,
	grapevine.cpp: Added startSAHP(), stopSAHP() and getSAHP()
	functions.  StartSAHP gets given a public key.

2001-11-20 11:30  rossta

	* Debug.cpp, Debug.h, Engine.cpp, IOLoop.cpp, Operation.cpp,
	Operation.h, Optimizer.cpp, Optimizer.h, RuleBase.cpp, RuleBase.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, grapevine.cpp, grapevine.dsp,
	utils.h: Added % and ** operators (modulo and exponentiation). 
	Added #ifdef _DEBUG around debugging code.  I know this is
	premature, but it's my way if understanding the code better.

2001-11-19 15:04  rossta

	* SAHP.cpp: Removed more debugging code ... sorry

2001-11-19 15:01  rossta

	* configure.ac, grapevine.cpp: Removed debugging code.

2001-11-19 14:54  rossta

	* Debug.cpp, IOLoop.cpp, IOLoop.h, Makefile.am, Object.cpp,
	Object.h, Operation.cpp, SAHP.cpp, SAHP.h, configure.ac,
	grapevine.cpp, grapevine.dsp: Added threading logic to SAHP for
	WIN32.	Added header file checks for most header files to
	configure.ac.

2001-11-19 02:37  ajones

	* Crypt.cpp, Crypt.h, Makefile.am, RuleSAXHandler.cpp, SAHP.cpp,
	SAHP.h, a, ad, grapevine.cpp: Added SAHP thread for Unix.

2001-11-19 00:36  rossta

	* Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added the
	beginnings of formatXML().

2001-11-19 00:28  rossta

	* Debug.cpp, Debug.h, Fact.cpp, Fact.h, FactSAXHandler.cpp,
	Makefile.am, Object.cpp, Object.h, Operation.cpp, Operation.h,
	Reference.cpp, RuleSAXHandler.cpp, configure.ac, grapevine.cpp,
	grapevine.dsp: Got formatHTML() working!  Yippie! Added
	Debug.h/Debug.cpp class.  Usage: _DBG1(_DBG_ROSS, "i=%d", i); Added
	-d option to grapevine Usage: ./grapevine -d 256 or ./grapevine -d
	0x100

2001-11-18 21:50  ajones

	* Object.cpp: Transcode from AsciiString to UnicodeString.

2001-11-18 11:03  rossta

	* Crypt.cpp, Fact.cpp, RuleSAXHandler.cpp: Added Random(),
	base64encode(), and base64decode() for crypto++.  Use demo.random
	and demo.base64 for examples.

2001-11-18 00:29  rossta

	* Fact.cpp, Fact.h: Added code to sense if _write() is being called
	recursively.  Now it doesn't output:  Here's a "less than" =&lt;=
	instead we get:  Here's a "less than" =<= Argh. Goin' to bed...

2001-11-18 00:05  rossta

	* Fact.cpp, Fact.h, FactSAXHandler.cpp, FactSAXHandler.h,
	GrapevineSAXHandler.cpp, Object.cpp, RuleSAXHandler.cpp: Changed
	formatterOStream to a pointer.	It works, but it's converting the <
	characters in facts when it's not supposed to.	This is because
	<body>a "less than" is &lt;.</body> is recursively calling
	_write(), which results in &lt;body>a "less than" is
	&amp;lt;.&lt;/body> I'm stumped, but I'm checkin' it in, 'cause
	it's better than what we had.

2001-11-17 18:49  rossta

	* Fact.cpp, Fact.h, Operation.cpp: Got formatHTML() partially
	working.  It converts > to &lt; using the logic from SAX2Print. 
	Needs more work (always outputs to stdout at the moment).

2001-11-17 16:20  rossta

	* .cvsignore: [no log message]

2001-11-17 16:20  rossta

	* grapevine.dsp: MSVC changes

2001-11-17 16:18  rossta

	* configure.ac: Cleaned up ./configure --help output

2001-11-17 16:16  rossta

	* a: bug fix

2001-11-17 15:22  rossta

	* a: Added .configure file.  Current switches can be stored in
	.configure such as: cat --enable-debug >.configure

2001-11-17 15:10  rossta

	* grapevine.cpp: Added MSVC memory leak checking code, removed
	unused headers

2001-11-17 15:06  rossta

	* RuleBase.cpp, Engine.cpp: MSVC bugfix

2001-11-17 00:53  blackh

	* RuleSAXHandler.cpp: Re-wrote low-level code to try to make it a
	bit nicer.

2001-11-16 23:38  blackh

	* doc/raisen.lyx: Slight correction to Raisen doc.

2001-11-16 23:37  blackh

	* Domain.cpp, Domain.h, Fact.cpp, Fact.h, RuleBase.cpp: Got memory
	leaks out and fixed some bugs to do with the automatic memory
	management of 'assert'.

2001-11-16 22:54  blackh

	* Engine.cpp, Engine.h, IOLoop.cpp, RuleBase.cpp, RuleBase.h,
	grapevine.cpp: Re-wrote low-level Raisen stuff a bit, and fixed a
	few more bugs in the Engine.  The app is currently leaking a couple
	of facts which should be getting cleaned up automatically.

2001-11-16 09:49  rossta

	* AUTHORS: testing new loginfo.pl script

2001-11-16 09:43  rossta

	* AUTHORS, AUTHORS, AUTHORS: testing new loginfo.pl script

2001-11-16 09:38  rossta

	* AUTHORS: testing new loginfo.pl script

2001-11-16 05:07  blackh

	* Engine.cpp, Engine.h: Bug fix for 481655. (And a lot of work it
	was too.)

2001-11-16 04:15  blackh

	* Engine.cpp, Engine.h, RuleBase.cpp: Changed a whole lot of stuff
	around because it seems to be necessary in order to get the code to
	work properly with this new softAzzert/softRetrakt concept.  I
	think the code's right now.  Let's see if this fixes bug 481655.

2001-11-16 02:00  blackh

	* Operation.cpp, doc/raisen.lyx: Fixed a few things and brought
	raisen doc up to date.

2001-11-16 01:37  blackh

	* Fact.cpp, Operation.cpp, Operation.h, RuleSAXHandler.cpp: Got
	array deferencing working.  Made it so you can escape characters to
	make them part of an identifier.  This allows you to reference tags
	with a minus in them without them being interpreted as a symbol.

2001-11-16 00:57  blackh

	* doc/raisen.lyx: Brought Raisen document up to date with code.

2001-11-15 19:31  blackh

	* Domain.cpp, Domain.h, Fact.cpp, Fact.h, FactListener.h,
	Operation.cpp, RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h: Got rid of the implicit assert when you assign.

2001-11-15 16:58  blackh

	* Engine.cpp, Engine.h, Fact.cpp, Operation.cpp, Optimizer.cpp,
	Reference.cpp, Reference.h, RuleBase.cpp, RuleSAXHandler.cpp,
	RuleSAXHandler.h: You can now put a reference after any expression.
	 It used to be required for it to be a variable.  So, now you can
	go   (fire g.ret)#value = 7

2001-11-15 15:57  blackh

	* RuleSAXHandler.cpp, RuleSAXHandler.h: Improved error reporting.

2001-11-15 04:24  blackh

	* Fact.cpp, Operation.cpp, RuleBase.cpp: Demo call example works
	now.

2001-11-15 03:44  blackh

	* Operation.cpp, RuleBase.cpp: Check it in coz it works.

2001-11-15 03:22  blackh

	* Domain.cpp, Domain.h, Fact.cpp, Fact.h, FactListener.h,
	Operation.cpp, RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h: You can assert a subfact of another fact, and
	that implicitly clones it.

2001-11-15 02:30  blackh

	* doc/raisen.lyx: Documenting today's code changes (fire, assert,
	rememeber).

2001-11-15 01:52  blackh

	* Domain.cpp, Domain.h, Engine.cpp, Engine.h, Fact.cpp, Fact.h,
	FactListener.h, FactSAXHandler.cpp, IOLoop.cpp, Operation.cpp,
	Operation.h, RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h, grapevine.cpp: I've implemented not one, not two,
	but THREE flavours of 'assert':
	
	  fire
	  assert
	  rememeber
	
	which I will document presently.

2001-11-14 11:31  rossta

	* Fact.cpp, Object.cpp, Object.h, Operation.cpp, doc/raisen.lyx:
	Fixed all delete str as delete[] str.  Seems to work as delete str
	so I don't know how important this is.	Fixed typos.

2001-11-14 10:18  rossta

	* Crypt.cpp, Domain.h, FactSAXHandler.cpp, IOLoop.cpp, IOLoop.h,
	Object.cpp, Object.h, Operation.cpp, a, aclean: Moved some
	#includes from IOLoop.h to IOLoop.cpp Compiles in MSVC again now. 
	Moved the 'clean' code from ./a to ./aclean Cleaned up headers in
	Crypt.cpp

2001-11-14 02:55  blackh

	* IOLoop.cpp, RuleSAXHandler.cpp: More snail's progress to World
	Domination.

2001-11-14 02:09  blackh

	* Operation.cpp: Bug fixes.

2001-11-14 02:01  blackh

	* IOLoop.cpp, IOLoop.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: Some work for Ross! I've written the necessary
	code for Raisen to be able to establish an outgoing socket
	connection (and it'll need to be ported to Windows).  The demo
	'demo.connect' demonstrates this.  When working correctly, the
	output is   Welcome to the test of connect()   waiting on socket 3 
	 fd=3	connected   wrote 18 bytes   read 297 bytes   read 1448
	bytes	read 784 bytes	 socket closed by peer

2001-11-13 23:49  blackh

	* Engine.cpp, Engine.h, RuleBase.cpp: This code change actually
	DOES make salience work properly.

2001-11-13 23:22  rossta

	* doc/raisen.lyx: bug fix

2001-11-13 23:10  rossta

	* doc/raisen.lyx: Added new functions.	Minor cleanup.

2001-11-13 23:04  blackh

	* Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added
	'startsWith' function.	Salience doesn't quite work yet.

2001-11-13 21:55  blackh

	* Engine.cpp: [no log message]

2001-11-13 21:46  blackh

	* Engine.cpp, Engine.h, RuleBase.cpp: Made it so salience works.

2001-11-13 19:02  ajones

	* Object.cpp, Object.h, RuleSAXHandler.cpp, config.h.in: Added
	proper transcoding which also transfers null (string terminators).

2001-11-13 03:11  rossta

	* IOLoop.cpp, IOLoop.h, grapevine.dsp: Added IOLoop::closeSocket()
	and IOLoop::setNonBlocking() to better encapsulate all the #ifndef
	WIN32's.

2001-11-13 02:57  blackh

	* Domain.cpp, Domain.h: Fixed some 'fact leaks'.

2001-11-13 02:43  blackh

	* IOLoop.cpp, IOLoop.h, grapevine.cpp: Made it shut down
	co-operatively, and close all open sockets, and it STILL won't
	release the listen socket for 30 seconds or so.  Argh.	I must be
	not closing something correctly somehow.

2001-11-13 01:58  blackh

	* RuleSAXHandler.cpp: More bug fixes.

2001-11-13 01:54  rossta

	* .cvsignore, IOLoop.cpp, ad, beecrypt.mak, grapevine.cpp,
	grapevine.dsp, xerces.mak: Minor tweaks for MSVC compile.

2001-11-13 01:42  blackh

	* Fact.cpp, FactSAXHandler.cpp: Bug fixes.

2001-11-13 00:38  blackh

	* Object.cpp: Bug fix.

2001-11-13 00:20  blackh

	* Domain.cpp, Domain.h, Engine.cpp, IOLoop.cpp, RuleBase.cpp,
	RuleBase.h, grapevine.cpp: Added the ability to get a dump of all
	current facts when grapevine receives a SIGQUIT signal.  (i.e. by
	pressing ctrl-\ on Linux and ctrl-Break on Windows).

2001-11-12 22:34  blackh

	* INSTALL, ad: Tweak ./ad so it uses crypto++, since that's what
	we're going to be using for now.

2001-11-12 17:05  rossta

	* INSTALL, README, ad, configure.ac, debian_setup.sh: Created ad
	and debian_setup.sh files Updated installation instructions (now in
	INSTALL)

2001-11-12 16:05  rossta

	* .cvsignore, README, a, acconfig.h, beecrypt.mak, config.h.bot,
	config.h.in, config.h.top, configure.ac, configure.in,
	cryptopp.mak, xerces.mak: Should build ok now.	Please test.

2001-11-12 15:49  blackh

	* acconfig.h: Oops!  I forgot to check an important file in! It
	should build for Tony now.

2001-11-12 02:58  blackh

	* Crypt.cpp, config.h.in: By golly it builds on Linux now!  (With
	the Crypto++ library).	Don't know if the SHA1 code I added works
	or not yet.

2001-11-12 02:42  blackh

	* config.h.bot, config.h.in: Fix something broken with make.

2001-11-12 02:28  blackh

	* config.h.in, configure.in: Configure now supports both Crypto++
	and BeeCrypt, with Crypto++ being the default.

2001-11-12 01:23  rossta

	* Crypt.cpp, Crypt.h, grapevine.dsp: Added Crypt.cpp/.h to .dsp

2001-11-12 01:21  rossta

	* doc/.cvsignore, .cvsignore: [no log message]

2001-11-12 01:20  rossta

	* doc/: Makefile, footer.html, grapevine-manifesto.lyx,
	grapevine.lyx, header.html, joining-algorithm.lyx, raisen.lyx,
	stage-0.lyx: Tweaked the documents to have 2cm borders.  The old
	borders were *huge*.  Changed all URLs to "real" URLs.	Changed
	document date to "External Date" If you guys want it left the old
	way, lemme know and I'll undo these changes.

2001-11-11 23:22  blackh

	* doc/stage-0.lyx: [no log message]

2001-11-11 23:05  blackh

	* doc/: joining-algorithm.lyx, stage-0.lyx: Added new documents
	which unfortunately seem to have broken the document build.

2001-11-11 12:12  rossta

	* .cvsignore, Crypt.cpp, Domain.h, Engine.cpp, IOLoop.cpp,
	Makefile.am, Object.cpp, Object.h, RuleSAXHandler.cpp, a,
	config.h.bot, config.h.in, config.h.top, configure.in: Got it
	building again.  Seems once in a while, running ./a clobbers
	config.h.in, so I created config.h.top and config.h.bot to fix
	this.  As a result, don't edit config.h.in anymore, run autoheader
	to create it.  I'm leaving config.h.in in cvs for now, cause I'm
	just not sure about the whole mess.  Added --enable-doc,
	--enable-debug and --enable-optimize to ./configure.  Cleaned up
	code for -Wall warnings.  Fixed MSVC errors.

2001-11-07 17:32  ajones

	* Crypt.cpp, Crypt.h, RuleSAXHandler.cpp: Added sha1, base64encode
	and base64decode operators.

2001-11-07 01:29  anoncvs_orbunit

	* Crypt.cpp, Crypt.h, Fact.cpp, Makefile.am, Object.cpp, Object.h,
	Operation.cpp, RuleBase.cpp, RuleSAXHandler.cpp, config.h.in,
	configure.in, utils.h: Phew!  Now got all the AsciiString and
	UnicodeString stuff worked out.  It now all appears to work as
	before.  The build needs some work (where's Ross when you need
	him).  You have to manually edit it to include:
	
	LIBS = -lxerces-c -lbeecrypt
	
	Otherwise it won't link the library.  The following line also
	disappears from config.h when you use "./a"
	
	static const char PATH_SEPARATOR_CHAR = '/';
	
	There is also a conflict between BeeCrypt and Xerces which can be
	fixed by inserting the following code before '#include'ing any of
	the BeeCrypt header files:
	
	#ifdef LINUX #undef LINUX #define LINUX 1 #endif

2001-11-05 23:56  ajones

	* Fact.cpp, Object.cpp, Object.h, Reference.cpp: More tidying up of
	Object class.

2001-11-05 18:04  rossta

	* doc/index.php: xhtml fixes

2001-11-05 17:13  rossta

	* doc/index.php: bug fix

2001-11-05 15:25  rossta

	* doc/index.php: bug fix

2001-11-05 15:03  rossta

	* doc/Makefile: bug fix

2001-11-05 14:35  rossta

	* Engine.cpp, IOLoop.cpp, IOLoop.h, Optimizer.cpp, RuleBase.cpp,
	grapevine.cpp, utils.h, doc/.tidyrc, doc/index.php: Changed
	comments to qt format, changed HTML links to absolute

2001-11-05 09:04  ajones

	* Fact.cpp, Fact.h, Object.cpp, Object.h, Reference.cpp,
	Reference.h, RuleSAXHandler.cpp: Sorting out Object and its
	subclasses.  Still plenty to do.  Time for sleep.... ZZZzzzz....

2001-11-05 08:10  rossta

	* doc/.cvsignore: oops

2001-11-05 08:09  rossta

	* doc/Makefile: ssh in makefile fix

2001-11-05 07:51  rossta

	* doc/: .cvsignore, Makefile, index.php, index.pl: Migrated to PHP

2001-11-04 21:34  blackh

	* Engine.cpp: Bug fix: 'demo.animal' example didn't work before,
	but this change fixes it.

2001-11-04 20:53  ajones

	* Object.cpp, Object.h: Made it so that facts are now automatically
	converted to strings.  Also if you compare to different types then
	they are converted to strings.	[I'm not certain that this is a
	good idea or not - certainly for string and int equality it is]

2001-11-03 01:38  blackh

	* Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added a stub for
	FormatHTML + some demo Raisen code.

2001-11-03 01:10  blackh

	* Operation.cpp: Tony broke it!  This fixes it.  Tony hasn't done
	the automatic type-conversion part of the job, so I've added some
	toString(..) operators to make it work in the meantime.

2001-11-02 16:15  rossta

	* Engine.cpp, IOLoop.cpp, Object.cpp, Object.h, config.h.in:
	Changed all + to ## in xml files.  (This seemed to fix the assert
	bug in Object.cpp).  Cleaned up USE_XMLString stuff.  Cleaned up
	config.h stuff for win32.

2001-11-02 07:33  ajones

	* Engine.cpp, Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: Added ## operator for concatenating strings, +
	now is only valid for int.  -, *, and / operators automatically
	convert strings to integers (as does +).  From now on all operators
	will have a specific type that they operate on.

2001-11-02 04:42  blackh

	* IOLoop.cpp, IOLoop.h, RuleBase.cpp: It now acts as a tiny web
	server.

2001-11-02 03:48  blackh

	* Engine.cpp, Engine.h, Operation.cpp, Operation.h: Fixed some more
	bugs.

2001-11-02 02:49  blackh

	* IOLoop.cpp: OK - the crash bug is confirmed dead.  However, we
	now have a logic bug.  The program doesn't wokr properly.

2001-11-02 02:43  blackh

	* Engine.cpp, IOLoop.cpp: Bloody hell!	I fucking fixed it!  The
	crash has gone!

2001-11-01 23:40  blackh

	* Fact.cpp, IOLoop.cpp, IOLoop.h, Object.h, Operation.cpp,
	RuleSAXHandler.cpp, doc/raisen.lyx: Brought Raisen doc up to date. 
	Fixed I/O operations so they're implemented correctly.	It crashes
	now:  If you connect to it, and send an HTTP header, then connect a
	second time, it crashes after it receives the first "GET" line.  I
	sent this both times: GET / HTTP/1.1 Hi: There

2001-11-01 22:40  ajones

	* doc/raisen.lyx: Fixed small typo in XML example.

2001-11-01 12:40  rossta

	* .cvsignore, Engine.cpp, Engine.h, Fact.cpp, Fact.h, Object.cpp,
	Object.h, Operation.cpp, Optimizer.cpp, Rule.cpp, RuleBase.cpp,
	RuleSAXHandler.cpp, config.h.in, configure.in: Replaced most
	.insert() with .push_back() as it's more succinct.  Fixed @todo
	Make it more efficient to locate which ruleState belongs to... at
	Engine.cpp line 415.  Cleaned up config.h.in as ./a wasn't
	#defining properly (now it works).  Steve: use @todo for all to do
	items in the future.  They're what doxygen expects!

2001-11-01 03:13  blackh

	* Engine.cpp, Engine.h, Operation.cpp: OK - bugs fixed in Engine
	and made progress with http parsing.  Now it can parse the whole
	HTTP header and turn it into a fact.  Next job: processing of HTTP
	request.

2001-11-01 01:40  blackh

	* Engine.cpp, Fact.cpp, Fact.h, Operation.cpp, Operation.h,
	Reference.cpp, RuleSAXHandler.cpp: Added 'set' and 'get' operations
	for setting and getting attributes if the name is known only at
	runtime.

2001-10-31 13:14  blackh

	* doc/grapevine-manifesto.lyx: Renegade Networks - The Grapevine
	Manifesto

2001-10-31 05:42  ajones

	* Operation.cpp, Operation.h, RuleSAXHandler.cpp: Added '*' and
	'/'.  Haven't tested them yet because it doesn't seem to be
	starting up.  I hope that it wasn'e me who broke it but I don't
	think it was.

2001-10-31 02:09  blackh

	* Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleSAXHandler.cpp: A few bug fixes.  The node can now extract the
	METHOD, URI and PROTOCOL from the first line of the HTTP request.

2001-10-31 01:11  blackh

	* Object.h, Operation.cpp, Operation.h, Reference.cpp, Reference.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h: Added a 'bound()' function,
	as well as ! and != operators.

2001-10-31 00:39  rossta

	* config.h.in: Turning on #define "USE_XMLString"

2001-10-31 00:38  rossta

	* Object.cpp: Minor bug fix

2001-10-30 13:29  rossta

	* Fact.h, IOLoop.cpp, Object.cpp, Object.h, Operation.cpp,
	Operation.h, Optimizer.cpp, Reference.h, RuleBase.cpp,
	RuleSAXHandler.cpp, VarSlotAllocator.h, config.h.in, utils.h: Added
	code to use XMLString functions: transcode(), binToText,
	parseInt(), etc.  All changes are encapsulated in
	Object.h/Object.cpp for portability.  Added #define USE_XMLString
	to conditionally use the above code.  Once code passes QA we'll
	remove the define and the #ifdefs.
	
	Also, Replaced all delete pchar; with delete[] pchar;

2001-10-30 08:17  rossta

	* IOLoop.h, Operation.cpp: Replaced write() with send(): Steve:
	verify this is OK

2001-10-30 08:04  rossta

	* Object.cpp, Object.h, grapevine.cpp: char to Char cleanup

2001-10-30 07:48  rossta

	* IOLoop.cpp: Win32: Replaced close() with closesocket()

2001-10-30 07:38  rossta

	* Rule.h, Rule.cpp: win32 fix

2001-10-29 23:15  blackh

	* Engine.cpp, Fact.cpp, Operation.cpp, RuleBase.cpp: Bug fixed:
	Assert was calling 'resolveVariables' which caused the fact to be
	copied before being asserted.  This meant that if the fact was
	already asserted, it was getting asserted twice.  Calling
	'resolveVariables' is the job of the 'new' operator. 
	(resolveVariables resolves things like <message>[text]</message> so
	the contents of the [text] variable get put into the fact.)

2001-10-29 21:52  blackh

	* Object.cpp: Bug fix - thanks Ross.

2001-10-29 03:57  blackh

	* Optimizer.cpp: Somewhat improved.  Still not processing things
	quite properly.  The symptom is that http.xml outputs LINE once
	after it's entered the BODY state, and it shouldn't do that.

2001-10-29 03:38  blackh

	* Engine.cpp, Engine.h, Object.cpp, Optimizer.cpp, RuleBase.cpp,
	RuleSAXHandler.cpp: OK, it works again, and debugging is a bit
	improved.  Still trying to figure out why I'm getting LINE twice.

2001-10-29 01:34  blackh

	* Domain.h, Engine.cpp, Engine.h, FactSAXHandler.h, Optimizer.cpp,
	Rule.cpp, Rule.h, RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h: Argh. It crashes.  Not having much luck this
	evening.

2001-10-29 00:24  blackh

	* Engine.cpp, Operation.cpp, RuleSAXHandler.cpp: Bug in parser
	fixed.

2001-10-28 23:30  blackh

	* Engine.cpp, GrapevineSAXHandler.cpp, IOLoop.cpp, IOLoop.h,
	Operation.cpp, Operation.h, RuleBase.h, RuleSAXHandler.cpp,
	RuleSAXHandler.h, grapevine.cpp: One step further along our quest
	for world domination.  (Sorry - code is currently slightly broken.)

2001-10-26 14:29  rossta

	* Domain.h, Engine.cpp, Engine.h, Fact.cpp, Fact.h, FactListener.h,
	GrapevineSAXHandler.h, IOLoop.cpp, IOLoop.h, Operation.cpp,
	Operation.h, Reference.h, Rule.h, RuleBase.h, RuleListener.h,
	RuleSAXHandler.cpp, VarSlotAllocator.cpp, VarSlotAllocator.h,
	utils.h: Cleaned up comments to qt standard:
	
	/*!   A comment */

2001-10-24 14:02  blackh

	* doc/raisen.lyx: Spotted a slight error.

2001-10-24 13:24  blackh

	* doc/raisen.lyx: Some updates & improvements.

2001-10-24 08:16  rossta

	* .cvsignore, IOLoop.cpp: Code tweaks.	I like to have the unix
	code first, as in: #ifndef WIN32 ...elegant...	#else ...inelegant,
	bloated, just plain ugly...  #endif Oh, and I removed Socket.cpp
	from the .dsp which is not ready for cvs.

2001-10-24 08:05  rossta

	* .cvsignore, install-sh, missing: Removed unneeded build files

2001-10-24 08:00  rossta

	* .cvsignore, Domain.cpp, Engine.cpp, Fact.cpp, FactListener.h,
	FactSAXHandler.cpp, GrapevineSAXHandler.cpp, GrapevineSAXHandler.h,
	IOLoop.cpp, IOLoop.h, Object.cpp, Operation.cpp, Operation.h,
	Reference.cpp, Reference.h, Rule.cpp, RuleBase.cpp, RuleBase.h,
	RuleListener.h, RuleSAXHandler.h, VarSlotAllocator.cpp,
	VarSlotAllocator.h, config.h.in, grapevine.cpp, utils.cpp: Added
	config.h to all files.	Changed read() to recv() which fixed it in
	Windows Changed most _MSC_VER to WIN32 to support other Windows
	compilers.  This probably breaks cygwin, but I couldn't compile
	xerces in cygwin anyway.  Other minor fixes and cleanup.

2001-10-24 03:44  blackh

	* Fact.cpp, FactSAXHandler.cpp, FactSAXHandler.h, IOLoop.cpp,
	IOLoop.h, Object.cpp, Object.h, Operation.cpp, Operation.h,
	RuleBase.cpp, RuleBase.h, RuleSAXHandler.cpp, RuleSAXHandler.h,
	grapevine.cpp: Now it really starts up properly.  If you don't
	specify a domain, then it loads sys.grapevine by default, because
	grapevine is the default application.  This is all specified by the
	logic in sys/init.xml.
	
	sys.grapevine listens on port 7588, and when it gets an incoming
	connection, it delegates that connection to sys.http, which then
	starts parsing it as HTTP.  So far the code only gets as far as
	reading the header from the HTTP request and putting it on the
	screen.
	
	To test this, run grapevine, then point your browser at
	localhost:7588.  The HTTP header will appear on the screen.

2001-10-23 09:07  rossta

	* .cvsignore, Domain.h, Engine.cpp, Engine.h, Fact.h,
	FactSAXHandler.h, IOLoop.cpp, IOLoop.h, Makefile.am, Object.cpp,
	Object.h, Operation.cpp, Operation.h, Optimizer.cpp, Optimizer.h,
	Rule.h, RuleBase.cpp, RuleSAXHandler.cpp, a, aclocal.m4,
	config.h.in, configure.in, grapevine.cpp, grapevine.dsp,
	mkinstalldirs, utils.h: Added config.h.in logic.  Added
	win32/config.h and win32/getopt.* Cleaned up all -Wall warnings,
	but left -Wall out of configure.in as xerces reports several
	warnings.  Removed aclocal.m4 and mkinstalldirs and changed ./a to
	create this as needed.	If these are supposed to be in cvs, then
	please add them back in.  Moved as much MSVC specific stuff to
	config.h as possible.  Should we add #include "config.h" to the top
	of all our source files?

2001-10-23 03:59  blackh

	* Engine.cpp, Makefile.am, Operation.cpp, Operation.h,
	Optimizer.cpp, Optimizer.h, RuleBase.cpp, RuleBase.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, grapevine.cpp: The code now
	starts up the way it should.  Here's what it does now: It processes
	command line options that turn debug output on.  You don't specify
	a file any more.  Now you specify a domain name, which has a syntax
	like a Java class.  Here's how it's implemented:  The arguments are
	asserted as facts.  For example if you type   ./grapevine
	demo.animal
	
	then it asserts the following fact:   <arg
	idx="0">demo.animal</arg>
	
	It then loads the domain sys.init.  sys/init.xml tells it to load
	the domain specified in the command line arguments.  Clever, eh!

2001-10-23 01:50  blackh

	* Object.h, Rule.cpp, Rule.h, RuleSAXHandler.cpp, RuleSAXHandler.h,
	doc/raisen.lyx: Adding parsing for rule name and salience + fixed
	doc accordingly.  Made it so print and println have to be print(..)
	and println(..).  Added 'null' as per raisen doc.

2001-10-22 23:14  rossta

	* .cvsignore, Object.cpp, grapevine.dsp, utils.h, doc/.cvsignore,
	doc/Makefile, doxygen/.cvsignore: Minor bug fix.  Added RTTI to
	.dsp.  Braindead MSVC doesn't use RTTI by default and doesn't flag
	a dynamic_cast<> call when RTTI is not used. Go figure.  Also
	cleaned up doc makefile and several .cvsignore files.

2001-10-22 22:40  blackh

	* RuleSAXHandler.cpp, RuleSAXHandler.h, doc/raisen.lyx: Added the
	'new' operator which causes facts to be interpreted literally, and
	updated the document accordingly.  This should fix a few problems. 
	Ross - the error you said you were getting, I seemed to be getting
	it on Linux too.  So, try that - you might find it works now.

2001-10-22 02:56  blackh

	* doc/Makefile: [no log message]

2001-10-22 02:31  blackh

	* doc/: Makefile, grapevine.lyx, header.html, hexagon.dia,
	hexagon.eps, msr.dia, msr.eps, tetrahedron.dia, tetrahedron.eps,
	wedge.dia, wedge.eps: [no log message]

2001-10-20 17:16  rossta

	* IOLoop.cpp, Makefile.am, Operation.cpp, Optimizer.cpp, utils.h,
	doc/.tidyrc, doc/Makefile, doc/fix_tex.pl, doc/footer.html,
	doc/header.html, doc/index.pl: Still trying to debug the Windows
	stuff.	Compiling with STLport 4.5 didn't fix it.  Added
	documentation build stuff.  After generating the docs

2001-10-19 09:32  rossta

	* Engine.cpp, Fact.cpp, IOLoop.cpp, Object.cpp, RuleBase.cpp,
	RuleSAXHandler.cpp: Minor bug fix, changed some ints to unsigned
	ints to remove msvc compiler whinings.	Still crashes in msvc

2001-10-18 22:57  rossta

	* Doxyfile, doxygen/.cvsignore: Added doxygen files

2001-10-18 21:38  blackh

	* doc/raisen.lyx: Added more stuff to raisen doc.

2001-10-17 20:50  rossta

	* IOLoop.cpp, VarSlotAllocator.cpp, grapevine.cpp: Corrected
	VarSlotAllocator's constructor to initialize private variables
	correctly.
	
	Added WSAStartup().  grapevine now gives a Unhandled exception in
	kernel32.
	
	Dontcha just love Windows?

2001-10-17 03:44  blackh

	* doc/raisen.lyx: Half finished a document describing the Raisen
	language.

2001-10-17 01:34  rossta

	* grapevine.dsp: Renamed Debug directory

2001-10-17 01:26  rossta

	* IOLoop.cpp, Object.h, Reference.h, VarSlotAllocator.h,
	grapevine.dsp, grapevine.dsw, utils.h: Added MSVC workspace and
	project files.	Minor header cleanup

2001-10-17 01:12  rossta

	* Domain.cpp, Domain.h, Engine.cpp, Engine.h, Fact.cpp, Fact.h,
	FactListener.h, FactSAXHandler.cpp, FactSAXHandler.h,
	GrapevineSAXHandler.cpp, GrapevineSAXHandler.h, IOLoop.cpp,
	IOLoop.h, Object.cpp, Object.h, Operation.cpp, Operation.h,
	Optimizer.cpp, Optimizer.h, Reference.cpp, Reference.h, Rule.cpp,
	Rule.h, RuleBase.cpp, RuleBase.h, RuleListener.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, VarSlotAllocator.cpp,
	VarSlotAllocator.h, aclocal.m4, grapevine.cpp, utils.cpp, utils.h:
	Compiles in msvc6 now.	I spent several *hours* on this, and
	changed several things to get it all to compile in msvc.  First,
	all ostream had to be rewritten as ::ostream.  Second, for(int
	i...); for (int i...); became: int i; for(i...) ... annoying.  Most
	other changes are #include file related.  I committed these changes
	to a branch so Steve could review them before committing them to
	the main trunk.

2001-10-17 00:27  blackh

	* .cvsignore, AUTHORS, COPYING, ChangeLog, Domain.cpp, Domain.h,
	Engine.cpp, Engine.h, Fact.cpp, Fact.h, FactListener.h,
	FactSAXHandler.cpp, FactSAXHandler.h, GrapevineSAXHandler.cpp,
	GrapevineSAXHandler.h, INSTALL, IOLoop.cpp, IOLoop.h, Makefile.am,
	NEWS, Object.cpp, Object.h, Operation.cpp, Operation.h,
	Optimizer.cpp, Optimizer.h, README, Reference.cpp, Reference.h,
	Rule.cpp, Rule.h, RuleBase.cpp, RuleBase.h, RuleListener.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, VarSlotAllocator.cpp,
	VarSlotAllocator.h, a, aclocal.m4, config-xerces-from-source.sh,
	configure.in, grapevine.cpp, install-sh, missing, mkinstalldirs,
	utils.cpp, utils.h, doc/raisen.lyx, doc/overview.flw,
	doc/overview.jpeg: Initial revision

2001-10-17 00:27  blackh

	* .cvsignore, AUTHORS, COPYING, ChangeLog, Domain.cpp, Domain.h,
	Engine.cpp, Engine.h, Fact.cpp, Fact.h, FactListener.h,
	FactSAXHandler.cpp, FactSAXHandler.h, GrapevineSAXHandler.cpp,
	GrapevineSAXHandler.h, INSTALL, IOLoop.cpp, IOLoop.h, Makefile.am,
	NEWS, Object.cpp, Object.h, Operation.cpp, Operation.h,
	Optimizer.cpp, Optimizer.h, README, Reference.cpp, Reference.h,
	Rule.cpp, Rule.h, RuleBase.cpp, RuleBase.h, RuleListener.h,
	RuleSAXHandler.cpp, RuleSAXHandler.h, VarSlotAllocator.cpp,
	VarSlotAllocator.h, a, aclocal.m4, config-xerces-from-source.sh,
	configure.in, grapevine.cpp, install-sh, missing, mkinstalldirs,
	utils.cpp, utils.h, doc/raisen.lyx, doc/overview.flw,
	doc/overview.jpeg: [no log message]

