freenode/#sicl - IRC Chatlog
Search
6:05:55
no-defun-allowed
On the bus going home from university again; this time everything went to plan transport-wise.
6:08:23
no-defun-allowed
I'm still not sure as there has been high variance, but somewhere between 1h20 and 2 hours.
6:11:16
no-defun-allowed
Today we were welcomed to country by some of the local aboriginal people, met our course directors, and I attended a lecture on academic writing.
6:13:18
no-defun-allowed
Indeed. There were also many stalls for the communities at the university (but I didn't look at many because someone was playing music very loudly)...
6:13:31
no-defun-allowed
...and there was plenty of time to go for pointless walks around the campus.
6:15:10
beach
If you watch some of Steven Pinker's YouTube presentations related to his book "A Sense of Style", you get some very good examples of how it both is and ought not to be.
6:20:48
no-defun-allowed
My problems may more likely be that I am too terse and have to elaborate more (supposedly like my mother); but there were many examples where the appropriate style was considerably longer.
6:52:37
beach
According to Pinker, the main problem in scientific writing is that it is hard for writers to imagine themselves in a situation where they *don't* know something that they actually *do* know. And he shows some examples of psychological experiments that demonstrate this phenomenon.
6:54:22
beach
So then the writing (or any teaching-like activity) becomes incomprehensible to everyone except a very narrow audience that shares the same knowledge, and sometimes that audience consists mainly of only the author.
8:00:21
splittist
I distrust a lack of terseness. I feat that either the writer is trying to avoid clarity, or they are trying to sell you something.
9:50:31
heisig
Hmm, the logs tell me that people care about CALL-NEXT-METHOD with arguments. Dammit, now I have to make it work :)
10:11:05
heisig
I am also proud of how portable it is. My only dependencies are closer-mop and trivial-macroexpand-all.
12:52:49
heisig
Tadaa: https://github.com/marcoheisig/sealable-metaobjects/commit/34b1de37ce38d7ce767f93c2f3e48bf66af07168
12:55:05
heisig
Now the only remaining restriction on generic function inlining is "define all methods in the null lexical environment".
13:26:38
scymtym
heisig: is C-N-M with keyword arguments allowed? from a brief glance, that commit doesn't look like it handles that case
14:44:32
heisig
I still have to add type checks to ensure that the arguments do not change the ordered set of applicable methods.
14:47:52
heisig
This is the code for handling lambda lists, if anyone is interested: https://github.com/marcoheisig/sealable-metaobjects/blob/master/code/lambda-lists.lisp
14:52:45
scymtym
heisig: hm, maybe i'm not seeing it. where are keyword parameter defaults (from the next method) for unsupplied keyword arguments computed?
14:56:00
heisig
The crucial part is here: https://github.com/marcoheisig/sealable-metaobjects/blob/075c2be5942aa9946a411686050d8a2df80fbb2c/code/fast-generic-function.lisp#L192
14:58:18
scymtym
i would have to look at a few macroexpansions, i think. but maybe you can check the result of (defmethod bar ((x integer) &key y z) (list x y z (call-next-method x :y y))) (defmethod bar ((x real) &key (y 3) (z 4)) (list x y z)) (bar 1 :y 2). i believe it should be (1 2 nil (1 2 4))
15:09:27
heisig
scymtym: It produces the correct result. Here is the generated inline lambda for (bar 1 :y 2): https://gist.github.com/marcoheisig/36382e06f6b3a1ec9ce7e6fe2c13c15c
15:21:37
beach
This is great! I can't wait to see all these wonderful techniques gathered together in one (working) implementation. :)
15:25:48
heisig
Now I just need to find a better name than 'fast-generic-function'. Unfortunately 'partially-inlineable-generic-function' is too unwieldy.
15:25:55
scymtym
heisig: i recommend seizing the opportunity and asserting that result in the test suite :)
15:32:02
scymtym
heisig: it seems INLINEABLE-[STANDARD-]GENERIC-FUNCTION should no longer be exported and the README should not mention them after 1d668f36471f9f3250693eff657c96d8418af83d