From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/82729 Path: news.gmane.org!not-for-mail From: Dave Abrahams Newsgroups: gmane.emacs.gnus.general Subject: Re: What is a "virtual" group? Date: Tue, 25 Dec 2012 16:32:40 -0500 Message-ID: References: <87obl6ck1p.fsf@dod.no> <87vcbqs4fo.fsf@gnus.org> <878v8lvpp3.fsf@gnus.org> <87mwx1rgq1.fsf@gnus.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1356471194 2637 80.91.229.3 (25 Dec 2012 21:33:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 25 Dec 2012 21:33:14 +0000 (UTC) Cc: ding@gnus.org To: Lars Ingebrigtsen Original-X-From: ding-owner+M30995=ding+2Daccount=gmane.org@lists.math.uh.edu Tue Dec 25 22:33:26 2012 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from util0.math.uh.edu ([129.7.128.18]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Tnc7k-0005yG-Is for ding-account@gmane.org; Tue, 25 Dec 2012 22:33:20 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by util0.math.uh.edu with smtp (Exim 4.63) (envelope-from ) id 1Tnc7V-0000pv-Bj for ding-account@gmane.org; Tue, 25 Dec 2012 15:33:05 -0600 Original-Received: from mx2.math.uh.edu ([129.7.128.33]) by util0.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1Tnc7T-0000pp-Pe for ding@lists.math.uh.edu; Tue, 25 Dec 2012 15:33:03 -0600 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx2.math.uh.edu with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1Tnc7G-0008Ef-3X for ding@lists.math.uh.edu; Tue, 25 Dec 2012 15:33:03 -0600 Original-Received: from mail-vc0-f178.google.com ([209.85.220.178]) by quimby.gnus.org with esmtp (Exim 4.72) (envelope-from ) id 1Tnc7E-00046Q-4M for ding@gnus.org; Tue, 25 Dec 2012 22:32:48 +0100 Original-Received: by mail-vc0-f178.google.com with SMTP id x16so8253862vcq.23 for ; Tue, 25 Dec 2012 13:32:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type:x-gm-message-state; bh=uynvU62S0D5M08yMpJ/lM/CRMmtdnAu3av6jO/CNwYs=; b=VzB7Zip2718N/aWOFY6c7w4uHUmC3LaqiTNHNLlLXbiRZ/XV/R5JOwF0XtKHBVRSg1 8LYIUYFtmtthaTYIgUhtwLPgdDkatvKsWMNFYYvL8OQG3WTpJv80vw5ZMl/0oDX8Kwb/ Grx6QVYAYVB6+DOlfFF8WPMColpBWAU3Xuwok68nVvwpp/c+70FK5VWKCmBbkyPhqpp9 8MmhZuR87UpsARlcUYmJtdlAC14I63TgPUD8V5AqlS8Otq1qj3rA//YzsFrMl7OGdgB/ PYhGGE7ruzd7pA99hkNlDAUgyWThOYxowptSdwHh0cGTRmO+kixs0ykTEvqQRIt6IGjg H0KA== X-Received: by 10.52.70.205 with SMTP id o13mr33885655vdu.75.1356471161978; Tue, 25 Dec 2012 13:32:41 -0800 (PST) Original-Received: from pluto.boostpro.com (207-172-223-249.c3-0.smr-ubr3.sbo-smr.ma.static.cable.rcn.com. [207.172.223.249]) by mx.google.com with ESMTPS id qj8sm20640779veb.2.2012.12.25.13.32.40 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 25 Dec 2012 13:32:41 -0800 (PST) Original-Received: by pluto.boostpro.com (Postfix, from userid 501) id AE1959639A8; Tue, 25 Dec 2012 16:32:40 -0500 (EST) In-Reply-To: <87mwx1rgq1.fsf@gnus.org> (Lars Ingebrigtsen's message of "Tue, 25 Dec 2012 21:59:02 +0100") User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2 (darwin) X-Gm-Message-State: ALoCoQmJe5NwdSBGsPU0ar/+CM0gN2X3FWq/vCONXkKUPazLOo/IDK2V16BmKP81/F7SMtPlk/2S X-Spam-Score: -2.9 (--) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:82729 Archived-At: on Tue Dec 25 2012, Lars Ingebrigtsen wrote: > Dave Abrahams writes: > >> OK, thanks. That's very clear. In trying to suggest corresponding >> documentation edits, though, I arrive at 6.7.1 Virtual Groups in the >> manual and find: >> >> An "nnvirtual group" is really nothing more than a collection of >> other groups. > > It's a virtual group as far as the user is concerned. The word > "virtual" is reused as a backend property to mean something else. Yes, I understand that. However as with all things Emacs, the "user" role flows into the "extender" and "developer" roles without any clear boundary. If that document is supposed to be just for "users," then we need a separate one for people like me who are trying to contribute to the codebase. >>>> * Should an nndoc group be considered virtual? >>> >>> No. >> >> Interesting. So how do we ever get here: >> >> http://git.gnus.org/cgit/gnus.git/tree/lisp/gnus-sum.el#n9253 > > I'm not sure what the question is? It tries to open an nnvirtual group > and then says something about not being able to do so if it can't? OK, the message says "Couldn't select virtual nndoc group". But nndoc groups are not today (and according to you, should never be) virtual. So is this essentially unreachable code unless something gets corrupted? Or am I mis-reading the message somehow. >>>> * Does the check for virtual-ness in gnus-warp-to-article actually >>>> belong there? After all, real groups shouldn't implement the >>>> warp-to-article backend function, should they? >>> >>> I don't know. >> >> Would you be open to a patch that removes the check? > > I'm not familiar with that code. Sorry, I don't know how to interpret your answer. I am trying to figure out how to contribute a really cool (and for me, essential) piece of functionality to Gnus: the ability to, given a message-id, find and display the message in the context of the entire thread in which that message participates, even across groups. Of course I'm presuming you think that's worth having in Gnus, but I could be wrong. If so, just tell me and I'll stop pestering you. I have implemented something that works, but currently requires making nndoc groups virtual or disabling that check. You've already said that making nndoc groups virtual is inappropriate. If disabling the check is appropriate, that would solve the problem easily. The other possible approach would be to discover a way to implement the following function using some kind of virtual group (instead of nndoc). I think that's probably the best approach but I have tried myself many times and failed, and I have asked here many times for guidance without success... so I eventually gave up. #+begin_src lisp (defun gnus-goto-article (message-id) (with-temp-buffer (erase-buffer) ;; Insert dummy article (insert (format "From nobody Tue Sep 13 22:05:34 2011\n\n")) (gnus-group-read-ephemeral-group message-id `(nndoc ,message-id (nndoc-address ,(current-buffer)) (nndoc-article-type mbox)) :activate (cons (current-buffer) gnus-current-window-configuration) (not :request-only) '(-1) ; :select-articles (not :parameters) 0 ; :number ) (gnus-summary-refer-article message-id) )) #+end_src -- Dave Abrahams BoostPro Computing Software Development Training http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost