You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(38) |
Sep
(134) |
Oct
(30) |
Nov
(8) |
Dec
(17) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
|
Mar
(14) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
|
2009 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Matej U. <mat...@us...> - 2006-09-15 10:37:08
|
Update of /cvsroot/mod-c/ehtml/samples In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16225/samples Modified Files: ChangeLog Makefile.am Log Message: Samples are optionally installable now. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/samples/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.am 12 Sep 2006 23:11:58 -0000 1.4 --- Makefile.am 15 Sep 2006 10:37:05 -0000 1.5 *************** *** 11,16 **** # 01basic.cpp \ # -shared -o basic.so -lehtml ! ! noinst_LTLIBRARIES = libsamplebasic.la libsamplesession.la libsamplebasic_la_SOURCES = 01basic.cpp libsamplebasic_la_LDFLAGS = -shared -module --- 11,16 ---- # 01basic.cpp \ # -shared -o basic.so -lehtml ! samplesdir=$(libdir)/ehtml/samples ! samples_LTLIBRARIES = libsamplebasic.la libsamplesession.la libsamplebasic_la_SOURCES = 01basic.cpp libsamplebasic_la_LDFLAGS = -shared -module Index: ChangeLog =================================================================== RCS file: /cvsroot/mod-c/ehtml/samples/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ChangeLog 12 Sep 2006 23:11:58 -0000 1.1 --- ChangeLog 15 Sep 2006 10:37:05 -0000 1.2 *************** *** 1,2 **** --- 1,7 ---- + 2006-09-15 Matej Urbas <mat...@gm...> + + * Makefile.am: Samples are optionally installable now. They get + installed into $(libdir)/ehtml/samples. + 2006-09-13 Matej Urbas <mat...@gm...> |
From: Gonzalo A. <ga...@us...> - 2006-09-13 19:42:21
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv17759/src Modified Files: Makefile.am testCommon.cpp Log Message: * Removed the nasty include xx.cpp in testCommon.cpp. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Makefile.am,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Makefile.am 13 Sep 2006 18:56:36 -0000 1.9 --- Makefile.am 13 Sep 2006 19:42:16 -0000 1.10 *************** *** 55,59 **** libsessionid_la_LDFLAGS = -shared -module ! testCommon_SOURCES = testCommon.cpp #SUBDIRS = dss_tool --- 55,60 ---- libsessionid_la_LDFLAGS = -shared -module ! testCommon_SOURCES = testCommon.cpp Profiling.cpp MemBuf.cpp Common.cpp ! testCommon_CXXFLAGS = $(AM_CXXFLAGS) #SUBDIRS = dss_tool Index: testCommon.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/testCommon.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** testCommon.cpp 13 Sep 2006 18:57:06 -0000 1.2 --- testCommon.cpp 13 Sep 2006 19:42:16 -0000 1.3 *************** *** 1,6 **** ! #include "Common.cpp" ! #include "Profiling.cpp" ! #include "MemBuf.cpp" const char* test[][4] = { --- 1,6 ---- ! #include "Common.h" ! ! using namespace std; const char* test[][4] = { |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:58:22
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv31644/src Modified Files: Common.cpp DefaultSessionDriver.cpp DiskSessionDriver.cpp Session.cpp Log Message: * Removed harmless compiler warnings. Index: DefaultSessionDriver.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DefaultSessionDriver.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DefaultSessionDriver.cpp 13 Sep 2006 13:57:06 -0000 1.2 --- DefaultSessionDriver.cpp 13 Sep 2006 18:58:15 -0000 1.3 *************** *** 176,180 **** else if ( response.MsgType == DSS_CMD_STATUS ) { - int retVal = EHTML_OK; switch (response.Type ) { --- 176,179 ---- Index: Common.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Common.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Common.cpp 13 Sep 2006 18:38:24 -0000 1.11 --- Common.cpp 13 Sep 2006 18:58:15 -0000 1.12 *************** *** 343,347 **** dev.reserve(mb.Size()*2+1); ! for (int i = 0; i < mb.Size(); ++i) { char c = mb.Char()[i]; dev += h2c[(c >> 4) & 0x0f]; --- 343,347 ---- dev.reserve(mb.Size()*2+1); ! for (size_t i = 0; i < mb.Size(); ++i) { char c = mb.Char()[i]; dev += h2c[(c >> 4) & 0x0f]; *************** *** 356,363 **** MemBuf dev; dev.resize(s.length()/2); - char* obuf = dev.Char(); if (s.length() & 1) throw "Invalid format"; ! for (int i = 0; i < s.length(); ++i) dev[i>>1] = GetByteFromHex(s[i], s[++i]); return dev; --- 356,362 ---- MemBuf dev; dev.resize(s.length()/2); if (s.length() & 1) throw "Invalid format"; ! for (size_t i = 0; i < s.length(); ++i) dev[i>>1] = GetByteFromHex(s[i], s[++i]); return dev; *************** *** 443,447 **** throw "Invalid base64 string."; int ii = 0; ! int i = 0; for (; i < s.length();) { const char* in = s.c_str()+i; --- 442,446 ---- throw "Invalid base64 string."; int ii = 0; ! size_t i = 0; for (; i < s.length();) { const char* in = s.c_str()+i; Index: Session.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Session.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Session.cpp 13 Sep 2006 13:57:07 -0000 1.16 --- Session.cpp 13 Sep 2006 18:58:15 -0000 1.17 *************** *** 94,97 **** --- 94,98 ---- _hex_set = 0; _hex.clear(); _url_set = 0; _urlencoded.clear(); + return true; } *************** *** 122,125 **** --- 123,127 ---- _hex_set = 0; _hex.clear(); _url_set = 0; _urlencoded.clear(); + return true; } *************** *** 150,153 **** --- 152,156 ---- _hex_set = 1; _hex.clear(); _url_set = 0; _urlencoded.clear(); + return true; } *************** *** 177,180 **** --- 180,184 ---- _hex_set = 0; _hex.clear(); _base64_set = 0; _base64.clear(); + return true; } Index: DiskSessionDriver.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DiskSessionDriver.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DiskSessionDriver.cpp 13 Sep 2006 13:57:06 -0000 1.4 --- DiskSessionDriver.cpp 13 Sep 2006 18:58:15 -0000 1.5 *************** *** 54,58 **** return false; struct dirent* de; ! while (de = readdir(dh)) { string path = spool + " " + de->d_name; struct stat st; --- 54,58 ---- return false; struct dirent* de; ! while ((de = readdir(dh))) { string path = spool + " " + de->d_name; struct stat st; *************** *** 173,176 **** --- 173,177 ---- unlink(filename(s->ID()).c_str()); unlink(locked_filename(s->ID()).c_str()); + return true; } |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:57:10
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv31183/src Modified Files: testCommon.cpp Log Message: * Fixed linking problem. Index: testCommon.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/testCommon.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** testCommon.cpp 8 Sep 2006 21:00:46 -0000 1.1 --- testCommon.cpp 13 Sep 2006 18:57:06 -0000 1.2 *************** *** 1,4 **** --- 1,5 ---- #include "Common.cpp" + #include "Profiling.cpp" #include "MemBuf.cpp" |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:56:40
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv31034/src Modified Files: Makefile.am Log Message: * Added -Wall to CXXFLAGS. * Removed useless line. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Makefile.am,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile.am 13 Sep 2006 00:11:22 -0000 1.8 --- Makefile.am 13 Sep 2006 18:56:36 -0000 1.9 *************** *** 10,14 **** HTTPD_INCLUDE_DIR = @APACHE_LOCATION@ INCLUDE_DIRS = -I$(APR_0_INCLUDE) -I$(HTTPD_INCLUDE_DIR) -I$(srcdir)/../include ! AM_CXXFLAGS = $(INCLUDE_DIRS) lib_LTLIBRARIES = libehtml.la libsession.la libdisksession.la libsessionid.la --- 10,14 ---- HTTPD_INCLUDE_DIR = @APACHE_LOCATION@ INCLUDE_DIRS = -I$(APR_0_INCLUDE) -I$(HTTPD_INCLUDE_DIR) -I$(srcdir)/../include ! AM_CXXFLAGS = $(INCLUDE_DIRS) -Wall lib_LTLIBRARIES = libehtml.la libsession.la libdisksession.la libsessionid.la *************** *** 35,39 **** EHTML_SOURCES += TagAttribute.cpp EHTML_SOURCES += TagRenderer.cpp - EHTML_SOURCES += $(COMMON) libehtml_la_SOURCES = $(EHTML_SOURCES) --- 35,38 ---- |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:55:39
|
Update of /cvsroot/mod-c/ehtml/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv30638/include Modified Files: Makefile.am Log Message: * Added Plugin.h Dictionary.h MemBuf.h to the list of headers to distribute. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/include/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.am 13 Sep 2006 12:47:24 -0000 1.4 --- Makefile.am 13 Sep 2006 18:55:35 -0000 1.5 *************** *** 1,4 **** ehtmldir = $(includedir)/ehtml ! ehtml_HEADERS = Common.h Container.h Form.h Label.h PageWriter.h Profiling.h SimpleTagAttribute.h TagAttribute.h \ ! Component.h ehtml.h Input.h Page.h Session.h StyleAttribute.h TagRenderer.h \ ! EHTMLApplication.h Request.h Response.h Event.h --- 1,8 ---- ehtmldir = $(includedir)/ehtml ! ehtml_HEADERS = Common.h Container.h Form.h Label.h PageWriter.h \ ! Profiling.h SimpleTagAttribute.h TagAttribute.h \ ! Component.h ehtml.h Input.h Page.h Session.h \ ! StyleAttribute.h TagRenderer.h \ ! EHTMLApplication.h Request.h Response.h Event.h Plugin.h \ ! Dictionary.h MemBuf.h ! |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:38:27
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv23147/src Modified Files: Common.cpp Log Message: * Silent harmless gcc warnings. Index: Common.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Common.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Common.cpp 13 Sep 2006 13:57:06 -0000 1.10 --- Common.cpp 13 Sep 2006 18:38:24 -0000 1.11 *************** *** 297,303 **** dev.reserve(mb.Size() + 2 * n_escape + 1); - size_t i_escape = 0; size_t size = mb.Size(); ! for (int i = 0; i < size; ++i) { if (!must_escape(s[i])) { dev += s[i]; --- 297,302 ---- dev.reserve(mb.Size() + 2 * n_escape + 1); size_t size = mb.Size(); ! for (size_t i = 0; i < size; ++i) { if (!must_escape(s[i])) { dev += s[i]; *************** *** 320,325 **** MemBuf dev(strdup(s.c_str()), s.length()+1); char* obuf = dev.Char(); ! int ii = 0; ! int i = 0; for (; ii < dev.Size(); ++i, ++ii) { obuf[i] = obuf[ii]; --- 319,324 ---- MemBuf dev(strdup(s.c_str()), s.length()+1); char* obuf = dev.Char(); ! size_t ii = 0; ! size_t i = 0; for (; ii < dev.Size(); ++i, ++ii) { obuf[i] = obuf[ii]; |
From: Gonzalo A. <ga...@us...> - 2006-09-13 18:36:32
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv22305/src Modified Files: DefaultSessionAddress.cpp Log Message: * Silly bugfix: missing the actual function call. Index: DefaultSessionAddress.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DefaultSessionAddress.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DefaultSessionAddress.cpp 12 Sep 2006 12:53:55 -0000 1.2 --- DefaultSessionAddress.cpp 13 Sep 2006 18:36:28 -0000 1.3 *************** *** 34,38 **** addr._unix.sun_family = AF_UNIX; strncpy(addr._unix.sun_path,_addr.c_str(),sizeof(addr._unix.sun_path)); ! } else if ("inet://",_addr.c_str(),7) { char host[16]; unsigned short port; --- 34,38 ---- addr._unix.sun_family = AF_UNIX; strncpy(addr._unix.sun_path,_addr.c_str(),sizeof(addr._unix.sun_path)); ! } else if (!strncmp("inet://",_addr.c_str(),7)) { char host[16]; unsigned short port; |
From: Gonzalo A. <ga...@us...> - 2006-09-13 15:00:06
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv27640/src Modified Files: Profiling.cpp Log Message: * Added the 'self' column, removed 'overflows' and 'depth' columns. Index: Profiling.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Profiling.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Profiling.cpp 13 Sep 2006 13:09:48 -0000 1.2 --- Profiling.cpp 13 Sep 2006 14:59:50 -0000 1.3 *************** *** 5,30 **** ProfileFunction* ProfileFunction::_head = NULL; ProfileFunction::ProfileFunction(const char* name, const char* file, int line) { ! spec.accum = 0; ! spec.ncalls = 0; ! spec.overflows = spec.depth = 0; ! spec.name = name; ! spec.file = file; ! spec.line = line; ! _next = _head; ! _prev = NULL; ! if (_next) ! _next->_prev = this; ! _head = this; } ProfileFunction::~ProfileFunction() { ! if (_next) ! _next->_prev = _prev; ! if (_prev) ! _prev->_next = _next; ! else ! _head = _next; } --- 5,40 ---- ProfileFunction* ProfileFunction::_head = NULL; + int ProfileRun::depth = 0; + ProfileFunction* ProfileRun::call_stack[MAX_DEPTH] = { NULL, }; + + ProfileRun::~ProfileRun() { + hrtime_t diff = get_tick() - _started; + _f->spec.accum += diff; + _f->spec.self += diff; + if (depth) + call_stack[--depth]->spec.self -= diff; + ++_f->spec.ncalls; + } ProfileFunction::ProfileFunction(const char* name, const char* file, int line) { ! spec.accum = 0; ! spec.ncalls = 0; ! spec.name = name; ! spec.file = file; ! spec.line = line; ! _next = _head; ! _prev = NULL; ! if (_next) ! _next->_prev = this; ! _head = this; } ProfileFunction::~ProfileFunction() { ! if (_next) ! _next->_prev = _prev; ! if (_prev) ! _prev->_next = _next; ! else ! _head = _next; } |
From: Gonzalo A. <ga...@us...> - 2006-09-13 14:59:56
|
Update of /cvsroot/mod-c/ehtml/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv27640/include Modified Files: Profiling.h Log Message: * Added the 'self' column, removed 'overflows' and 'depth' columns. Index: Profiling.h =================================================================== RCS file: /cvsroot/mod-c/ehtml/include/Profiling.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Profiling.h 13 Sep 2006 13:57:06 -0000 1.5 --- Profiling.h 13 Sep 2006 14:59:50 -0000 1.6 *************** *** 5,15 **** #include <stdint.h> typedef int64_t hrtime_t; struct runspec { hrtime_t accum; int64_t ncalls; - int overflows; - int depth; const char* name; const char* file; --- 5,16 ---- #include <stdint.h> + #define MAX_DEPTH 512 + typedef int64_t hrtime_t; struct runspec { hrtime_t accum; + hrtime_t self; int64_t ncalls; const char* name; const char* file; *************** *** 57,71 **** hrtime_t _started; ProfileFunction* _f; public: ! ProfileRun(ProfileFunction* f): _started(get_tick()), _f(f) { ; } ! ~ProfileRun() { ! hrtime_t now = get_tick(); ! if (now < _started) { ! ++_f->spec.overflows; ! return; ! } ! _f->spec.accum += now - _started; ! ++_f->spec.ncalls; } }; --- 58,68 ---- hrtime_t _started; ProfileFunction* _f; + static int depth; + static ProfileFunction* call_stack[MAX_DEPTH]; public: ! ProfileRun(ProfileFunction* f): _started(get_tick()), _f(f) { ! call_stack[depth++] = f; } + ~ProfileRun(); }; *************** *** 97,102 **** * struct runspec spec; * while (profile_tick(&cb, &spec), cb != NULL) { ! * printf("%20llu %20lld %11d %11d %s/%s:%d\n", ! * spec.accum, spec.ncalls, spec.overflows, spec.depth, * spec.name, spec.file, spec.line); * } --- 94,99 ---- * struct runspec spec; * while (profile_tick(&cb, &spec), cb != NULL) { ! * printf("%20llu %20lld %s/%s:%d\n", ! * spec.accum, spec.ncalls, * spec.name, spec.file, spec.line); * } |
From: Gonzalo A. <ga...@us...> - 2006-09-13 14:58:39
|
Update of /cvsroot/mod-c/mod_c/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv27137/src Modified Files: mod_c.c Log Message: * Added 'self' column, removed 'overflows' and 'depth' columns. Index: mod_c.c =================================================================== RCS file: /cvsroot/mod-c/mod_c/src/mod_c.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** mod_c.c 13 Sep 2006 13:12:31 -0000 1.22 --- mod_c.c 13 Sep 2006 14:58:36 -0000 1.23 *************** *** 142,146 **** static int EHTMLProfileHandler( request_rec *r ) { - void* cbdata = NULL; struct runspec spec; --- 142,145 ---- *************** *** 156,164 **** ap_set_content_type(r, "text/plain"); ! ap_rprintf(r, "%20s %20s %11s %11s function/file:line\n", ! "accum", "ncalls", "overflows", "depth"); while (profile_tick(&cbdata, &spec), cbdata != NULL) { ! ap_rprintf(r, "%20llu %20lld %11d %11d %s/%s:%d\n", ! spec.accum, spec.ncalls, spec.overflows, spec.depth, spec.name, spec.file, spec.line); } --- 155,163 ---- ap_set_content_type(r, "text/plain"); ! ap_rprintf(r, "%20s %20s %20s function/file:line\n", ! "accum", "self", "ncalls"); while (profile_tick(&cbdata, &spec), cbdata != NULL) { ! ap_rprintf(r, "%20llu %20llu %20lld %s/%s:%d\n", ! spec.accum, spec.self, spec.ncalls, spec.name, spec.file, spec.line); } |
From: Gonzalo A. <ga...@us...> - 2006-09-13 13:57:14
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv777/src Modified Files: Common.cpp Container.cpp DefaultSessionDriver.cpp DefaultSessionIDDriver.cpp Dictionary.cpp DiskSessionDriver.cpp EHTMLApplication.cpp Input.cpp Label.cpp MemBuf.cpp Page.cpp PageWriter.cpp Request.cpp Response.cpp Session.cpp StyleAttribute.cpp TagRenderer.cpp Log Message: * Added profiling calls. Index: Label.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Label.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Label.cpp 23 Aug 2006 10:32:57 -0000 1.7 --- Label.cpp 13 Sep 2006 13:57:06 -0000 1.8 *************** *** 20,23 **** --- 20,24 ---- #include <Label.h> + #include "Profiling.h" using namespace std; *************** *** 52,55 **** --- 53,57 ---- void Label::Render( PageWriter* Writer ) { + ProfileMe(); TagHandler.RenderBeginTag( Writer ); if ( TagHandler.GetHasContents() ) Index: Dictionary.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Dictionary.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Dictionary.cpp 12 Sep 2006 14:50:04 -0000 1.3 --- Dictionary.cpp 13 Sep 2006 13:57:06 -0000 1.4 *************** *** 2,5 **** --- 2,6 ---- #include "Dictionary.h" #include "Common.h" + #include "Profiling.h" #include <sstream> *************** *** 18,21 **** --- 19,23 ---- string Dictionary::Serialize() { + ProfileMe(); string str; for (Dictionary::iterator i = begin(); i != end(); ++i) { *************** *** 28,31 **** --- 30,34 ---- ostream& operator << (ostream& o, Dictionary& d) { + ProfileMe(); for (Dictionary::iterator i = d.begin(); i != d.end(); ++i) o << urlencode(i->first) << " " *************** *** 35,38 **** --- 38,42 ---- bool Dictionary::Marshall(const string& s) { + ProfileMe(); size_type i = 0; size_type ii = 0; *************** *** 54,57 **** --- 58,62 ---- istream& operator >> (istream& i, Dictionary& d) { + ProfileMe(); char line[512]; while (!i.getline(line,sizeof(line)-1).eof()) { Index: Page.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Page.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Page.cpp 23 Aug 2006 10:32:57 -0000 1.10 --- Page.cpp 13 Sep 2006 13:57:07 -0000 1.11 *************** *** 23,26 **** --- 23,27 ---- #include <stdlib.h> #include <Page.h> + #include "Profiling.h" using namespace std; *************** *** 35,38 **** --- 36,40 ---- void Page::Render( PageWriter* Writer ) { + ProfileMe(); // Set the content type __request_context * rc = Writer->GetRequestContext(); *************** *** 74,77 **** --- 76,80 ---- void Page::AddIntoHead( Component * Comp, int Pos ) { + ProfileMe(); if ( Pos < 0 ) HeadContents.push_back( Comp ); *************** *** 99,102 **** --- 102,106 ---- void Page::RemoveFromHead( Component * Comp ) { + ProfileMe(); ChildrenList::iterator itr = HeadContents.begin(); const ChildrenList::const_iterator & end = HeadContents.end(); *************** *** 119,122 **** --- 123,127 ---- void Page::ClearHead() { + ProfileMe(); HeadContents.clear(); HeadCount = 0; *************** *** 130,133 **** --- 135,139 ---- void Page::DoNameHeadChildren() { + ProfileMe(); ChildrenList::iterator itr = HeadContents.end(); const ChildrenList::const_iterator & begin = HeadContents.begin(); *************** *** 168,171 **** --- 174,178 ---- int Page::Compose() { + ProfileMe(); ChildrenList::iterator itr = HeadContents.end(); const ChildrenList::const_iterator & begin = HeadContents.begin(); Index: EHTMLApplication.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/EHTMLApplication.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** EHTMLApplication.cpp 13 Sep 2006 12:48:11 -0000 1.12 --- EHTMLApplication.cpp 13 Sep 2006 13:57:06 -0000 1.13 *************** *** 33,36 **** --- 33,38 ---- #include "ehtml.h" + #include "Profiling.h" + using namespace std; *************** *** 38,41 **** --- 40,44 ---- : RequestContext( ReqContext ) { + ProfileMe(); /* The EHTML application will not work without the request context. */ ASSERT( ReqContext ); *************** *** 52,55 **** --- 55,59 ---- EHTMLApplication::~EHTMLApplication() { + ProfileMe(); // Do nothing actually... APR_DEALLOCATE( RequestContext, Request, Request ); *************** *** 59,62 **** --- 63,67 ---- int EHTMLApplication::Run() { + ProfileMe(); // Execute all stages int retVal = 0; *************** *** 82,85 **** --- 87,91 ---- void EHTMLApplication::SetPage( class Page * Page ) { + ProfileMe(); this->Page = Page; if ( Page ) *************** *** 89,92 **** --- 95,99 ---- int EHTMLApplication::DoReadStage() { + ProfileMe(); OnRead.Trigger(); return Request->Prepare(); *************** *** 95,98 **** --- 102,106 ---- int EHTMLApplication::DoInitStage() { + ProfileMe(); driver = SessionDriver::Selected(); if (driver != NULL) { *************** *** 126,129 **** --- 134,138 ---- int EHTMLApplication::DoComposeStage() { + ProfileMe(); OnCompose.Trigger(); if ( Page ) *************** *** 135,138 **** --- 144,148 ---- int EHTMLApplication::DoLoadStage() { + ProfileMe(); OnLoad.Trigger(); if ( Page ) *************** *** 144,147 **** --- 154,158 ---- int EHTMLApplication::DoRenderStage() { + ProfileMe(); OnRender.Trigger(); if ( Page ) *************** *** 155,158 **** --- 166,170 ---- int EHTMLApplication::DoFinishStage() { + ProfileMe(); OnFinish.Trigger(); *************** *** 186,189 **** --- 198,202 ---- void EHTMLApplication::ShutSessionsDown() { + ProfileMe(); SessionList::iterator iter = OpenSessions.begin(); const SessionList::const_iterator & end = OpenSessions.end(); *************** *** 201,204 **** --- 214,218 ---- void EHTMLApplication::ErrorCleanup() { + ProfileMe(); ShutSessionsDown(); } *************** *** 238,241 **** --- 252,256 ---- void EHTMLApplication::Log(int level, const char* fmt, va_list l) const { + ProfileMe(); char* msg = (char*)malloc(512); vsnprintf(msg, 511, fmt, l); Index: DefaultSessionIDDriver.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DefaultSessionIDDriver.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DefaultSessionIDDriver.cpp 8 Sep 2006 14:30:59 -0000 1.1 --- DefaultSessionIDDriver.cpp 13 Sep 2006 13:57:06 -0000 1.2 *************** *** 2,5 **** --- 2,6 ---- #include "Session.h" #include "Common.h" + #include "Profiling.h" using namespace std; *************** *** 66,69 **** --- 67,71 ---- bool DefaultSessionIDDriver::SetArgs(const string& arg) { + ProfileMe(); bool dev = true; if (!strncmp(arg.c_str(), "extra_entropy=", 14)) *************** *** 77,80 **** --- 79,83 ---- bool DefaultSessionIDDriver::ValidID(SessionID& id) { + ProfileMe(); if (id.binary().Size() != 4*(1+extra_entropy)) return false; *************** *** 92,95 **** --- 95,99 ---- SessionID DefaultSessionIDDriver::GenerateID() { + ProfileMe(); static uint32_t seq = ehtml_random(); sesid_t* id = (sesid_t*)malloc(sizeof(sesid_t)); Index: DiskSessionDriver.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DiskSessionDriver.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DiskSessionDriver.cpp 12 Sep 2006 15:23:33 -0000 1.3 --- DiskSessionDriver.cpp 13 Sep 2006 13:57:06 -0000 1.4 *************** *** 3,6 **** --- 3,7 ---- #include <Session.h> #include <Common.h> + #include "Profiling.h" #include <unistd.h> *************** *** 44,47 **** --- 45,49 ---- bool DiskSessionDriver::mayBeCollect() { + ProfileMe(); uint32_t i = random(); time_t now = time(NULL); *************** *** 73,76 **** --- 75,79 ---- bool DiskSessionDriver::SetArgs(const string& arg) { + ProfileMe(); //@TODO: should check that no session is open. istringstream i(arg.c_str()); *************** *** 98,101 **** --- 101,105 ---- bool DiskSessionDriver::Connect() { + ProfileMe(); if (connected) return false; *************** *** 104,107 **** --- 108,112 ---- bool DiskSessionDriver::Disconnect() { + ProfileMe(); if (connected) { connected = false; *************** *** 112,115 **** --- 117,121 ---- Session* DiskSessionDriver::Get(const SessionID& id) { + ProfileMe(); if (!connected) return NULL; *************** *** 150,153 **** --- 156,160 ---- bool DiskSessionDriver::Save(Session* s) { + ProfileMe(); if (!connected) return false; *************** *** 161,164 **** --- 168,172 ---- bool DiskSessionDriver::Remove(Session* s) { + ProfileMe(); if (!connected) return false; *************** *** 168,171 **** --- 176,180 ---- bool DiskSessionDriver::Release(Session* s) { + ProfileMe(); if (!connected) return false; Index: MemBuf.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/MemBuf.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemBuf.cpp 8 Sep 2006 20:57:47 -0000 1.2 --- MemBuf.cpp 13 Sep 2006 13:57:07 -0000 1.3 *************** *** 2,5 **** --- 2,6 ---- #include "MemBuf.h" #include "Common.h" + #include "Profiling.h" #include <stdlib.h> *************** *** 7,14 **** --- 8,17 ---- MemBuf::Buf::~Buf() { + ProfileMe(); free(_buf); } MemBuf::~MemBuf() { + ProfileMe(); if (_b) { if (_b->_refcnt == 1) { *************** *** 21,24 **** --- 24,28 ---- void MemBuf::resize(size_t s) { + ProfileMe(); if (_b == NULL) { _b = new Buf(malloc(s),s); *************** *** 33,40 **** --- 37,46 ---- MemBuf MemBuf::Dup(const void* p, size_t l) { + ProfileMe(); return MemBuf(xmemdup(p,l),l); } MemBuf& MemBuf::operator = (const MemBuf& mb) { + ProfileMe(); if (_b) { if (_b->_refcnt == 1) { *************** *** 52,55 **** --- 58,62 ---- string MemBuf::AsString() throw (const char*) { + ProfileMe(); string dev(Char()); if (Size()-1 != dev.length()) Index: PageWriter.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/PageWriter.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PageWriter.cpp 8 Sep 2006 14:34:46 -0000 1.7 --- PageWriter.cpp 13 Sep 2006 13:57:07 -0000 1.8 *************** *** 20,23 **** --- 20,24 ---- #include <PageWriter.h> + #include "Profiling.h" using namespace std; *************** *** 26,29 **** --- 27,31 ---- : Enc( Enc ) { + ProfileMe(); RequestContext = rc; } *************** *** 31,34 **** --- 33,37 ---- PageWriter& PageWriter::operator << ( const char * str ) { + ProfileMe(); ap_rputs( str, RequestContext->r ); return *this; *************** *** 37,40 **** --- 40,44 ---- PageWriter& PageWriter::operator << ( const string& str ) { + ProfileMe(); ap_rwrite( str.c_str(), str.length(), RequestContext->r ); return * this; *************** *** 48,51 **** --- 52,56 ---- PageWriter& PageWriter::operator << ( int num ) { + ProfileMe(); ap_rprintf( RequestContext->r, "%d", num ); return *this; *************** *** 54,57 **** --- 59,63 ---- PageWriter& PageWriter::operator << ( char c ) { + ProfileMe(); ap_rputc( c, RequestContext->r ); return *this; *************** *** 60,63 **** --- 66,70 ---- PageWriter& PageWriter::operator << ( const wchar_t * str ) { + ProfileMe(); char buf[256]; register int i = 0; Index: Input.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Input.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Input.cpp 23 Aug 2006 10:32:57 -0000 1.8 --- Input.cpp 13 Sep 2006 13:57:06 -0000 1.9 *************** *** 21,24 **** --- 21,25 ---- #include <Input.h> #include <Page.h> + #include "Profiling.h" using namespace std; *************** *** 32,35 **** --- 33,37 ---- void Input::SetType( InputType Type ) { + ProfileMe(); this->Type = Type; switch( Type ) *************** *** 160,163 **** --- 162,166 ---- int Input::Load() { + ProfileMe(); if ( IsValuePersistent ) { Index: StyleAttribute.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/StyleAttribute.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** StyleAttribute.cpp 28 Feb 2006 19:58:11 -0000 1.5 --- StyleAttribute.cpp 13 Sep 2006 13:57:07 -0000 1.6 *************** *** 21,24 **** --- 21,25 ---- #include <StyleAttribute.h> #include <sstream> + #include "Profiling.h" using namespace std; *************** *** 46,49 **** --- 47,51 ---- void StyleAttribute::SetValue( const string & Value ) { + ProfileMe(); if ( StyleCounter ) { // Clear the buffer... *************** *** 61,64 **** --- 63,67 ---- void StyleAttribute::SetValue( const char * Value ) { + ProfileMe(); if ( StyleCounter ) { // Clear the buffer... *************** *** 76,79 **** --- 79,83 ---- const string & StyleAttribute::GetValue() const { + ProfileMe(); if ( InBuffer ) // Is there anything stored in the map? { *************** *** 108,111 **** --- 112,116 ---- void StyleAttribute::Render( PageWriter * Writer ) { + ProfileMe(); if ( InBuffer ) // Is the value in the buffer? { // Write from the buffer *************** *** 133,136 **** --- 138,142 ---- void StyleAttribute::AddStyle( const string & StyleName, const string & Value ) { + ProfileMe(); pair< string, string > _tmpPair; _tmpPair.first = StyleName; *************** *** 145,148 **** --- 151,155 ---- void StyleAttribute::AddStyle( const char * StyleName, const char * Value ) { + ProfileMe(); pair< string, string > _tmpPair; _tmpPair.first = StyleName; *************** *** 158,161 **** --- 165,169 ---- void StyleAttribute::RemoveStyle( const string & StyleName ) { + ProfileMe(); int erased = StyleData.erase( StyleName ); // Has anything been erased? Index: Common.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Common.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Common.cpp 11 Sep 2006 23:17:06 -0000 1.9 --- Common.cpp 13 Sep 2006 13:57:06 -0000 1.10 *************** *** 20,23 **** --- 20,24 ---- #include "Common.h" + #include "Profiling.h" #include <stdlib.h> #include <sstream> *************** *** 37,40 **** --- 38,42 ---- static inline const char * __DecodeURIEscapeCode( const char * Loc, char & Decoded ) { + ProfileMe(); register char a = *(Loc++); register char b = *Loc; *************** *** 64,67 **** --- 66,70 ---- int ParseURLEncodedArgs( const char * Str, KeyValueMap& Map ) { + ProfileMe(); int retVal = 0; *************** *** 178,181 **** --- 181,185 ---- static inline unsigned short GetHexFromByte( unsigned char num ) { + ProfileMe(); register char a = ( 0xf0 & num ) >> 4; register char b = 0x0f & num; *************** *** 195,198 **** --- 199,203 ---- static inline unsigned char hex_aton(char a) { + ProfileMe(); unsigned char c = 0xff; *************** *** 209,212 **** --- 214,218 ---- static inline unsigned char GetByteFromHex( char a, char b ) { + ProfileMe(); return (hex_aton(a) << 4) | hex_aton(b); } *************** *** 214,217 **** --- 220,224 ---- int GetStringFromByte( char * buf, int buf_len, const unsigned char * binary_array, int arr_len ) { + ProfileMe(); // Sanity check if ( buf && binary_array && arr_len > 0 && buf_len >= (arr_len << 1) ) *************** *** 236,239 **** --- 243,247 ---- int GetByteFromString( unsigned char * buf, int buf_len, const char * hex_string ) { + ProfileMe(); if ( buf && hex_string ) { *************** *** 255,258 **** --- 263,267 ---- const char* ehtml_strerror(int errno) { + ProfileMe(); if (errno >= 0) return strerror(errno); *************** *** 273,280 **** --- 282,291 ---- string urlencode(const string& s) { //@todo better way to fix this const issue? + ProfileMe(); return urlencode(MemBuf::Dup((void*)s.c_str(), s.length())); } string urlencode(const MemBuf& mb) { + ProfileMe(); size_t n_escape = 0; const char* s = mb.Char(); *************** *** 306,309 **** --- 317,321 ---- MemBuf urldecode(const string& s) throw (const char*) { //@todo test + ProfileMe(); MemBuf dev(strdup(s.c_str()), s.length()+1); char* obuf = dev.Char(); *************** *** 323,330 **** --- 335,344 ---- string hexencode(const std::string& s) { + ProfileMe(); return hexencode(MemBuf::Dup(s.c_str(), s.length())); } string hexencode(const MemBuf& mb) { + ProfileMe(); string dev; dev.reserve(mb.Size()*2+1); *************** *** 340,343 **** --- 354,358 ---- MemBuf hexdecode(const string& s) throw (const char*) { + ProfileMe(); MemBuf dev; dev.resize(s.length()/2); *************** *** 357,364 **** --- 372,381 ---- std::string base64encode(const std::string& s) { //@todo test + ProfileMe(); return base64encode(MemBuf::Dup(s.c_str(),s.length())); } std::string base64encode(const MemBuf& mb) { //@todo test + ProfileMe(); string dev; dev.reserve(mb.Size() * 4 / 3 + 2); *************** *** 409,412 **** --- 426,430 ---- unsigned char _b64_aton(char c) { + ProfileMe(); if (c >= 'A' && c <= 'Z') return int(c-'A'); if (c >= 'a' && c <= 'z') return int(c-'a') + ('Z'-'A') + 1; *************** *** 419,422 **** --- 437,441 ---- MemBuf base64decode(const std::string& s) throw (const char*) { //@todo test + ProfileMe(); // 0000 0011 | 1111 2222 | 2233 3333 MemBuf dev; *************** *** 443,446 **** --- 462,466 ---- unsigned long xatoul(const char* s) throw (const char*) { //@todo test + ProfileMe(); char* end; if (!s || !s[0]) *************** *** 453,456 **** --- 473,477 ---- double xatod(const char* s) throw (const char*) { //@todo test + ProfileMe(); char* end; if (!s || !s[0]) *************** *** 463,466 **** --- 484,488 ---- bool is_directory(const char* name) { + ProfileMe(); struct stat st; return stat(name, &st) == 0 && S_ISDIR(st.st_mode); *************** *** 468,471 **** --- 490,494 ---- void* xmemdup(const void* p, size_t n) { + ProfileMe(); void* dev = malloc(n); assert(dev != NULL); *************** *** 474,477 **** --- 497,501 ---- const char* skip_ws(const char* s) { + ProfileMe(); while (isspace(*s)) ++s; return s; *************** *** 479,482 **** --- 503,507 ---- char* skip_ws(char* s) { + ProfileMe(); while (isspace(*s)) ++s; return s; *************** *** 484,487 **** --- 509,513 ---- const char* skip_word(const char* s) { + ProfileMe(); while (!isspace(*s) && *s) ++s; return s; *************** *** 489,492 **** --- 515,519 ---- char* skip_word(char* s) { + ProfileMe(); while (!isspace(*s) && *s) ++s; return s; Index: Request.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Request.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Request.cpp 12 Sep 2006 15:23:33 -0000 1.8 --- Request.cpp 13 Sep 2006 13:57:07 -0000 1.9 *************** *** 21,24 **** --- 21,25 ---- #include <Request.h> #include <apr_tables.h> + #include "Profiling.h" using namespace std; *************** *** 49,52 **** --- 50,54 ---- int Request::ParseQuery() { + ProfileMe(); request_rec * r = RequestContext->r; *************** *** 107,110 **** --- 109,113 ---- const string * Request::GetArgument( const string & Key ) const { + ProfileMe(); // Try to find the key KeyValueMap::const_iterator _itr = Arguments.find( Key ); *************** *** 118,121 **** --- 121,125 ---- void Request::Error(const char* fmt, ...) const { + ProfileMe(); if (Application == NULL) return; *************** *** 127,130 **** --- 131,135 ---- void Request::Debug(const char* fmt, ...) const { + ProfileMe(); if (Application == NULL) return; *************** *** 137,140 **** --- 142,146 ---- const string * Request::operator []( const string & Key ) const { + ProfileMe(); // Try to find the key KeyValueMap::const_iterator _itr = Arguments.find( Key ); *************** *** 148,151 **** --- 154,158 ---- const string* Request::GetCookie(const string& name) const { + ProfileMe(); Debug("Looking for %s\n", name.c_str()); string s = name + "="; *************** *** 164,167 **** --- 171,175 ---- void Request::ParseHeader() { + ProfileMe(); const apr_array_header_t* arr = apr_table_elts( RequestContext->r->headers_in ); Debug("%s:%d\n", __PRETTY_FUNCTION__, __LINE__); Index: Session.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Session.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Session.cpp 12 Sep 2006 23:11:58 -0000 1.15 --- Session.cpp 13 Sep 2006 13:57:07 -0000 1.16 *************** *** 23,26 **** --- 23,27 ---- #include <Request.h> #include <dlfcn.h> + #include "Profiling.h" using namespace std; *************** *** 35,38 **** --- 36,40 ---- SessionID::SessionID() { + ProfileMe(); _binary_set = 0; _base64_set = 0; *************** *** 43,46 **** --- 45,49 ---- SessionID::SessionID(const SessionID& id): _binary(id._binary), _base64(id._base64), _hex(id._hex), _urlencoded(id._urlencoded) { + ProfileMe(); _binary_set = id._binary_set; _base64_set = id._base64_set; *************** *** 50,53 **** --- 53,57 ---- SessionID::SessionID(const MemBuf& mb): _binary(mb) { + ProfileMe(); _binary_set = 1; _base64_set = 0; *************** *** 57,60 **** --- 61,65 ---- SessionID::SessionID(void* b, size_t nbytes, bool dup): _binary(b,nbytes) { + ProfileMe(); if (dup) _binary = MemBuf::Dup(b,nbytes); *************** *** 69,72 **** --- 74,78 ---- MemBuf& SessionID::binary() throw (const char*) { + ProfileMe(); if (!_binary_set) throw "binary session id is not set"; *************** *** 75,78 **** --- 81,85 ---- const MemBuf& SessionID::binary() const throw (const char*) { + ProfileMe(); if (!_binary_set) throw "binary session id is not set"; *************** *** 81,84 **** --- 88,92 ---- bool SessionID::binary(MemBuf& mb) { + ProfileMe(); _binary = mb; _binary_set = 1; *************** *** 89,92 **** --- 97,101 ---- string& SessionID::base64() throw (const char*) { + ProfileMe(); if (!_base64_set) { _base64 = base64encode(MemBuf(binary().Buffer(), binary().Size())); *************** *** 97,100 **** --- 106,110 ---- const string& SessionID::base64() const throw (const char*) { + ProfileMe(); if (!_base64_set) { //@todo we could avoid memdup here.... *************** *** 106,109 **** --- 116,120 ---- bool SessionID::base64(string& s) { + ProfileMe(); _base64 = s; _binary = base64decode(s); *************** *** 114,117 **** --- 125,129 ---- string& SessionID::hex() throw (const char*) { + ProfileMe(); if (!_hex_set) { _hex = hexencode(MemBuf::Dup(binary().Buffer(), binary().Size())); *************** *** 122,125 **** --- 134,138 ---- const string& SessionID::hex() const throw (const char*) { + ProfileMe(); if (!_hex_set) { //@todo we could avoid memdup here.... *************** *** 131,134 **** --- 144,148 ---- bool SessionID::hex(string& s) { + ProfileMe(); _hex = s; _binary = hexdecode(s); *************** *** 139,142 **** --- 153,157 ---- string& SessionID::urlencoded() throw (const char*) { + ProfileMe(); if (!_url_set) { _urlencoded = urlencode(_binary); *************** *** 147,150 **** --- 162,166 ---- const string& SessionID::urlencoded() const throw (const char*) { + ProfileMe(); if (!_url_set) { _urlencoded = urlencode(_binary); *************** *** 155,158 **** --- 171,175 ---- bool SessionID::urlencoded(string& s) { + ProfileMe(); _urlencoded = s; _binary = urldecode(s); *************** *** 255,258 **** --- 272,276 ---- Session* SessionDriver::Get() { + ProfileMe(); assert(_app != NULL); Request* req = _app->GetRequest(); *************** *** 267,270 **** --- 285,289 ---- string Session::Serialize() { + ProfileMe(); char _e[11]; snprintf(_e, 11, "%lu", _expires); *************** *** 276,279 **** --- 295,299 ---- ostream& operator << (ostream& o, Session& s) { + ProfileMe(); char _e[11]; snprintf(_e, 11, "%lu", s.Expires()); *************** *** 285,288 **** --- 305,309 ---- bool Session::Marshall(const string& s) { + ProfileMe(); if (!Dictionary::Marshall(s)) return false; *************** *** 293,296 **** --- 314,318 ---- istream& operator >> (istream& i, Session& s) { + ProfileMe(); i >> *static_cast<Dictionary*>(&s); s.Expires(xatoul(s["$$__EXPIRES$$"].c_str())); *************** *** 302,305 **** --- 324,328 ---- //@TODO: would be nice to check selected is the same session driver which //created me.... + ProfileMe(); SessionDriver::Selected()->Release(this); } Index: TagRenderer.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/TagRenderer.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TagRenderer.cpp 6 Mar 2006 08:00:36 -0000 1.6 --- TagRenderer.cpp 13 Sep 2006 13:57:07 -0000 1.7 *************** *** 22,25 **** --- 22,26 ---- #include <TagRenderer.h> #include <string.h> + #include "Profiling.h" using namespace std; *************** *** 40,43 **** --- 41,45 ---- TagAttribute * TagRenderer::AddAttribute( TagAttribute * Attribute ) { + ProfileMe(); // The pointers should not be null... ASSERT( Attribute ); *************** *** 60,63 **** --- 62,66 ---- void TagRenderer::RemoveAttribute( TagAttribute* Attribute ) { + ProfileMe(); // The pointer should not be null... ASSERT( Attribute ); *************** *** 74,77 **** --- 77,81 ---- TagAttribute* TagRenderer::GetAttribute( const string & Key ) const { + ProfileMe(); // The key must be non-null... ASSERT( Key ); *************** *** 93,96 **** --- 97,101 ---- void TagRenderer::RenderBeginTag( PageWriter* Writer ) { + ProfileMe(); // Write the tag's name out... *Writer << "<" << TagName; *************** *** 117,120 **** --- 122,126 ---- void TagRenderer::RenderEndTag( PageWriter* Writer ) { + ProfileMe(); if ( HasContents ) *Writer << "</" << TagName << ">"; Index: DefaultSessionDriver.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/DefaultSessionDriver.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DefaultSessionDriver.cpp 8 Sep 2006 14:30:59 -0000 1.1 --- DefaultSessionDriver.cpp 13 Sep 2006 13:57:06 -0000 1.2 *************** *** 25,32 **** --- 25,34 ---- #include "DefaultSessionDriver.h" + #include "Profiling.h" using namespace std; bool DefaultSessionDriver::SetArgs(const string& arg) { + ProfileMe(); istringstream s(arg); string opt; *************** *** 94,97 **** --- 96,100 ---- Session* DefaultSessionDriver::Get (const SessionID& id) { + ProfileMe(); // We are connected. Send the request and wait for the answer DSSGetData get_data; *************** *** 139,142 **** --- 142,146 ---- bool DefaultSessionDriver::Save(Session* s) { + ProfileMe(); // We are connected. Send the request and wait for the answer bool dev = true; *************** *** 191,194 **** --- 195,199 ---- bool DefaultSessionDriver::Remove (Session* s) { + ProfileMe(); // Send the request and wait for the answer DSSUnregisterID unreg; *************** *** 215,218 **** --- 220,224 ---- int DefaultSessionDriver::Socket() { + ProfileMe(); if (fd < 0) fd = socket(addr.protocol_family, SOCK_STREAM, 0); *************** *** 221,224 **** --- 227,231 ---- bool DefaultSessionDriver::Bind() { + ProfileMe(); return bind(Socket(), &addr.addr._addr, addr.addr_len) == 0 ? true : false; } *************** *** 226,229 **** --- 233,237 ---- bool DefaultSessionDriver::Connect() { + ProfileMe(); // Open a new connection to the server int fd = Socket(); *************** *** 236,239 **** --- 244,248 ---- bool DefaultSessionDriver::Disconnect() { + ProfileMe(); // Post a quit message and close the connection DSSStandard rec; Index: Response.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Response.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Response.cpp 12 Sep 2006 00:26:47 -0000 1.3 --- Response.cpp 13 Sep 2006 13:57:07 -0000 1.4 *************** *** 20,23 **** --- 20,24 ---- #include <Response.h> + #include "Profiling.h" using namespace std; *************** *** 29,32 **** --- 30,34 ---- void Response::SetCookie(const std::string& name, const std::string& value) { + ProfileMe(); string val(name + "=" + value + "; path=/"); apr_table_set(RequestContext->r->headers_out, Index: Container.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Container.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Container.cpp 23 Aug 2006 10:32:57 -0000 1.10 --- Container.cpp 13 Sep 2006 13:57:06 -0000 1.11 *************** *** 24,27 **** --- 24,29 ---- #include <sstream> + #include "Profiling.h" + using namespace std; *************** *** 33,36 **** --- 35,39 ---- void Container::Add( Component* comp, int pos ) { + ProfileMe(); if ( pos < 0 ) Children.push_back( comp ); *************** *** 58,61 **** --- 61,65 ---- void Container::DoNameChildren() { + ProfileMe(); ChildrenList::iterator itr = Children.end(); const ChildrenList::const_iterator & begin = Children.begin(); *************** *** 93,96 **** --- 97,101 ---- void Container::SetId( const string & Id ) { + ProfileMe(); Component::SetId( Id ); if ( AutoNaming ) *************** *** 100,103 **** --- 105,109 ---- void Container::SetId( const char * Id ) { + ProfileMe(); Component::SetId( Id ); if ( AutoNaming ) *************** *** 107,110 **** --- 113,117 ---- void Container::SetPage( Page* OwnerPage ) { + ProfileMe(); Component::SetPage( OwnerPage ); ChildrenList::iterator itr = Children.end(); *************** *** 116,119 **** --- 123,127 ---- void Container::SetParent( Container* Parent ) { + ProfileMe(); Component::SetParent( Parent ); ChildrenList::iterator itr = Children.end(); *************** *** 125,128 **** --- 133,137 ---- void Container::Clear() { + ProfileMe(); Children.clear(); ChildrenCount = 0; *************** *** 131,134 **** --- 140,144 ---- void Container::Remove( Component* comp ) { + ProfileMe(); ChildrenList::iterator itr = Children.begin(); const ChildrenList::const_iterator & end = Children.end(); *************** *** 156,159 **** --- 166,170 ---- void Container::Render( PageWriter* Writer ) { + ProfileMe(); TagHandler.RenderBeginTag( Writer ); ChildrenList::iterator itr = Children.end(); *************** *** 168,171 **** --- 179,183 ---- int Container::Load() { + ProfileMe(); ChildrenList::iterator itr = Children.end(); const ChildrenList::const_iterator & begin = Children.begin(); *************** *** 181,184 **** --- 193,197 ---- int Container::Compose() { + ProfileMe(); ChildrenList::iterator itr = Children.end(); const ChildrenList::const_iterator & begin = Children.begin(); |
From: Gonzalo A. <ga...@us...> - 2006-09-13 13:57:11
|
Update of /cvsroot/mod-c/ehtml/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv777/include Modified Files: Profiling.h Log Message: * Added profiling calls. Index: Profiling.h =================================================================== RCS file: /cvsroot/mod-c/ehtml/include/Profiling.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Profiling.h 13 Sep 2006 00:11:22 -0000 1.4 --- Profiling.h 13 Sep 2006 13:57:06 -0000 1.5 *************** *** 76,85 **** * profiled. */ ! #define ProfileMe \ ! static ProfileFunction(__PRETTY_FUNCTION__, __FILE__, __LINE__) __profile;\ ! ProfileRun __profile_run(&__profileme); #define EXTERNC extern "C" ! #else #define EXTERNC #endif /* #ifdef __cplusplus */ --- 76,89 ---- * profiled. */ ! #define ProfileMe() \ ! static ProfileFunction __profile(__func__, __FILE__, __LINE__);\ ! ProfileRun __profile_run(&__profile); ! ! #define ProfileMeName(name) \ ! static ProfileFunction __profile((name), __FILE__, __LINE__);\ ! ProfileRun __profile_run(&__profile); #define EXTERNC extern "C" ! #else /* #ifdef __cplusplus */ #define EXTERNC #endif /* #ifdef __cplusplus */ |
From: Gonzalo A. <ga...@us...> - 2006-09-13 13:12:36
|
Update of /cvsroot/mod-c/mod_c/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv14542/src Modified Files: mod_c.c Log Message: * Removed debugging messages. * Added some formatting to the profiling report. Index: mod_c.c =================================================================== RCS file: /cvsroot/mod-c/mod_c/src/mod_c.c,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** mod_c.c 13 Sep 2006 13:03:45 -0000 1.21 --- mod_c.c 13 Sep 2006 13:12:31 -0000 1.22 *************** *** 159,166 **** "accum", "ncalls", "overflows", "depth"); while (profile_tick(&cbdata, &spec), cbdata != NULL) { ! ap_rprintf(r, "%llu %lld %d %d %s/%s:%d\n", ! spec.accum, spec.ncalls, spec.overflows, spec.depth, ! spec.name, spec.file, spec.line); ! printf("%20llu %20lld %11d %11d %s/%s:%d\n", spec.accum, spec.ncalls, spec.overflows, spec.depth, spec.name, spec.file, spec.line); --- 159,163 ---- "accum", "ncalls", "overflows", "depth"); while (profile_tick(&cbdata, &spec), cbdata != NULL) { ! ap_rprintf(r, "%20llu %20lld %11d %11d %s/%s:%d\n", spec.accum, spec.ncalls, spec.overflows, spec.depth, spec.name, spec.file, spec.line); |
From: Gonzalo A. <ga...@us...> - 2006-09-13 13:09:51
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv13232/src Modified Files: Profiling.cpp Log Message: * Bugfix in profile_tick: argument is a C-style-pointer-by-reference. Index: Profiling.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Profiling.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Profiling.cpp 13 Sep 2006 00:11:22 -0000 1.1 --- Profiling.cpp 13 Sep 2006 13:09:48 -0000 1.2 *************** *** 30,34 **** void profile_tick(void** cbdata, struct runspec* spec) { ! ProfileFunction* pf = (ProfileFunction*)cbdata; if (*cbdata != NULL) { pf = pf->Next(); --- 30,34 ---- void profile_tick(void** cbdata, struct runspec* spec) { ! ProfileFunction* pf = *(ProfileFunction**)cbdata; if (*cbdata != NULL) { pf = pf->Next(); |
From: Gonzalo A. <ga...@us...> - 2006-09-13 13:03:50
|
Update of /cvsroot/mod-c/mod_c/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv10773/src Modified Files: mod_c.c Log Message: * Handler names are now char arraya, so sizeof(handler_name) is the actual size of the name. Index: mod_c.c =================================================================== RCS file: /cvsroot/mod-c/mod_c/src/mod_c.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** mod_c.c 13 Sep 2006 12:43:45 -0000 1.20 --- mod_c.c 13 Sep 2006 13:03:45 -0000 1.21 *************** *** 32,41 **** * The name of the EHMTL file handler. */ ! static const char * ehtml_handler = "ehtml-bin"; /** * The name of the EHTML profile handler */ ! static const char * profile_handler = "ehtml-profile"; mod_c_config* c_sconfig(server_rec* s) --- 32,41 ---- * The name of the EHMTL file handler. */ ! static const char ehtml_handler[] = "ehtml-bin"; /** * The name of the EHTML profile handler */ ! static const char profile_handler[] = "ehtml-profile"; mod_c_config* c_sconfig(server_rec* s) |
From: Gonzalo A. <ga...@us...> - 2006-09-13 12:48:15
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv4130/src Modified Files: EHTMLApplication.cpp Log Message: * Profiling methods are in Profiling.cc Index: EHTMLApplication.cpp =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/EHTMLApplication.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** EHTMLApplication.cpp 12 Sep 2006 20:01:49 -0000 1.11 --- EHTMLApplication.cpp 13 Sep 2006 12:48:11 -0000 1.12 *************** *** 31,39 **** #include <http_log.h> - #include "Profiling.h" #include "ehtml.h" - ProfileFunction* ProfileFunction::_head = NULL; - using namespace std; --- 31,36 ---- |
From: Gonzalo A. <ga...@us...> - 2006-09-13 12:47:27
|
Update of /cvsroot/mod-c/ehtml/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv4052/include Modified Files: Makefile.am Log Message: * Added Profiling.h to headers to distribute. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/include/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 16 Feb 2006 23:12:33 -0000 1.3 --- Makefile.am 13 Sep 2006 12:47:24 -0000 1.4 *************** *** 1,4 **** ehtmldir = $(includedir)/ehtml ! ehtml_HEADERS = Common.h Container.h Form.h Label.h PageWriter.h SimpleTagAttribute.h TagAttribute.h \ Component.h ehtml.h Input.h Page.h Session.h StyleAttribute.h TagRenderer.h \ EHTMLApplication.h Request.h Response.h Event.h --- 1,4 ---- ehtmldir = $(includedir)/ehtml ! ehtml_HEADERS = Common.h Container.h Form.h Label.h PageWriter.h Profiling.h SimpleTagAttribute.h TagAttribute.h \ Component.h ehtml.h Input.h Page.h Session.h StyleAttribute.h TagRenderer.h \ EHTMLApplication.h Request.h Response.h Event.h |
From: Gonzalo A. <ga...@us...> - 2006-09-13 12:46:16
|
Update of /cvsroot/mod-c/mod_c In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv3278 Modified Files: ChangeLog Log Message: * Added note of new ehtml-profile handler. Index: ChangeLog =================================================================== RCS file: /cvsroot/mod-c/mod_c/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 12 Sep 2006 22:16:30 -0000 1.5 --- ChangeLog 13 Sep 2006 12:46:10 -0000 1.6 *************** *** 1,2 **** --- 1,7 ---- + 2006-09-13 Gonzalo Arana <gon...@gm...> + + * ehtml-status handler: added ehtml-status handler to provide access to some + in-depth statistics & profiling information. + 2006-09-13 Matej Urbas <mat...@gm...> |
From: Gonzalo A. <ga...@us...> - 2006-09-13 12:43:49
|
Update of /cvsroot/mod-c/mod_c/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv2424/src Modified Files: mod_c.c Log Message: * Added ehtml-status handler. Index: mod_c.c =================================================================== RCS file: /cvsroot/mod-c/mod_c/src/mod_c.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** mod_c.c 8 Sep 2006 15:01:38 -0000 1.19 --- mod_c.c 13 Sep 2006 12:43:45 -0000 1.20 *************** *** 22,25 **** --- 22,26 ---- #include "lib_cache.h" #include "Session.h" + #include "Profiling.h" #include <dlfcn.h> *************** *** 33,36 **** --- 34,42 ---- static const char * ehtml_handler = "ehtml-bin"; + /** + * The name of the EHTML profile handler + */ + static const char * profile_handler = "ehtml-profile"; + mod_c_config* c_sconfig(server_rec* s) { *************** *** 50,53 **** --- 56,61 ---- } + static int EHTMLProfileHandler( request_rec *r ); + /** * Handles ehtml-bin handles. *************** *** 67,72 **** const char* msg = NULL; ! if (r->handler == NULL || ! strncmp(r->handler, ehtml_handler, sizeof(ehtml_handler)) != 0) { return DECLINED; } --- 75,86 ---- const char* msg = NULL; ! if (r->handler == NULL) ! return DECLINED; ! ! if (strncmp(r->handler, profile_handler, sizeof(profile_handler)) == 0) { ! return EHTMLProfileHandler(r); ! } ! ! if (strncmp(r->handler, ehtml_handler, sizeof(ehtml_handler)) != 0) { return DECLINED; } *************** *** 118,121 **** --- 132,174 ---- /** + * Produce EHTML profiling statistics. + * Generates a table full of profiling statistics. + * + * @param r + * The request context for this handle. + * + * @return Returns... + */ + static int EHTMLProfileHandler( request_rec *r ) + { + + void* cbdata = NULL; + struct runspec spec; + + if (r->handler == NULL || + strncmp(r->handler, profile_handler, sizeof(profile_handler)) != 0) { + return DECLINED; + } + + if (r->method_number != M_GET) + return DECLINED; + + ap_set_content_type(r, "text/plain"); + + ap_rprintf(r, "%20s %20s %11s %11s function/file:line\n", + "accum", "ncalls", "overflows", "depth"); + while (profile_tick(&cbdata, &spec), cbdata != NULL) { + ap_rprintf(r, "%llu %lld %d %d %s/%s:%d\n", + spec.accum, spec.ncalls, spec.overflows, spec.depth, + spec.name, spec.file, spec.line); + printf("%20llu %20lld %11d %11d %s/%s:%d\n", + spec.accum, spec.ncalls, spec.overflows, spec.depth, + spec.name, spec.file, spec.line); + } + + return 0; + } + + /** * Creates a 'per-dir' configuration structure and initializes it with the * default values. |
From: Gonzalo A. <ga...@us...> - 2006-09-13 00:11:26
|
Update of /cvsroot/mod-c/ehtml/src In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv12035/src Modified Files: Makefile.am Added Files: Profiling.cpp Log Message: * Code reordering & added C function for accessing profile statistics. Index: Makefile.am =================================================================== RCS file: /cvsroot/mod-c/ehtml/src/Makefile.am,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile.am 8 Sep 2006 21:00:46 -0000 1.7 --- Makefile.am 13 Sep 2006 00:11:22 -0000 1.8 *************** *** 27,30 **** --- 27,31 ---- EHTML_SOURCES += Page.cpp EHTML_SOURCES += PageWriter.cpp + EHTML_SOURCES += Profiling.cpp EHTML_SOURCES += Request.cpp EHTML_SOURCES += Response.cpp --- NEW FILE: Profiling.cpp --- #include "Profiling.h" #include <string.h> ProfileFunction* ProfileFunction::_head = NULL; ProfileFunction::ProfileFunction(const char* name, const char* file, int line) { spec.accum = 0; spec.ncalls = 0; spec.overflows = spec.depth = 0; spec.name = name; spec.file = file; spec.line = line; _next = _head; _prev = NULL; if (_next) _next->_prev = this; _head = this; } ProfileFunction::~ProfileFunction() { if (_next) _next->_prev = _prev; if (_prev) _prev->_next = _next; else _head = _next; } void profile_tick(void** cbdata, struct runspec* spec) { ProfileFunction* pf = (ProfileFunction*)cbdata; if (*cbdata != NULL) { pf = pf->Next(); } else { pf = ProfileFunction::Head(); } if (pf != NULL) memcpy(spec, pf->Spec(), sizeof(*spec)); *cbdata = pf; } |
From: Gonzalo A. <ga...@us...> - 2006-09-13 00:11:26
|
Update of /cvsroot/mod-c/ehtml/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv12035/include Modified Files: Profiling.h Log Message: * Code reordering & added C function for accessing profile statistics. Index: Profiling.h =================================================================== RCS file: /cvsroot/mod-c/ehtml/include/Profiling.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Profiling.h 12 Sep 2006 20:02:52 -0000 1.3 --- Profiling.h 13 Sep 2006 00:11:22 -0000 1.4 *************** *** 3,15 **** #define __PROFILING_H_ - ////////////////////////////////////////////////////////////////////////////// - // - // Profiling declarations - // - #include <stdint.h> typedef int64_t hrtime_t; /** * Gets the cpu 'read time stamp' instruction. --- 3,21 ---- #define __PROFILING_H_ #include <stdint.h> typedef int64_t hrtime_t; + struct runspec { + hrtime_t accum; + int64_t ncalls; + int overflows; + int depth; + const char* name; + const char* file; + int line; + }; + + #ifdef __cplusplus /** * Gets the cpu 'read time stamp' instruction. *************** *** 27,37 **** */ class ProfileFunction { ! hrtime_t _accum; ! int64_t _ncalls; ! int _overflows; ! int _depth; ! const char* _name; ! const char* _file; ! int _line; ProfileFunction *_next, *_prev; static ProfileFunction *_head; --- 33,37 ---- */ class ProfileFunction { ! runspec spec; ProfileFunction *_next, *_prev; static ProfileFunction *_head; *************** *** 39,69 **** public: ! ProfileFunction(const char* name, const char* file, int line): ! _accum(0), _ncalls(0), _overflows(0), _depth(0), ! _name(name), _file(file), _line(line) { ! _next = _head; ! _prev = NULL; ! if (_next) ! _next->_prev = this; ! _head = this; ! } ! ~ProfileFunction() { ! if (_next) ! _next->_prev = _prev; ! if (_prev) ! _prev->_next = _next; ! else ! _head = _next; ! } static ProfileFunction* Head() { return _head; } ProfileFunction* Next() { return _next; } - - hrtime_t Accum() const { return _accum; } - int64_t NCalls() const { return _ncalls; } - int Overflows() const { return _overflows; } - const char* Function() const { return _name; } - const char* File() const { return _file; } - int Line() const { return _line; } }; --- 39,49 ---- public: ! ProfileFunction(const char* name, const char* file, int line); ! ~ProfileFunction(); ! ! runspec* Spec() { return &spec; } static ProfileFunction* Head() { return _head; } ProfileFunction* Next() { return _next; } }; *************** *** 82,90 **** hrtime_t now = get_tick(); if (now < _started) { ! ++_f->_overflows; return; } ! _f->_accum += now - _started; ! ++_f->_ncalls; } }; --- 62,70 ---- hrtime_t now = get_tick(); if (now < _started) { ! ++_f->spec.overflows; return; } ! _f->spec.accum += now - _started; ! ++_f->spec.ncalls; } }; *************** *** 100,103 **** --- 80,104 ---- ProfileRun __profile_run(&__profileme); + #define EXTERNC extern "C" + #else + #define EXTERNC + #endif /* #ifdef __cplusplus */ + + /** + * C function for traversing the profile information + * + * The right way to use it: + * <code> + * void* cb = NULL; + * struct runspec spec; + * while (profile_tick(&cb, &spec), cb != NULL) { + * printf("%20llu %20lld %11d %11d %s/%s:%d\n", + * spec.accum, spec.ncalls, spec.overflows, spec.depth, + * spec.name, spec.file, spec.line); + * } + * </code> + */ + EXTERNC void profile_tick(void** cbdata, struct runspec* spec); + #endif |
From: Matej U. <mat...@us...> - 2006-09-12 23:46:55
|
Update of /cvsroot/mod-c/mod_c/cfgaux In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv2722/cfgaux Added Files: config.guess config.sub depcomp install-sh ltmain.sh missing Log Message: Must get some sleep! --- NEW FILE: missing --- #! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pi...@ir...>, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to <bug...@gn...>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: --- NEW FILE: config.guess --- #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-06-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software [...1372 lines suppressed...] /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: --- NEW FILE: config.sub --- #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-06-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [...1461 lines suppressed...] -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: --- NEW FILE: ltmain.sh --- # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit <go...@gn...>, 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software [...6824 lines suppressed...] # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: --- NEW FILE: depcomp --- #! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva <ol...@dc...>. case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to <bug...@gn...>. EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: --- NEW FILE: install-sh --- #!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: |
From: Matej U. <mat...@us...> - 2006-09-12 23:46:54
|
Update of /cvsroot/mod-c/mod_c In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv2722 Modified Files: configure.ac Removed Files: config.h.in Log Message: Must get some sleep! Index: configure.ac =================================================================== RCS file: /cvsroot/mod-c/mod_c/configure.ac,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** configure.ac 11 Sep 2006 14:02:42 -0000 1.9 --- configure.ac 12 Sep 2006 23:46:51 -0000 1.10 *************** *** 5,12 **** AC_CONFIG_SRCDIR([src/mod_c.c]) AM_INIT_AUTOMAKE ! AM_CONFIG_HEADER(config.h) ! AC_LANG_CPLUSPLUS AC_PROG_CXX AC_PROG_CC --- 5,12 ---- AC_CONFIG_SRCDIR([src/mod_c.c]) AM_INIT_AUTOMAKE ! AC_CONFIG_HEADERS([config.h]) ! AC_LANG([C++]) AC_PROG_CXX AC_PROG_CC *************** *** 145,151 **** AC_SUBST(APXS) ! AC_OUTPUT([Makefile src/Makefile include/Makefile doc/Makefile]) --- 145,152 ---- AC_SUBST(APXS) ! AC_CONFIG_FILES([Makefile src/Makefile include/Makefile doc/Makefile]) + AC_OUTPUT --- config.h.in DELETED --- |
From: Matej U. <mat...@us...> - 2006-09-12 23:46:54
|
Update of /cvsroot/mod-c/mod_c/include In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv2722/include Removed Files: Makefile.in Log Message: Must get some sleep! --- Makefile.in DELETED --- |