From: Wolfgang T. <wth...@us...> - 2005-07-23 06:26:26
|
Update of /cvsroot/hoc/hoc/HOC/HOC In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21860 Modified Files: DeclareClass.hs DeclareSelector.hs Log Message: Reduce code size by another 20%. When we use stringE rather than lifting a string into a quote, the unpackCString# optimisation does work. Index: DeclareClass.hs =================================================================== RCS file: /cvsroot/hoc/hoc/HOC/HOC/DeclareClass.hs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- DeclareClass.hs 6 Dec 2004 03:46:51 -0000 1.2 +++ DeclareClass.hs 23 Jul 2005 06:26:17 -0000 1.3 @@ -34,7 +34,7 @@ (normalB [| unsafeGetClassObject $(stringE name) |]) [], -- $(superName) = "super" - valD (return $ VarP (mkName superName)) (normalB [| super |]) [] + valD (return $ VarP (mkName superName)) (normalB $ stringE super) [] ] where phantomName = name ++ "_" Index: DeclareSelector.hs =================================================================== RCS file: /cvsroot/hoc/hoc/HOC/HOC/DeclareSelector.hs,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- DeclareSelector.hs 23 Jul 2005 06:09:26 -0000 1.6 +++ DeclareSelector.hs 23 Jul 2005 06:26:17 -0000 1.7 @@ -139,10 +139,11 @@ let e = [| undefined |] `sigE` (return $ simplifyType doctoredTypeSig) in valD (varP $ mkName $ infoName) (normalB [| - let n = name - hn = $(if haskellName == name then [|n|] else [|haskellName|]) + let n = $(stringE name) in SelectorInfo n - hn + $(if haskellName == name + then [|n|] + else stringE haskellName) (getCifForSelector $(e)) (getSelectorForName n) nArgs |