freenode/#lisp - IRC Chatlog
Search
18:51:46
kmeow
thought I had an actual question, but looking over the errors again I'm so baffled I'm not even sure where to begin
18:55:52
kmeow
yeah, I'm browsing ANSI Common Lisp looking for a description of the compilation process
19:07:08
reepca
sometimes I think sbcl is too clever for its own good. It can figure out that the last iteration of a loop will always cause a type error and therefore delete the code after the loop as unreachable, but can't tell me why it deleted it and save me the time of analyzing it myself
19:08:37
reepca
put the declaration at the top of the function in question, it still just says "deleting unreachable code" and nothing else
19:12:21
jackdaniel
it is easier to do something than explain clearly why it has been done (in compilers), so I suppose nobody bothered to implement explanation function
19:13:10
reepca
it would actually be pretty interesting to try to implement a compiler that focuses on being able to answer "why" questions.
19:36:23
aeth
reepca: Well, wouldn't the "why" just generally be proving, while showing sufficient steps, that some optimized form is equivalent to the original? So it sounds possible.
19:36:59
aeth
For the unreachable code example, it would show you why the eliminated branch(es) can't be reached.
20:00:08
jackdaniel
n.b same goes for the systems which make automated decisions (be it machine learning or expert systems) -- a very appealing features is to make these things to answer why they made some choice (i.e provide a rationale which makes sense to human being)
20:37:04
jackdaniel
I've applied a loose meaning of "hard"; it is different hard for comiplers and different hard for ML. The former is that making good meaningful compiler messages with source location (and visualisation) requires a lot of thought, providing rationale for decisions is a few steps harder
21:48:22
didi
So I'm lazy. Is it bad to create input streams with `make-string-input-stream' and never close them?
22:16:54
phoe
galdor: https://github.com/phoe-trash/ccl/commit/3bae98ecb08b565f06524fb5afa8e7bb7955c93c
22:17:14
phoe
no idea if/how this will get pulled upstream. Feel free to cherrypick that commit onto Clozure/ccl and rebuild.
22:17:56
phoe
Or use my fork that I aggressively clean and fix nowadays. It's a staging area before committing this all upstream, but I have Travis hooked up to ensure that I don't fuck something up bad while working on it.
22:22:53
phoe
Bike: CCL is used to keeping literally everything and the kitchen sink in #<Package CCL> and then not exporting it and using :: and ::% to reach it.
22:23:53
phoe
And one of the things that definitely need to be changed once someone throws enough attention at it.