Object Oriented Code in the Gnus Newsreader
summary
Gnus implements object-like behavior in nno.el with top-level macros defvu/defu (dates back to 1996) that create defvar slots and defun methods, cache them, and materialize server instances by copying slot values into global variables like nno-state at runtime; methods dispatch by naming convention (nnimap-close-server, etc.) and inheritance lives mostly in nnmail. Proposal converts defu to cl-defgeneric/cl-defmethod (EIEIO in 2010, generic functions improved 2015), but challenges include optional-argument dispatch, adding slots to cl-defstruct/cl-defclass, and keeping backward compatibility for ~10–100 existing backends.
AI-written summary · about
chapters (7)
- 0:00Introduction to Gnus
- 1:27Object orientation in Gnus
- 3:59Gnus server objects
- 10:01Methods in Gnus
- 13:48Modern OOP libraries
- 15:14Rewriting Gnus with CL-OOP
- 22:36Future of Gnus OOP
related talks
14mTransitioning from Structural to Nominal Code with Efficient Gradual Typing
33mPrototypes: Object-Orientation, Functionally
38mWhat Object-Oriented Programming Was Supposed to Be: Two Grumpy Old Guys’ Take on ...
45mFunctional programming vs. Object-oriented Programming
05mBron Gondwana - Ignite OSCON 2014
43mObject oriented Network Function Virtualization
44mAsking, Telling and Modularity: Choices in Code
01h 16mPolymorphism, Cohesion, and Coupling in C++
