Fixes to compile with latest ghc and libraries.

Ilya Portnov [2010-04-10 18:26:25]
Fixes to compile with latest ghc and libraries.
Filename
Blog/blog.conf
Framework/Storage.hs
TODO
graph.dot
diff --git a/Blog/blog.conf b/Blog/blog.conf
index 365921c..860be9d 100644
--- a/Blog/blog.conf
+++ b/Blog/blog.conf
@@ -5,7 +5,7 @@ port = 8080
 staticdir = static/

 [database]
-path = host=localhost password=31415
+path = host=rtfm-server password=31415

 [cache]
 backend = filesystem
diff --git a/Framework/Storage.hs b/Framework/Storage.hs
index 234f61a..56981ec 100644
--- a/Framework/Storage.hs
+++ b/Framework/Storage.hs
@@ -12,7 +12,7 @@ module Framework.Storage

 import Data.String.Utils
 import qualified Database.HDBC.Sqlite3 as Sqlite3
-import qualified Database.HDBC.MySQL as MySQL
+-- import qualified Database.HDBC.MySQL as MySQL
 import qualified Database.HDBC.PostgreSQL as PostgreSQL
 import qualified Database.HDBC as D

@@ -26,16 +26,16 @@ connect' :: String              -- ^ DB backend
          -> IO DBConnection
 connect' "sqlite3" file = DBC `fmap` (Sqlite3.connectSqlite3 file)
 connect' "psql"  str    = DBC `fmap` (PostgreSQL.connectPostgreSQL str)
