From 2b47dac39b443210eb0d34ac31257f19c4ab1a64 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 2 Dec 2021 12:46:03 -0500 Subject: Add pad stuff --- 2021/talks/form.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to '2021/talks/form.md') diff --git a/2021/talks/form.md b/2021/talks/form.md index 093887ed..291cf3cc 100644 --- a/2021/talks/form.md +++ b/2021/talks/form.md @@ -28,6 +28,40 @@ modular, flexible Emacs Lisp. IRC nick: ieure +- Q2: AFAIK, EIEIO is generally slower than, e.g. cl-defstructs.  When + do you think EIEIO is not suitable for performance reasons? + - A: I agree with Dmitry: first make it work, then make it fast.  + I don\'t think there\'s a blanket reason not to use EIEIO, but + definitely profile if you\'re using it in a performance-critical + context.  EXWM is one project that uses EIEIO extensively and + seems to perform well, so I don\'t think it\'s off-limits for + performance-critical code. +- Q3: Do you have any tips about introspection?  e.g. IIRC there\'s an + EIEIO introspection facility, though it may be somewhat primitive. + - A: It is somewhat primitive, but seems to work okay + (.  + I haven\'t found a need for anything fancier (yet). +- Q4: Have you used any of the EIEIO-related serialization tools?  + IIRC there are some limitations with regard to printable/readable + values. + - A: I haven\'t had call for this, but + + is the mechanism (for anyone wondering) +- Q5: I did not get how generic functions can work with non class + objects + - A: Dynamic dispatch is very powerful! +- Q6:So with that Emacs is on pair with Smalltalk development + environments now (?) + - A: Not very familiar +- Q7: Most of what you presented can be done without \`defclass\`.  + AFAICT, the only exception is \*multiple\* inheritance (since + \`cl-defstruct\` also supports single inheritance via \`:include\`). + - A: Yes, you can mix and match structs/objects or any other + type.  You need classes if you want the EIEIO customization + editing facility or MI.  I think also \`initialize-instance\` is + class-only, so you need classes if you have to do some kinds of + complex (cross-slot) initializtaion. + - I didn't know that custom.el works with EIEIO that way, very nice - Dang Ian. What a talk, great demos. - Wow, that's a great talk. @@ -45,7 +79,11 @@ IRC nick: ieure - ieure: This is the thing that implements (thing (eql :whatever)) specialization, should be a good starting point if you want (thing (string-match-p "^foo")): - thanks for the pointer, but I think I have some more pressing cl-defgeneric reimplementations to make before I touch that - ieure: Extremely fair. One thing I didn't get to touch on is that you can extend generic functions from anywhere. So you don't have to patch up cl-generic.el, you can define a new method for a generic function defined anywhere, in any file. Which rules. +- This is not a question: Brilliant title for the presentation. :) + +Links: +- # Outline - What is EIEIO? -- cgit v1.2.3