freenode/#sicl - IRC Chatlog
Search
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
19:28:45
Bike
i did a quick survey. on clasp, discriminating functions for about 28 of all 1089 defined generic functions (or 577 generic functions that have ever been called) could be improved by reduction
21:02:22
Bike
i put in something that counts how often generic function outcomes are reached. kind of interesting. for a start I can see that cleavir-ir:inputs has been called over twenty five million times
21:04:31
Bike
looking through random cleavir functions, it seems reasonably common for there to be one outcome that's almost always used, and then a few that are rarer
21:04:48
Bike
for example, cleavir-ir:inputs has twenty five million calls using that one outcome, and then a few hundred thousand using the other
21:05:07
Bike
(there are different outcomes because slots are ordered differently so they have different instance locations... wondering if it's possible to fix that...)