Camelia, the Perl 6 bug

IRC log for #darcs, 2010-06-06

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:23 kpreid_ joined #darcs
01:24 lispy joined #darcs
01:50 zooko joined #darcs
03:01 abuiles left #darcs
07:02 darcscommitbot joined #darcs
07:03 darcswikibot joined #darcs
07:38 lelit joined #darcs
07:52 twb joined #darcs
07:55 balor joined #darcs
08:45 twb joined #darcs
09:23 dhun joined #darcs
09:57 kowey joined #darcs
10:11 kowey Finally got around to making the assigned to field in the bug tracker a text field
10:11 kowey instead of a drop down menu
10:11 dhun hey kowey
10:11 dhun I heard of you since you were working on parsing of mediawiki too
10:12 kowey hello dhun, yes although not very actively and only when I need it for work
10:12 kowey dhun: you may also want to look out for tehgeekmeister
10:12 dhun I do with pandoc right now, its cool, but its slow
10:13 dhun I try with happy right now. But I got things like notfollowedby and I don't see how to do it in happy, possibly this means that mediawikis grammer can not be parsed by parsec
10:13 dhun replace pandoc with parsec
10:14 kowey pandoc uses parsec
10:15 kowey we should probably take this to #haskell
10:29 mornfall Hola.
10:32 Heffalump 'lo
10:32 * Heffalump wishes we had hunk move matches, then your patch would be much easier to check :-)
10:33 mornfall Admittedly so. :)
10:40 mornfall Bug fixxored.
10:40 mornfall \o/
10:40 mornfall But I ran into another one today. :(
10:40 mornfall That's a regression since 2.4.
10:41 mornfall Seems that get --context is broken.
10:43 mornfall Hm. And "wait" in darcs revert is broken too.
10:49 Heffalump are those connected?
11:03 mornfall No. My regression is that get --context is broken.
11:03 mornfall In HEAD (works with 2.4...).
11:03 mornfall And the wait thing is probably due to the SelectChanges refactor.
11:04 mornfall Get could be related to NewSet. (Or not.) But I don't think this is related to SelectChanges in any way.
11:18 mornfall Oh drat.
11:18 mornfall partitionFL works somewhat differently than I have thought...
11:19 kowey Igloo: remember this bug about duplicate patches? http://bugs.darcs.net/issue1014
11:20 kowey Igloo: I seem to remember this was one of the justifications for named primitive patches (but I may be wrong)
11:20 Igloo kowey: right
11:20 kowey Igloo: are you aware that it's been "fixed"?
11:21 kowey or at least, the error message has gone away, so I was wondering if the test needs to be working harder?
11:21 * Igloo assumes the fix is doing a quadratic search for the matching patch?
11:22 * mornfall doesn't follow.
11:22 mornfall What matching patch?
11:22 kowey unfortunately, I have no idea; mornfall thinks it was fixed in his adaptation of David's NewSet work
11:23 kowey (in this work, get_extra has also gone away)
11:24 Igloo The test involves recording 2 patches that are identical
11:25 Igloo I assume darcs now does potentially quadratic work when doing the merge, in order to work out that they are actually identical?
11:25 Heffalump I vaguely remember rewriting partitionFL a while back
11:25 * Igloo wondedrs if it always does the work, or only if a normal merge fails
11:25 mornfall kowey: I have to correct my statement about partitionFL. It won't fail as get_extra used to in the remaining cases, it will err on the "common" side -- i.e. some patches that are actually common may fail to be recognized as such if there's a buggy patchinfo somewhere.
11:26 mornfall Igloo: The merge with duplicates does not work like that.
11:27 mornfall Igloo: Actually, the merge doesn't know anything about duplicates at all.
11:27 mornfall Igloo: Only commute does.
11:27 Igloo Ah, I see, so if it can't make a common patch common then it just treats it as if it were identical
11:27 Igloo Doesn't that mean you get a repo with the same patch in twice?
11:28 mornfall Igloo: Not that either. Duplicates rise during a commute of hunks.
11:29 mornfall When you are merging, a dup can be created if you try to commute a^ <-> a, during merge. The result will be dup(a) id or somesuch.
11:29 mornfall The dup(a) could then be pulled out, since nothing ever depends on dup(...) patches.
11:30 mornfall Which is what issue1014 shows.
11:30 mornfall The problem was that in a followup merge, get_extra would break down for whatever reason.
11:31 Igloo Can seomone paste the "darcs changes -v" output after failing-issue1014_identical_patches.sh is run please?
11:33 mornfall http://pastebin.com/ES0AcsnE
11:33 mornfall (that's from abc2)
11:34 Igloo Right, so you have 2 patches called C (presumably with the same name, i.e. same hash, as well?)
11:35 mornfall Indeed.
11:36 * Igloo has no idea what'll happen now if you try to merge C;D where D depends on C
11:36 mornfall It however does make me wonder if we should rather use merge2FL here. Hm.
11:37 Igloo I think you'll have 3 Cs after that
11:37 mornfall Presumably.
11:37 mornfall On the other hand, it's just a matter of pulling out the extra dups.
11:39 mornfall Which I think merge2FL might actually manage to do. Hmm.
11:39 mornfall I'll think about it a bit. Later.
11:39 mornfall (The dups are, in themselves, completely harmless. At least as far as unnamed patches go...)
11:40 * Igloo is scared
11:41 Igloo I'm also not sure what happens now if you try to push from the ghc repo to the nofib repo
11:42 mornfall Well, they are both darcs-1, so nothing of this is relevant for that.
11:42 Igloo Where there are different patches with the same name
11:42 Igloo Well, they might be upgraded to darcs2 at some point
11:42 mornfall They won't become any more compatible in that process.
11:42 Igloo Admittedly the repos are at fault there anyway
11:43 Igloo But the merge will now succeed, won't it?
11:43 mornfall Unlikely.
11:43 Igloo Currently get_extra fails
11:43 Igloo But you said that now always succeeds
11:44 mornfall Well, that depends on the content of the patches, presumably.
11:44 mornfall If they are disjoint, it may actually work, yes.
11:45 mornfall As in, if the repositories are otherwise completely disjoint, the merge may succeed. The resulting repo won't be very healthy, though, I guess.
11:46 mornfall (The repositories, including the patches with identical patchinfos, need to be disjoint, hunk-wise...)
11:46 mornfall Otherwise things should at very least break down when applying patches.
11:47 mornfall I'll have to look into the merging code in a bit more detail before we go beta though.
11:48 mornfall We might need to stash away all the patches that satisfy the predicate (i.e. they should be common) but actually fail to make it to the left.
11:49 mornfall That would give us an opportunity to produce reasonable error messages in case these are not completely duplicate.
11:49 mornfall Anyway, lunchtime.
11:49 Heffalump what's the predicate in this context? Matching PatchInfo?
11:50 mornfall Yes.
11:50 Igloo You can't tell if they're duplicate, because you can't commute them to the same context
11:52 * Igloo gets confused and goes to find the commute rules for duplicate patches
11:55 Igloo Hmm
11:57 arjanb joined #darcs
12:23 balor joined #darcs
13:39 gh_ joined #darcs
13:52 zooko joined #darcs
14:08 mornfall kowey: (1862 disappears with my locally fixed darcs... but I still don't have a regression test for 1860...)
14:17 mornfall Ok, reproduced.
14:17 kowey 1862, you mean?
14:17 mornfall Both. (And both are fixed, too.)
14:17 mornfall I just need to do a h-s release dance.
14:18 kowey cool
14:18 kowey so we still just need to make issue1860 into a proper test?
14:18 mornfall So there are now 2 new issues I need to report though.
14:18 mornfall kowey: I just managed that.
14:18 kowey rah!
14:19 * kowey has a kitchen to mop...
14:24 mornfall Oh. (w)ait is broken everywhere, not in just revert...
14:24 mornfall It skips 2 patches instead of 1.
14:25 Igloo heh
14:25 mornfall Where's Florent... :))
14:25 Igloo Sounds like a good candidate for a regression test!
14:26 mornfall Well, the interactive UI is hard to regression test, sadly. But I guess it could be done with some rough edges.
14:26 mornfall Doing echo ynn and such would probably work.
14:27 Igloo right
14:36 mornfall kowey: (Hopefully your mopping of kitchen is not a result of you throwing up after eating the soup from the freezer..?)
14:39 gh_ joined #darcs
14:50 kowey voila, done... still alive, thankfully just a weekly chore :-)
14:51 kowey head (sortBy (compare `on` lastDone) ["mop kitchen", "clean bathroom", "vacuum house"])
15:05 mornfall kowey: I think it may be alpha time when the dust settles from my recent flurry of patches, and issue1864/issue1865 are resolved.
15:05 kowey I'll be alert to this... (so next weekend?)
15:05 mornfall Depends on Florent and my luck with 1865.
15:07 mornfall The catch might be that I leave next Wednesday morning and won't be available till Saturday.
15:08 mornfall So unless I manage to fix 1865 in next couple of days, it may take a further bit longer.
15:08 mornfall Also the dups concern from above may be worth addressing.
15:09 mornfall Sucks, how I am impatient to get alpha out of the door and at the same time we keep running into issues.
15:10 kowey well, trying to get the alpha out the door is partly what's helping us flush out these issues, presumably?
15:10 mornfall I guess so. :)
15:10 kowey so for the dups concern, is my job to leave the issue1014 test failing then and apply the rest of your test wibbles?
15:12 mornfall I wish I knew. It's not really failing right now.
15:12 kowey do we have a way of expressing the dups concern in a regression-test-friendly manner? (sorry, I feel guilty for starting the conversation and not  totally following it)
15:12 mornfall Well, I think there are two layers to this:
15:12 mornfall - a duplicate PatchInfo in a repository
15:13 mornfall Let me rephrase that.
15:13 mornfall The fix as it currently is allows a duplicate PatchInfo into a repository.
15:14 mornfall This is, at least theoretically, not a problem, since the PatchInfos describe identical patches (they are "duplicate" in the Real/Duplicate sense) of each other.
15:14 mornfall However, the code as it is will also allow other kinds of identical PatchInfo-s into a repository.
15:14 mornfall So the task probably is to add a check for duplicate PatchInfo-s appearing in a single repo.
15:15 mornfall If a duplicate PatchInfo consists entirely of "duplicate" realpatches, it is safe to discard. Otherwise, we need to warn the user that they are doing something possibly quite dangerous.
15:16 mornfall It does not need to be fatal, but it should have a big warning attached to it.
15:18 dino- I'm running into a situation where the format-specific .darcs/defaults is contaminating my --partial test. Can I specify that darcs should not use the .darcs/defaults file even if present?
15:18 dino- I could mv that file for this test and then mv it back. But.. bleh
15:19 kowey if you're running from cabal test, I think it sets up its own ${HOME}
15:19 dino- Right, which is set to this dir (like tests-old-fashioned-inventory.dir)
15:20 dino- Which is screwing up this test because it's always forcing --old-fashioned-inventory on it.
15:20 mornfall :)
15:20 mornfall I see the problem, but not the solution.
15:20 dino- The point of this test is what happens when we don't use any format switch.
15:20 dino- I can just have the test script mv the defaults file and mv it back
15:20 kowey ah-hah
15:21 kowey we could have another category of tests :-/
15:21 mornfall I would suggest overriding DARCS_TESTING_HOME or such.
15:21 kowey or that
15:21 kowey I was thinking along the lines of something like tests/network
15:22 kowey tests/no-prefs
15:22 kowey so for dupes in issue1014, we have A=B and strange things that happen when we merge AC with BC?
15:23 kowey the strange thing being that the patchinfo for C shows up twice (not reported in the test)?
15:23 dino- Ok, will do that with the env var
15:24 kowey seems like we need a test where A only is *similar* to B but not identical
15:28 zooko joined #darcs
15:58 evanton joined #darcs
15:59 evanton could somebody recommend some darcs GUI frontend worth to look at?
16:03 kowey evanton: there aren't really any yet, to be honest :-(, but have a look at
16:03 kowey http://wiki.darcs.net/Ideas/GraphicalInterface (see TortoiseDarcs on Windows, and Darcheology on MacOS X)
16:04 kowey see also http://wiki.darcs.net/Rela​tedSoftware#user-interface
16:05 kowey perhaps a "are there any GUIs for Darcs" FAQ would be a good idea
16:06 evanton kowey: I'm on linux
16:06 kowey evanton: OK, well there is some talk about getting Darcs integration for RabbitVCS
16:06 kowey it may be a good project to work on
16:06 evanton kowey: I googled up some old references to some wxdarcs yesterday, but failed to find the sources
16:06 kowey wxdarcs is dead, sorry about that
16:07 dino- I'm having a lot of trouble getting darcs during test run to not use the .darcs/defaults
16:07 kowey it used to be part of the Darcs code, but it wasn't very good (I wrote some chunks of it)
16:07 evanton I have very modest requirements for now, just a GUI that would make it easier to browse records by mouse clicking
16:07 dino- I've tried changing HOME, doesn't seem to have any effect.
16:07 evanton something as simple as gitk would make me happy
16:07 dino- It's where the tests-<format>.dir is set, in HOME
16:08 * kowey nods
16:08 kowey we would love for your very modest requirements to be met
16:08 kowey but we're just not there yet
16:08 evanton I see
16:09 kowey the good news is that we're drawing to a close on the performance front (I hope)
16:09 kowey starting to reach a point where we can start to look further afield
16:09 kowey tackle some much needed library cleanups that will help us get a Darcs GUI someday
16:10 kowey in the meantime, maybe the Emacs modes mentioned above could help
16:10 evanton I'm no emacs user
16:10 kowey your use case is darcs record, right?
16:11 kowey you just want something that will make it easier for you to select changes to record, ie. seeing it all at once and being able to pick the ones you want with a click
16:11 evanton not really
16:11 evanton I want something that would allow me to select records easily for inspecting them
16:12 kowey then something more like a patch viewer?
16:12 evanton kowey: yes
16:12 kowey OK, well you should know that the darcs changes command can be run in interactive mode
16:12 kowey this isn't quite a GUI, but it could help a bit
16:12 evanton kowey: I know that
16:12 kowey you can also use the --match flags to help narrow down patches
16:12 kowey so darcs changes -i --match 'author Eric'
16:13 kowey again, not a GUI but hopefully something in Darcs CLI can mitigate the lack of one
16:13 evanton kowey: I can pipe the output of darcs changes into some pager, yes
16:13 kowey if you're interested in using matchers, darcs help patterns could be useful
16:13 evanton then use search and inspect particular patches
16:14 gwern joined #darcs
16:14 gwern joined #darcs
16:14 kowey there are some matchers which are quite powerful (see 'match hunk' for example)
16:15 evanton kowey: I've also read in the manual that darcs is very easy to serve over http (and I've even tried it). Isn't there at least some CGI script that I could drop into a darcs repo and that would transform it into a website that I could browse by clicking on particular patches?
16:16 Gwern-away joined #darcs
16:16 Gwern-away joined #darcs
16:18 kowey evanton: I think you're looking for http://wiki.darcs.net/Related​Software#repository-browsers
16:18 evanton I'll have a look at it
16:18 kowey thanks to gh_'s relentless gardening, that page is actually fairly useful now
16:20 evanton kowey: darcsweb looks nice, thanks
16:20 evanton I'll bookmark it and try installing later
16:21 evanton a stand-alone GUI app with similar functionality would be nice, but I think this web interface will do as well
16:23 kowey I'll make a note of this in the FAQ
16:23 kowey (that the pre-existing web interfaces can stand in for a GUI somewhat)
16:23 kowey note also that you can use services like patch-tag and darcsden to avoid installing one if your repo is public
16:26 evanton kowey: I've also noticed that diffuse is darcs-aware, so it can display unrecorded changes in the workspace
16:26 evanton that's good, but diffuse is a merging tool, not a patch browser
16:27 abuiles joined #darcs
16:27 kowey interesting, evanton: could we trouble you to add that to the wiki?
16:27 evanton can I do that without registering first?
16:28 kowey yes, but not through the web ui; you could darcs get --lazy http://wiki.darcs.net/, edit the file in a text editor and darcs send a patch
16:29 evanton how would I know I don't have errors in my wiki markup?
16:30 kowey ah, well one answer would be to run gitit -f static/config and check out localhost:5001
16:30 kowey which you may consider to be too much work
16:30 kowey another answer is just to darcs send and hope for the best
16:30 kowey one of us will be looking at your patch anyway
16:30 kowey gitit + darcs (or git) could make a handy personal wiki, for what it's worth
16:31 evanton I think I will register
16:31 kowey ok :-) thanks
16:31 evanton because I see another issue with that page
16:31 evanton meld doesn't work for me
16:32 evanton it fails to execute darcs and complains about an unrecognized option
16:33 kowey I tend to use meld manually :-/ (alias darcs-gdiff="darcs --diff-command='meld %1 %2'), forgot it had native support
16:34 evanton diffuse seems to be better, at least for darcs, because it has source code highlight
16:40 evanton kowey: have a look, I've added a reference to diffuse
16:41 kowey thanks for that! looks good
16:41 evanton kowey: now let's deal with the meld issue
16:41 evanton I'll pastebin the exact error message so you could look
16:42 evanton because I don't know how to state the problem in the wiki page
16:42 kowey dino-: perhaps export?
16:42 evanton kowey: http://dpaste.org/9IZk/ this is what I get when doing 'meld .' as suggested in the wiki
16:43 kowey hmm, meld *appears* to be giving darcs one dash too many (---foo instead of --foo)
16:43 evanton I have meld 1.3.1 which seems to be the latest available version, and darcs 2.4.3 (release)
16:43 kowey I think the ideal solution is to file a bug report with the meld folks
16:44 kowey https://bugzilla.gnome.org​/buglist.cgi?product=meld
16:44 kowey ugh, hopefully we will arrive at a future where we've gotten the need to create accounts for things under control
16:44 abuiles left #darcs
16:44 evanton your eyes are sharp, I didn't notice the third dash :)
16:46 evanton bleh, that bugzilla requires registration too
16:53 abuiles joined #darcs
17:01 dino- kowey: Tried export.
17:01 dino- I'll just mv the defaults file for now.
17:01 dino- Which sounds bad too, like if the test fails, won't get moved back. :/
17:06 mornfall dino-: Yes, please don't do that.
17:07 mornfall It's not HOME but DARCS_TESTING_HOME.
17:07 mornfall As I said before.
17:07 mornfall Err.
17:07 mornfall DARCS_TESTING_PREFS_DIR.
17:07 mornfall :)
17:07 dino- Ah, I did try the first one.
17:07 dino- DARCS_TESTING_HOME
17:07 mornfall When unsure, look into the source. (Distribution.ShellHarness in this case...)
17:08 mornfall DARCS_TESTING_PREFS_DIR=$HOME/.darcs-noprefs eg.
17:08 mornfall Or whatever.
17:08 dino- Thanks, that helps. I should have dome some grepping for DARCS_TESTING through everything too
17:08 mornfall You should probably stick ALL ignore-times in the directory you use.
18:00 zooko joined #darcs
18:06 JaffaCake joined #darcs
19:20 kolmodin joined #darcs
19:50 kowey abuiles: will you be ready to meet in about 10 minutes?
20:00 abuiles kowey, yeap, I just read you message
20:06 kowey OK, I'll need just a moment to fold my laundry (clear my head) and read your blog again
20:06 kowey btw, it's not showing up on planet.darcs.net, your latest post (maybe sm has an idea?)
20:09 kowey abuiles: ready? sorry for the delay
20:12 abuiles hi,  sorry again.. went to the kitchen for a filtered coffee cup :)
20:12 kowey :-)
20:13 abuiles sunny days makes me sleepy :(..
20:13 kowey in the summer over here, we're starting to get these really long days
20:13 kowey 2115 and it's still light out
20:14 kowey so thanks for filling out the wiki page.  Looks like we're using it to fairly good effect
20:14 kowey how do you feel about this week?
20:15 kowey (or maybe how do you think this week went?)
20:16 abuiles good, I started to feel more familiar with darcs code... also a bit dump after stupid erros, but well, I'm learning lots :).
20:16 abuiles s/erros/errors
20:17 abuiles about the last patch, I missed the default case of globalCacheDir being nothing..
20:17 kowey I think I've had a similar experience with open source. Am really learning a lot from it.
20:18 abuiles *dump moment for adolfo again.
20:18 kowey It's a great complement to formal education
20:19 kowey well, as you said, you are learning a lot so I think you'll get used to catching things in time
20:19 abuiles yeap, I feel happy we got the goals for this week done..
20:19 kowey as you start doing patch reviews you find that certain classes of bugs keep cropping up over and over again
20:19 kowey so you start getting a bit better at asking these sort of what if questions
20:20 kowey yeah, that looks like nice progress on the cache system doc, http://wiki.darcs.net/DarcsInternals/CacheSystem
20:20 kowey I'm not 100% clear on what the difference is between HashedRepo and HashedIO
20:20 kowey so maybe that could use some fleshing out
20:22 abuiles I think it could be in the same module, if is just about IO operations in HashedRepo..
20:23 kowey possibly
20:23 kowey so one thing about HashedRepo which you maybe want to know about is thatt
20:23 kowey it's sort of an alternative to DarcsRepo
20:23 kowey so in a sense (or maybe literally as in with type classes), Repository provides a common interface that DarcsRepo and HashedRepo both instantiate
20:24 kowey err, implement
20:24 kowey so the separation could be something to do with that, HashedRepo being focused on implementing the Repository stuff
20:24 kowey and HashedIO just being about the low level fetching of hashed files, but you'd have to look into this closer to make sure I'm not telling lies
20:26 abuiles another thing I would like to refactor, is  that getCache function.
20:27 kowey could be useful
20:27 abuiles for example the fact of the globalcache being always include, I think that should be done in other part.
20:28 abuiles getCache, just get literally the caches which the repo contains.
20:28 kowey (I've updated the wiki with an attempt to characterise our progress, just to make sure our planning stays realistic)
20:29 kowey I'd suggest starting on the refactor after polishing off another warm-up bug or two
20:29 kowey I think by then you'll be fairly comfortable with this code
20:30 kowey so it could be a nice progress, finish warm-up bugs (almost there), do some refactoring and then really dive into the meat of this project (issue1599)
20:30 abuiles I'm okay with that.
20:30 kowey s/progress/progression/
20:31 abuiles so, Is the planning for the next week okay ? I added the test cases. which wouldn't take to long...
20:31 kowey so it looks like you have a pretty good idea what to work on next week
20:32 kowey I'm adding issue1210 back to that (which should be easy now that you've mostly got it)
20:32 kowey one thing I'd like us to plan for next week is your work on the cachesystems doc
20:32 kowey how you would like to improve this now?
20:35 abuiles well, answering question 1, look for an answer for the HasheIO thing, and describe how for example the caches get loaded when the repository is being identified.
20:35 abuiles s/caches/cache
20:36 kowey sounds like a plan
20:36 * kowey tries writing that down
20:37 abuiles specifically working in the section of internals Darcs.Repository.Cache.
20:37 abuiles working in that one, question 1, could be answer.
20:38 kowey page updated
20:39 kowey does that capture your plan?
20:40 kowey (ah good, now it's on planet darcs)
20:41 abuiles Yeap.
20:41 kowey I think we're getting more efficient at planning :-)
20:42 kowey ok, any questions in particular I may be able to help answer?
20:46 abuiles I don't have any at the moment, although during the week certainly I'll be asking around things here.
20:46 lispy joined #darcs
20:46 kowey looks like we're ready to wrap up then
20:46 kowey just one minor comment
20:46 kowey you said "I learnt was that I had a wrong idea of the concept of tests, I thought the test case for a certain issue would be one were it used to fail before applying the changes,"
20:47 kowey ... which doesn't seem entirely wrong to me
20:47 kowey what did you mean exactly?
20:50 abuiles well, I wasn't thinking that I have to make the test exit if the test failed.. I wasn't thinking in the fail case.
20:50 kowey ah, I see, so just a minor issue
20:51 kowey keep in mind also that this isn't one of those right or wrong things
20:51 kowey just sort of an art; it's just stuff we've figured out which we think works best (failing immediately)
20:51 kowey but there could be better ways to tackle the problem the testing
20:52 kowey OK, well I'd better start getting ready for bed
20:52 kowey happy hacking for next week!
20:52 abuiles thanks, I will re-send the patch in 5 minutes.
20:52 kowey cool
21:23 zooko joined #darcs
21:57 zooko` joined #darcs
22:26 abuiles left #darcs
23:21 jmcarthur is there a way i can use `darcs send' to create a patch file without having to reference a repository for context? i just want to save a patch to restore to my respository later, like `git stash' would do
23:25 * jmcarthur settles on `darcs put' for now, but would like something a bit lighter
23:27 Heffalump you can use context files with --context
23:28 Heffalump which you can make with darcs changes --context

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary