emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: refresh not working for org-mode from git


From: Colin Baxter
Subject: Re: refresh not working for org-mode from git
Date: Sat, 24 Sep 2022 09:14:47 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Thank you for your detailed reply.

>>>>> Tim Cross <theophilusx@gmail.com> writes:

    > Colin Baxter <m43cap@yandex.com> writes:

    >> Recently, if I use C-c C-x ! to refresh org-mode after a git
    >> pull, I get an error. I then have to close down emacs and launch
    >> again. This rather defeats the object of C-c C-x !. This appears
    >> to have happened only recently

    ----------------- snip ---------------------------------

    > I wasn't aware that command even existed. However, I suspect it
    > will cause issues in your use case. I'm not sure it is a good
    > command to actually have given the complexities associated with
    > getting a clean org build.

    > In many cases, you may not run into issues - especially if you do
    > a git pull frequently. However, I can see various scenarios which
    > will lead to inconsistent builds. I suspect the error you are
    > seeing is the result of recent work to try and identify builds
    > which are likely to result in an inconsistent 'mixed' version
    > build.

That could well be the case here because the technique used to work up
until quite recently (~2 weeks)

    > Detecting such scenarios is difficult and relies on a
    > number of heuristics, one of which is to flag a problem if the
    > loaded version and the target build version don't match.

    > A lot would depend on how you build (re-compile) org mode after
    > doing a git pull. If you compile it in a separate Emacs instance,
    > you should have less issues and reloading after the build will
    > likely work. However, if your trying to build org mode within the
    > running Emacs where you have already loaded org mode, I suspect
    > you will run into issues. You have a slight 'chicken and egg'
    > issue and will run into similar issues as the common mixed build
    > problems.

Normally, I use `M-x vc-dir' to update from git, then `M-x compile'
followed by `make clean' and `make'. Finally, update org-mode in the
same emacs with an org-mode buffer present. As I said, it used to work
well. 

    > One thing which might work would be to ensure you run the reload
    > command with the option to load from uncompiled sources BEFORE you
    > run the build process and then re-run the load command after the
    > build (loading compiled versions this time).

Yes, I will try that. And I will also ring all the other changes to see
what happens --- if anything. 

    > I have no idea how things might break given the new native
    > compilation modes in Emacs. I suspect it will cause all sorts of
    > issue with your workflow.

I have avoided problems here by not using native compilation. I did try
it once in the past, but I didn't think it was worth the candle since
frankly I didn't notice any change in emacs performance, possibly
because I only do simple things with emacs.

    > Personally, I always update org in a fresh instance of Emacs
    > (before any org functionality is loaded) and I would always
    > restart Emacs after updating a major packages like org mode. I'm
    > not sure why we have the reload command - I suspect it may be a
    > hang over from earlier attempts to work around the mixed build
    > problem. I do suspect that given new native compilation modes and
    > the additional complexity ths can cause, combined with increasing
    > org mode complexity, the notion of being able to pull down a new
    > version, build and reload it within one emacs instance is perhaps
    > flawed or at the very least, is more complex than just forcing a
    > reload of org *.elc files.

Indeed. Emacs seems to have became a rather complex beast in recent
years. Perhaps it was ever thus.

Best wishes,

Colin.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]