-connect' "mysql" str    = DBC `fmap` (MySQL.connectMySQL $ parsedMySQL)
-    where
-        parsedMySQL = MySQL.defaultMySQLConnectInfo {
-            MySQL.mysqlUser = user,
-            MySQL.mysqlPassword = pass,
-            MySQL.mysqlHost = server,
-            MySQL.mysqlDatabase = db}
-        [user,x] = split ":" str
-        [pass,x'] = split "@" x
-        [server,db] = split "/" x'
+-- connect' "mysql" str    = DBC `fmap` (MySQL.connectMySQL $ parsedMySQL)
+--     where
+--         parsedMySQL = MySQL.defaultMySQLConnectInfo {
+--             MySQL.mysqlUser = user,
+--             MySQL.mysqlPassword = pass,
+--             MySQL.mysqlHost = server,
+--             MySQL.mysqlDatabase = db}
+--         [user,x] = split ":" str
+--         [pass,x'] = split "@" x
+--         [server,db] = split "/" x'
 connect' _ _ = error "Unknown DB driver!"

 -- | Connect to DB, get parameters from "StaticConfig"
diff --git a/TODO b/TODO
index e665bf7..9da3b80 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-INPROGRESS [forms] Удобные средства расширения форм (в т.ч. и для использования в Form processors);
+INPROGRESS [forms] Удобные средства расширения форм             в т.ч. и для использования в Form processors;
 * [forms] Больше виджетов для форм;
 * [forms] Средства создания "мастеров";
 ? Более удобный paginator;
@@ -6,7 +6,7 @@ INPROGRESS [CRUD] Автоматические CRUD-контроллеры;
 * Человеческая обработка завершения программы;
 * [config] Все параметры, которые сейчас hard-coded, брать из конфига;
 INPROGRESS [i18n] Полу-автоматическая интернационализация с помощью какого-л. Middleware;
-INPROGRESS [cache] Более высокоуровневый интерфейс для кэша - чтоб было легко закэшировать результат всей функции;
+INPROGRESS [cache] Более высокоуровневый интерфейс для кэша     чтобы  было легко закэшировать результат всей функции;
 INPROGRESS [cache] Соответственно, простые средства для инвалидации кэша;
 INPROGRESS [SQL ORM] Более продвинутые и высокоуровневые функции генерации SQL;
 ? [SQL] Слой абстракции от диалекта SQL;
@@ -14,11 +14,11 @@ INPROGRESS [SQL ORM] Более продвинутые и высокоуровн
 ! [DOC] Документация ко всей этой красоте.
 * [TEST PUT] Протестировать поддержку PUT web-сервером;

-DONE Генерация структуры Form по Model (с возможностью переопределить, или просто не использовать);
+DONE Генерация структуры Form по Model                  с возможностью переопределить, или просто не использовать;
 DONE Бэкенд для MySQL;
 DONE Чтение конфига из файла либо удобный EDSL для конфига;
 DONE Перенести текущий правленный Network.Shed.Httpd в дерево проекта (написать свой?);
 DONE Лучше интегрировать Httpd в движок, в частности - чтоб средствами движка писал логи итп;
-DONE Лучше формализовать формат запроса (reqMethod=="GET" -> reqMethod==GET итп), вероятно, следует привести в соответствие с Network.HTTP;
+DONE Лучше формализовать формат запроса        reqMethod=="GET" -> reqMethod==GET итп, вероятно, следует привести в соответствие с Network.HTTP;
 DONE При отдаче статики не коннектиться к БД и прочему;
-DONE Отдельная структура (и модуль?) для конфига (StaticConfig в нынешнем виде должна стать промежуточной структурой, заполняемой из конфига);
+DONE Отдельная структура (и модуль?) для конфига      StaticConfig в нынешнем виде должна стать промежуточной структурой, заполняемой из конфига;
diff --git a/graph.dot b/graph.dot
index 1576083..15e88b1 100644
--- a/graph.dot
+++ b/graph.dot
@@ -1,81 +1,471 @@
 digraph G {
-u49[label="TemplateParser"];
-u48[label="Settings"];
-u45[label="Models"];
-u0[label="Main",color=green];
-
+u76[label="TemplateParser"];
+u75[label="TemplateGen"];
+u73[label="Templates"];
+u71[label="Models"];
+u70[label="Invalidation"];
+u0[label="Main"];
 subgraph cluster_0 {
+label="Extensions";
+color="#ccffcc";
+style="filled";
+u69[label="Signals"];
+u68[label="Middlewares"];
+u66[label="Handlers"];
+u63[label="FormProcessors"];
+u59[label="Context"];
+
+}
+subgraph cluster_1 {
 label="Framework";
+color="#ccffcc";
+style="filled";
+u53[label="Pager"];
+u52[label="ContextProcessors"];
+u30[label="Wrapper"];
+u29[label="Urls"];
+u26[label="ORM"];
+u25[label="Storage"];
+u22[label="Cache"];
+u21[label="Config"];
+u18[label="SignalTypes"];
+u15[label="Signals"];
+u11[label="Utils"];
+u9[label="Logger"];
+u8[label="Exceptions"];
+u6[label="Controller"];
+u5[label="Pool"];
+u2[label="Types"];
+u1[label="API"];
+subgraph cluster_2 {
+label="API";
+color="#99ff99";
+style="filled";
+u50[label="Logger"];
+u47[label="UserMessage"];
+u46[label="CRUD"];
+u39[label="SQLUtils"];
+u38[label="SQL"];
+u37[label="Storage"];
+u36[label="Sessions"];
+u35[label="Cache"];

-api[label="API",shape=box];
-forms[label=Forms,shape=box];
-tengine[label=TEngine,shape=box];
-u47[label="Markdown"];
-u44[label="Pager"];
-u43[label="ContextProcessors"];
+}
+subgraph cluster_3 {
+label="Cache";
+color="#99ff99";
+style="filled";
+u24[label="Instances"];
+u23[label="Cache"];
+u4[label="Types"];

-subgraph cluster_1 {
-color=gray;
-label=DB;
-orm[label="ORM",shape=box];
-u19[label="Storage"];
 }
+subgraph cluster_4 {
+label="Forms";
+color="#99ff99";
+style="filled";
+u49[label="Validators"];
+u48[label="ModelForm"];
+u43[label="Validation"];
+u42[label="HTML"];
+u41[label="Rendering"];
+u40[label="Types"];
+u17[label="HTMLTypes"];

-cache[label="Cache",shape=box];
-u15[label="Config"];
-u12[label="GetText"];
+}
+subgraph cluster_5 {
+label="GetText";
+color="#99ff99";
+style="filled";
+u64[label="HTML"];
+u33[label="Init"];
+u14[label="IO"];
+u13[label="Controller"];
+
+}
+subgraph cluster_6 {
+label="Http";
+color="#99ff99";
+style="filled";
+u45[label="PostParser"];
+u44[label="Vars"];
+u34[label="Static"];
+u32[label="Middlewares"];
+u31[label="Sessions"];
+u20[label="HTTPServer"];
+u19[label="Cookies"];
+u12[label="Httpd"];
+u10[label="Response"];
+u3[label="SessionTypes"];
+
+}
+subgraph cluster_7 {
+label="Modules";
+color="#99ff99";
+style="filled";
+u55[label="SHA1"];
+subgraph cluster_8 {
+label="Auth";
+color="#66ff66";
+style="filled";
+u67[label="Handlers"];
+u61[label="ShowForm"];
+u60[label="Context"];
+u57[label="Utils"];
+u56[label="Models"];
+u54[label="Controllers"];
+
+}
+subgraph cluster_9 {
+label="Formatters";
+color="#66ff66";
+style="filled";
+u72[label="Markdown"];
+
+}
+subgraph cluster_10 {
+label="Registration";
+color="#66ff66";
+style="filled";
+u62[label="Context"];
+u58[label="Forms"];
+
+}
+subgraph cluster_11 {
+label="TextCaptcha";
+color="#66ff66";
+style="filled";
+u65[label="FormProcessors"];
+
+}
+
+}
+subgraph cluster_12 {
+label="ORM";
+color="#99ff99";
+style="filled";
+u28[label="SQL"];
+u27[label="Models"];
+u16[label="Types"];
+
+}
+subgraph cluster_13 {
+label="TEngine";
+color="#99ff99";
+style="filled";
+u74[label="TemplateFuncs"];
+u51[label="TemplateUtil"];
+u7[label="Types"];

-subgraph cluster_3 {
-color=gray;
-label=Network;
-http[label=HTTP,shape=box,color=red];
-u25[label="Wrapper"];
-u24[label="Urls"];
 }

 }
-api -> cache;
-api -> forms;
-api -> http;
-api -> orm;
-api -> tengine;
-api -> u12;
-api -> u19;
-api -> u24;
-api -> u44;
-forms -> api;
-forms -> http;
-forms -> orm;
-forms -> u48;
-http -> cache;
-http -> u12;
-http -> u15;
-http -> u19;
-http -> u24;
-http -> u48;
-tengine -> api;
-tengine -> cache;
-tengine -> http;
-tengine -> u43;
-tengine -> u45;
-u0 -> api;
-u0 -> u45;
-u19 -> orm;
-u24 -> http;
-u24 -> u25;
-u25 -> cache;
-u25 -> http;
-u25 -> u19;
-u43 -> api;
-u44 -> api;
-u44 -> forms;
-u44 -> http;
-u44 -> orm;
-u45 -> forms;
-u45 -> orm;
-u45 -> u47;
-u48 -> forms;
-u48 -> tengine;
+u75 -> u11;
+u75 -> u76;
+u74 -> u7;
+u73 -> u11;
+u73 -> u7;
+u73 -> u74;
+u73 -> u71;
+u71 -> u7;
+u71 -> u40;
+u71 -> u42;
+u71 -> u49;
+u71 -> u48;
+u71 -> u26;
+u71 -> u72;
+u70 -> u18;
+u70 -> u26;
+u70 -> u35;
+u70 -> u38;
+u70 -> u71;
+u69 -> u18;
+u69 -> u70;
+u67 -> u6;
+u67 -> u11;
+u67 -> u47;
+u67 -> u36;
+u67 -> u10;
+u66 -> u2;
+u66 -> u6;
+u66 -> u7;
+u66 -> u51;
+u66 -> u67;
+u65 -> u6;
+u65 -> u44;
+u65 -> u40;
+u65 -> u42;
+u65 -> u48;
+u64 -> u6;
+u64 -> u40;
+u64 -> u13;
+u63 -> u40;
+u63 -> u64;
+u63 -> u65;
+u62 -> u2;
+u62 -> u7;
+u62 -> u6;
+u62 -> u11;
+u62 -> u58;
+u61 -> u6;
+u61 -> u40;
+u61 -> u41;
+u61 -> u56;
+u60 -> u2;
+u60 -> u7;
+u60 -> u6;
+u60 -> u11;
+u60 -> u61;
+u59 -> u6;
+u59 -> u60;
+u59 -> u62;
+u58 -> u2;
+u58 -> u6;
+u58 -> u26;
+u58 -> u15;
+u58 -> u40;
+u58 -> u49;
+u58 -> u43;
+u58 -> u41;
+u58 -> u42;
+u58 -> u44;
+u58 -> u10;
+u58 -> u38;
+u58 -> u37;
+u58 -> u36;
+u58 -> u56;
+u58 -> u55;
+u57 -> u1;
+u56 -> u7;
+u56 -> u40;
+u56 -> u42;
+u56 -> u49;
+u56 -> u26;
+u54 -> u40;
+u54 -> u43;
+u54 -> u1;
+u54 -> u11;
+u54 -> u55;
+u54 -> u56;
+u53 -> u40;
+u53 -> u42;
+u53 -> u16;
+u53 -> u28;
+u53 -> u38;
+u53 -> u2;
+u53 -> u11;
+u53 -> u6;
+u53 -> u44;
+u52 -> u2;
+u52 -> u7;
+u52 -> u11;
+u52 -> u6;
+u52 -> u36;
+u52 -> u44;
+u52 -> u59;
+u51 -> u10;
+u51 -> u2;
+u51 -> u7;
+u51 -> u6;
+u51 -> u36;
+u51 -> u35;
+u51 -> u22;
+u51 -> u52;
+u51 -> u73;
+u50 -> u2;
+u50 -> u6;
+u50 -> u9;
+u49 -> u40;
+u48 -> u40;
+u48 -> u49;
+u48 -> u42;
+u48 -> u26;
+u47 -> u6;
+u47 -> u36;
+u46 -> u2;
+u46 -> u11;
+u46 -> u6;
+u46 -> u44;
+u46 -> u10;
+u46 -> u16;
+u46 -> u39;
+u46 -> u47;
+u46 -> u40;
+u46 -> u41;
+u46 -> u48;
+u46 -> u13;
+u45 -> u2;
+u45 -> u11;
+u44 -> u2;
+u44 -> u11;
+u44 -> u12;
+u44 -> u45;
+u43 -> u2;
+u43 -> u26;
+u43 -> u44;
+u43 -> u40;
+u43 -> u42;
+u42 -> u40;
+u42 -> u11;
+u42 -> u2;
+u41 -> u2;
+u41 -> u11;
+u41 -> u6;
+u41 -> u40;
+u41 -> u42;
+u41 -> u43;
+u41 -> u26;
+u41 -> u36;
+u41 -> u10;
+u41 -> u63;
+u40 -> u2;
+u40 -> u16;
+u40 -> u6;
+u40 -> u17;
+u39 -> u2;
+u39 -> u6;
+u39 -> u8;
+u39 -> u15;
+u39 -> u40;
+u39 -> u41;
+u39 -> u43;
+u39 -> u26;
+u39 -> u38;
+u39 -> u37;
+u38 -> u2;
+u38 -> u6;
+u38 -> u25;
+u38 -> u16;
+u38 -> u28;
+u38 -> u27;
+u37 -> u2;
+u37 -> u6;
+u37 -> u16;
+u37 -> u25;
+u36 -> u2;
+u36 -> u6;
+u36 -> u31;
+u35 -> u2;
+u35 -> u6;
+u35 -> u22;
+u35 -> u10;
+u34 -> u2;
+u34 -> u11;
+u34 -> u10;
+u32 -> u2;
+u32 -> u11;
+u32 -> u33;
+u32 -> u21;
+u32 -> u68;
+u31 -> u2;
+u31 -> u11;
+u31 -> u19;
+u31 -> u3;
+u30 -> u31;
+u30 -> u25;
+u30 -> u10;
+u30 -> u22;
+u30 -> u2;
+u30 -> u11;
+u29 -> u11;
+u29 -> u2;
+u29 -> u30;
+u29 -> u6;
+u29 -> u8;
+u29 -> u31;
+u29 -> u10;
+u28 -> u16;
+u28 -> u27;
+u27 -> u7;
+u27 -> u16;
+u26 -> u16;
+u26 -> u27;
+u26 -> u28;
+u25 -> u2;
+u25 -> u26;
+u25 -> u5;
+u24 -> u11;
+u24 -> u4;
+u23 -> u5;
+u23 -> u4;
+u23 -> u24;
+u22 -> u4;
+u22 -> u23;
+u21 -> u2;
+u20 -> u21;
+u20 -> u4;
+u20 -> u22;
+u20 -> u25;
+u20 -> u5;
+u20 -> u9;
+u20 -> u2;
+u20 -> u8;
+u20 -> u29;
+u20 -> u11;
+u20 -> u10;
+u20 -> u32;
+u20 -> u12;
+u20 -> u34;
+u19 -> u2;
+u19 -> u11;
+u18 -> u6;
+u18 -> u16;
+u17 -> u2;
+u16 -> u2;
+u16 -> u17;
+u15 -> u6;
+u15 -> u16;
+u15 -> u18;
+u15 -> u69;
+u13 -> u6;
+u13 -> u14;
+u12 -> u2;
+u12 -> u9;
+u11 -> u12;
+u11 -> u2;
+u10 -> u2;
+u10 -> u11;
+u10 -> u12;
+u9 -> u2;
+u8 -> u2;
+u8 -> u6;
+u8 -> u9;
+u8 -> u10;
+u8 -> u66;
+u6 -> u2;
+u6 -> u7;
+u2 -> u3;
+u2 -> u4;
+u2 -> u5;
+u1 -> u2;
+u1 -> u6;
+u1 -> u8;
+u1 -> u13;
+u1 -> u15;
+u1 -> u19;
+u1 -> u20;
+u1 -> u35;
+u1 -> u36;
+u1 -> u37;
+u1 -> u38;
+u1 -> u39;
+u1 -> u46;
+u1 -> u50;
+u1 -> u47;
+u1 -> u7;
+u1 -> u51;
+u1 -> u41;
+u1 -> u53;
+u1 -> u44;
+u1 -> u29;
+u1 -> u26;
+u1 -> u10;
+u0 -> u1;
+u0 -> u11;
+u0 -> u54;
+u0 -> u57;
+u0 -> u58;
+u0 -> u71;

 }
ViewGit