Commit Graph

520 Commits

Author SHA1 Message Date
Michael Snoyman
b93a5d1993 Merge branch 'master' into yesod-1.4
Conflicts:
	yesod-core/test/YesodCoreTest/CleanPath.hs
	yesod-persistent/yesod-persistent.cabal
2014-06-09 11:22:30 +03:00
Michael Snoyman
0a3ae4ef66 Merge remote-tracking branch 'origin/master' into yesod-1.4 2014-06-01 16:12:36 +03:00
Michael Snoyman
82de52e3d2 Various additional WAI 3.0 fixes 2014-05-22 21:04:28 +03:00
Michael Snoyman
71263ae047 Initial WAI 3.0 support, one test still failing 2014-05-22 20:17:29 +03:00
Michael Snoyman
cbbeb3b7f6 exceptions 0.6 2014-05-05 21:20:26 +03:00
Michael Snoyman
e9311d0e1f ToWidget instances for Css, JS 2014-04-23 16:31:13 +03:00
Michael Snoyman
fe622d5345 Merge remote-tracking branch 'origin/master' into yesod-1.4
Conflicts:
	yesod-auth/yesod-auth.cabal
	yesod-form/Yesod/Form/Fields.hs
	yesod-form/yesod-form.cabal
	yesod-persistent/Yesod/Persist/Core.hs
2014-04-18 14:33:54 +03:00
Michael Snoyman
03a39a05f7 Export defaultYesodMiddleware and authorizationCheck 2014-04-17 07:54:37 +03:00
Michael Snoyman
dfd7965b6b Workarounds for older bytestrings 2014-04-16 14:31:54 +03:00
Michael Snoyman
e036f934f6 Add MonadCatch for WidgetT 2014-04-14 08:32:55 +03:00
Michael Snoyman
7133f75bf3 Note about strictness annotations 2014-04-10 20:36:46 +03:00
Michael Snoyman
b67d225f56 Use mplus (thanks @meteficha) 2014-04-10 20:30:14 +03:00
Michael Snoyman
4dc7a1258c Deeply evaluate session and headers #712 2014-04-10 20:21:49 +03:00
Michael Snoyman
b8a73d9b7f defaultMiddlewares and MonadCatch instance 2014-04-10 15:04:29 +03:00
Michael Snoyman
5a24477316 Fix some CPP 2014-04-09 07:40:38 +03:00
Michael Snoyman
7512cc2bfc Add ToContent etc instance for Css and Javascript 2014-04-03 12:23:38 +03:00
Michael Snoyman
5edb77eb80 Use defaultShouldDisplayException 2014-03-30 09:38:36 +03:00
Michael Snoyman
76cff2ab23 MonadReader instance for HandlerT and WidgetT 2014-03-28 13:15:51 +03:00
Michael Snoyman
d764464152 conduit 1.1 2014-03-27 16:38:52 +02:00
Michael Snoyman
60b4684119 Drop usage of failure 2014-03-26 10:38:51 +02:00
Michael Snoyman
827b1d4bd2 Merge remote-tracking branch 'origin/master' into persistent2-simpler-dispatch 2014-03-20 20:38:14 +02:00
Michael Snoyman
24e8e53f64 Merge remote-tracking branch 'origin/master' into persistent2-simpler-dispatch
Conflicts:
	.gitignore
	yesod-core/yesod-core.cabal
