
I just released yesod-json 0.1.1, which provides the instance described by JP.
Michael
On Fri, Apr 29, 2011 at 6:11 PM, Anton Cheshkov
What package do need to upgrade to get away this problem ? Thanks.
2011/4/29 Greg Weber
As an alternative to orphan instances, given the recent refactoring it should be easy to now make Julius (and Coffee) a separate package (with the aeson dependency). On Fri, Apr 29, 2011 at 7:45 AM, Michael Snoyman
wrote: On Fri, Apr 29, 2011 at 5:32 PM, JP Moresmau
wrote: Right, found it.
> instance (ToJSON a)=> ToJavascript a where > toJavascript =toJavascript . toJSON
That used to work but now seems to go into an infinite loop. I've replaced it by:
instance (ToJSON a)=> ToJavascript a where toJavascript =fromLazyText . decodeUtf8 . encode . toJSON
Unfortunately, that's the best we can do here, since Javascript only works with Text, and aeson only works with ByteString.
and everything works again. Not very elegant, have I missed something? Shouldn't that instance be part of Yesod somewhere? I mean if we standardize on Aeson, and we want variables in Javascript, it makes sense to serialize ToJSON instances in a Julius template.
Good catch, it's supposed to be in yesod-json, but it's commented out right now. It was probably part of the changeover from json-types to aeson and got forgotten. I'm not a huge fan of the placement of this instance (it *is* an orphan), but the alternative is adding aeson as a dependency to hamlet.
Michael
JP
On Fri, Apr 29, 2011 at 4:06 PM, JP Moresmau
wrote: juliusFile, I'm not running any scaffolded site, I've built everything with 1s and 0s. (-: Changing to juliusFileDebug results in the same behavior.
JP
On Fri, Apr 29, 2011 at 3:56 PM, Michael Snoyman
wrote: Are you running juliusFile or juliusFileDebug? (The scaffolded site uses the latter by default.)
Michael
On Fri, Apr 29, 2011 at 4:52 PM, JP Moresmau
wrote: > Hi all, > > I've just upgraded to Yesod 0.8. I've changed all my Strings into > Texts, and all my Data.JSON.Types into Data.Aeson.Types. I use these > JSON objects in julius templates, by adding the orphan instance: > instance (ToJSON a)=> ToJavascript a where > toJavascript =toJavascript . toJSON > > (Removing that instance causes compilation error, and I had it when > I > was using json-types). > addJulius works fine when it contains Javascript code. However on > one > page I use juliusFile to load an external template. This eats all my > memory and never returns under Warp when I launch the compiled exe > (I > see "thread killed" messages in the console, though), and in GHCi > crashes with "out of memory". > The code hasn't changed and was working fine in yesod 0.7 before the > upgrade. If I remove juliusFile the page displays instantly. > > Any idea? I'm a bit stumped. I suppose I'm going to remove each of > my > variables in the julius file to narrow it down, but if anybody has > any > insight... > > Thanks! > > -- > JP Moresmau > http://jpmoresmau.blogspot.com/ > > _______________________________________________ > web-devel mailing list > web-devel@haskell.org > http://www.haskell.org/mailman/listinfo/web-devel > -- JP Moresmau http://jpmoresmau.blogspot.com/
-- JP Moresmau http://jpmoresmau.blogspot.com/
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel
-- Best regards, Cheshkov Anton Phone: +7 909 005 18 82 Skype: cheshkov_anton