sanel / monroe

Clojure nREPL client for Emacs
161 stars 21 forks source link

Load cl-lib for using 'loop', 'incf', 'first', 'second' #6

Closed syohex closed 8 years ago

syohex commented 10 years ago

And add its dependency to header.

sanel commented 10 years ago

Hi,

Thanks for this! However, I'm concerned, is cl-lib present on older Emacs versions? Maybe XEmacs? Is it changed between Emacs versions and what are the benefits over loop, incf, first...?

Please, Monroe should have absolutely minimal dependencies and depending on specific library with with a specific version breaks original goals.

Sanel

syohex commented 10 years ago

I'm concerned, is cl-lib present on older Emacs versions?

No, it is not present on older Emacs(<= 24.2). However cl-lib is installed as dependency of this package if user installs this package by package.el.

Is it changed between Emacs versions and what are the benefits over loop, incf, first...?

No. Both are same except name. However cl-lib.el is preferable than cl.el. See also http://www.emacswiki.org/emacs/CommonLispForEmacs

Please, Monroe should have absolutely minimal dependencies and depending on specific library with with a specific version breaks original goals.

At least you should add following code if you don't use cl-lib.

(eval-when-compile
  (require 'cl))
sanel commented 10 years ago

Hi!

I'm still not sure how this adds any benefits, except another messy inclusion of library that provides somethings elisp already has. Can you see any more places where cl-lib.el functions will bring more benefit or cleaner code?

syohex commented 10 years ago

Can you see any more places where cl-lib.el functions will bring more benefit or cleaner code?

http://ergoemacs.org/emacs/elisp_common_lisp_in_emacs.html http://www.gnu.org/software/emacs/manual/html_mono/cl.html

aterweele commented 3 years ago

I'd like to ask for this change to be considered again. The cl package appears to be deprecated in Emacs 27.1, which I believe is what causes a deprecation notice to appear when I byte-compile or load monroe. Using cl-lib and the cl--prefixed functions and macros should fix this.

cl-lib is available since Emacs 24.3, so the change should be reasonably compatible with older Emacs, though that judgement is subjective. I was unable to verify if this change would be compatible with XEmacs.

The Package-Requires specifies the minimum acceptable version of cl-lib, I believe. Given that cl-lib is built into recent versions of GNU Emacs, I think that this is not really an extra dependency.

sanel commented 3 years ago

Hey @aterweele I agree with you. I reopened this in https://github.com/sanel/monroe/issues/37