freenode/#sicl - IRC Chatlog
Search
8:40:58
jackdaniel
ECL now has stamps. They are not used yet for the fastgf, but I've fixed another issue by implementing them (so it will be easier later with fastgf)
9:38:35
jackdaniel
from less great notes I'm seriously considering declining to give the keynote talk at els, I have really little time for anything given we juggle the little one with my wife due to quarantine, and two weeks is just too short notice for me in the current situation
9:39:44
beach
I am certainly not going to participate. The talks are not the reason I go. But as an author I should attempt to record my own talks.
11:04:05
alandipert
jackdaniel i feel your pain re: juggling of little one. i'm gonna try to record a talk but i already know it's not gonna be great :\
13:12:33
Bike
we need to be able to do transformations that rely on actually having constants around.
13:13:23
beach
And we need type information at the HIR level for type inference and constant propagation.
13:13:54
beach
As I recall, we decided to keep the constant in HIR but also generate code to create it, at the AST level.
13:21:02
heisig
OK, what Bike says is that a compiler should be able to add and remove arbitrary constants at any time.
13:22:59
beach
It is much easier to deal with code for creating complicated constants at the AST level.
13:24:19
Bike
well the basic thing i want to be able to see the values of constants. like as far as I know right now there's hardly even a way to tell that a given input in HIR even is constant, let alone what its value is
13:26:25
Bike
i don't think we'll need to add new constants other than built in stuff, so i'm not too worried about that
13:27:48
Bike
we probably also want to break up constants, e.g. (let ((x constant)) (member y x)) could be reduced to a case
13:28:56
heisig
But now we have diverged from a discussion about hoisting to a discussion about CL type systems.
13:29:19
Bike
actually, for member you might want to introduce new list constants for the return value, and have them coalesced
13:50:12
Bike
or: (let ((x '(vector (unsigned-byte 8)))) (make-sequence x 14)) => (make-array 14 :element-type '(unsigned-byte 8))
13:53:45
heisig
Bike: In your examples, both the second argument to member and the first argument to make-sequence could be represented as an EQL type.
13:55:31
Bike
you're right about eql types. but like, how it's accomplished isn't so much my concern - cleavir cannot do these right now, which i think is really inadequate for an optimizing compiler.
13:55:51
Bike
in clasp I have them done at source level, but that means you need the literal constant in the make-sequence call or whatever - introducing the let binding inhibits it. that is dumb.
13:57:14
heisig
Sounds to me what we really need is a SICL module for manipulating Common Lisp types.
13:58:00
Bike
beach and i talked about that quite a while ago, but it would basically mean another customization layer, since implementations often extend the type system
14:00:05
heisig
All implementations do is to add a few subtypes here and there. I think it should be possible to write a library that works for everyone.
14:00:31
heisig
Also, I recall scymtym had some very good ideas on how such a library could look like.
14:02:45
heisig
Maybe I should talk to scymtym, and then take a week of vacation and write a prototype.
14:05:05
Bike
some of it's still lying around waiting to be incorporated into clasp. i just focused on doing typecase fast, so it doesn't need to e.g. precisely compute joins or meets, which is a pain to do
14:06:07
heisig
I feel motivated to work on such a library. The question is whether I find enough free time to write it.
14:07:51
Bike
https://github.com/Bike/typecase/blob/master/typecase.lisp let's see... yeah, array types, cons types, numeric ranges, and or not satisfies, classes
14:09:12
beach
For type stuff, including subtypep, we should pay attention to the research by Didier Verna, Jim Newton, et al.
14:10:04
Bike
my code here is based on the assumption that you have something like class numbers so you can distinguish the class of an object very quickly, which I don't think newton was doing
14:10:43
Bike
for everything beyond that my code is worse, though, so that would be where they come in
14:12:38
Bike
it probably is applicable. I don't remember all the details of newton's ELS presentation, but i think he was focused on different kinds of types from me
14:13:01
Bike
for this code I was focusing on a typecase that barely does anything fancy with and/or/not, but he was doing all that algebraic stuff
14:16:39
Bike
well, anyway. if constant propagation takes more thinking i should do something else, like CASE. I was thinking that, like IF, what we could do is have a multiway-branch-ast (or something) analogous to if-ast, and then e.g. a fixnum-case-ast or char-case-ast or etc as the tests
14:17:17
Bike
if they have immediate-inputs as inputs i can probably compile them efficiently without worrying about constants too much
15:51:36
heisig
I understand that a lot of the value of a conference is lost when you cannot discuss matters face-to-face.
15:52:43
heisig
But on the other hand, it could be the opportunity for people from all over the world to attend.
15:55:50
heisig
But there is a nonzero chance to meet very interesting people from, say, India or Japan.
16:26:27
heisig
I think it will be important to wait for the technical decisions - which software, which schedule, how the sessions are moderated.
16:46:08
alandipert
heisig i wish i could go to a real ELS someday,but like you i'm looking forward to being involved with this one. and generally the the idea of wider reach of CL
16:49:20
alandipert
heisig if you're interested in recording some combination of your screen and yourself, i can recommend the tool OBS
16:51:05
alandipert
incidentally that demand has pointed me at an opening at a company filled with CL-curious and opportunities to CL things
16:53:14
alandipert
as a a mostly hardware company they are trying to professionalize software development internally, and so hired a team of Clojure programmers i once worked with to do so
16:53:49
alandipert
and in interviewing i found them to be sympathetic to various heretical ideas i threw out lol
16:57:16
alandipert
"opportunities to CL" is maybe overselling.. any opportunities would be far off. but the people are the kind who are open to such things. much less of a leap from Clojure to CL than pretty much anything else in industry afaik
16:58:02
alandipert
heisig oh yeah, one more unsolicited suggestion, try to use an headset or dedicated microphone if at all possible
17:14:07
alandipert
i've never done this live, but i did it once when i practiced a talk and it might have helped
17:14:43
alandipert
the other thing is to keep in mind that you can edit audio, so you don't need very long takes necessarily
17:15:11
alandipert
the only thing there is if you change recording location the audio will sound noticeably different which could distract people
17:16:55
heisig
No, it was about a HPC framework that I plan to use for Petalisp. I presented it to my colleagues.
17:18:32
heisig
Next week will be most interesting. The next semester starts on Monday, and we are supposed to read our lectures to 200+ students via Zoom.
17:19:51
alandipert
i'm part of a 200+ person zoom call every quarter, usually goes ok. with everyone using zoom tho now.. i agree it seems dicey
17:20:56
MichaelRaskin
They are very much pushing towards «maybe lecture part should be prerecorded and posted» of course (and they are right…)
17:25:06
heisig
Yes, but I'd like to hear from a Nix user that is not just afraid of the parentheses.
17:25:47
MichaelRaskin
There is that observation that some stuff is better covered in Nix, and not by me.
17:26:48
MichaelRaskin
And then Guix is more puristic re: licensing. I guess even my TPTP expression would not be allowed.
17:27:15
heisig
Incidentally, the HPC framework that I presented (StarPU) lists Guix as the recommended way to install it.
17:29:25
alandipert
i'm out, by all, good luck heisig on your lecture. be sure to mute everyone first thing :)
17:32:56
MichaelRaskin
heisig: but re: Guix, I guess there is that thing that I was perfectly comfortable with both Nix and Bash by the time Ludovic decided to build Guix
17:34:38
MichaelRaskin
heisig: about convincing solutions for conversations and moderation, I guess there is also the question of support for unmoderated and dynamically occuring small voice chats