2014-03-20 04:14:09 +02:00
Felipe Lessa
ddf64c1481 Helper data type for redirecting with fragment identifiers. 2014-03-19 19:52:17 -03:00
Michael Snoyman
c36dbf9302 Add missing import 2014-03-12 06:50:33 +02:00
Greg Weber
4b8cb247ce add forkHandler. closes #680
Also fix import warnings in Handler
2014-03-11 18:33:45 -07:00
Greg Weber
8535f19583 use fewer imports 2014-03-11 17:14:24 -07:00
Michael Snoyman
56e42936b0 sendRawResponse 2014-03-06 16:34:27 +02:00
Greg Weber
a62157097c parseJsonBody_ -> requireJsonBody. closes #678 2014-03-04 10:06:56 -08:00
Michael Snoyman
c19088d569 Switch yesod-core to use simpler dispatch 2014-03-04 13:46:03 +02:00
Michael Snoyman
f4bbe1cc52 Set content-length whenever evaluating a response body 2014-03-02 14:30:46 +02:00
Michael Snoyman
9ec14e7f53 Log exceptions from Warp 2014-02-05 09:48:33 +02:00
Michael Snoyman
e7bddafcbb Merge pull request #662 from yesodweb/never-expires-cache-control
add cache-control to neverExpires
2014-02-03 20:30:31 -08:00
Greg Weber
f20c236d50 add cache-control to neverExpires 2014-02-03 16:33:29 -08:00
Michael Snoyman
86b7f5ea43 Test case and fix for notCaught3 in #658 2014-01-27 17:20:02 +02:00
Michael Snoyman
807ff497f9 aeson 0.7 support 2014-01-15 19:12:57 +02:00
Michael Snoyman
45eadd3e09 fast-logger 2.1 support 2013-12-26 13:53:39 +02:00
Michael Snoyman
d4998d2246 Temp file upload changes in wai-extra 2.0.1 #630 2013-12-13 06:45:40 +02:00
Michael Snoyman
cf0fad20bc Merge branch 'master' of github.com:yesodweb/yesod 2013-12-03 12:34:55 +02:00
Michael Snoyman
cca38cfe03 Expand prefix on generated identifiers #625 2013-12-03 12:01:11 +02:00
Michael Snoyman
c670c54ba4 fast-logger 2.0 2013-12-03 11:55:39 +02:00
Michael Snoyman
b18e43c050 Incomplete fast-logger 2.0 changes 2013-12-02 19:40:03 +02:00
Michael Snoyman
3330e89e10 Merge remote-tracking branch 'origin/master' into wai-2.0 2013-11-12 19:40:51 +02:00
Michael Snoyman
11b49dfe9e Merge remote-tracking branch 'origin/master' into HEAD 2013-11-12 19:29:34 +02:00
Michael Snoyman
dce5ea942e Fix a faulty rewrite rule 2013-11-12 19:29:18 +02:00
Michael Snoyman
d34c3f26dc WAI 2.0 updates 2013-11-10 16:49:26 +02:00
Michael Snoyman
6f495fc758 Merge branch 'master' into wai-2.0
Conflicts:
	yesod-static/yesod-static.cabal
2013-11-10 13:46:58 +02:00
Michael Snoyman
3a9fa33b7e Export a TH-used identifier #609 2013-10-13 12:11:15 +03:00
Michael Snoyman
5b379067b2 Add warning about calling parseJsonBody twice 2013-09-08 16:52:56 +02:00
Michael Snoyman
366127527a Fix some CPP 2013-08-19 13:20:44 +03:00
Michael Snoyman
2d0f560bea wai 2.0 2013-08-19 12:51:54 +03:00
Michael Snoyman
aa5781d4e4 shouldLogIO 2013-08-07 07:22:28 +03:00
Michael Snoyman
d5b66d35d5 Allow overriding status code in error handlers 2013-08-04 08:55:42 +03:00
Jonathan Fischoff
28e7bc26b8 Adding a ToTypedContent constraint to yesodMiddleware for response logging, etc. 2013-06-17 14:24:50 -07:00
Michael Snoyman
8e5c419dd5 Move some Yesod exports to Yesod.Core 2013-06-06 10:05:22 +03:00
Michael Snoyman
772563c46b lookupHeader/lookupHeaders 2013-05-30 08:31:24 +03:00
Michael Snoyman
743966898d Move away from RepHtml some more 2013-05-20 09:16:53 +03:00
Michael Snoyman
44c5b03a6e Deprecate hamletToRepHtml 2013-05-19 19:33:48 +03:00
Michael Snoyman
89203d0630 returnJson and provideJson 2013-05-09 08:39:06 +03:00
Greg Weber
eb779fb0f6 document UniqueList 2013-05-06 16:57:13 -05:00
Felipe Lessa
5c434b089a Rewrite handlerToIO so that it works with Yesod 1.2.
Since the new YesodRequest has strict fields, handlerToIO didn't
work at all.  Even if it did, it had a reference to its parent's
ResourceT's internal state, so its chances of blowing up were
quite high.

