You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(126) |
Nov
(168) |
Dec
(142) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(118) |
Feb
(90) |
Mar
(49) |
Apr
(108) |
May
(47) |
Jun
(45) |
Jul
(48) |
Aug
(9) |
Sep
(45) |
Oct
(58) |
Nov
(64) |
Dec
(47) |
2003 |
Jan
(16) |
Feb
(48) |
Mar
(80) |
Apr
(35) |
May
(31) |
Jun
(37) |
Jul
(18) |
Aug
(26) |
Sep
|
Oct
|
Nov
(24) |
Dec
(9) |
2004 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: rossta <gra...@li...> - 2003-06-13 18:55:23
|
rossta Fri Jun 13 11:55:22 2003 EDT Modified files: /grapevine/build/win32 grapevine.nsi /grapevine/cpp/win32 config.h Log: Bumped version to 1.0.5 Index: grapevine/cpp/win32/config.h diff -u grapevine/cpp/win32/config.h:1.16 grapevine/cpp/win32/config.h:1.17 --- grapevine/cpp/win32/config.h:1.16 Thu May 8 23:35:46 2003 +++ grapevine/cpp/win32/config.h Fri Jun 13 11:55:22 2003 @@ -1,4 +1,4 @@ -/* $Id: config.h,v 1.16 2003/05/09 06:35:46 rossta Exp $ */ +/* $Id: config.h,v 1.17 2003/06/13 18:55:22 rossta Exp $ */ /*! config.h for Win32 compilers @@ -136,7 +136,7 @@ /* Define to the full name and version of this package. */ #ifndef PACKAGE_STRING - #define PACKAGE_STRING "GrapevineC++Engine 1.0.4" + #define PACKAGE_STRING "GrapevineC++Engine 1.0.5" #endif /* Define to the one symbol short name of this package. */ @@ -146,12 +146,12 @@ /* Define to the version of this package. */ #ifndef PACKAGE_VERSION - #define PACKAGE_VERSION "1.0.4" + #define PACKAGE_VERSION "1.0.5" #endif /* Version number of package */ #ifndef VERSION - #define VERSION "1.0.4" + #define VERSION "1.0.5" #endif // System dependent defines |
From: rossta <gra...@li...> - 2003-06-13 18:51:26
|
rossta Fri Jun 13 11:51:25 2003 EDT Modified files: /grapevine/cpp Allocator.cpp Allocator.h grapevine.dsp Log: MSVC build fixes, got the new Allocator working in MSVC. Of course it needs more testing. Index: grapevine/cpp/grapevine.dsp diff -u grapevine/cpp/grapevine.dsp:1.19 grapevine/cpp/grapevine.dsp:1.20 --- grapevine/cpp/grapevine.dsp:1.19 Fri Jun 13 09:33:29 2003 +++ grapevine/cpp/grapevine.dsp Fri Jun 13 11:51:24 2003 @@ -42,7 +42,7 @@ # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "win32" /I ".\win32" /I ".\lib" /I "..\fec" /D "NDEBUG" /D "HAVE_CRYPTOPP" /D "HAVE_CONFIG_H" /D "_REENTRANT" /D "_CONSOLE" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "win32" /I ".\win32" /I ".\lib" /I "..\fec" /D "NDEBUG" /D "_STLP_USE_OWN_NAMESPACE" /D "HAVE_CRYPTOPP" /D "HAVE_CONFIG_H" /D "_REENTRANT" /D "_CONSOLE" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -66,7 +66,7 @@ # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\fec" /I ".\win32" /I ".\lib" /D "_STLP_USE_OWN_NAMESPACE" /D "_DEBUG" /D "HAVE_CRYPTOPP" /D "HAVE_CONFIG_H" /D "_REENTRANT" /D "_CONSOLE" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\fec" /I ".\win32" /I ".\lib" /D "_DEBUG" /D "_STLP_USE_OWN_NAMESPACE" /D "HAVE_CRYPTOPP" /D "HAVE_CONFIG_H" /D "_REENTRANT" /D "_CONSOLE" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /GZ /c # SUBTRACT CPP /Fr # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" |
rossta Fri Jun 13 09:33:30 2003 EDT Modified files: /grapevine/build/win32 grapevine.nsi /grapevine/cpp Allocator.cpp Allocator.h Crypt.cpp FEC.cpp Operation.cpp Profiler.cpp RuleBase.cpp RuleSAXHandler.cpp RuleState.h Thread.cpp grapevine.dsp longlong.cpp /grapevine/fec fec.dsp Log: MSVC build fixes, also replaced many ints with unsigned to stop MSVC from whining Grapevine builds from within MSVC so we will not need to use Cygwin Index: grapevine/fec/fec.dsp diff -u grapevine/fec/fec.dsp:1.2 grapevine/fec/fec.dsp:1.3 --- grapevine/fec/fec.dsp:1.2 Tue Apr 22 18:40:11 2003 +++ grapevine/fec/fec.dsp Fri Jun 13 09:33:29 2003 @@ -41,7 +41,7 @@ # PROP Intermediate_Dir "Release" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "_LIB" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -64,7 +64,7 @@ # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "_LIB" /D "WIN32" /D "XML_STATIC" /D "_MBCS" /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe |
From: blackh <gra...@li...> - 2003-06-12 21:26:39
|
blackh Thu Jun 12 14:26:34 2003 EDT Added files: /grapevine/cpp Profiler.h Log: And forgot to check this in! Index: grapevine/cpp/Profiler.h +++ grapevine/cpp/Profiler.h // $Id: Profiler.h,v 1.1 2003/06/12 21:26:34 blackh Exp $ // BigInt supplies encapsulated big integer support to the rest of the program #ifndef _PROFILER_H_ #define _PROFILER_H_ #include "config.h" #include "longlong.h" #include <map> #include <vector> #include "System.h" class Join; class Profiler { private: struct InternalMeasure { int count; unsigned long milliseconds; }; typedef std::map<Join*, InternalMeasure> MeasureMap; MeasureMap* current; MeasureMap* previous; wxULongLong periodStart; wxULongLong thisStart; MeasureMap::iterator thisIt; void init(); void end_(wxULongLong now); public: struct Measure { Join* join; unsigned long millisecondsTotal; unsigned long millisecondsPerExecute; }; typedef std::vector<Measure> MeasureList; Profiler(); ~Profiler(); void start(Join* join); inline void end() { if (current != NULL && thisIt != current->end()) end_(System::currentTimeMillis()); } MeasureList getMeasures(unsigned int maxEntries); void clear(); }; #endif |
From: blackh <gra...@li...> - 2003-06-12 21:26:07
|
blackh Thu Jun 12 14:26:06 2003 EDT Added files: /grapevine/cpp Profiler.cpp Log: Oops - forgot to check in! Index: grapevine/cpp/Profiler.cpp +++ grapevine/cpp/Profiler.cpp // $Id: Profiler.cpp,v 1.1 2003/06/12 21:26:04 blackh Exp $ #include "Profiler.h" #include "System.h" #include <algorithm> using namespace std; Profiler::Profiler() : current(NULL), previous(NULL) { } Profiler::~Profiler() { clear(); } void Profiler::init() { current = new MeasureMap(); thisIt = current->end(); periodStart = System::currentTimeMillis(); } void Profiler::start(Join* join) { if (current == NULL) init(); wxULongLong now = System::currentTimeMillis(); if (thisIt != current->end()) { // Do nothing if we're already timing this join. if (thisIt->first == join) return; end_(now); if (current == NULL) init(); } thisStart = now; thisIt = current->find(join); if (thisIt == current->end()) { InternalMeasure& meas = (*current)[join]; meas.count = 0; meas.milliseconds = 0; thisIt = current->find(join); assert(thisIt != current->end()); } } void Profiler::end_(wxULongLong now) { unsigned long duration = (now - thisStart).ToULong(); InternalMeasure& meas = (*thisIt).second; meas.count++; meas.milliseconds += duration; thisIt = current->end(); wxULongLong periodDuration = now - periodStart; if (periodDuration >= (wxULongLong)10000L) { delete previous; previous = current; current = NULL; } } class ProfileComparator { public: ProfileComparator() { } bool operator() ( const Profiler::Measure& one, const Profiler::Measure& two) { return one.millisecondsTotal > two.millisecondsTotal; } }; Profiler::MeasureList Profiler::getMeasures(unsigned int maxEntries) { MeasureList measures; MeasureMap* map = previous; if (map == NULL) map = current; if (map != NULL) { for (MeasureMap::iterator it = map->begin(); it != map->end(); ++it) { InternalMeasure& imeas = (*it).second; Measure omeas; omeas.join = (*it).first; omeas.millisecondsTotal = imeas.milliseconds; omeas.millisecondsPerExecute = imeas.milliseconds / (unsigned long) imeas.count; measures.push_back(omeas); } } // Sort them into reverse order of totalMilliseconds ProfileComparator comparator; sort(measures.begin(), measures.end(), comparator); if (measures.size() >= maxEntries) measures.erase(measures.begin()+maxEntries, measures.end()); return measures; } void Profiler::clear() { delete current; current = NULL; delete previous; previous = NULL; } |
From: rossta <gra...@li...> - 2003-06-12 15:13:52
|
rossta Thu Jun 12 08:13:49 2003 EDT Modified files: /grapevine/cpp Allocator.h Assertion.h Fact.h Firing.h Object.h Reference.h Retraction.h grapevine.dsp Log: MSVC build fixes Index: grapevine/cpp/grapevine.dsp diff -u grapevine/cpp/grapevine.dsp:1.17 grapevine/cpp/grapevine.dsp:1.18 --- grapevine/cpp/grapevine.dsp:1.17 Fri May 9 10:38:37 2003 +++ grapevine/cpp/grapevine.dsp Thu Jun 12 08:13:48 2003 @@ -89,6 +89,10 @@ # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File +SOURCE=.\Allocator.cpp +# End Source File +# Begin Source File + SOURCE=.\Assertion.cpp # End Source File # Begin Source File @@ -473,6 +477,10 @@ # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Allocator.h +# End Source File # Begin Source File SOURCE=.\Assertion.h |
From: blackh <gra...@li...> - 2003-06-12 11:08:20
|
blackh Thu Jun 12 04:08:20 2003 EDT Modified files: /website index.php Log: Update 2 website on performance improvements. Index: website/index.php diff -u website/index.php:1.59 website/index.php:1.60 --- website/index.php:1.59 Fri Jun 6 14:45:02 2003 +++ website/index.php Thu Jun 12 04:08:18 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.59 2003/06/06 21:45:02 blackh Exp $ --> +<!-- $Id: index.php,v 1.60 2003/06/12 11:08:18 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -21,7 +21,7 @@ <div id="rightCol"> <?php include("title.inc"); ?><br /> - by <a href="mailto:st...@bl...">Stephen Blackheath</a> - 22 Apr 2003<br /> + by <a href="mailto:st...@bl...">Stephen Blackheath</a> - Updated 12 Jun 2003<br /> <p>We are creating an anonymizing storage network - a network that resembles the World Wide Web, but is capable of allowing people to publish and retrieve information without fear of censorship or surveillance.</p> @@ -74,10 +74,10 @@ <h3>News</h3> - <p><b>26 May 2003 - Working on performance</b></p> - <p>I have found a few performance bottlenecks, and I'll release a new version of - the executable soon. I've disabled the networking functionality in the - meantime to prevent the daemon annoying you. Windows binaries are still broken.</p> + <p><b>12 Jun 2003 - Made many performance improvements - ver 1.0.5 shortly</b></p> + <p>I found a few performance bottlenecks, and I've been working on them. + I'll release a new version of the executable (1.0.5) which is significantly faster shortly + once I've tested it for memory leaks.</p> <p><b>13 May 2003 - Windows binary broken</b></p> <p>The windows binary release doesn't work right at the moment unless you have CygWin installed. We're <a target="_top" href="http://sourceforge.net/tracker/index.php?func=detail&aid=727482&group_id=32439&atid=405158">working on it</a>.</p> |
From: blackh <gra...@li...> - 2003-06-12 11:08:06
|
blackh Thu Jun 12 04:08:05 2003 EDT Modified files: /grapevine/raisen/test base64decode.xml Log: Improvement to base64decode test case. Index: grapevine/raisen/test/base64decode.xml diff -u grapevine/raisen/test/base64decode.xml:1.6 grapevine/raisen/test/base64decode.xml:1.7 --- grapevine/raisen/test/base64decode.xml:1.6 Thu Jun 12 02:27:55 2003 +++ grapevine/raisen/test/base64decode.xml Thu Jun 12 04:08:02 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: base64decode.xml,v 1.6 2003/06/12 09:27:55 blackh Exp $ --> +<!-- $Id: base64decode.xml,v 1.7 2003/06/12 11:08:02 blackh Exp $ --> <grapevine> <domain name="test.base64decode"> @@ -15,13 +15,19 @@ result = base64decode("#$)(*@#$*&)(*") || true, <!-- Illegal Unicode --> !result, print("3 "), + result = base64decode("#$)(*@#$*&)(") || true, <!-- Illegal Unicode --> + !result, + print("4 "), + result = base64decode("MTIzNDU2N===") || true, <!-- Illegal Unicode --> + !result, + print("5 "), encoded = base64encode("h") ## base64encode("he") ## base64encode("li"), result = base64decode(encoded), result == "hheli", - print("4 "), + print("6 "), result = base64decode("VGhlbiBDcmlzdGFiZWwga25lbHQgYnkgdGhlIGxhZHkncyBzaWRlLC9BbmQgcmFpc2VkIHRvIGhlYXZlbiBoZXIgZXllcyBzbyBibHVlLS9BbGFzISBzYWlkIHNoZSwgdGhpcyBnaGFzdGx5IHJpZGUtL0RlYXIgbGFkeSEgaXQgaGF0aCB3aWxkZXJlZCB5b3Uh"), result == "Then Cristabel knelt by the lady's side,/And raised to heaven her eyes so blue-/Alas! said she, this ghastly ride-/Dear lady! it hath wildered you!", - print("5 "), + print("7 "), result = base64decode("MTIzNDU2Nw==MTIzNDU="), result == "123456712345", println("ok") |
From: blackh <gra...@li...> - 2003-06-12 10:54:32
|
blackh Thu Jun 12 03:54:31 2003 EDT Modified files: /grapevine/cpp Crypt.cpp Crypt.h Object.cpp Object.h Log: Base 64 encode and decode souped up. Index: grapevine/cpp/Object.h diff -u grapevine/cpp/Object.h:1.23 grapevine/cpp/Object.h:1.24 --- grapevine/cpp/Object.h:1.23 Thu Jun 5 04:45:09 2003 +++ grapevine/cpp/Object.h Thu Jun 12 03:54:30 2003 @@ -1,4 +1,4 @@ -// $Id: Object.h,v 1.23 2003/06/05 11:45:09 blackh Exp $ +// $Id: Object.h,v 1.24 2003/06/12 10:54:30 blackh Exp $ #ifndef _OBJECT_H_ #define _OBJECT_H_ @@ -212,6 +212,14 @@ public: StringImpl(const char* text); StringImpl(const char* text, int length); + /*! + * If copy is false, then it takes the caller's buffer. This option must be + * used with extreme care, because you MUST do the following: + * - allocate the buffer with grapevineAllocateBig. + * - supply a length that is ONE LESS THAN the size of the allocated buffer. + * If you miss either of the above, then it will crash. + */ + StringImpl(char* text, int length, bool copy); StringImpl(const Char* text, int length); StringImpl(long i); /*! @@ -531,6 +539,10 @@ friend class Write; friend class StringImpl; + // Classes that have access to the rather dangerous String(char* text, int length, bool copy) + friend class Base64Decode; + friend class Base64Encode; + private: String(StringImpl* impl); StringImpl* getImpl() const {return static_cast<StringImpl*>(impl);} @@ -539,6 +551,15 @@ // const Char* getText() const {assert(impl != NULL); return getImpl()->getText();} const Char* getText() const; // defined at the end of this file static bool endsWith(const StringImpl* impl0, const StringImpl* impl1); + + /*! + * If copy is false, then it takes the caller's buffer. This option must be + * used with extreme care, because you MUST do the following: + * - allocate the buffer with grapevineAllocateBig. + * - supply a length that is ONE LESS THAN the size of the allocated buffer. + * If you miss either of the above, then it will crash. + */ + String(char* text, int length, bool copy); public: String(); |
From: blackh <gra...@li...> - 2003-06-12 09:27:57
|
blackh Thu Jun 12 02:27:56 2003 EDT Modified files: /grapevine/raisen/test base64decode.xml base64encode.xml Log: Base 64 test cases in preparation for base64 revamp. Index: grapevine/raisen/test/base64encode.xml diff -u grapevine/raisen/test/base64encode.xml:1.4 grapevine/raisen/test/base64encode.xml:1.5 --- grapevine/raisen/test/base64encode.xml:1.4 Sat Jun 29 03:22:47 2002 +++ grapevine/raisen/test/base64encode.xml Thu Jun 12 02:27:55 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: base64encode.xml,v 1.4 2002/06/29 10:22:47 blackh Exp $ --> +<!-- $Id: base64encode.xml,v 1.5 2003/06/12 09:27:55 blackh Exp $ --> <grapevine> <domain name="test.base64encode"> @@ -11,6 +11,18 @@ print("1 "), result = base64encode("12345678"), result == "MTIzNDU2Nzg=", + print("2 "), + result = base64encode("1234567"), + result == "MTIzNDU2Nw==", + print("3 "), + result = base64encode("123456"), + result == "MTIzNDU2", + print("4 "), + result = base64encode("12345"), + result == "MTIzNDU=", + print("5 "), + result = base64encode("Then Cristabel knelt by the lady's side,/And raised to heaven her eyes so blue-/Alas! said she, this ghastly ride-/Dear lady! it hath wildered you!"), + result == "VGhlbiBDcmlzdGFiZWwga25lbHQgYnkgdGhlIGxhZHkncyBzaWRlLC9BbmQgcmFpc2VkIHRvIGhlYXZlbiBoZXIgZXllcyBzbyBibHVlLS9BbGFzISBzYWlkIHNoZSwgdGhpcyBnaGFzdGx5IHJpZGUtL0RlYXIgbGFkeSEgaXQgaGF0aCB3aWxkZXJlZCB5b3Uh", println("ok") } || println("failed: result=" ## result); </rules> |
From: blackh <gra...@li...> - 2003-06-06 21:45:04
|
blackh Fri Jun 6 14:45:03 2003 EDT Modified files: /website index.php Log: Barrett Strong link. Index: website/index.php diff -u website/index.php:1.58 website/index.php:1.59 --- website/index.php:1.58 Fri Jun 6 14:40:47 2003 +++ website/index.php Fri Jun 6 14:45:02 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.58 2003/06/06 21:40:47 blackh Exp $ --> +<!-- $Id: index.php,v 1.59 2003/06/06 21:45:02 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -273,7 +273,7 @@ <br /> If your first language is not English, you may not know that "I heard it through the grapevine" is an expression meaning "my friends told me". The grapevine is your gossip network. There's a song famously recorded by Marvin Gaye of this name. - (It was apparently written by ... <a target="_top" href="http://www.bbc.co.uk/northernireland/jb/story_behind/grapevine.shtml">Barrett Strong & Norman Whitfield</a>, not Marvin Gaye and not Smokey Robinson.)<br /> + (It was written by ... <a target="_top" href="http://www.bbc.co.uk/northernireland/jb/story_behind/grapevine.shtml">Barrett Strong & Norman Whitfield</a>. Here is a <a target="_top" href="http://www.beatlesagain.com/images/barrettstrong.jpg">picture of Barrett Strong</a>.)<br /> <br /> </li> |
From: blackh <gra...@li...> - 2003-06-06 21:40:50
|
blackh Fri Jun 6 14:40:49 2003 EDT Modified files: /website index.php Log: Correct writer of I Heard It Through The Grapevine. Index: website/index.php diff -u website/index.php:1.57 website/index.php:1.58 --- website/index.php:1.57 Thu Jun 5 20:11:19 2003 +++ website/index.php Fri Jun 6 14:40:47 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.57 2003/06/06 03:11:19 blackh Exp $ --> +<!-- $Id: index.php,v 1.58 2003/06/06 21:40:47 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -272,7 +272,8 @@ <li>What does "The Grapevine" mean?<br /> <br /> If your first language is not English, you may not know that "I heard it through the grapevine" is an expression meaning - "my friends told me". The grapevine is your gossip network. There's a song by Smokey Robinson (and famously recorded by Marvin Gaye) of this name.<br /> + "my friends told me". The grapevine is your gossip network. There's a song famously recorded by Marvin Gaye of this name. + (It was apparently written by ... <a target="_top" href="http://www.bbc.co.uk/northernireland/jb/story_behind/grapevine.shtml">Barrett Strong & Norman Whitfield</a>, not Marvin Gaye and not Smokey Robinson.)<br /> <br /> </li> |
From: blackh <gra...@li...> - 2003-06-06 21:08:15
|
blackh Fri Jun 6 14:08:14 2003 EDT Modified files: /grapevine/raisen/grapevine init.xml /grapevine/raisen/sys linesocket.xml Log: Minor performance improvements in raisen code. Index: grapevine/raisen/sys/linesocket.xml diff -u grapevine/raisen/sys/linesocket.xml:1.12 grapevine/raisen/sys/linesocket.xml:1.13 --- grapevine/raisen/sys/linesocket.xml:1.12 Thu Oct 3 08:28:59 2002 +++ grapevine/raisen/sys/linesocket.xml Fri Jun 6 14:08:14 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: linesocket.xml,v 1.12 2002/10/03 15:28:59 rossta Exp $ --> +<!-- $Id: linesocket.xml,v 1.13 2003/06/06 21:08:14 blackh Exp $ --> <!DOCTYPE grapevine SYSTEM "../raisen.dtd" [ @@ -17,7 +17,7 @@ <grapevine> - <domain name="sys.linesocket" author1="Stephen Blackheath" rev="$Revision: 1.12 $"> + <domain name="sys.linesocket" author1="Stephen Blackheath" rev="$Revision: 1.13 $"> <rules> receiveData: @@ -28,7 +28,7 @@ line: conn=<connection id="[id]" buf="[buf]" mode="line" listener="[listener]"/>, - eol=binaryIndexOf(buf, base64encode("\r\n"), 0), + eol=binaryIndexOf(buf, "DQo=", 0), <!-- DQo= is base64 encoding for "\r\n" --> line=base64decode(binarySubstring(buf, 0, eol)) || { println("sys.linesocket: Received malformed UTF-8"), line="" |
From: blackh <gra...@li...> - 2003-06-06 03:11:21
|
blackh Thu Jun 5 20:11:20 2003 EDT Modified files: /website index.php Log: Wrong author of "I heard it through the grapevine". Oops. Index: website/index.php diff -u website/index.php:1.56 website/index.php:1.57 --- website/index.php:1.56 Mon May 26 04:21:15 2003 +++ website/index.php Thu Jun 5 20:11:19 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.56 2003/05/26 11:21:15 blackh Exp $ --> +<!-- $Id: index.php,v 1.57 2003/06/06 03:11:19 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -272,8 +272,7 @@ <li>What does "The Grapevine" mean?<br /> <br /> If your first language is not English, you may not know that "I heard it through the grapevine" is an expression meaning - "my friends told me". The grapevine is your gossip network. There's a famous song by Marvin Gaye of this - name.<br /> + "my friends told me". The grapevine is your gossip network. There's a song by Smokey Robinson (and famously recorded by Marvin Gaye) of this name.<br /> <br /> </li> |
From: blackh <gra...@li...> - 2003-06-05 21:18:56
|
blackh Thu Jun 5 14:18:50 2003 EDT Modified files: /grapevine/cpp Allocator.h Log: This will probably fix it. Index: grapevine/cpp/Allocator.h diff -u grapevine/cpp/Allocator.h:1.2 grapevine/cpp/Allocator.h:1.3 --- grapevine/cpp/Allocator.h:1.2 Thu Jun 5 05:28:24 2003 +++ grapevine/cpp/Allocator.h Thu Jun 5 14:18:49 2003 @@ -1,4 +1,4 @@ -// $Id: Allocator.h,v 1.2 2003/06/05 12:28:24 blackh Exp $ +// $Id: Allocator.h,v 1.3 2003/06/05 21:18:49 blackh Exp $ #ifndef _ALLOCATOR_H_ #define _ALLOCATOR_H_ @@ -44,6 +44,7 @@ assert(idx < GRAPEVINE_BLOCKSIZES); void*& freeList = grapevineFreeLists[idx]; if (freeList == NULL) { + size = idx*sizeof(void*); char* buf = new char[size*GRAPEVINE_ATONCE]; void* p = NULL; for (int i = 0; i < GRAPEVINE_ATONCE; i++) { |
From: blackh <gra...@li...> - 2003-06-05 12:28:26
|
blackh Thu Jun 5 05:28:25 2003 EDT Modified files: /grapevine/cpp Allocator.h Log: This should fix the memory leak I just introduced, but I haven't tested it yet. Index: grapevine/cpp/Allocator.h diff -u grapevine/cpp/Allocator.h:1.1 grapevine/cpp/Allocator.h:1.2 --- grapevine/cpp/Allocator.h:1.1 Thu Jun 5 04:45:08 2003 +++ grapevine/cpp/Allocator.h Thu Jun 5 05:28:24 2003 @@ -1,4 +1,4 @@ -// $Id: Allocator.h,v 1.1 2003/06/05 11:45:08 blackh Exp $ +// $Id: Allocator.h,v 1.2 2003/06/05 12:28:24 blackh Exp $ #ifndef _ALLOCATOR_H_ #define _ALLOCATOR_H_ @@ -32,17 +32,17 @@ * since most of our blocks are tiny. */ -#define GRAPEVINE_BLOCKSIZES 32*sizeof(void*) /* The number of different block sizes */ +#define GRAPEVINE_BLOCKSIZES 32 /* The number of different block sizes */ #define GRAPEVINE_ATONCE 32 /* Allocate this many blocks at once */ extern void* grapevineFreeLists[GRAPEVINE_BLOCKSIZES]; inline void* grapevineAllocateSmall(size_t size) { - size = (size + (sizeof(void*)-1)) & ~(sizeof(void*)-1); - assert(size >= sizeof(void*)); - assert(size < GRAPEVINE_BLOCKSIZES); - void*& freeList = grapevineFreeLists[size]; + int idx = (size + (sizeof(void*)-1)) / sizeof(void*); + assert(idx >= 1); + assert(idx < GRAPEVINE_BLOCKSIZES); + void*& freeList = grapevineFreeLists[idx]; if (freeList == NULL) { char* buf = new char[size*GRAPEVINE_ATONCE]; void* p = NULL; @@ -60,10 +60,10 @@ inline void grapevineFreeSmall(void* p, size_t size) { - size = (size + (sizeof(void*)-1)) & ~(sizeof(void*)-1); - assert(size >= sizeof(void*)); - assert(size < GRAPEVINE_BLOCKSIZES); - void*& freeList = grapevineFreeLists[size]; + int idx = (size + (sizeof(void*)-1)) / sizeof(void*); + assert(idx >= 1); + assert(idx < GRAPEVINE_BLOCKSIZES); + void*& freeList = grapevineFreeLists[idx]; *((void**)p) = freeList; freeList = p; @@ -71,7 +71,7 @@ inline void* grapevineAllocateBig(size_t size) { - if (size < GRAPEVINE_BLOCKSIZES) + if (size <= (GRAPEVINE_BLOCKSIZES-1)*sizeof(void*)) return grapevineAllocateSmall(size); else return malloc(size); @@ -79,7 +79,7 @@ inline void grapevineFreeBig(void* p, size_t size) { - if (size < GRAPEVINE_BLOCKSIZES) + if (size <= (GRAPEVINE_BLOCKSIZES-1)*sizeof(void*)) return grapevineFreeSmall(p, size); else return free(p); @@ -106,9 +106,9 @@ void deallocate(void* p, size_type n) { - grapevineFreeBig(p, n); + grapevineFreeBig(p, n * sizeof(T)); } - + pointer address(reference x) const { return &x; } const_pointer address(const_reference x) const { return &x; } grapevine_allocator<T>& operator=(const grapevine_allocator&) { return *this; } |
From: blackh <gra...@li...> - 2003-06-05 11:46:37
|
blackh Thu Jun 5 04:45:14 2003 EDT Added files: /grapevine/cpp Allocator.cpp Allocator.h /grapevine/raisen/test vectorDistanceBenchmark.xml Modified files: /grapevine Makefile.in configure /grapevine/cpp Assertion.h Engine.h EngineEventQueue.h Fact.h Firing.h Makefile.am Makefile.in Object.cpp Object.h Reference.h Retraction.h RuleState.cpp /grapevine/cpp/lib Makefile.in /grapevine/raisen/test all.xml vectorDistance.xml Log: Custom memory allocator gives a 10% performance boost to vectorDistanceBenchmark. vectorDistanceBenchmark is also slowed down by another specific problem which I haven't fixed, so the real performance improvement might be better than this. Index: grapevine/raisen/test/vectorDistance.xml diff -u grapevine/raisen/test/vectorDistance.xml:1.1 grapevine/raisen/test/vectorDistance.xml:1.2 --- grapevine/raisen/test/vectorDistance.xml:1.1 Mon May 26 04:15:32 2003 +++ grapevine/raisen/test/vectorDistance.xml Thu Jun 5 04:45:11 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: vectorDistance.xml,v 1.1 2003/05/26 11:15:32 blackh Exp $ --> +<!-- $Id: vectorDistance.xml,v 1.2 2003/06/05 11:45:11 blackh Exp $ --> <grapevine> <domain name="test.vectorDistance"> @@ -87,8 +87,7 @@ four-10: i=<init/>, - retract i, - remember new <init/>; + retract i; </rules> </domain> Index: grapevine/cpp/Allocator.cpp +++ grapevine/cpp/Allocator.cpp // $Id: Allocator.cpp,v 1.1 2003/06/05 11:45:08 blackh Exp $ #include "Allocator.h" using namespace std; void* grapevineFreeLists[GRAPEVINE_BLOCKSIZES]; Index: grapevine/cpp/Allocator.h +++ grapevine/cpp/Allocator.h // $Id: Allocator.h,v 1.1 2003/06/05 11:45:08 blackh Exp $ #ifndef _ALLOCATOR_H_ #define _ALLOCATOR_H_ #include "config.h" #include <assert.h> #include <memory.h> #include <stdlib.h> /*! * This is an implementation of a memory allocator, to increase performance in * the Grapevine Engine. This may not seem justified, but it is. Read on. * * The Grapevine Engine does an awful lot of allocating and de-allocating of * memory, compared with computational tasks. The core of the processing of * the system takes place in Engine.cpp. Most of the work involves inserting * things into multiple maps, and removing them again. * * The problem is not that the allocator is slow. The problem is that we have * several threads of execution, so the program is multi-threaded. Because of * this, the allocator spends an awful lot of time locking and unlocking * mutexes. The implementation here is not thread safe, and is therefore * faster than malloc, but it is safe, because we are careful only ever to use * it on the main thread. This is easy to arrange, since the processing * performed by the other threads is so limited, but we need to take care. * * It reduces the number of calls to the real allocator, so that blocks of * memory can be obtained very rapidly. A secondary purpose is to minimize * storage overhead per block. This will allow us to save a lot of memory, * since most of our blocks are tiny. */ #define GRAPEVINE_BLOCKSIZES 32*sizeof(void*) /* The number of different block sizes */ #define GRAPEVINE_ATONCE 32 /* Allocate this many blocks at once */ extern void* grapevineFreeLists[GRAPEVINE_BLOCKSIZES]; inline void* grapevineAllocateSmall(size_t size) { size = (size + (sizeof(void*)-1)) & ~(sizeof(void*)-1); assert(size >= sizeof(void*)); assert(size < GRAPEVINE_BLOCKSIZES); void*& freeList = grapevineFreeLists[size]; if (freeList == NULL) { char* buf = new char[size*GRAPEVINE_ATONCE]; void* p = NULL; for (int i = 0; i < GRAPEVINE_ATONCE; i++) { void** q = (void**)(buf+i*size); *q = p; p = (void*) q; } freeList = p; } void* p = freeList; freeList = *((void**)freeList); return p; } inline void grapevineFreeSmall(void* p, size_t size) { size = (size + (sizeof(void*)-1)) & ~(sizeof(void*)-1); assert(size >= sizeof(void*)); assert(size < GRAPEVINE_BLOCKSIZES); void*& freeList = grapevineFreeLists[size]; *((void**)p) = freeList; freeList = p; } inline void* grapevineAllocateBig(size_t size) { if (size < GRAPEVINE_BLOCKSIZES) return grapevineAllocateSmall(size); else return malloc(size); } inline void grapevineFreeBig(void* p, size_t size) { if (size < GRAPEVINE_BLOCKSIZES) return grapevineFreeSmall(p, size); else return free(p); } template <class T> class grapevine_allocator { public: typedef size_t size_type; typedef T* pointer; typedef const T* const_pointer; typedef T& reference; typedef const T& const_reference; typedef T value_type; grapevine_allocator() {} grapevine_allocator(const grapevine_allocator&) {} pointer allocate(size_type n, const void * = 0) { return (T*) grapevineAllocateBig(n * sizeof(T)); } void deallocate(void* p, size_type n) { grapevineFreeBig(p, n); } pointer address(reference x) const { return &x; } const_pointer address(const_reference x) const { return &x; } grapevine_allocator<T>& operator=(const grapevine_allocator&) { return *this; } void construct(pointer p, const T& val) { new ((T*) p) T(val); } void destroy(pointer p) { p->~T(); } size_type max_size() const { return size_t(-1); } template <class U> struct rebind { typedef grapevine_allocator<U> other; }; template <class U> grapevine_allocator(const grapevine_allocator<U>&) {} template <class U> grapevine_allocator& operator=(const grapevine_allocator<U>&) { return *this; } }; #endif Index: grapevine/raisen/test/vectorDistanceBenchmark.xml +++ grapevine/raisen/test/vectorDistanceBenchmark.xml <?xml version="1.0"?> <!-- $Id: vectorDistanceBenchmark.xml,v 1.1 2003/06/05 11:45:11 blackh Exp $ --> <grapevine> <domain name="test.vectorDistanceBenchmark"> <rules> init: <init/>, print("vectorDistanceBenchmark:"), <grapevine.vector.space/>#dimensions = 10, print("1 "), p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="one"/>; one: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="one"/>, dist != "", retract d, sb = "1880968199739491722232881102655154557417608216894.", { toString(dist) == sb, print("2 "), <grapevine.vector.space/>#dimensions = 9, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="two"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; two: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="two"/>, dist != "", retract d, sb = "1963055737500009225804951781994299725075452504566.", { toString(dist) == sb, print("3 "), <grapevine.vector.space/>#dimensions = 8, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="three"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; three: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="three"/>, dist != "", retract d, sb = "1713525756080774528026391424820528456902091276171.", { toString(dist) == sb, print("4 "), <grapevine.vector.space/>#dimensions = 7, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="four"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; four: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="four"/>, dist != "", retract d, sb = "1594687990756653932303237428022323909539603932993.", { toString(dist) == sb, println("ok"), } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; four-10: i=<init/>, retract i, {i#no == "", no=1} || no=i#no+1, no < 50, remember new <init no="[no]"/>; </rules> </domain> </grapevine> |
From: blackh <gra...@li...> - 2003-06-05 01:24:57
|
blackh Wed Jun 4 18:24:23 2003 EDT Modified files: /website links.php Log: Video camera surveillance link. Index: website/links.php diff -u website/links.php:1.117 website/links.php:1.118 --- website/links.php:1.117 Mon Apr 28 14:49:00 2003 +++ website/links.php Wed Jun 4 18:24:19 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<!-- $Id: links.php,v 1.117 2003/04/28 21:49:00 blackh Exp $ --> +<!-- $Id: links.php,v 1.118 2003/06/05 01:24:19 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content= @@ -392,7 +392,9 @@ <p><a target="_top" href= "http://www.eff.org/">Electronic Frontier Foundation</a></p> -<p><a target="_top" href="http://www.rense.com/general37/dark.htm">19 Apr 2003 - Today Show Goes Dark On Tim Robbins</a> +<p><a target="_top" href="http://www.wired.com/news/technology/0,1282,59092,00.html">04 Jun 2003 - Smartcams Take Aim at Terrorists</a> +<br/>Video cameras in public places + massive computer processing = total surveillance. +<br/><a target="_top" href="http://www.rense.com/general37/dark.htm">19 Apr 2003 - Today Show Goes Dark On Tim Robbins</a> <br/>Actor Tim Robbins's microphone goes strangely quiet when answering questions about free speech on morning TV. <br/><a target="_top" href="http://edition.cnn.com/2003/SHOWBIZ/Music/03/14/dixie.chicks.reut/index.html">15 Mar 2003 - Dixie Chicks pulled from air after bashing Bush</a> |
From: blackh <gra...@li...> - 2003-06-01 10:28:03
|
blackh Sun Jun 1 03:28:02 2003 EDT Modified files: /grapevine/cpp Fact.cpp Object.cpp Object.h Reference.cpp RuleBase.cpp Log: Make it use a little bit less memory. Index: grapevine/cpp/RuleBase.cpp diff -u grapevine/cpp/RuleBase.cpp:1.69 grapevine/cpp/RuleBase.cpp:1.70 --- grapevine/cpp/RuleBase.cpp:1.69 Sat May 24 05:09:50 2003 +++ grapevine/cpp/RuleBase.cpp Sun Jun 1 03:28:02 2003 @@ -1,4 +1,4 @@ -// $Id: RuleBase.cpp,v 1.69 2003/05/24 12:09:50 blackh Exp $ +// $Id: RuleBase.cpp,v 1.70 2003/06/01 10:28:02 blackh Exp $ #include "config.h" @@ -406,6 +406,9 @@ // Close any sockets that are open. ioLoop.reboot(); + + // Release memory associated with canonical strings. + String::clearCanonicalCache(); // Re-build all the rules that we're keeping. for (RuleSeq::iterator it = rulesToKeep.begin(); it != rulesToKeep.end(); ++it) |
From: blackh <gra...@li...> - 2003-05-26 11:45:26
|
blackh Mon May 26 04:21:16 2003 EDT Modified files: /website index.php Log: Performance note. Index: website/index.php diff -u website/index.php:1.55 website/index.php:1.56 --- website/index.php:1.55 Sat May 24 05:27:29 2003 +++ website/index.php Mon May 26 04:21:15 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.55 2003/05/24 12:27:29 blackh Exp $ --> +<!-- $Id: index.php,v 1.56 2003/05/26 11:21:15 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -74,9 +74,9 @@ <h3>News</h3> - <p><b>25 May 2003 - Working on performance</b></p> - <p>The amount of CPU time that the daemon was using was a little high, so - I am working on performance. I've disabled the networking functionality in the + <p><b>26 May 2003 - Working on performance</b></p> + <p>I have found a few performance bottlenecks, and I'll release a new version of + the executable soon. I've disabled the networking functionality in the meantime to prevent the daemon annoying you. Windows binaries are still broken.</p> <p><b>13 May 2003 - Windows binary broken</b></p> <p>The windows binary release doesn't work right at the moment unless you have |
From: blackh <gra...@li...> - 2003-05-26 11:15:34
|
blackh Mon May 26 04:15:33 2003 EDT Added files: /grapevine/raisen/test vectorDistance.xml Modified files: /grapevine/cpp Object.cpp /grapevine/raisen/grapevine vector.xml Log: Fix some performance bugs in Object.cpp. Add a vectorDistance benchmark (which will become a test). One particular method - RuleState::combineCompare - is a real performance bottleneck, so will look at this one next. Index: grapevine/raisen/grapevine/vector.xml diff -u grapevine/raisen/grapevine/vector.xml:1.15 grapevine/raisen/grapevine/vector.xml:1.16 --- grapevine/raisen/grapevine/vector.xml:1.15 Mon Jul 8 07:35:14 2002 +++ grapevine/raisen/grapevine/vector.xml Mon May 26 04:15:31 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: vector.xml,v 1.15 2002/07/08 14:35:14 rossta Exp $ --> +<!-- $Id: vector.xml,v 1.16 2003/05/26 11:15:31 blackh Exp $ --> <!DOCTYPE grapevine SYSTEM "../raisen.dtd" [ @@ -22,7 +22,8 @@ <!ELEMENT split EMPTY> <!ATTLIST split which CDATA #IMPLIED - binary CDATA #IMPLIED + bits CDATA #IMPLIED + vector CDATA #IMPLIED no CDATA #IMPLIED id CDATA #IMPLIED > @@ -56,7 +57,7 @@ dist != "", --> <grapevine> - <domain name="grapevine.vector" author1="Stephen Blackheath" rev="$Revision: 1.15 $"> + <domain name="grapevine.vector" author1="Stephen Blackheath" rev="$Revision: 1.16 $"> <facts> <!-- Space is 6-dimensional --> @@ -84,12 +85,14 @@ distance: d=<distance a="[a]" b="[b]" dist="" id="[id]"/>, d#sum\-of\-squares = 0, - binaryA = a, - binaryB = b, + bitsA = binaryLength(a) * 8, + bitsB = binaryLength(b) * 8, + vectorA = unsignedToBigInteger(a), + vectorB = unsignedToBigInteger(b), zero = 0, <!-- Split both vectors into their co-ordinates --> - remember new <split which="a" binary="[binaryA]" no="[zero]" id="[id]"/>, - remember new <split which="b" binary="[binaryB]" no="[zero]" id="[id]"/>, + remember new <split which="a" bits="[bitsA]" vector="[vectorA]" no="[zero]" id="[id]"/>, + remember new <split which="b" bits="[bitsB]" vector="[vectorB]" no="[zero]" id="[id]"/>, remember new <square-root a="[a]" b="[b]" id="[id]"/>; split: @@ -97,21 +100,18 @@ s#no = 0; split_loop: - s=<split which="[which]" binary="[binary]" no="[no]" id="[id]"/>, + s=<split which="[which]" bits="[lengthBits]" vector="[vector]" no="[no]" id="[id]"/>, dimsFact=<space dimensions="[dims]"/>, { no < dims, - lengthBits = binaryLength(binary) * 8, - vector = unsignedToBigInteger(binary), startBit = (no * lengthBits) / dims, endBit = ((no+1) * lengthBits) / dims, bits = endBit - startBit, value = shiftLeft( - shiftRight(vector, startBit) & (shiftLeft(1, bits)-1), + shiftRight(vector, startBit) & (shiftLeft(toBigInteger(1), bits)-1), lengthBits-bits) ), - detachParent(dimsFact), remember new <co-ord which="[which]" no="[no]" value="[value]" id="[id]"/>, s#no = s#no + 1 <!-- Causes this rule to re-fire --> } || Index: grapevine/raisen/test/vectorDistance.xml +++ grapevine/raisen/test/vectorDistance.xml <?xml version="1.0"?> <!-- $Id: vectorDistance.xml,v 1.1 2003/05/26 11:15:32 blackh Exp $ --> <grapevine> <domain name="test.vectorDistance"> <rules> init: <init/>, print("vectorDistance: "), <grapevine.vector.space/>#dimensions = 10, print("1 "), p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="one"/>; one: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="one"/>, dist != "", retract d, sb = "1880968199739491722232881102655154557417608216894.", { toString(dist) == sb, print("2 "), <grapevine.vector.space/>#dimensions = 9, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="two"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; two: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="two"/>, dist != "", retract d, sb = "1963055737500009225804951781994299725075452504566.", { toString(dist) == sb, print("3 "), <grapevine.vector.space/>#dimensions = 8, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="three"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; three: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="three"/>, dist != "", retract d, sb = "1713525756080774528026391424820528456902091276171.", { toString(dist) == sb, print("4 "), <grapevine.vector.space/>#dimensions = 7, p1 = "pMoVw+r/jljGbtmxEeCZYqyeWB0=", p2 = "KBv0FC2yiAakyO2jJ/x/sGhwRJo=", fire new <grapevine.vector.distance a="[p1]" b="[p2]" id="four"/> } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; four: i=<init/>, d=<grapevine.vector.distance dist="[dist]" id="four"/>, dist != "", retract d, sb = "1594687990756653932303237428022323909539603932993.", { toString(dist) == sb, println("ok"), } || { retract i, println("failed: was " ## dist ## " should be " ## sb) }; four-10: i=<init/>, retract i, remember new <init/>; </rules> </domain> </grapevine> |
From: blackh <gra...@li...> - 2003-05-24 12:48:55
|
blackh Sat May 24 05:17:29 2003 EDT Modified files: /grapevine/cpp Rule.cpp Log: Improve profiling output. Index: grapevine/cpp/Rule.cpp diff -u grapevine/cpp/Rule.cpp:1.3 grapevine/cpp/Rule.cpp:1.4 --- grapevine/cpp/Rule.cpp:1.3 Mon Jul 22 04:02:58 2002 +++ grapevine/cpp/Rule.cpp Sat May 24 05:17:29 2003 @@ -1,4 +1,4 @@ -// $Id: Rule.cpp,v 1.3 2002/07/22 11:02:58 blackh Exp $ +// $Id: Rule.cpp,v 1.4 2003/05/24 12:17:29 blackh Exp $ #include "config.h" @@ -31,5 +31,7 @@ void Rule::write(ostream& os) const { os << (domain == NULL ? String("<null>") : domain->getName()) << ":" << getName(); + if (salience != 0) + os << "-" << salience; } |
From: blackh <gra...@li...> - 2003-05-24 12:27:30
|
blackh Sat May 24 05:27:29 2003 EDT Modified files: /website index.php Log: Web page news update. Index: website/index.php diff -u website/index.php:1.54 website/index.php:1.55 --- website/index.php:1.54 Mon May 12 15:23:14 2003 +++ website/index.php Sat May 24 05:27:29 2003 @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<!-- $Id: index.php,v 1.54 2003/05/12 22:23:14 blackh Exp $ --> +<!-- $Id: index.php,v 1.55 2003/05/24 12:27:29 blackh Exp $ --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> @@ -74,6 +74,10 @@ <h3>News</h3> + <p><b>25 May 2003 - Working on performance</b></p> + <p>The amount of CPU time that the daemon was using was a little high, so + I am working on performance. I've disabled the networking functionality in the + meantime to prevent the daemon annoying you. Windows binaries are still broken.</p> <p><b>13 May 2003 - Windows binary broken</b></p> <p>The windows binary release doesn't work right at the moment unless you have CygWin installed. We're <a target="_top" href="http://sourceforge.net/tracker/index.php?func=detail&aid=727482&group_id=32439&atid=405158">working on it</a>.</p> |
From: blackh <gra...@li...> - 2003-05-24 12:24:36
|
blackh Sat May 24 05:24:34 2003 EDT Modified files: /grapevine/raisen/grapevine address.xml Log: Final tweaks. Index: grapevine/raisen/grapevine/address.xml diff -u grapevine/raisen/grapevine/address.xml:1.37 grapevine/raisen/grapevine/address.xml:1.38 --- grapevine/raisen/grapevine/address.xml:1.37 Wed Apr 30 17:51:24 2003 +++ grapevine/raisen/grapevine/address.xml Sat May 24 05:24:34 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: address.xml,v 1.37 2003/05/01 00:51:24 blackh Exp $ --> +<!-- $Id: address.xml,v 1.38 2003/05/24 12:24:34 blackh Exp $ --> <!DOCTYPE grapevine SYSTEM "../raisen.dtd" [ @@ -24,7 +24,7 @@ --> <grapevine> - <domain name="grapevine.address" author1="Stephen Blackheath" rev="$Revision: 1.37 $"> + <domain name="grapevine.address" author1="Stephen Blackheath" rev="$Revision: 1.38 $"> <!-- Each neighbour is associated with an address, which represents a physical @@ -49,7 +49,8 @@ <!-- If an address doesn't have any transport attached to it, then it is deleted automatically after 2 minutes --> address_expiry-0: - addr=<obj.address id="[id]" last-contacted="[lastContacted]"/>, + addr=<obj.address id="[id]"/>, + lastContacted=addr#last\-contacted, { <!-- If an address is transportless, then expire it after 10 minutes --> !<obj.transport id="[id]" type="http" owner="[owner]"/>, |
From: blackh <gra...@li...> - 2003-05-24 12:09:51
|
blackh Sat May 24 05:09:51 2003 EDT Modified files: /grapevine/cpp Engine.cpp RuleBase.cpp /grapevine/raisen/grapevine interface-control.xml Log: Profiling bug fix. Index: grapevine/raisen/grapevine/interface-control.xml diff -u grapevine/raisen/grapevine/interface-control.xml:1.17 grapevine/raisen/grapevine/interface-control.xml:1.18 --- grapevine/raisen/grapevine/interface-control.xml:1.17 Fri May 16 01:09:54 2003 +++ grapevine/raisen/grapevine/interface-control.xml Sat May 24 05:09:51 2003 @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<!-- $Id: interface-control.xml,v 1.17 2003/05/16 08:09:54 blackh Exp $ --> +<!-- $Id: interface-control.xml,v 1.18 2003/05/24 12:09:51 blackh Exp $ --> <!DOCTYPE grapevine SYSTEM "../raisen.dtd" [ @@ -54,7 +54,7 @@ --> <grapevine> - <domain name="grapevine.interface-control" author1="Stephen Blackheath" rev="$Revision: 1.17 $"> + <domain name="grapevine.interface-control" author1="Stephen Blackheath" rev="$Revision: 1.18 $"> <!-- Format of facts @@ -85,15 +85,8 @@ !<total band="[band]"/>, zero=0, one=1, - <!-- assert new <receiving band="[band]" got="[zero]" wanted="[one]"/>, - assert new <participating band="[band]" got="[zero]" wanted="[one]"/>, --> - - <!-- TEMPORARY: Set wanted to zero to disable connection to the grapevine - network. This is because it is gobbling up too much CPU time and I don't - have time to fix it right now. I'm doing this to stop it annoying people - in the meantime. --> - assert new <receiving band="[band]" got="[zero]" wanted="[zero]"/>, - assert new <participating band="[band]" got="[zero]" wanted="[zero]"/>, + assert new <receiving band="[band]" got="[zero]" wanted="[one]"/>, + assert new <participating band="[band]" got="[zero]" wanted="[one]"/>, assert new <total band="[band]" got="[zero]" wanted="[zero]"/>; |