freenode/#clasp - IRC Chatlog
Search
1:50:48
karlosz
looks like we cant afford to do value numbering on closure vars. dataflow analysis on a higher order graph requires kCFA which is a known exponential/nfeasible problem
1:51:34
karlosz
our best bet is to aggressively inline and get rid of local functions whenever possible for dataflow
1:54:09
karlosz
i don't know if anyone is still interested in at least getting something like 0CFA for cleavir. could be useful for a static analysis, rather than actually compiling http://matt.might.net/articles/implementation-of-kcfa-and-0cfa/
2:28:31
drmeister
The article says that there are cubic implementations - is that still out of the question?
3:13:14
karlosz
oh, well if you include higher order functions then you are lucky if you can make it polynomial time
3:15:44
karlosz
the third to last paragraph of this article is extremely enlightening https://wingolog.org/archives/2011/07/12/static-single-assignment-for-functional-programmers
3:17:27
karlosz
we should closure convert as much as possible so that we *can* leverage traditional optimizations
3:18:18
karlosz
i mean, this isnt scheme either though, so i dont know how common functional style even is
3:19:03
karlosz
but since we are thinking about treating closures right, it probably makes more sense to eliminate as many closures as we can and appply linear dataflow optimizations rather than do some cubic or exponential cfa
3:20:39
karlosz
on another note, drmeister: the arch thing people were running into with the boost symbol disaappeared when i reverted to a May 20th version of clasp
3:22:14
karlosz
i started the build a few hours ago on my laptop and it still hasnt finished though so i dont think its possible for me to bisect this issue
3:31:11
karlosz
and clasp bundles waf right? so is there an easy way to use the systems or wait for clasp to update it?
4:08:28
drmeister
The usual strategy for this kind of implementation is to write it all in C++. The latency requirements are too strict to do otherwise. Once you start down this road, you never stop: your life as an implementor is that of a powerful, bitter C++ wizard.
4:08:45
drmeister
https://wingolog.org/archives/2015/11/03/two-paths-one-peak-a-view-from-below-on-high-performance-language-implementations
4:27:14
karlosz
is there an incanctation for only rebuilding the ceavir part of clasp? i am used to making a small change or print statements in cleavir and starting a quick self compile to check my work
4:45:31
scymtym
beach: i'm getting close to pushing the parse result protocol to the eclector master branch. if you have time, could you have a brief look at the documentation and tell me whether it makes sense to you? the current version is https://techfak.de/~jmoringe/eclector.pdf , section 2.4 is about the new package and protocol