libera/#sicl - IRC Chatlog
Search
7:35:02
pjb
Good morning #sicl! </like Robbin Willians saying Good Morning Vietnam! in "Good Morning Vietnam!">
7:37:26
beach
I should have thought of that when I lived in Vietnam, but maybe that would have been tacky.
7:59:51
Colleen
heisig: Bike said at 2021.07.16 05:07:42: I don't know if you remember when we talked about my "apply-method" thing before, but i have organized my thoughts into a coherent specification. since you deal with this in fast-generic-functions i'd appreciate any thoughts https://github.com/Bike/clhs-extension/tree/main/apply-method
8:06:33
beach
I wonder why Bike's text insists on thinking that MAKE-METHOD-LAMBDA is problematic despite my paper showing that it isn't.
8:08:04
heisig
For example, Bike wonders what happens when a user shadows MAKE-METHOD or CALL-METHOD. But both symbols are defined in the CL package, so shadowing them is simply not allowed.
8:09:32
beach
I guess I must not have read this post since it seemed to be addressed to you specifically.
8:09:42
heisig
It is a shame that the rationale for some of the more arcane design choices of the MOP was never clearly documented. That would have saved a lot of discussion.
8:14:47
hayley
Well, I've been better, but fine enough. Going to start writing the final part of MIR-to-LIR. How are you?
8:16:27
heisig
I survived the end of the semester (setting up and grading exams, lots of planning, ...). Now things are starting to look better.
8:17:55
heisig
Which, on the one hand, is a shame - I really enjoy teaching. But on the other hand this gives me time to finish my PhD thesis.
8:18:57
heisig
I'm looking forward to the moment when all these new, shiny SICL tools are coming together.
8:21:34
heisig
beach: I submitted this grant proposal a few months ago. If that passes, I'll have two more years of funding for working on Lisp, machine learning, and HPC.
8:24:53
heisig
And I have this urge to create a workable SICL image, and to explore some ideas with it :)
8:26:46
heisig
I will tell you immediately. But the DFG's review process takes time. It still might be a few months before I hear back from them.
8:29:55
beach
Gnuxie has made progress on the disassembler. Otherwise, nothing has changed. The database is incomplete, and parts like floating-point are missing.
8:31:18
heisig
I was asking because I spend a lot of my recent time working with raw assembly for my work with sb-simd. Especially the floating-point related parts.
8:31:47
moon-child
x86 instruction encodings are unpleasant. I did not appreciate them in my assembler. Best of luck :)
8:35:03
hayley
Yes, ARM is a smartphone industry-funded experiment into seeing how many instructions you can fit into a fixed-width instruction set.
8:35:52
moon-child
floating point javascript convert to signed fixed-point, rounding towards zero, anyone?
8:36:57
hayley
(And I was a bit let down by the SIMD extension...NEON, was it, which is designed for video decoding apparently, and so it loses some of the fun stuff in x86-64 like masks and I think even comparisons. But, then again, MMX was also a Multi-Media eXtension and look where that went.)
8:37:37
heisig
hayley: At least ARM doesn't offer two different SIMD instruction sets (SSE and AVX) and a heftly performance penalty for mixing them by accident.
8:38:46
hayley
Then again, x86-64 has 64-bit MMX, 128-bit SSE, 256-bit AVX and 512-bit AVX-512 which is twice as bad.
8:39:16
moon-child
I don't think there's any penalty for mixing avx and avx512 at least, though? More damning is x87
8:39:55
heisig
Yes, there is only a penalty for going from SSE to AVX and vice versa, as far as I know.
8:41:28
hayley
Still, I struggle to find "normal" uses of SIMD and so I wouldn't be writing a lot of NEON code.
8:45:41
hayley
When I skimmed the NEON instruction set documentation, I was convinced it was designed for doing mapping operations over vectors and matrices and such. Whereas, say, my use of SIMD in that hash table design was to search, which involves performing a byte-wise comparison and generating a bitmap of matches.
8:47:14
beach
I am convinced that SIMD can be used for FFT, but can it also be used to generate several oscillators in parallel, like with one multiplication and one (+ one for accumulation) per sample?
8:48:45
hayley
Yes, the instructions typically do element-wise operations. So it would be possible to generate a vector of samples from oscillators with different frequencies.
8:49:57
heisig
I also realized that using SIMD instructions from Lisp can be very enjoyable. All one needs is new data types for each kind of specialized SIMD pack.
8:51:21
hayley
My next SIMD project isn't awfully different to my last; it will be to implement a code generator for substring search. "Technology beats algorithms (in exact string matching)" <https://arxiv.org/abs/1612.01506> suggests a sort-of naïve searching algorithm can be faster merely due to vector hardware.
12:53:49
beach
Bike: About that link, I thought my paper eliminated the perceived problem that Costanza and Herzeel argued against MAKE-METHOD-LAMBDA. But you don't mention it, so I take it you don't buy my point of view?
12:57:11
Bike
i didn't talk about shadowing make-method or call-method in the current standard, i know that' snot allowed. do you mean the ""The form within a MAKE-METHOD is specifiedto be evaluated in a very specific environment, a null lexical environmentwith a local macro for CALL-METHOD and no bindings named with symbols visible from the common-lisp-user-package. Given that CALL-METHOD forms can appear inmethod
12:57:17
Bike
combination expansions controlled by the user, if taken literally this would mean that the implementation would somehow need to hide the user's own bindings should those bindings be named by such symbols."
12:57:40
beach
In fact, I had a long dialogue with the referees, during which I discovered that the main example in their paper, that they thought was an example from the AMOP book, in fact was an example of something else.
13:03:05
beach
Me? I was just referring to the first two paragraphs of your text, that mentions their paper and a problem that I show does not exist.
13:03:53
Bike
i meant heisig's "For example, Bike wonders what happens when a user shadows MAKE-METHOD or CALL-METHOD."
13:04:29
Bike
i don't remember the contents of you paper exactly and for whatever reason i can't download it from your website right now, apparently
13:05:08
heisig
Bike: I will comment on your specification, but I need at least one night of sleep to think it over.