[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/cl-lib 6f4af5f 02/10: Add cl-letf and cl-labels.
From: |
Stefan Monnier |
Subject: |
[elpa] externals/cl-lib 6f4af5f 02/10: Add cl-letf and cl-labels. |
Date: |
Tue, 1 Dec 2020 15:28:43 -0500 (EST) |
branch: externals/cl-lib
commit 6f4af5f3c3983b1199c4ae41846a288431508541
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
Add cl-letf and cl-labels.
---
cl-lib.el | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/cl-lib.el b/cl-lib.el
index 836c554..015226a 100644
--- a/cl-lib.el
+++ b/cl-lib.el
@@ -4,7 +4,7 @@
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; vcomment: Emacs-24.3's version is 1.0 so this has to stay below.
-;; Version: 0.1
+;; Version: 0.2
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -173,7 +173,7 @@
callf2
callf
letf*
- ;; letf
+ letf
rotatef
shiftf
remf
@@ -276,5 +276,14 @@
(intern (format "cl-%s" fun)))))
(defalias new fun)))
+;; `cl-labels' is not 100% compatible with `labels' when using dynamic scoping
+;; (mostly because it does not turn lambdas that refer to those functions into
+;; closures). OTOH it is compatible when using lexical scoping.
+
+(defmacro cl-labels (&rest args)
+ (if (and (boundp 'lexical-binding) lexical-binding)
+ `(labels ,@args)
+ (error "`cl-labels' with dynamic scoping is not implemented")))
+
(provide 'cl-lib)
;;; cl-lib.el ends here
- [elpa] branch externals/cl-lib created (now 2cd9e37), Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 455a801 01/10: * packages/cl-lib: New package., Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 6f4af5f 02/10: Add cl-letf and cl-labels.,
Stefan Monnier <=
- [elpa] externals/cl-lib cad1a4c 03/10: * cl-lib.el: Try and patch things up in case we're hiding the real cl-lib., Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib cf5c963 05/10: * cl-lib.el: Resolve conflicts with old internal definitions (bug#16353)., Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 2cd9e37 10/10: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 9062b27 08/10: * cl-lib/cl-lib.el: Don't use `emacs` package for Emacs<24, Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib fb8701d 04/10: * cl-lib.el (cl-labels): Demote error to message and improve it., Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib fbed770 06/10: Fixes: debbugs:16671, Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 67a7371 07/10: * cl-lib/cl-lib.el: Make it work for Emacs-21. Bump version to 0.6, Stefan Monnier, 2020/12/01
- [elpa] externals/cl-lib 59e400f 09/10: * cl-lib.el: Clarify that it's a forward compatibility version, Stefan Monnier, 2020/12/01