Re: [O] Warning with latest git pull
Hi Achim, Achim Gratz writes: > The point of having the new macro is to avoid the question about > reverting the file when the file visited by a buffer has been edited > outside Emacs. You can do exactly the same changes (cosmetic or not) > with both macros, but org-unmodified will ask you when the file and the > buffer have diverged due to the file changing outside Emacs. You > shouldn't do this of course unless you know with certainty that you are > never going to save the file. There's another difference between these > two: org-unmodified does not let you change read-only buffers (I don't > know if that's intentional or not). With all this said, the > compatibility part of org-with-silent-modifications can't simply be > plugging in org-unmodified (this loses functionality that presumably was > needed). The change to make from the implementation I gave would be > losing the let-bindings for buffer-file-name buffer-file-truename and > perhaps inhibit-read-only. I don't think Org should do better than Emacs wrt files that are marked as unmodified while they have been edited outside Emacs. In such cases, Emacs simply ignore external modifications when saving, and warn the user before editing. That's the same for agenda files: you'll be warned before editing them (switching a TODO, etc.) and not warned when saving unmodified Org agenda files. -- Bastien
Re: [O] Warning with latest git pull
Bastien writes: > I fixed the comment, thanks. I'm starting to sound like Drew, but the new comment says exactly what the old one did, just the two parts juxtaposed. The point of having the new macro is to avoid the question about reverting the file when the file visited by a buffer has been edited outside Emacs. You can do exactly the same changes (cosmetic or not) with both macros, but org-unmodified will ask you when the file and the buffer have diverged due to the file changing outside Emacs. You shouldn't do this of course unless you know with certainty that you are never going to save the file. There's another difference between these two: org-unmodified does not let you change read-only buffers (I don't know if that's intentional or not). With all this said, the compatibility part of org-with-silent-modifications can't simply be plugging in org-unmodified (this loses functionality that presumably was needed). The change to make from the implementation I gave would be losing the let-bindings for buffer-file-name buffer-file-truename and perhaps inhibit-read-only. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptation for Waldorf microQ V2.22R2: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
Re: [O] Warning with latest git pull
Hi Achim, Achim Gratz writes: > We shouldn't define things that don't have an org prefix. Fair enough. (Note that `with-buffer-modified-unmodified', from which org-unmodified was heavily copied, lives in bookmark.el. Perhaps Emacs should put it elsewhere.) > I don't really see why we needed to replace org-unmodified in the > first place, especially since with-silent-modifications does _more_ > than org-unmodified, Especially *because* it does more. In particular, it does set `buffer-file-name' and `buffer-file-truename' to nil, which is a problem when preparing the agenda buffers. > not less as your comment in org-macs would imply. I fixed the comment, thanks. > Here's a patch to restore org-unmodified in the sources, make it an > alias to with-silent-modifications when possible and augment the > replacement definition with a few things that with-silent-modifications > does on top of what org-unmodified did. We might even copy the whole > macro definition from subr.el, but I think we're close enough with this. Thanks -- I applied a different patch, using `org-with-silent-modifications' as a compatibility macro for `with-silent-modifications'. Best, -- Bastien
Re: [O] Warning with latest git pull
Hi Achim, Achim Gratz writes: > I hereby declare that XEmacs compatibility is broken already and he who > wants to have this corrected should bring a working version of ert for > XEmacs. Let's encourage XEmacs users to report bugs and incompatibility. Asking them to write an XEmacs ERT sounds a bit too much :) -- Bastien
Re: [O] Warning with latest git pull
Bastien writes: > There is already this in org-macs.el: > > (when (and (not (fboundp 'with-silent-modifications)) > (or (< emacs-major-version 23) > (and (= emacs-major-version 23) > (< emacs-minor-version 2 > (defmacro with-silent-modifications (&rest body) > `(org-unmodified ,@body)) > (def-edebug-spec with-silent-modifications (body))) We shouldn't define things that don't have an org prefix. I don't really see why we needed to replace org-unmodified in the first place, especially since with-silent-modifications does _more_ than org-unmodified, not less as your comment in org-macs would imply. Here's a patch to restore org-unmodified in the sources, make it an alias to with-silent-modifications when possible and augment the replacement definition with a few things that with-silent-modifications does on top of what org-unmodified did. We might even copy the whole macro definition from subr.el, but I think we're close enough with this. >From 249b18ee13f2fbf041c081fa63b1ccd40d67dc27 Mon Sep 17 00:00:00 2001 From: Achim Gratz Date: Sun, 24 Feb 2013 10:54:29 +0100 Subject: [PATCH 1/2] Revert "Use `with-silent-modifications' instead of `org-unmodified' when it makes sense" This reverts commit 43c8aa02cc2301661fe203ec4d4a90d94d6353e6. --- lisp/org-clock.el | 158 ++-- lisp/org-colview.el | 61 ++-- lisp/org-macs.el| 2 - lisp/org.el | 79 +- 4 files changed, 150 insertions(+), 150 deletions(-) diff --git a/lisp/org-clock.el b/lisp/org-clock.el index 02924b8..20e624b 100644 --- a/lisp/org-clock.el +++ b/lisp/org-clock.el @@ -1700,85 +1700,85 @@ (defun org-clock-sum (&optional tstart tend headline-filter propname) which HEADLINE-FILTER returns nil are excluded from the clock summation. PROPNAME lets you set a custom text property instead of :org-clock-minutes." (interactive) - (with-silent-modifications -(let* ((re (concat "^\\(\\*+\\)[ \t]\\|^[ \t]*" - org-clock-string - "[ \t]*\\(?:\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)\\|=>[ \t]+\\([0-9]+\\):\\([0-9]+\\)\\)")) - (lmax 30) - (ltimes (make-vector lmax 0)) - (t1 0) - (level 0) - ts te dt - time) - (if (stringp tstart) (setq tstart (org-time-string-to-seconds tstart))) - (if (stringp tend) (setq tend (org-time-string-to-seconds tend))) - (if (consp tstart) (setq tstart (org-float-time tstart))) - (if (consp tend) (setq tend (org-float-time tend))) - (remove-text-properties (point-min) (point-max) - `(,(or propname :org-clock-minutes) t -:org-clock-force-headline-inclusion t)) - (save-excursion - (goto-char (point-max)) - (while (re-search-backward re nil t) - (cond - ((match-end 2) - ;; Two time stamps - (setq ts (match-string 2) - te (match-string 3) - ts (org-float-time - (apply 'encode-time (org-parse-time-string ts))) - te (org-float-time - (apply 'encode-time (org-parse-time-string te))) - ts (if tstart (max ts tstart) ts) - te (if tend (min te tend) te) - dt (- te ts) - t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1))) - ((match-end 4) - ;; A naked time - (setq t1 (+ t1 (string-to-number (match-string 5)) - (* 60 (string-to-number (match-string 4)) - (t ;; A headline - ;; Add the currently clocking item time to the total - (when (and org-clock-report-include-clocking-task - (equal (org-clocking-buffer) (current-buffer)) - (equal (marker-position org-clock-hd-marker) (point)) - tstart - tend - (>= (org-float-time org-clock-start-time) tstart) - (<= (org-float-time org-clock-start-time) tend)) - (let ((time (floor (- (org-float-time) -(org-float-time org-clock-start-time)) 60))) - (setq t1 (+ t1 time - (let* ((headline-forced - (get-text-property (point) - :org-clock-force-headline-inclusion)) - (headline-included - (or (null headline-filter) - (save-excursion - (save-match-data (funcall headline-filter)) - (setq level (- (match-end 1) (match-beginning 1))) - (when (or (> t1 0) (> (aref ltimes level) 0)) - (when (or headline-included headline-forced) - (if headline-included - (loop for l from 0 to level do - (aset ltimes l (+ (aref ltimes l) t1 - (setq time (aref ltimes level)) - (goto-char (match-beginning 0)) - (put-text-property (point) (point-at-eol) - (or propname :org-clock-minutes) time) - (if headline-filter - (save-excursion - (save-match-data - (while - (> (funcall outline-level) 1) - (outline-up-heading 1 t) - (put-text-property - (point) (point-at-eol) - :org-clock-force-headline-inclusion t)) - (setq t1 0) - (loop for l from level to (1- lmax) do - (aset ltimes l 0))) - (setq org-clock-file-total-minutes (aref ltim
Re: [O] Warning with latest git pull
Hi Achim, Achim Gratz writes: > Bastien writes: >> I hereby declare that I want Org to be fully functional for Emacs 23 >> and older, and I wish Org can be reasonably functional for Emacs <23 >> and XEmacs. > > If I may say so, XEmacs and Emacs up to 23.2 are missing > with-silent-modifications, preferring to make them loudly. > > Compatibility macro, please (you can glean it from the magit folks, you > might want to check if PJ Weisberg aka Bourgouignon has FSF copyright > assigned). There is already this in org-macs.el: (when (and (not (fboundp 'with-silent-modifications)) (or (< emacs-major-version 23) (and (= emacs-major-version 23) (< emacs-minor-version 2 (defmacro with-silent-modifications (&rest body) `(org-unmodified ,@body)) (def-edebug-spec with-silent-modifications (body))) > Remarks, Rewards, -- Bastien
Re: [O] Warning with latest git pull
Bastien writes: > I hereby declare that I want Org to be fully functional for Emacs 23 > and older, and I wish Org can be reasonably functional for Emacs <23 > and XEmacs. If I may say so, XEmacs and Emacs up to 23.2 are missing with-silent-modifications, preferring to make them loudly. Compatibility macro, please (you can glean it from the magit folks, you might want to check if PJ Weisberg aka Bourgouignon has FSF copyright assigned). :-) Remarks, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Blofeld: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [O] Warning with latest git pull
Bastien writes: >> No it's there, in gnus/time-date.elc ― maybe your versions are all >> without Gnus? > > Yes, my versions come without Gnus. I directly downloaded them > from xemacs.org (which is completely outdated by the way.) Which means that our compatibility function doesn't provide compatibility with XEmacs anyway. > org-condition-case-unless-debug is not in maint or master anymore, > so I guess this problem is gone. Do you confirm this? I haven't checked Emacs 22 ever since, so I don't know. Doing a full compatibility matrix test like I did last time takes time and I should probably script it, let me see when I can get to that. > But you're right, we need to publicly set a goal, at least. > > I hereby declare that I want Org to be fully functional for Emacs 23 > and older, and I wish Org can be reasonably functional for Emacs <23 > and XEmacs. XEmacs users and Emacs-22 users, please help reporting > comptability bugs, or you'll be ignored till the Dawn of Apocalypse. > > :) I should have seen this coming. Now, if that's how we do things these days: I hereby declare that XEmacs compatibility is broken already and he who wants to have this corrected should bring a working version of ert for XEmacs. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf rackAttack: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [O] Warning with latest git pull
Hi Achim, Achim Gratz writes: > Bastien writes: >> And time-to-seconds seems absent -- but it seems absent from >> *any* version of XEmacs I could check (21.4.1, 21.4.9, 21.5.9). > > No it's there, in gnus/time-date.elc — maybe your versions are all > without Gnus? Yes, my versions come without Gnus. I directly downloaded them from xemacs.org (which is completely outdated by the way.) >> So yes, I think it's safe to remove this compat function. Let me know >> if you find time-to-seconds in <2010 versions of XEmacs. > > I don't know which version of XEmacs is still in use, much less together > with Org (and again which version of Org). I often see 21.4 versions > installed in various places, but not how much use they are getting. The > 21.5b32 I have installed for rudimentary testing (I still havent managed > to stop the stack explosion that prevents the test suite from running) > is relatively recent, so I wouldn't put it as the benchmark of > compatibility. > > XEmacs compatibility in master is anyway broken since your reversion > 04eb4b08c3 If you see a way of re-reverting this without breaking the various way to install Org in Emacs, let me know. > and compatibility with Emacs 22 is on shaky grounds due to > b63275350f. org-condition-case-unless-debug is not in maint or master anymore, so I guess this problem is gone. Do you confirm this? > So I'll ask this question again: which Emacs versions > should Org 8 officially support? If we stick with what we have now, > we'll need to make it compatible again and at least try to get testing > off the ground for XEmacs, if we drop older Emacsen we will need to > remove the associated cruft from Org. It's a few days of work either > way, but with a possible release date approaching a decision is > necessary. "Official support" is useful to officially declare something as a bug or not. But I'm not sure it's worth officially declaring that we officially support this version and not this one. We are not Org LTS. We are just a few random hackers trying to do and share their best :) But you're right, we need to publicly set a goal, at least. I hereby declare that I want Org to be fully functional for Emacs 23 and older, and I wish Org can be reasonably functional for Emacs <23 and XEmacs. XEmacs users and Emacs-22 users, please help reporting comptability bugs, or you'll be ignored till the Dawn of Apocalypse. :) -- Bastien
Re: [O] Warning with latest git pull
Bastien writes: > And time-to-seconds seems absent -- but it seems absent from > *any* version of XEmacs I could check (21.4.1, 21.4.9, 21.5.9). No it's there, in gnus/time-date.elc — maybe your versions are all without Gnus? > So yes, I think it's safe to remove this compat function. Let me know > if you find time-to-seconds in <2010 versions of XEmacs. I don't know which version of XEmacs is still in use, much less together with Org (and again which version of Org). I often see 21.4 versions installed in various places, but not how much use they are getting. The 21.5b32 I have installed for rudimentary testing (I still havent managed to stop the stack explosion that prevents the test suite from running) is relatively recent, so I wouldn't put it as the benchmark of compatibility. XEmacs compatibility in master is anyway broken since your reversion 04eb4b08c3 and compatibility with Emacs 22 is on shaky grounds due to b63275350f. So I'll ask this question again: which Emacs versions should Org 8 officially support? If we stick with what we have now, we'll need to make it compatible again and at least try to get testing off the ground for XEmacs, if we drop older Emacsen we will need to remove the associated cruft from Org. It's a few days of work either way, but with a possible release date approaching a decision is necessary. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptations for KORG EX-800 and Poly-800MkII V0.9: http://Synth.Stromeko.net/Downloads.html#KorgSDada
Re: [O] Warning with latest git pull
Achim Gratz writes: > Bastien writes: >> Fixed, thanks! > > Uh… no, you switched the wrong function in the second line (which > incidentally indicates that this branch of the conditional never sees > any testing). Fixed in master by using org-float-time. Indeed, thanks for fixing this. > I checked in > XEmacs 21.5 and it has float-time, so maybe we wouldn't need a > compatibility function after all, but I don't know when XEmacs > introduced float-time. Mhh... the less compatibility functions the better. I found this ChangeLog entry in XEmacs 21.5-b33: 2010-05-30 Aidan Kehoe * subr.el (float-time): Add this function, available in editfns.c in GNU. And time-to-seconds seems absent -- but it seems absent from *any* version of XEmacs I could check (21.4.1, 21.4.9, 21.5.9). So yes, I think it's safe to remove this compat function. Let me know if you find time-to-seconds in <2010 versions of XEmacs. Thanks, -- Bastien
Re: [O] Warning with latest git pull
Bastien writes: > Fixed, thanks! Uh… no, you switched the wrong function in the second line (which incidentally indicates that this branch of the conditional never sees any testing). Fixed in master by using org-float-time. I checked in XEmacs 21.5 and it has float-time, so maybe we wouldn't need a compatibility function after all, but I don't know when XEmacs introduced float-time. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Re: [O] Warning with latest git pull
Hi Thomas, t...@tsdye.com (Thomas S. Dye) writes: > Here is a warning I don't remember seeing before, posted here in case it > is useful information: > > Compiling /Users/dk/.emacs.d/src/org-mode/lisp/org.el... > > In org-current-time: > org.el:5341:16:Warning: `time-to-seconds' is an obsolete function (as of > 21.1); use `float-time' instead. > org.el:5342:12:Warning: `time-to-seconds' is an obsolete function (as of > 21.1); use `float-time' instead. Fixed, thanks! -- Bastien
[O] Warning with latest git pull
Aloha all, Here is a warning I don't remember seeing before, posted here in case it is useful information: Compiling /Users/dk/.emacs.d/src/org-mode/lisp/org.el... In org-current-time: org.el:5341:16:Warning: `time-to-seconds' is an obsolete function (as of 21.1); use `float-time' instead. org.el:5342:12:Warning: `time-to-seconds' is an obsolete function (as of 21.1); use `float-time' instead. All the best, Tom -- T.S. Dye & Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com