The new implementation takes a whitelist approach of taking what
we want instead of clearing what we do not want.  Also, it takes
care of using a new runResourceT.
2013-05-03 21:20:31 -03:00
Felipe Lessa
c19501b1d8 yesod-core: New 'customizeSessionCookies' helper function. 2013-05-03 20:56:52 -03:00
Michael Snoyman
3956958b7a Better Show HandlerContents 2013-05-01 14:38:21 +03:00
Michael Snoyman
abd4cc5fc2 Export yesodRunner 2013-04-23 11:55:27 +03:00
Michael Snoyman
16260f3e37 RouteAttrs (fixes #531) 2013-04-21 17:14:40 +03:00
Michael Snoyman
a013eb2295 maximumContentLength is a Maybe 2013-04-18 10:19:50 +03:00
Michael Snoyman
64ef26104d Route attributes/appcache example #518 2013-04-11 17:07:22 +03:00
Michael Snoyman
307540fc04 GHC 7.6.2 2013-04-09 06:43:30 +03:00
Greg Weber
a357922d39 setHeader -> addHeader 2013-04-03 15:24:12 -07:00
Greg Weber
8429a66ad8 not authenticated returns 401, not 403 2013-04-03 07:47:32 -07:00
Michael Snoyman
e663e84caf Deprecate setHeader, provide addHeader #524 2013-04-03 17:28:44 +03:00
Greg Weber
18be9bc206 accept header content negotiation
* look at wildcards */* and main/*
* return a 406 when nothing matches the accept header
2013-04-02 08:39:56 -07:00
Greg Weber
be04f4888b fix yesod-core auth response type for json 2013-04-02 08:27:30 -07:00
Michael Snoyman
f2072747ce Include Yesod in server name 2013-04-02 14:58:02 +03:00
Michael Snoyman
6d98103115 Generalized sendChunk* functions 2013-03-27 09:46:10 +02:00
Michael Snoyman
d4422b656b LiteApp uses a Writer monad 2013-03-27 08:51:03 +02:00
Michael Snoyman
ae65603c4b Generalize streaming functions 2013-03-24 22:11:59 +02:00
Michael Snoyman
f3b459e9ce respond 2013-03-22 10:33:33 +02:00
Michael Snoyman
8ab09931c4 Code cleanup and transformer instances 2013-03-22 09:17:14 +02:00
Michael Snoyman
c16184eb40 Type-specialized versions of sendChunk 2013-03-21 11:42:20 +02:00
Michael Snoyman
968b96e0b1 sendChunk/sendFlush 2013-03-21 08:42:10 +02:00
Michael Snoyman
ff3eb746f1 Added some docs 2013-03-21 08:30:09 +02:00
Michael Snoyman
8c45b2709f respondSource 2013-03-20 13:49:43 +02:00
Michael Snoyman
68ca768b83 Export more aeson stuff 2013-03-20 11:57:00 +02:00
Michael Snoyman
fb4045ea45 Warning cleanup 2013-03-20 11:46:32 +02:00
Michael Snoyman
cf77d86a6a Use new mkParseRouteInstance in yesod-core 2013-03-19 15:17:28 +02:00
Michael Snoyman
564fdab66b SimpleApp to LiteApp 2013-03-18 12:18:49 +02:00
Michael Snoyman
0fc1c6cfef SimpleApp 2013-03-18 12:13:26 +02:00
Michael Snoyman
da24596b77 Incomplete SimpleApp 2013-03-18 05:12:04 +02:00
Michael Snoyman
2a719941ca Some parsing fixes (not complete) 2013-03-17 13:35:30 +02:00
Michael Snoyman
bca0d24533 Route parsing 2013-03-17 13:28:17 +02:00
Michael Snoyman
3b121ccde5 More cleanups 2013-03-17 12:46:55 +02:00
Michael Snoyman
090191bec3 Include warp etc in Yesod.Core 2013-03-17 12:39:04 +02:00
Michael Snoyman
beac5d56db Minor TH cleanup 2013-03-17 12:08:58 +02:00
Michael Snoyman
4295346171 Split files up a bit more 2013-03-17 11:38:33 +02:00
Michael Snoyman
172f706924 Re-export some classes/methods 2013-03-17 11:28:57 +02:00
Michael Snoyman
a2c4f1f3b7 MonadHandler/MonadWidget 2013-03-17 10:10:39 +02:00
Michael Snoyman
8b9f8ea024 Some convenience re-exports 2013-03-15 05:54:09 +02:00
Michael Snoyman
cd2f0ed610 More useful defaultClientSessionBackend 2013-03-15 05:41:50 +02:00
Michael Snoyman
44a01d7107 Better fileSource 2013-03-14 19:02:20 +02:00
Michael Snoyman
326c13d8b4 House cleaning 2013-03-14 18:32:35 +02:00
Michael Snoyman
15bbd54e12 Some cleanup 2013-03-14 10:23:57 +02:00
Michael Snoyman
9c4cd573b4 Everything compiles 2013-03-14 09:28:51 +02:00
Michael Snoyman
55d13c62a6 whitespace fix for tests 2013-03-14 07:36:09 +02:00
Michael Snoyman
0f1637a1aa Implemented rawRequestBody 2013-03-14 07:35:09 +02:00
Michael Snoyman
8e793c70cc Compiles again, tests fails 2013-03-14 07:32:40 +02:00
Michael Snoyman
c466845095 More incomplete changes 2013-03-14 05:58:37 +02:00
Michael Snoyman
553dff7bd2 Incomplete change: GWidget/GHandler->WidgetT/HandlerT 2013-03-14 05:00:16 +02:00
Michael Snoyman
099b96f178 Everything compiles 2013-03-13 13:35:11 +02:00
Michael Snoyman
4bdd01ef58 Simplified GHandler/GWidget 2013-03-13 10:59:10 +02:00
Michael Snoyman
fc6551c650 defaultLayoutT 2013-03-13 10:15:47 +02:00
Michael Snoyman
0633d0b259 Beginning of subsite TH overhaul 2013-03-13 09:14:24 +02:00
Michael Snoyman
2aefef4414 YesodSubDispatch 2013-03-13 08:48:28 +02:00
Michael Snoyman
9a53092be7 Remove yreRoute 2013-03-13 07:20:20 +02:00
Michael Snoyman
815e185a4b Slight simplification to YesodDispatch typeclass 2013-03-13 07:12:19 +02:00
Michael Snoyman
0a54826157 Simplified SessionBackend 2013-03-12 16:29:48 +02:00
Michael Snoyman
cf3fe53cd4 Initial HandlerT 2013-03-12 16:14:29 +02:00
Michael Snoyman
a2d26e096d Move session header logic to yarToResponse 2013-03-12 10:41:17 +02:00
Michael Snoyman
77f41a18dd Removed localNoCurrent for error handling 2013-03-12 10:33:02 +02:00
Michael Snoyman
062efc9ae3 More code movement 2013-03-12 10:30:34 +02:00
Michael Snoyman
845258e544 Removed some dead code 2013-03-12 10:26:43 +02:00
Michael Snoyman
04a034770b Beginning of a dispatch overhaul 2013-03-12 10:21:26 +02:00
Michael Snoyman
9873b4d8f3 Moved code around some more 2013-03-12 05:49:24 +02:00
Michael Snoyman
e2cd292877 yesod-auth doesn't use redirects for JSON requests (fixes #479) 2013-03-11 11:37:45 +02:00
Michael Snoyman
8246aa4c1e Whole repo compiles 2013-03-11 11:25:26 +02:00
Michael Snoyman
2af304bd7f Provide JSON reps for default error message handler (fixes #478) 2013-03-11 11:10:00 +02:00
Michael Snoyman
f3f55a1ecd RepHtml is a synonym for Html 2013-03-11 10:54:26 +02:00
Michael Snoyman
1d0cac6e03 TypedContent 2013-03-11 10:45:01 +02:00
Michael Snoyman
d2f5ca449d selectRep/provideRep API 2013-03-11 09:08:34 +02:00
Michael Snoyman
81ec09bf63 Some more rearranging 2013-03-11 07:29:43 +02:00
Michael Snoyman
e673c1f35e Removed some subsite stuff 2013-03-11 07:23:30 +02:00
Michael Snoyman
2c2ee10dd7 Converted Yesod.Handler to typeclasses 2013-03-11 07:08:03 +02:00
Michael Snoyman
8f8e986839 Started on the Handler typeclasses 2013-03-11 06:00:50 +02:00
Michael Snoyman
8d5f207c8d Removed Yesod.Internal.TestApi 2013-03-10 15:21:54 +02:00
Michael Snoyman
5c4ddfad6c Removed Yesod.Internal 2013-03-10 15:18:58 +02:00
Michael Snoyman
9559c2a345 Typeable-based cache implementation (#268) 2013-03-10 15:05:40 +02:00
Michael Snoyman
1a5793e2b9 Removed Yesod.Request 2013-03-10 14:38:52 +02:00
Michael Snoyman
070e0aa8b3 Make RandomGen parameter optional 2013-03-10 14:34:00 +02:00
Michael Snoyman
5b5203a275 Removed yepnope 2013-03-10 14:20:39 +02:00
Michael Snoyman
0e2fee8da3 Removed messageLogger 2013-03-10 14:17:53 +02:00
Michael Snoyman
0c4643422c safeEh logs properly 2013-03-10 14:14:44 +02:00
Michael Snoyman
1b8a1b9d42 Removed unneeded conditional 2013-03-10 14:04:45 +02:00
Michael Snoyman
ee01aaf268 Better error handling and auth checking 2013-03-10 14:03:10 +02:00
Michael Snoyman
7e2338aaa1 Unified some datatypes 2013-03-10 13:33:52 +02:00
Michael Snoyman
4ece5fafd9 Removed handlerToYAR 2013-03-10 13:24:23 +02:00
Michael Snoyman
e4683ed001 .Class and .Run modules 2013-03-10 12:56:32 +02:00
Michael Snoyman
1bd193f642 Initial YesodRequest/YesodRespnse change 2013-03-10 11:58:29 +02:00
Michael Snoyman
4f1a6b461e BackendSession => SessionMap 2013-03-10 11:13:19 +02:00
Michael Snoyman
98613278d4 Yesod.Core.Types created, but it's a mess 2013-03-10 11:02:53 +02:00
Michael Snoyman
20091656aa Make Felipe's session code the default (#415) 2013-03-10 10:08:20 +02:00
Michael Snoyman
2377d70ec8 Merge branch 'master' into yesod1.2
Conflicts:
	yesod-json/yesod-json.cabal
2013-03-10 09:49:28 +02:00
Michael Snoyman
afd700753c Use RequestBodyLength 2013-03-10 05:26:34 +02:00
Michael Snoyman
eda98f96db Merge remote-tracking branch 'origin/master' into yesod1.2
Conflicts:
	yesod-core/yesod-core.cabal
	yesod-json/yesod-json.cabal
2013-03-10 05:10:13 +02:00
Michael Snoyman
a73cac167e wai 1.4 2013-02-18 12:39:20 +02:00
Michael Snoyman
a1734e0e18 conduit 1.0 support 2013-02-13 11:45:50 +02:00
Michael Snoyman
8eb898931a Merge branch 'master' into yesod1.2 2013-02-12 16:59:40 +02:00
Michael Snoyman
23ee947ba1 IsContent instance for ResumableSource #466 2013-02-12 15:49:59 +02:00
Michael Snoyman
ed53b20308 Merge yesod-json functionality into yesod-core (closes #487) 2013-02-12 15:42:45 +02:00
Michael Snoyman
3786362300 Add Failure instance for GHandler 2013-01-27 19:04:18 +02:00
Felipe Lessa
991f937b39 Use resolveApproot on runFakeHandler. 2013-01-25 13:55:41 -02:00
Michael Snoyman
f78559d7ed Remove deprecated Yesod.Widget functions (fixes #469) 2013-01-15 11:23:21 +02:00
Michael Snoyman
91f98c480e Removed instance Exception ErrorResponse 2013-01-15 11:12:25 +02:00
Michael Snoyman
617c1d724e Removed some FIXMEs 2013-01-02 14:26:56 +02:00
Michael Snoyman
bd05541df4 Limit request body sizes for chunked bodies 2013-01-01 11:18:07 +02:00
Michael Snoyman
bf293e6a1f Make new session code optional, keep old API 2012-12-26 19:00:45 +02:00
Michael Snoyman
f4674f9465 Merge branch 'faster-session' of https://github.com/meteficha/yesod 2012-12-26 18:19:22 +02:00
Michael Snoyman
9624d4bf66 Add error logging for all internal server errors (#335) 2012-12-26 16:41:24 +02:00
Michael Snoyman
0c4ded0fd1 Slightly more efficient header construction 2012-11-25 21:45:08 +02:00
David L. L. Thomas
513d6ed4f9 Bugfix - Caching redirect *only* for 301 redirects
Previous commit got it backwards.
2012-11-25 11:12:39 -08:00
David L. L. Thomas
246a024dce Allowing cache on 301 redirects 2012-11-23 13:44:31 -08:00
David L. L. Thomas
a2ad8fe704 Prevent caching of redirect
Dynamic redirects shouldn't be cached.  This especially causes a problem
with redirection to the login page, since trying to actually access the
page the user logged in to see can get them redirected back to the login
page on some browsers.

This patch adds headers to prevent caching of all redirects, which isn't
ideal, but better than allowing caching of all of them.
2012-11-21 22:39:53 -08:00
Michael Snoyman
d37b0634a5 Added yesodMiddleware method 2012-11-21 10:58:45 +02:00
Michael Snoyman
053210da6f shakespeare-js 1.0.2 and 1.1 2012-11-16 09:27:31 +02:00
Michael Snoyman
a598846bd3 Better formatting of error messages 2012-11-12 11:24:32 +02:00
Michael Snoyman
ae8168ede5 Added extra explanation from Felipe 2012-11-07 14:49:11 +02:00
Michael Snoyman
a144b56928 Warning about fork vs resourceForkIO 2012-11-07 14:35:31 +02:00
Piyush P Kurur
e32f37eadd refactored mkYesodGeneral to use mkDispatchInstance 2012-11-07 16:51:25 +05:30
Piyush P Kurur
30ddc17384 yesod-core: generic dispatch instance generation fixes #427 partially. 2012-10-26 15:23:54 +05:30
Michael Snoyman
ae23dee4ab Include level in source 2012-10-13 22:40:03 +02:00
Michael Snoyman
01b855969b CssBuilder 2012-10-11 07:35:25 +02:00
Michael Snoyman
a30cc74087 Export log*S (#405) 2012-09-23 13:44:04 +02:00
Michael Snoyman
34f2942c54 Add deprecation for messageLogger (#405) 2012-09-21 17:15:21 +03:00
Michael Snoyman
7bd06e9b7b LogSource (#405) 2012-09-21 15:01:07 +03:00
Michael Snoyman
cf4fed8cb9 Precede null path segments with dashes (#421) 2012-09-21 14:23:38 +03:00
Michael Snoyman
a6ce05609d Version bumps 2012-09-11 07:17:23 +03:00
Felipe Lessa
b2a9beba3c Use a cache for session cookie's expiration time.
The following HelloWorld app was used as benchmark:

  data HelloWorld = HelloWorld
  mkYesod "HelloWorld" [parseRoutes|
    / HomeR GET
  |]

  instance Yesod HelloWorld where
    -- makeSessionBackend = const $ return Nothing

  getHomeR = return . RepPlain . toContent $ "Hello World!"

  main :: IO ()
  main = warp 8080 HelloWorld

The benchmark was tested with httperf under the following
environments:

  [vanilla-nosession] Released yesod-core 1.1.1.1, but without sessions.

  [vanilla-session] Released yesod-core 1.1.1.1 (with sessions).

  [faster-session-1] With patch 065e33a, "Faster, leaner
  implementation of putTime/getTime".

  [faster-session-2] With this commit.

Performance results:

  A) Testing with:
       httperf --hog --client=0/1 --server=localhost \
               --port=8080 --uri=/ --rate=1000 \
               --send-buffer=4096 --recv-buffer=16384 \
               --num-conns=100 --wsess=1000,60,1 \
               --burst-length=20 --session-cookie

     Results:
       vanilla-nosession: 19187.7 req/s (0.1 ms/req)
       vanilla-session:    2523.3 req/s (0.4 ms/req)
       faster-session-1:   2933.5 req/s (0.3 ms/req)
       faster-session-2:   2957.5 req/s (0.3 ms/req)

     This test benchmarks both saving and loading the session.
     Interestingly, this commit provides only a small performance
     increase.

  B) Testing with:
       httperf --hog --client=0/1 --server=localhost \
               --port=8080 --uri=/ --rate=1000 \
               --send-buffer=4096 --recv-buffer=16384 \
               --num-conns=100 --num-calls=1000 \
               --burst-length=20

     Results:
       vanilla-nosession: 43548.7 req/s (0.0 ms/req)
       vanilla-session:    3609.4 req/s (0.3 ms/req)
       faster-session-1:   3454.9 req/s (0.3 ms/req)
       faster-session-2:   3786.9 req/s (0.3 ms/req)

     This test benchmarks only saving the session.  Strangely,
     faster-session-1 was worse than vanilla-session (while
     isolated tests show that the new putTime should be +70x
     faster).  However, there is a non-negligible performance
     increase on faster-session-2.
2012-09-05 01:35:10 -03:00
Felipe Lessa
065e33a3d1 Faster, leaner implementation of putTime/getTime.
Benchmark on my computer (per call, includes runPut/runGet):

    old putTime: 5658 ns +/- 224ns
    new putTime:  821 ns +/-  24ns (7x faster)

    old getTime: 7228 ns +/- 126ns
    new getTime:   99 ns +/-   4ns (73x faster!!)

Besides, the old format used 25 raw bytes (33.3 bytes on the
base64 output), while the new one uses 8 bytes (10.6 bytes on the
base64 output).
2012-09-05 00:41:54 -03:00
Felipe Lessa
0d95e6917d yesod-core: Whitespace. 2012-08-27 14:50:04 -03:00
Felipe Lessa
5b19865c7a yesod-core: In handlerToIO, really avoid keeping old handler data in memory. 2012-08-27 10:20:17 -03:00
Felipe Lessa
20f51e38e2 yesod-core: Doc improvements for runFakeHandler. 2012-08-21 13:38:49 -03:00
Felipe Lessa
0346dab14c yesod-core: New function runFakeHandler. 2012-08-21 13:38:42 -03:00
Felipe Lessa
dc14783c81 yesod-core: On handlerToIO, avoid 'sourceList []'. 2012-08-20 13:13:46 -03:00
Felipe Lessa
786b5bc6e2 yesod-core: On handlerToIO's docs, avoid shadowing a name. 2012-08-20 13:09:43 -03:00
Felipe Lessa
60046bad96 yesod-core: New handlerToIO function. 2012-08-20 13:07:58 -03:00
Michael Snoyman
2e87e13347 Filter missing files (#403) 2012-08-12 17:36:26 +03:00
Michael Snoyman
da33be529d Deprecated addWidget 2012-08-03 07:38:21 +03:00
Michael Snoyman
b0c6651ac6 Strictness annotations on Content 2012-07-25 08:56:46 +03:00
Michael Snoyman
c009067b11 DontFullyEvaluate (Felipe's code) 2012-07-25 08:54:43 +03:00
Michael Snoyman
f91ff4fde2 fullyEvaluateBody 2012-07-24 17:49:17 +03:00
Michael Snoyman
33c39662b9 Reflect wai changes for #262 2012-07-11 15:58:36 +03:00
Michael Snoyman
fffb3028c9 Export FileUpload (#262) 2012-07-09 15:11:24 +03:00