]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/oclosure.el (Commentary:): Add a few notes
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 27 Dec 2021 20:30:07 +0000 (15:30 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 27 Dec 2021 20:30:07 +0000 (15:30 -0500)
lisp/emacs-lisp/oclosure.el

index 7a8290c33ffb464cc291919331dceb1342c411a4..036febb23b7f9799fa3d3897eaf007b210869188 100644 (file)
 ;;   has an additional `interactive-form' slot.
 ;; - auto-generate docstrings for cl-defstruct slot accessors instead of
 ;;   storing them in the accessor itself?
+;; - SRFI-17's `setter'.
+;; - coercion wrappers, as in "Threesomes, with and without blame"
+;;   https://dl.acm.org/doi/10.1145/1706299.1706342, or
+;;   "On the Runtime Complexity of Type-Directed Unboxing"
+;;   http://sv.c.titech.ac.jp/minamide/papers.html
+;; - An efficient `negate' operation such that
+;;   (negate f) generally returns (lambda (x) (not (f x)))
+;;   but it can optimize (negate (negate f)) to f and (negate #'<) to
+;;   #'>=.
 
 ;; Related constructs:
 ;; - `funcallable-standard-object' (FSO) in Common-Lisp.  These are different
 ;;   additional argument (a kind of "self" arg), thus making it easier
 ;;   for the code to get data from the object's extra info, tho still
 ;;   not as easy as with OClosures.
+;; - "entities" in Lisp Machine Lisp (LML)
+;;   https://hanshuebner.github.io/lmman/fd-clo.xml
+;;   These are arguably identical to OClosures, modulo the fact that LML doesn't
+;;   have lexically-scoped closures and uses a form of closures based on
+;;   capturing (and reinstating) dynamically scoped bindings instead.
+
+;; Naming: to replace "OClosure" we could go with
+;; - open closures
+;; - disclosures
+;; - opening
+;; - object functions/closures
+;; - structured functions/closures (strunctions, strufs)
+;; - slotfuns (slotted functions)
 
 ;;; Code: