jstolarek / slicer

Companion code for paper "Imperative Functional Programs that Explain their Work", Wilmer Ricciotti, Jan Stolarek, Roly Perera and James Cheney, ICFP 2017, Oxford, UK
http://dl.acm.org/citation.cfm?id=3110258
GNU General Public License v3.0
6 stars 0 forks source link

Update TraceTree #31

Closed jstolarek closed 7 years ago

jstolarek commented 7 years ago

TraceTree is a module that still is a bit mysterious to me. It looks to me that TraceTree data type records branching points during execution. This probably means that it should have two new constructors to track whether with block of try-with was executed or not. Not sure if it should have a new constructor to record that if condition raised an exception. Help appreciated.

jstolarek commented 7 years ago

I'm wondering if someone could take a look? If all goes well this will take about 5 minutes of thinking and about 10 minutes for me to fix.

jamescheney commented 7 years ago

That seems sensible. I'm not sure this is on the critical path for the paper, though - are we relying on TraceTree for anything else right now? If it is not much work to modify it so that it does something sensible, we can revisit that later.

jstolarek commented 7 years ago

That seems sensible.

Um.. what exactly? Having constructors for with and with-try? What about exceptions in a condition of if?

I'm not sure this is on the critical path for the paper, though

Probably not, but like I said - that's just a few minutes of work and would allow me to silence the warnings.

jamescheney commented 7 years ago

I'm happy with adding what seem like reasonable constructs to handle the new features, to silence the warnings for now.

--James

On Feb 22, 2017 1:07 PM, "Jan Stolarek" notifications@github.com wrote:

That seems sensible.

Um.. what exactly? Having constructors for with and with-try? What about exceptions in a condition of if?

I'm not sure this is on the critical path for the paper, though

Probably not, but like I said - that's just a few minutes of work and would allow me to silence the warnings.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jstolarek/slicer/issues/31#issuecomment-281663920, or mute the thread https://github.com/notifications/unsubscribe-auth/ACMu9bYiJ86TMILYyufGHKAnOWn67rVgks5rfDL7gaJpZM4MC8dY .

jstolarek commented 7 years ago

Well, I can equally well silence the warnings with a flag. But I was actually thinking about solving this properly, ie. implementing the correct constructs, not just something that seems correct.

jamescheney commented 7 years ago

Given that this part of the code was fairly experimental, there isn't an a prioiri notion of "correctness" to respect - I had in mind defining a more efficient form of traces that could be used instead of the ones we are currently using but I don't think we worked out how to do slicing on them, for example.