libera/#sicl - IRC Chatlog
Search
13:29:54
heisig
beach: Slow, but steady. I somehow seem to end up with 30+ pages of related work, where each page took me a full day to write.
14:29:38
beach
Bike: I was thinking about your case of source information in code that has been constructed programmatically. It would be nice to assign source positions by pretty-printing the code.
14:32:15
Bike
you mean, like compile gets some conses, it pretty prints them, then uses the resulting text for the source locations?
14:33:37
beach
Somehow, it must be possible to tell the pretty printer to assign source locations. Or something like that.
14:33:42
yitzi
With a custom client in incless/inravina maybe you could just capture the line/column for each subform.
14:35:57
beach
Bike: It would make it possible to use the same tools for examining source code that has been created programmatically that are used for source code being read.
14:36:13
yitzi
Yes, I think that would be doable. The line numbers in Inravina are all relative since it is just there to support `*print-lines*`
14:43:22
Bike
beach: wrt subtypep talk, i've been thinking about the WSCL type error idea. i've been sketching out my thoughts in longer form, but the gist of it is that specifying that operators signal particular errors may not be the best way to go about it
14:44:03
Bike
for reasons like, if subtypep had to signal an error on non type specifiers, you could write conforming code to check if something is a type specifier by handling such an error; but that would be stylistically unfortunate and somewhat bug prone compared to an actual predicate function
14:46:20
Bike
it would also be important to clarify timing. for example, it is impossible for THE to detect and signal type declaration violations in all cases due to FUNCTION types, but they could be detected later
14:46:33
beach
Isn't that just one particularly twisted case? I mean, I don't see anything wrong with requiring AREF to signal a type error if it is given something that is not an array.
14:47:34
beach
I don't think it has been stated that WSCL should require that a TYPE-ERROR is always signaled by every operator.
14:50:19
beach
Also, in the case of SUBTYPEP, it is iffy, because it is always preferable to have WSCL specify something that is already done by most implementations in practice. And here we have at least one implementation that might have made the decision to gain a few nanoseconds by not checking that it has been given a type specifier.
14:51:56
Bike
depends on what you mean by accident. the sbcl definition of subtypep has a comment explicitly laying out that they're not required to check that the arguments are valid type specifiers.
14:54:54
Bike
with aref... take (let ((arr (foo))) (map nil f arr) (aref arr 0)). i think an implementation that checked if FOO returned an array, and immediately signaled an error if it didn't, would be fine (morally, if not conformingly at the moment, I'm not sure about that). that would let it give a better message concerning the actual source of the problem, FOO. and it would let it compile the MAP call to only traverse
14:55:59
Bike
that's not incompatible with saying a type error is signaled if aref is given a non-array, but it might be phrased differently than "aref should signal an error"
15:01:25
yitzi
beach: Yes, the line numbers are basically from the beginning of the top level form, so that should work.
15:01:53
Bike
in any case i think it's not clear whether this transformation would be allowed currently, so clarifying that either way would be good
15:21:50
yitzi
beach: The current XP pprint or Inravina pprint can't save column/line info back to a CST because at the time of print-object/pprint-dispatch that information is not known b.c. the lines and not been finalized yet. And the object references are not kept in output fragments in case of Inravina. XP just keeps an adjustable text vector, so no there either.
15:57:31
Bike
makes sense to me. the printer doesn't lay out a line until it knows what more is to be printed
16:14:14
yitzi
Yes, there is a generic interface `layout-instruction` that could be used, but I didn't expose that yet. There is also the bottom level that actually writes to the stream (write-fragment) but that is not generic or exposed. In other words it is possible to accomplish this, but I'd have expose the interface somewhere. And probably save the object references in the instruction queue or fragment buffer.
16:51:08
yitzi
beach: I don't think that I will be able to do an ELS paper this year. Some unanticipated things came and I probably just didn't allocate enough time to it. I still want to do one, but I am thinking it might be next year. There are also some unresolved stuff in the Inravina/Incless interface in addition to what I have mentioned.
16:54:39
beach
Too bad about the ELS paper. You know there is usually a week of extended deadline, right?
16:56:32
yitzi
I do. I have made progress on the shim technique (SBCL & ECL), but I really would like to see it in SICL. I feel like there is a lot unresolved.
16:58:00
yitzi
And to be honest...part of the "unanticipated" stuff was getting sick and whole bunch of stupid downsizing going on at my college. Such is life.
17:00:31
yitzi
Yeah. Everything is fine now. I am just anticipating moving and looking for work soon.
17:05:58
yitzi
No, not yet. I still have a job, thankfully. A whole bunch people that work for me in the Math dept have been. I've been able to build up a Math/Physics 2-year program over the last 15 years in various roles I have had such as Dean, Division Chair, Dept Chair. In the span of a year due to COVID and incompetence that has virtually been erased. Plus the people that have been put in charge are making me think it is only going to get worse.
17:32:01
beach
In the past, I had have had periods when I wanted to work in industry rather than academia, because the rules seem more clear there to me, i.e. profit. But in reality it is more complicated than that, and academia gave me the freedom to do pretty much what I want in terms of research. So I stayed on.
17:32:43
beach
Moving to a new place is pretty good though, because it takes a few years before you notice any problems. :)
17:35:15
moon-child
I think I am somewhat lucky with my current employer. The work is not very interesting, but the work environment is decidedly lovely; there are no twisted incentives
17:48:55
beach
My (admittedly small) family just announced that dinner is served. I'll be back tomorrow.
21:09:27
yitzi
Bike: beach: Figured out to capture the source code references by abusing the stream style stuff I came up with.