Gnus development mailing list
 help / color / mirror / Atom feed
* virtual nnvirtual
@ 2022-03-23  0:45 Andrew Cohen
  2022-03-23  8:14 ` Eric S Fraga
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Andrew Cohen @ 2022-03-23  0:45 UTC (permalink / raw)
  To: ding

I finally got around to fixing up an nnvirtual replacement using
nnselect, and here is something for testing (mostly by Eric F., I think:))

You will need the latest version of nnselect just pushed to master
(there isn't anything really specific about nnvirtual, just that the
latest changes will allow NOT storing the nnvirtual group info in the
newsrc which saves a lot of space). Then you should evaluate the two
functions below. (All of this would be much more trivial except for the
nnvirtual algorithm of interleaving the articles from the component
groups---I'm not sure how great this algorithm is, but I've reproduced
it. If this is all working it would be very easy to pop in an improved
replacement.)


This first is a convenience function for creating a group. Invoke it
interactively in the group buffer and it will prompt for the new group
name, and then either a list of component groups, or a (string) regexp
to match for the list of component groups:

#+begin_src emacs-lisp
  (defun gnus-group-make-nnvirtual-group (name groups)
    "Make an nnvirtual group using the nnselect backend.
    Prompts for a list or (string) regular expression of component GROUPS."
    (interactive (list (gnus-read-group "New Group Name: ")
                       (read-minibuffer "Component Groups (list or regexp): ")
    ))
      (with-current-buffer gnus-group-buffer
        (gnus-group-make-group
         name
         (list 'nnselect "nnselect")
         nil
         (list
          (cons 'nnselect-specs
                (list
                 (cons 'nnselect-function 'nnselect-generate-nnvirtual)
                 (cons 'nnselect-args groups)))
          (cons 'nnselect-artlist nil)
          (cons 'nnselect-always-regenerate t)))))
#+end_src

This is the function that creates the artlist for the new group. 
#+begin_src emacs-lisp
(defun nnselect-generate-nnvirtual (components)
  "This function generates an nnvirtual article list for GROUPS.
  An nnselect artlist is constructed by interleaving the articles
  from these component groups: the component group lists are cycled
  over with the most recent article popped off and pushed pushed
  onto the artlist; once a component group is exhausted it is
  skipped in subsequent cycles."
  (let ((groups nil))
    ;; Get the list of component groups.
    (if (listp components)
        (setq groups components)
      (dolist (group (cdr gnus-group-list))
        (when (string-match components group)
          (setq groups (cons group groups))))
      (setq groups (delete-dups groups)))
    ;; Prepare the group data.
    (let ((gdata nil) (count 0))
      (dolist (group groups)
        (pcase-let ((`(,min . ,max) (gnus-active group)))
          (cl-incf max)
          (cl-incf count (- max min))
          (push (list  max group min) gdata)))
      (setq gdata (sort gdata 'car-less-than-car))
      ;; Make and fill the vector.  Think of the component article
      ;; lists as columns in a matrix.  We map over the rows and
      ;; remove a column once it is empty.
      (let ((artlist (make-vector count  nil)))
        (while gdata
          (pcase-let ((`(,max ,group ,min) (pop gdata)))
            (while (< min max)
	      (aset artlist (cl-decf count) (vector group (cl-decf max) 1))
	      (mapc
	       (lambda (data)
		 (aset artlist
		       (cl-decf count)
		       (vector (cadr data) (cl-decf (car data)) 1)))
	       gdata))))
	artlist))))
#+end_src

-- 
Andrew Cohen



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23  0:45 virtual nnvirtual Andrew Cohen
@ 2022-03-23  8:14 ` Eric S Fraga
  2022-03-23 11:53 ` Eric S Fraga
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23  8:14 UTC (permalink / raw)
  To: ding

Andrew, I will try this out later today hopefully.
-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23  0:45 virtual nnvirtual Andrew Cohen
  2022-03-23  8:14 ` Eric S Fraga
@ 2022-03-23 11:53 ` Eric S Fraga
  2022-03-23 12:02 ` Eric S Fraga
  2022-03-23 15:33 ` Eric S Fraga
  3 siblings, 0 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 11:53 UTC (permalink / raw)
  To: ding

Andrew,

I've built Emacs and incorporated your two functions.  I've created a
couple of virtual groups using this new code.  So far, so good, although
the testing has been rather limited yet.  I'll keep using it and will
update with any issues if/when they arise.

Thank you,
eric

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23  0:45 virtual nnvirtual Andrew Cohen
  2022-03-23  8:14 ` Eric S Fraga
  2022-03-23 11:53 ` Eric S Fraga
@ 2022-03-23 12:02 ` Eric S Fraga
  2022-03-23 12:53   ` Andrew Cohen
  2022-03-23 15:33 ` Eric S Fraga
  3 siblings, 1 reply; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 12:02 UTC (permalink / raw)
  To: ding

Andrew,

a quick question: what should a virtual group based on nnselect give me
that the normal virtual groups do not, if anything?

There are two things I would love:

1. /o to return the right set of articles from the set of constituent
   groups.
2. A T to work as well, collecting articles from different groups.

thank you,
eric

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 12:02 ` Eric S Fraga
@ 2022-03-23 12:53   ` Andrew Cohen
  2022-03-23 13:19     ` Eric S Fraga
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-23 12:53 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:

    ESF> Andrew, a quick question: what should a virtual group based on
    ESF> nnselect give me that the normal virtual groups do not, if
    ESF> anything?

Umm, not totally sure? The main thing is that it uses the up-to-date,
properly maintained part of the code as opposed to something that I
don't think has been touched in a long time ;-) (Seriously, looking
at the log it seems the last real  change to the code is from well over
a decade ago). Also, it doesn't special-case anything---nnselect is very
generic and nnvirtual comes "for free" (just a single function to
generate the article list).

But specifically you should get:

    ESF> 1. /o to return the right set of articles from the set of
    ESF> constituent groups.  

I'm not sure what "the right set" means---this function prompts for a
number of old articles and returns them, which the nnselect version
should do (and does in my minimal tests). As to which articles are
returned, it is (currently) the set defined by the nnvirtual
algorithm---starting from most recent to oldest, return one from the
first group, one from the second, etc, cycling through the groups; once
any group is exhausted just skip it in further cycles. We can easily
change this to something else if this isn't what is desired.

    ESF> 2. A T to work as well, collecting articles from different
    ESF> groups.

This should work (provided searching is configured for the constituent
groups).

In addition you get all the functionality of nnselect----this means that
it will behave as any other nnselect group (marks are propagated to and
from the constituent groups, you can search the whole group, you can
refer articles, you can use article expiry, etc). In fact I don't think
there is anything that a real group does that nnselect doesn't (if there
is, I guess that should be considered a bug). I don't really know if
nnvirtual does everything as well, but my memory from a decade ago when
I looked at it is it doesn't implement everything. But I might be
mis-remembering.


-- 
Andrew Cohen


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 12:53   ` Andrew Cohen
@ 2022-03-23 13:19     ` Eric S Fraga
  2022-03-23 14:51       ` Andrew Cohen
                         ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 13:19 UTC (permalink / raw)
  To: ding

Hi Andrew,

thank you for the long response to my queries.  Very helpful.

Regarding /o, now it makes sense (the cycling nature of the retrieval)
and, yes, it seems to be working just fine.  Because some of the groups
in the virtual collection have not had any recent activity, I was
confused by seeing significantly old articles in the list provided.  I
now know that I need to multiply the number of messages, M, to retrieve
by N, where N is the number of groups in the virtual collection, to
ensure I get the M most recent emails I'm looking for.  Simple enough,
especially if I then sort by date.  Thank you for explaining this!

For A T,

> This should work (provided searching is configured for the constituent
> groups).

it doesn't work but I don't think it's the searching element, or maybe
it is.  I get an error with the following [elided] backtrace:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  #f(compiled-function () #<bytecode -0x5da3a498744c248>)()
  gnus-summary-highlight-line()
  gnus-summary-prepare-threads((... ... ... ... ... ... ... ... ... ... ... ... ... ... ...))
  gnus-summary-prepare()
  gnus-summary-limit((143 154 165 174 176 189 192 190 191 193 231 232 233 253 255 250 259 262 245 241 240 218 227 205 213 204 248 197 185 178 221 224 177 168 169 163 194 196 198 199 201 202 143 154 165 174 176 189 192 190 ...))
  gnus-summary-limit-include-thread("..." nil)
  gnus-summary-refer-thread()
  nnselect-request-thread([4887 "..." ...])
  gnus-request-thread(...)
  gnus-summary-refer-thread(nil)
  funcall-interactively(gnus-summary-refer-thread nil)
  command-execute(gnus-summary-refer-thread)

The thread I want is there but there are also many other articles.  The
particular thread has 4 articles in it.  If I ask for the thread
starting in the right group, I get those articles that are in the thread
in that group.

Any suggestions?  I can try without compiled code to see, if you wish?

And, yes, using nnselect, i.e. a more up to date code base for this
functionality, is bound to be helpful.

Thank you,
eric

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 13:19     ` Eric S Fraga
@ 2022-03-23 14:51       ` Andrew Cohen
  2022-03-23 15:28         ` Eric S Fraga
  2022-03-23 15:00       ` Eric Abrahamsen
  2022-03-24  5:30       ` Andrew Cohen
  2 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-23 14:51 UTC (permalink / raw)
  To: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:
[...]

    ESF> For A T,

    >> This should work (provided searching is configured for the
    >> constituent groups).

    ESF> it doesn't work but I don't think it's the searching element,
    ESF> or maybe it is.  I get an error with the following [elided]
    ESF> backtrace:

No, probably not the searching element. 

[...]

    ESF> gnus-summary-limit((143 154 165 174 176 189 192 190 191 193 231
    ESF> 232 233 253 255 250 259 262 245 241 240 218 227 205 213 204 248
    ESF> 197 185 178 221 224 177 168 169 163 194 196 198 199 201 202 143
    ESF> 154 165 174 176 189 192 190 ...))

This is definitely not right. This should be a unique list of article
numbers and I can see repeats. Also it should be sorted.

And I think I see the problem---I'm trying to not store the artlist,
which can be very long, and just regenerate it when needed. But the
thread retrieval /adds/ the new articles to the artlist, and this causes
things to get messed up when it tries to generate the new list. I can
fix this, but I need to think about the best way.

Thanks for testing!

Best,
Andy

-- 
Andrew Cohen



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 13:19     ` Eric S Fraga
  2022-03-23 14:51       ` Andrew Cohen
@ 2022-03-23 15:00       ` Eric Abrahamsen
  2022-03-23 15:31         ` Eric S Fraga
  2022-03-24  5:30       ` Andrew Cohen
  2 siblings, 1 reply; 19+ messages in thread
From: Eric Abrahamsen @ 2022-03-23 15:00 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: ding

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> Hi Andrew,
>
> thank you for the long response to my queries.  Very helpful.
>
> Regarding /o, now it makes sense (the cycling nature of the retrieval)
> and, yes, it seems to be working just fine.  Because some of the groups
> in the virtual collection have not had any recent activity, I was
> confused by seeing significantly old articles in the list provided.  I
> now know that I need to multiply the number of messages, M, to retrieve
> by N, where N is the number of groups in the virtual collection, to
> ensure I get the M most recent emails I'm looking for.  Simple enough,
> especially if I then sort by date.  Thank you for explaining this!

As Andy mentioned, this is also kind of a philosophical/design question.
We can choose how this algorithm works, it just happens to work this way
right now. Personally I would find it less surprising if you didn't get
any messages from long-inactive groups until you "dug all the way back"
in time to them, but that would require a different code approach (and
probably would be less efficient).


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 14:51       ` Andrew Cohen
@ 2022-03-23 15:28         ` Eric S Fraga
  0 siblings, 0 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 15:28 UTC (permalink / raw)
  To: ding

On Wednesday, 23 Mar 2022 at 22:51, Andrew Cohen wrote:
> And I think I see the problem [...] I can
> fix this, but I need to think about the best way.

Okay, thank you.  No rush, by the way.

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 15:00       ` Eric Abrahamsen
@ 2022-03-23 15:31         ` Eric S Fraga
  0 siblings, 0 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 15:31 UTC (permalink / raw)
  To: ding

On Wednesday, 23 Mar 2022 at 08:00, Eric Abrahamsen wrote:
> As Andy mentioned, this is also kind of a philosophical/design question.

Indeed.

> Personally I would find it less surprising if you didn't get
> any messages from long-inactive groups until you "dug all the way back"

As would I.

> in time to them, but that would require a different code approach (and
> probably would be less efficient).

I guess the alternative would retrieve articles from each group, sort
them, and then prune the list to the desired size.  But not really
necessary, once the algorithm is understood!  I can live with the
current approach, knowing how to get what I want.

thank you,
eric
-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23  0:45 virtual nnvirtual Andrew Cohen
                   ` (2 preceding siblings ...)
  2022-03-23 12:02 ` Eric S Fraga
@ 2022-03-23 15:33 ` Eric S Fraga
  2022-03-25  0:39   ` Andrew Cohen
  3 siblings, 1 reply; 19+ messages in thread
From: Eric S Fraga @ 2022-03-23 15:33 UTC (permalink / raw)
  To: ding

One possible strange behaviour I'm encountering: if I enter the virtual
group, read a few unread articles but not all of them, then leave the
group and come back in, the articles shown are not the ones that were
left unread.  Not sure how to debug this.

If I hit M-g (gnus-topic-get-new-news-this-topic) and then enter the
group, the correct articles are shown in the summary buffer.
-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 13:19     ` Eric S Fraga
  2022-03-23 14:51       ` Andrew Cohen
  2022-03-23 15:00       ` Eric Abrahamsen
@ 2022-03-24  5:30       ` Andrew Cohen
  2022-03-24  7:27         ` Eric S Fraga
  2 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-24  5:30 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:

[...]

    ESF> For A T,

    >> This should work (provided searching is configured for the
    >> constituent groups).

    ESF> it doesn't work but I don't think it's the searching element,
    ESF> or maybe it is.  I get an error with the following [elided]
    ESF> backtrace:

[...]

    ESF> The thread I want is there but there are also many other
    ESF> articles.  The particular thread has 4 articles in it.  If I
    ESF> ask for the thread starting in the right group, I get those
    ESF> articles that are in the thread in that group.

    ESF> Any suggestions?  I can try without compiled code to see, if
    ESF> you wish?

I thought I had an idea what was wrong but turns out not so much. I have
tried and failed to reproduce this error (I am only trying imap since
that is what I have installed).

Maybe we can narrow it down to a simpler test case (debugging is quite
painful if you have lots of articles). First, maybe try a single
component group (create a new nnvirtual group with the convenience
function and in answer to  the component group prompt use a list that
contains a single group; choose a group that has the article you want to
do thread referral on).

Does this work? If so, try adding a second group and see if it still
works. If not, we have a simpler test case to work on.

Once we have a simple enough test case I can walk you through debugging
the thread referral function to see whats what.

Best,
Andy
-- 
Andrew Cohen


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-24  5:30       ` Andrew Cohen
@ 2022-03-24  7:27         ` Eric S Fraga
  0 siblings, 0 replies; 19+ messages in thread
From: Eric S Fraga @ 2022-03-24  7:27 UTC (permalink / raw)
  To: ding

On Thursday, 24 Mar 2022 at 13:30, Andrew Cohen wrote:
> (create a new nnvirtual group with the convenience function and in
> answer to the component group prompt use a list that contains a single
> group;

Would you give me the syntax for that?  My group, for testing, is
nnml.outlook:mail.dt2022 and responding with "..." or (...) or ("..."),
only the first works but this could be interpreted as a regex so I am
not sure if this is what you want.

In any case, I tried and the same error occurs.

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-23 15:33 ` Eric S Fraga
@ 2022-03-25  0:39   ` Andrew Cohen
  2022-03-25  4:53     ` Andrew Cohen
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-25  0:39 UTC (permalink / raw)
  To: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:

    ESF> One possible strange behaviour I'm encountering: if I enter the
    ESF> virtual group, read a few unread articles but not all of them,
    ESF> then leave the group and come back in, the articles shown are
    ESF> not the ones that were left unread.  Not sure how to debug
    ESF> this.

And I'm zero for two now on this subject---the fix I sent you earlier
will probably hide the problem but isn't really right. And in fact I
cannot reproduce the problem on my end (I tried with both imap and gmane
combined groups).

I know its a (very) long shot, but have you tried a make bootstrap
recently? The problem you reported with package-initialize also seems
hard to understand since it doesn't appear that anything affecting this
has changed in git recently. I'm wondering if something somewhere has
gotten out of sync, mumble, mumble. It would at least eliminate one
(far-fetched) possibility. In the meantime I'll keep looking.

Best,
Andy

-- 
Andrew Cohen



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-25  0:39   ` Andrew Cohen
@ 2022-03-25  4:53     ` Andrew Cohen
  2022-03-25  9:15       ` Eric S Fraga
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-25  4:53 UTC (permalink / raw)
  To: ding

>>>>> "AC" == Andrew Cohen <acohen@ust.hk> writes:

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:
    ESF> One possible strange behaviour I'm encountering: if I enter the
    ESF> virtual group, read a few unread articles but not all of them,
    ESF> then leave the group and come back in, the articles shown are
    ESF> not the ones that were left unread.  Not sure how to debug
    ESF> this.

    AC> And I'm zero for two now on this subject---the fix I sent you
    AC> earlier will probably hide the problem but isn't really
    AC> right. And in fact I cannot reproduce the problem on my end (I
    AC> tried with both imap and gmane combined groups).

OK, I finally have succeeded in failure :)

It's not exactly the behavior that you are seeing, but definitely an error
which may be related. It is specific to thread referral (so doesn't
explain the strange behavior above) though; with the above strange
behavior did you by any chance do thread referral before you exited the
group?

I have a trivial fix for this, although there might be a better way.
(In case you are interested: in thread referral, groups other then the
originating article's group can be searched, and so new articles can be
found that aren't part of the original nnselect selection; these
articles are added to the selection and all the marks, read/unread,
active, etc. are updated. This won't work for the nnvirtual case because
we aren't saving the selection list to the newsrc. Consequently the next
time you enter the group all the mark lists and read/unread, etc contain
references to articles that aren't part of the group which can lead to
errors. )

Best,
Andy
-- 
Andrew Cohen



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-25  4:53     ` Andrew Cohen
@ 2022-03-25  9:15       ` Eric S Fraga
  2022-03-25  9:27         ` Andrew Cohen
  0 siblings, 1 reply; 19+ messages in thread
From: Eric S Fraga @ 2022-03-25  9:15 UTC (permalink / raw)
  To: ding

On Friday, 25 Mar 2022 at 12:53, Andrew Cohen wrote:
> behavior did you by any chance do thread referral before you exited the
> group?

Yes.

And, in answer to your suggestion in your other response, I always build
emacs with "make bootstrap".

thank you,
eric

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-25  9:15       ` Eric S Fraga
@ 2022-03-25  9:27         ` Andrew Cohen
  2022-03-25  9:35           ` Eric S Fraga
  0 siblings, 1 reply; 19+ messages in thread
From: Andrew Cohen @ 2022-03-25  9:27 UTC (permalink / raw)
  To: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:

    ESF> On Friday, 25 Mar 2022 at 12:53, Andrew Cohen wrote:
    >> behavior did you by any chance do thread referral before you
    >> exited the group?

    ESF> Yes.

Great! Then I am hopeful that the patch I sent you a little while ago
will fix this error. Still not sure about the other error though. Lets
see if the patch changes its behavior at all, and go from there.

Thanks again for all the testing!
-- 
Andrew Cohen



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-25  9:27         ` Andrew Cohen
@ 2022-03-25  9:35           ` Eric S Fraga
  2022-03-25  9:39             ` Andrew Cohen
  0 siblings, 1 reply; 19+ messages in thread
From: Eric S Fraga @ 2022-03-25  9:35 UTC (permalink / raw)
  To: ding

On Friday, 25 Mar 2022 at 17:27, Andrew Cohen wrote:
> Great! Then I am hopeful that the patch I sent you a little while ago
> will fix this error. 

Hi Andrew,

There was no patch attached in previous responses?  Or did you email me
separately?

Thank you,
eric

-- 
Eric S Fraga with org 9.5.2 in Emacs 29.0.50 on Debian 11.2



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: virtual nnvirtual
  2022-03-25  9:35           ` Eric S Fraga
@ 2022-03-25  9:39             ` Andrew Cohen
  0 siblings, 0 replies; 19+ messages in thread
From: Andrew Cohen @ 2022-03-25  9:39 UTC (permalink / raw)
  To: ding

>>>>> "ESF" == Eric S Fraga <e.fraga@ucl.ac.uk> writes:

    ESF> On Friday, 25 Mar 2022 at 17:27, Andrew Cohen wrote:
    >> Great! Then I am hopeful that the patch I sent you a little while
    >> ago will fix this error.

    ESF> Hi Andrew,

    ESF> There was no patch attached in previous responses?  Or did you
    ESF> email me separately?

Emailed separately.
-- 
Andrew Cohen
Director, HKUST Jockey Club Institute for Advanced Study
Lam Woo Foundation Professor and Chair Professor of Physics
The Hong Kong University of Science and Technology



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2022-03-25  9:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-23  0:45 virtual nnvirtual Andrew Cohen
2022-03-23  8:14 ` Eric S Fraga
2022-03-23 11:53 ` Eric S Fraga
2022-03-23 12:02 ` Eric S Fraga
2022-03-23 12:53   ` Andrew Cohen
2022-03-23 13:19     ` Eric S Fraga
2022-03-23 14:51       ` Andrew Cohen
2022-03-23 15:28         ` Eric S Fraga
2022-03-23 15:00       ` Eric Abrahamsen
2022-03-23 15:31         ` Eric S Fraga
2022-03-24  5:30       ` Andrew Cohen
2022-03-24  7:27         ` Eric S Fraga
2022-03-23 15:33 ` Eric S Fraga
2022-03-25  0:39   ` Andrew Cohen
2022-03-25  4:53     ` Andrew Cohen
2022-03-25  9:15       ` Eric S Fraga
2022-03-25  9:27         ` Andrew Cohen
2022-03-25  9:35           ` Eric S Fraga
2022-03-25  9:39             ` Andrew Cohen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).