-
-
Notifications
You must be signed in to change notification settings - Fork 801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New release of Compat #4836
Comments
Huhu @minad, Thanks for taking on the responsibility to maintain this package! (It happens, I recently ended up with EmacSQL. 🥲 ) For a moment I didn't like This is already live on Melpa and GNU-devel ELPA, right? So I better hurry and make the change now? When to you plan to merge ... ah, I see, the 29 branch has been merged. Jippie! Guess I have to interrupt personal data hygiene week for a moment. 😀 |
(I have come across the obsolete function aliases by now.) Given the name |
Well, better now than later or never. I've discussed this change a few times with @phikal. This is the only way we can scale the package, such that it could also be used in core. Also it helps in avoiding polluting the namespace.
Only on GNU-devel ELPA. I don't think Compat is on MELPA? Otherwise I would have been more careful. (EDIT: Just checked, it is not on MELPA.)
Philip did that earlier today. The Emacs 29 functions will be part of the next release. This should be fine I think given that the 29 branch is getting frozen soon.
We have both |
You could take a quoted symbol and explicitly unquote it in the macro; and make an unquoted symbol a compile error. That's one additional, "unnecessary" character, but the additional
Cannot think of anything convincing right now. Well maybe just "call" without any of the "fun". Actually, my first reaction to seeing the additional +(compat string-trim STR)
-(compat-string-trim STR) |
Of course. That would be an extra unnecessary character. I see your argument, but these
|
See the discussion with @tarsius in magit/magit#4836
Fyi on the time frame, my plan is to work a bit more on and improve the test suite. This will take maybe two weeks. If nothing problematic comes up then I will tag a new release 29.1.0.0. Any API changes we want to make should happen in this time period. There is no hurry but I also don't want to let this rest for too long. After the release I will relatively soon remove all the prefixed compat-* functions from the development version. This shouldn't have a significant impact given that not many users pull from ELPA-devel (EDIT: Except straight users). The problem is that the prefixed compat-* functions hold development back quite a bit. I'd like to reduce the complexity of the macros which generate the compatibility functions. In the meantime all the packages which depend on Compat have time to update. I expect this to happen quickly since the packages which use Compat are actively maintained. But there will be a longer grace period and I will make sure that all packages in the archives will be updated before I tag 29.1.1.0 without the prefix functions. |
I would prefer the extra |
Ups... messages crossed. |
Plan sounds good too. |
@tarsius I just checked MELPA and ELPA. It seems that you and I are the only Compat user who uses these prefixed
|
I (presumably through bad timing in my straight updates) found that magit is now breaking when trying to call |
@Lenbok Ah right, I forgot about Straight users. They will obviously be affected by any changes since they pull directly from Git. This means that we get many beta testers at least. :) Which branch do you mean? The compat-call Magit branch (https://github.com/magit/magit/tree/compat-call)? If you have time it would be great if you could test Compat master (https://github.com/emacs-compat/compat/tree/master) against both the Magit master and the compat-call branch. |
I'm getting problems today with Is there a way to override that? I guess adding (use-package compat
:straight (:host github :repo "emacs-compat/compat")) would do it. |
@hexmode Yes, pulling directly from upstream should fix the issue. But the straight mirror should also synchronize again soon. |
I also had to add |
Same here. I ran into the same problem after I built fresh emacs 29, latest spacemacs, and latest git versions for all packages. (straight-override-recipe '(compat :host github :repo "emacs-compat/compat")) |
@emacs18 I wonder why. In the meantime, the emacs-straight mirror has updated to a version which should work (emacs-straight/compat@46d9764). Can you please check if the override is still necessary? It should not be! |
I've updated my packages. I had difficulties confirming that I've updated all of them because The error I get is about (Also, is it a bug that compat's definition of that function doesn't take an optional third argument?) |
Thanks, there was indeed a bug, which is fixed now. See emacs-compat/compat@06d0369.
No, that is not a bug of Compat. Compat does not yet provide a new version of Note that Emacs 29 support is not yet complete. We can add more functionality on a case by case basis if needed. The most important functions are there though, and they are tested. |
@minad @tarsius |
@tsdh Can you check again, update and reinstall both Compat and Magit? It seems you updated Magit but not Compat. Which method do you use to install packages? |
@minad Ah, now I've got the Anyway, now after receiving the |
@tsdh Thank you for confirming. Sorry for the hiccup. I just checked Magit and everything seems alright there. compat-call is a new macro provided by compat.
This means you had a miscompilation. I wonder why Magit was happily updated/compiled on your system, while the Compat dependency wasn't satisfied. |
I don't know either and sadly there's not package update log (AFAICT). Anyway, everything works again. :-) |
Reopening for the benefit of those running into issues. |
Hello, I am using the latest Magit version
on Emacs built using the latest After the recent update of Magit, I am seeing this error and I believe it has to do with the recent change of
|
Hmm, uninstalling Magit (and all its dependencies) and reinstalling Magit fixed the above issue for me. It seems like I ended up with mixed installation of |
Thanks :) |
Just wanted to add that I also ran into this (broken calls to |
edit: ignore for now, not sure if maybe my magit didn't update correctly before. I'm gonna see if it happens again. Should be related, is this the right place? I think this happens after a commit:
After I did |
Hi @tarsius,
I've taken over maintainership of Compat for now. I am working on a new version, which unfortunately breaks the API exposed by Compat. Instead of using prefixed functions, e.g.,
compat-string-trim
, one has to call the compatibility functions with modified calling convention viacompat-funcall
macros. Looking up the functions is possible viacompat-function
.The reason for this change is that we reduce the API surface of Compat greatly by doing that. In principle this makes it also possible to use the formerly prefixed functions in core packages, given that
compat-funcall
is made part of Core itself. Individual core packages could also duplicatecompat-funcall
.See https://github.com/emacs-compat/compat
Please let me know if you have questions or feedback. It would be great if you could test your packages against the development version of Compat.
Daniel
The text was updated successfully, but these errors were encountered: