freenode/#clasp - IRC Chatlog
Search
10:59:11
Shinmera
beach: A while back you said you'd see if you came across any suitable topics for my bachelor's thesis. Could you send me a mail outlining the ideas you've had so far? I'd like to notify my professor sometime soon to see what he thinks of the things I've managed to think of so far.
12:49:45
Shinmera
Bachelors thesis usually give you 6 months to work on, with an expected "actual work time" of about 2 months tops.
12:51:08
beach
The project is then: Implement path replication according to that paper. Analyze the result with respect to cost and performance gain.
12:52:40
beach
Shinmera: Other possibility: Design and implement a complete flow-control analysis for Common Lisp, in the presence of nested functions and threads. This work would extend what is discussed in the literature because of the Common Lisp specific features and because of threads.
12:53:33
beach
Shinmera: Third possibility: Use local graph rewriting for (partial) inlining of local functions. Also a HIR project.
12:54:08
beach
Shinmera: I can come up with more, but I might need a few days. When do you plan to notify your professor?
12:54:40
beach
Shinmera: Also, I could come up with non-HIR projects, non-Cleavir projects, or non-SICL projects, if you prefer.
12:55:04
Shinmera
It'd be great if you could send me a mail with a short summary for each idea. Perhaps outlining what to do and how it connects to prior work.
12:55:27
Shinmera
Since I think a large part of what he wants me to do for the bachelor's thesis is also to analyse prior work and compare.
12:56:56
Shinmera
I have two ideas of my own, but they have pretty much nothing to do with cleavir or clasp.
12:58:40
Shinmera
One of them is about a system for the modular combination of opengl shader sources. The prior work would be to analyse how other engines and projects handle that, and the new idea is to use a parser and semantic analyser to merge code together.
13:00:14
Shinmera
The other is about cross-distribution deployment of binaries. Prior work being stuff like AppImage, Linux Standard Base, distribution packaging. The "new" approach being my ld-preload.so shenanigans.
13:00:52
Shinmera
I already have a proof of concept for the OpenGL thing that I know works to an extent.
13:02:26
beach
Both sound fine as far as I can tell. But I don't know much about prior art, so don't trust my judgment.
13:22:25
beach
Shinmera: Sent you the first one. Please check it and see whether this kind of summary is sufficient.
14:04:04
beach
I have a hunch that almost all compiler-optimization techniques that require SSA (static single assignment) in fact do not use the fact that SSA is static single assignment, and that they instead rely on other properties of SSA.
14:04:42
beach
The project would be to dig up a variety of such published techniques, read the papers and determine whether they actually use the SSA property of SSA.
14:06:53
beach
OK, you have three proposals using HIR and Cleavir. I'll write up more as I think about them.
14:07:31
Shinmera
By the way, I was pleasantly surprised that this introductory compiler design class I took did a lot more than just parsing and basic compilation.
14:07:52
Shinmera
It also went into static analysis and the kinds of optimisations you can do with that, though we didn't go too far with it.
14:08:43
beach
When I was in charge here, I split up the typical course into one for parsing and one for compiler optimization.
14:09:09
beach
The first one is useful for things other than compilers, like analyzing data and for DSLs.
14:10:19
Shinmera
Right. The course just introduced the basic theory behind top down and bottom up parsers and how to compute the tables for them.
14:10:51
beach
Parsing used to be all about LALR and perhaps some recursive descent. Now, Earley and GLR are practical and there are new techniques such as combinator parsing.
14:10:53
Shinmera
We didn't have to write parsers by hand or anything, which was actually a bit disappointing to me.
14:19:20
beach
Courses on algorithms and data structures have the same problem: use a real language and the message is drowned in idiosyncratic aspects of it. Use an artificial language and you don't get enough power to do modern stuff.
14:20:58
Shinmera
I think the way our class did it was fine. The lecture was presented with just explanations of the structures and algorithms in abstract, but the book that came along with it (it's huge) has code samples as well.
15:14:39
drmeister
The nglview thing is annoying - it appears there's two copies of nglview in the docker image and that the Common Lisp code uses version #2 if I start it first and version #1 (that Python uses) if I start the Python notebook first. Version #1 works right now, version #2 still crashes - Grrrr.
15:16:08
Shinmera
My JS debugging skills are: -looking at stack traces -cursing a lot -changing things here and there hoping it works -getting annoyed trying to reproduce things for the 100th time