wonks / ICFP_rehearsal_feedback

Temporary repository to collect feedback.
1 stars 2 forks source link

Talk 8: Ömer Ağacan #8

Open rrnewton opened 8 years ago

rrnewton commented 8 years ago

Practice talk for Haskell implementors workshop -- 20 + 10 minute format.

27:52 talk time.

ccshan commented 8 years ago

Skip the initial outline entirely. At most, say in passing that you have an experimental GHC plugin.

jasonhemann commented 8 years ago

A presentation style thing---your left hand is a little distracting. See if you can just leave it by your side.

rrnewton commented 8 years ago

"branching" didn't seem to be defined in what you said on that slide... what kind of "branching"? Conditionals? (No, it's the compile time splitting in supercompilation)

cgswords commented 8 years ago

Get rid of those bullets?

rrnewton commented 8 years ago

Don't need to mention a link in the references -- [Bolinbroke, Peyton Jones 2010] is sufficient

rrnewton commented 8 years ago

Any particular reason that (.) is applied prefix rather than infix? I guess it makes it clearer that it's actually a function invocation.

cgswords commented 8 years ago

Definition of "history" on the slide would be nice.

cgswords commented 8 years ago

I would skip the middle beta-reduction step; do it in a single fell swoop and describe it as "repeated beta reductions". You do it for the later ones, I'd do it for the earlier ones, too. Also, consider not listing them on the slides; make each its own slide with the most recent change? This will keep hte code in the middle always, which will make it easier to pay attention to. Also maybe highlight the changes that way?

(There was a typo for h7 I think)

rrnewton commented 8 years ago

I was waiting for a hint that the beta reduction ("driving") steps are boring, and case-of-case is semi-boring, and some sign posting of when the interesting and unique-to-supercompiling stuff was happening.

ezyang commented 8 years ago

Definitely agreed on signposting

rrnewton commented 8 years ago

Ok, so we did hit the splitting bit, but it's on the slide that said "case of case" so that made it seem like it was part of the case of case transform.

cfbolz commented 8 years ago

missed at the beginning where the talk will be given, can somebody tell me?

rrnewton commented 8 years ago

Haskell Implementors Workshop.

jasonhemann commented 8 years ago

Shouldn't that be WHNF?

ccshan commented 8 years ago

Often you point at something while saying "this" or "this branch" or "the second case" and I'm not sure what you're pointing at. Here are some ways to be clearer:

cgswords commented 8 years ago

A general slide comment: I think the step-by-step appearance of information on a slide slows down talks in a not-great way. I'd prefer slides that are fully revealed unless a specific one has a good reason (such as moving something around / revealing something surprising). (Dan's got a great story about this...)

ccshan commented 8 years ago

Sometimes when a transition moves from one expression to the next, it is harder to follow because the two expressions appear to two separate slides. To avoid this, you can repeat the previous expression on the next slide (and say verbally that you are repeating it).

cgswords commented 8 years ago

To piggyback on that, you could have pairs of slides since everything gets names: do a slide with h1/h2, one with h2/h3, one with h3/h4, ..., and then re-display relevant ones when you need them. That might create a nice tempo of slides.

rrnewton commented 8 years ago

12 minute mark -- we're still on the map-of-map example. Ok, just finished it at 12:45.

jasonhemann commented 8 years ago

space between deforestation and (Wadler ...)

rrnewton commented 8 years ago

Based on the title, I wanted more insight on what previous approaches (Mitchell and then Bolinbroke) tried and why they failed. As it stands, so far this is much more like a tutorial on the basics of the technique. But that doesn't yet address the problems, challenges, or future/ongoing work.

("failed": well failed is relative -- they didn't succeed so spectacularly that it was considered worth putting into GHC.)

cgswords commented 8 years ago

Also, it doesn't motivate why it's a good fit for Haskell.

cfbolz commented 8 years ago

@rrnewton that depends on how much you already know

cgswords commented 8 years ago

This technique summary part of the talk seems oddly placed. We had a running example with techniques, and now we're summarizing those techniques; I would have expected that in the opposite order? We explain some of the techniques, then show a big, running example, and how they come up? Or interleaved perhaps.

cfbolz commented 8 years ago

jumping back in the slides can be quite confusing. probably better to repeat the relevant part of the previous slide

rrnewton commented 8 years ago

at 18 minutes on "issues" with supercompiler... maybe better to give very tiny explanation of the core techniques and then put this much earlier

cgswords commented 8 years ago

The in for the second example of a problem with the splitter was mistabbed.

rrnewton commented 8 years ago

Won't the existing GHC CSE indeed share work for multiple calls to fib?

cgswords commented 8 years ago

What's the issue with the matcher example? I didn't follow what the problem was with that optimization?

rrnewton commented 8 years ago

at 21:46 -- but this quote about nofib working badly with supercompilation is exactly what I wanted to hear at the beginning

Ditto for the "Latest work" slide.

I think all I really need to know before that state of affairs information is that supercompilation is aggressive compile-time evalutaion.

cgswords commented 8 years ago

I'm not sure what Omer's contribution is here, now, by the end of the talk. Or is this just a call to action?

cfbolz commented 8 years ago

@cgswords agreed, it didn't really become clear why sharing work is bad in a supercompilation context – it looks like a great optimization in the small example.

rrnewton commented 8 years ago

Re: problems with GHC API -- how much does Hermit address that?

cfbolz commented 8 years ago

not really related to the core supercompilation issues, but I found the critique of the GHC API really interesting.

rrnewton commented 8 years ago

Yeah, same here, I would want to hear that first too, esp. in HIW.

rrnewton commented 8 years ago

Omer does have a prototype... I don't know why he's almost completely hidden that. Ah, here it comes. But we're at 26:54.

cgswords commented 8 years ago

Oh, okay! At this point in the talk, I wasn't sure if / what he was presenting beyond "Bolingbroke's idea will work well for Haskell maybe?" The talk should really present some of those early prototype results IMO.

samth commented 8 years ago
jasonhemann commented 8 years ago

Similar comment as to the last one. There should be a concluding remarks/thanks slide, where the remarks come first, then THANKS!

eholk commented 8 years ago

I'd skip the overview slide and dive right into motivation.

We had several minutes going over previous and other people's work. Try to introduce what you've done sooner.

On the case-of-case transformation slide, try to keep the original term on the same slide so you don't have to flip back and forth.

I liked the way you worked through the mapOfMap example, but it wasn't clear whether you were showing an example of previous work or what is new in your paper.

Cite the paper the Nofib quote came from.

End with thank you and a slide with something about your talk. Put citations inline where needed.

JosephCottam commented 8 years ago

How does super-compilation compare with other techniques for compile-time computation (macros, templates)? This would be more useful context for me than the step-by-step example in the first part of the talk.

cfbolz commented 8 years ago

(the slides for introducing supercompilation are probably going to be useful in some other context, so keep them around somewhere :-) )

jasonhemann commented 8 years ago

samth: "Sell'em the brooklyn bridge. Reveal the charade. Then tell'em how you're gonna actually deliver the moon."

rrnewton commented 8 years ago

Sam's describing a possible flow:

rrnewton commented 8 years ago

I want to second the idea above about having an expression which is transforming centered (ideally highlighting redexes too) so that visual alignment isn't such a chore.

But, then again, I vote against having map-of-map or reverse walk throughs at all, except maybe for tiny highlights, not as an extended reduction sequence.