freenode/#sicl - IRC Chatlog
Search
3:02:25
beach
YAY! The paper on call-site optimization was accepted. 1 strong accept, 1 accept, 1 reject.
3:04:54
beach
I seem to have established a new terminology item, namely "snippet". I kind of like it myself.
3:07:12
beach
Corrections are to be expected. The less experienced as a technical writer you are, the more corrections will likely be required.
3:09:56
beach
Referee number 1 clearly understood the idea and suggested another paper to read and cite. That's the kind of referee report I like.
3:13:22
beach
It can happen that some referees on some conferences are not that great. Some of them are not qualified to read and understand the papers they referee, and their reports can be infuriating. But the list of members of the program committee for ELS2021 seemed pretty good. No doubt because Marco knows how to choose them.
3:17:13
beach
Even the "reject" is not bad. The main reason for the reject is that the technique has not been tested. That's fair, I guess.
3:22:52
beach
ELS is not a very prestigious forum, and it may not be as tough about the quality of the articles as some of the more prestigious ones, but it's a serious academic conference, so your accepted article counts.
4:22:01
no-defun-allowed
The feedback from the reviewers was very insightful. One thing though: is "abstraction inversion" a well-established term? The term has a Wikipedia page, so I was hoping it would be understood without a definition.
4:24:20
beach
It might not be something that is fresh in memory of every referee. You might as well explain it briefly.
4:49:05
splittist
This discussion of abstraction inversion leads me to wonder whether it has any meaning at all https://wiki.c2.com/?AbstractionInversion
4:51:44
no-defun-allowed
The definition I know is loosely "building a low-level abstraction on top of a high-level abstraction", which can appear if one wants to use features which are not provided by the high-level abstraction.
4:54:49
no-defun-allowed
(For example, phoe's implementation of Common Lisp control flow forms using Java's exception system. And in the paper, I argue that the "room" protocol provided by Matrix [the communication platform] forces too many design decisions, limiting reuse.)
5:18:51
beach
heisig: And, congratulations to you for finishing another important step in the ELS process.
5:22:09
beach
Not only heavy duty. It requires a lot of diplomacy, and some non-trivial knowledge about the subject.
5:23:29
beach
I have seen program chairs (not for ELS) in the past who just denied all responsibility and took the average of the referee reports. One such program chair was my colleague, and I was absolutely furious.
5:25:57
heisig
Yes, it is a bit involved. But I've been an author myself often enough to know how valuable it is to get decent feedback, and what difference a good letter of acceptance or rejection can make.
5:31:32
beach
Now the question in my mind is, do I need to take into account the remarks of the referee that rejected my paper? :) That referee has the most remarks, so I could save a lot of work by ignoring those remarks. :)
5:34:49
beach
Heh, I actually didn't read the remarks yet. It was more like a philosophical question.
5:46:20
no-defun-allowed
RAM firmware? From what I remember, it didn't seem like any DDR memory commands needed complex control logic, but that may not be the case.
5:48:19
beach
ebrasca: There are no good existing RISC-V computers (yet). It doesn't hurt to know several different architectures.
5:53:28
beach
OK, this is Monday and Monday mornings are chaotic around here. I will be mostly off for the next hour or so.
5:54:09
no-defun-allowed
Sometimes NOP is a macro for something like MOV, r0, r0 (as it is on ARM), but it can be used as a little delay, or for instruction alignment, or the processor may require it due to pipelining (such as old MIPS).
5:58:14
no-defun-allowed
According to <https://en.wikipedia.org/wiki/NOP_(code)#Machine_language_instructions> NOP is a macro for r0 ← r0 OR 0
6:02:02
no-defun-allowed
I don't think anyone does learn them all. I'd even bet that no one knows all the x86-64 instructions.
6:03:12
beach
ebrasca: My experience is that you learn instructions as you need them. You typically don't set out to learn them all.
6:09:11
fiddlerwoaroof
The time difference still makes it difficult for me: last year I attempted to attend, but it was pretty late
6:11:58
moon-child
heh, it's not about reverse-engineering the architecture. (That is a ... completely different kind of undertaking.) Really, it's just an assembly book, with a slight focus on reverse-engineering extant programs
6:16:03
no-defun-allowed
heisig: Just to check, how do I communicate with the shepherd? Do I just reply to your notification with the adjusted paper?
6:31:51
heisig
no-defun-allowed: You should be able to upload new revisions on Easychair. If you want to contact your shepherd, you can send the message to me an I pass it on.
7:17:17
beach
fiddlerwoaroof: Yes, it would have been better with a physical location. Then all the people from far away could take a few days to adjust to the time zone.
8:15:40
beach
I was willing to take a performance hit when I replaced my desktop tower with this small OCTO computer. But the SICL boot procedure runs faster with the OCTO: 33 seconds on the OCTO compared to 38 seconds on the desktop.
8:17:35
beach
I still have to buy myself a "USB C splitter", and verify that I can drive my three screens with it, but they claim it is the way to do it, and I hope they are right.
8:26:52
pjb
And foremost, the execution model was simplier, you could know what instruction sequence was fastest just counting cycles. With pipelines, predictions, and re-ordering, nowadays it's impossible to do it by hand, and it would depend on the target processor anyways.
8:27:59
pjb
IIRC, gcc performs dynamic explorations to find the best instruction sequences, this cannot be determined easily anymore.
8:28:58
moon-child
I saw a talk last year at pldi about applying neural networks to autovectorizers, because it's just too computationally complex to be done optimally otherwise
8:29:40
moon-child
(still not 'optimal' in all cases, but it got very favourable results compared with the brute-force solution)
8:31:23
heisig
Yes, you need something like https://llvm.org/docs/CommandGuide/llvm-mca.html to estimate the performance of some machine code.
8:33:12
heisig
On the other hand, programs that are limited by instruction throughput or the number of arithmetic units are very much the exception.
8:34:25
moon-child
I think that's an oversimplification. Certainly, if there's a single scarce resource, it's memory bandwidth. But that doesn't mean reducing alu usage won't improve overall performance at least somewhat in 99% of cases
11:00:24
lukego
but I think there are definite genres of program that have different performance limits. for some it will be memory bandwidth, for others execution units, for others latency at various levels of the memory hierarchy, etc.
11:03:22
lukego
I'd like to try static analyzers some time but I've always relied on CPU performance counters coupled with staring at disassembly
11:46:37
lukego
(intel have some interesting docs about this e.g. a "top down" method to try and work out where your performance bottlenecks are by following a flowchart to tell you which performance counters to consult, partly automated by some open source tooling they've published)
11:46:50
lukego
and I guess VTune is free now which is probably a hundred times better than any method I've used
12:53:19
scymtym
i'm experimenting with an approach for considering context in the highlighting style computation: https://techfak.de/~jmoringe/semantic-highlighting-2.png . note how, for example, variable, function and type names are bold when they appear in a "definition" context and not bold when they appear in a "reference" context. i will try to upload a document that outlines the approach and open questions later today
13:32:10
beach
scymtym: That seems like a great idea to me. In general, I am in favor of somewhat subtle hints in the form of font, color, background, etc., at least when possible, rather than some more spectacular indications that can distract the developer.
13:34:23
scymtym
beach: sure. however, i'm not really designing the aesthetics and ergonomics at this point. i'm currently trying to highlight all things in different ways based on what /could/ make sense later, so that i can collect the technical requirements
13:35:23
beach
Then I'll just say that I think it is a great idea to distinguish between defining occurrences and using occurrences.
13:40:01
scymtym
i'm trying to initially list all requirements and later accept or reject individual ones for implementation based on usefulness, implementation difficulty, etc.
13:45:07
splittist
at least one of the old lisp systems used to UPCASE symbols in the (equivalent of?) COMMON-LISP package. I wonder what a 'rainbow symbols' (in analogy to 'rainbow parens' would look like?
13:48:05
splittist
I guess one could also mark out the symbols in extended LOOP forms that will be treated as loop keywords. This would require an extensible LOOP to report such symbol names, of course.
13:48:36
scymtym
another possibility would be (slightly) underlining symbols for which documentation (not necessarily a docstring) is available. this could also consider the namespace so that (list …) would link to the entry for function and (let ((list …)) …) wouldn't link anywhere
13:49:41
beach
I think you have given all this a lot of thought and I think many of your ideas sound quit good to me.
13:49:43
scymtym
right. i haven't done underlining and background colors so far because other hints are easier to do in the CLIM-based demo. but i definitely want to include those
13:52:00
splittist
a thin border around the format controls in a format string (not that the system can know to what use a string will be put).
13:55:12
scymtym
the system can parse format control strings but, as you point out, knowing which string is a format control string can at best be estimated conservatively
13:55:33
splittist
a faint menacing throb for ERROR; an arrow connecting the GO to the TAG; a mechanical typewriter animation for TERPRI; STOP ME BEFORE I ...
13:56:03
scymtym
that said, identifying STRING in (format <anything> STRING …) is not out of the question
13:57:11
scymtym
i totally want arrows between uses and definitions. but probably only when you place the cursor/pointer over one
13:59:01
scymtym
drracket does it this way: https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fmiro.medium.com%2Fmax%2F1520%2F1*5T7UGXxXcn9oqLAoyh23pw.png&f=1&nofb=1
14:02:32
jackdaniel
perhapsa presentation method highlight-presentation-pair modelled after http://bauhh.dyndns.org:8000/clim-spec/23-3.html#_1172 ;?
14:04:45
scymtym
jackdaniel: that's a good point. i haven't found an appropriate mechanism in CLIM yet. so far (for example in clouseau) i (ab)use HIGHLIGHT-PRESENTATION for such things