[Haskell-cafe] Re: GSOC Haskell Project
Thomas Schilling
nominolo at googlemail.com
Thu Apr 1 13:58:06 EDT 2010
On 1 Apr 2010, at 18:39, Mihai Maruseac wrote:
> Hmm, interesting. If I intend to give it a try, will there be a mentor
> for a GSOC project? Or should I start doing it alone?
I'm sure Simon Marlow could mentor you except maybe if there are too many GHC-related GSoC projects. I could do mentor this as well. Or maybe Max. I don't think finding a mentor will be a problem.
GHC's runtime stack actually uses the same data layout for both stack and heap objects, so you might be able to extend unpackClosure# to build something like Vacuum[1] (or extend it).
[1]: http://moonpatio.com/vacuum/
>
> On Thu, Apr 1, 2010 at 8:37 PM, Max Bolingbroke
> <batterseapower at hotmail.com> wrote:
>> I still believe that it would much simpler to get some stack traces
>> out of GHC by just reporting what chain of thunks we are currently
>> forcing when we get an error. This just requires a way of reifying the
>> existing STG stack in some user-readable way.
>>
>> What it doesn't give you is lexical call stacks of any form, but many
>> people have pursued that goal and failed. The STG stack only tells you
>> the "dynamic" call stack, and will omit any frames removed due to e.g.
>> tail recursion optimisation, but at least it gives you *some*
>> information about where your "head []" error is coming from!
>>
>> For those interested, there is more discussion of the idea at
>> http://hackage.haskell.org/trac/ghc/ticket/3693
>>
>> Cheers,
>> Max
>>
>> On 1 April 2010 18:22, Thomas Schilling <nominolo at googlemail.com> wrote:
>>> The DrScheme debugger shows backtraces as arrows in the source code.
>>> It took some getting used to, but it doesn't seem like a bad idea. I
>>> believe Leksah has some sort of graphical frontend for the GHCi
>>> debugger, but I haven't tried it out myself yet. Maybe you can build
>>> on top of that.
>>>
>>> Stack traces are rather difficult to implement. Tristan Allwood
>>> implemented stack trace support as a GHC Core plugin (see his 2009
>>> Haskell Symposium paper) but it required quite a lot of recompilation.
>>> His stack traces also didn't record any values, just source
>>> locations. He also had some problems with the way mutually recursive
>>> functions with type classes were desugared and, as so often, CAFs
>>> (constant applicative forms).
>>> So if you propose to work on that you should have a good idea how to
>>> overcome such issues it in your application.
>>>
>>> Another problem with stack traces turned on is that they may lead to
>>> space leaks. I don't know how big of an issue this is in practise,
>>> but I'm pretty sure you can't just keep them turned on all the time.
>>> The GHCi debugger has a tracing mode that can be turned on explicitly
>>> and allows you to "go back in time" if you hit a break point or error.
>>> I believe a good front-end could make this a much more widely used
>>> feature.
>>>
>>> On 1 April 2010 17:39, Mihai Maruseac <mihai.maruseac at gmail.com> wrote:
>>>> So, should I change the topic of the project to stack traces instead
>>>> of visual GUI representation? If this were the case, I will have to
>>>> find a way to represent those traces in a way that even a beginner can
>>>> read and understand (my GUI approach was for the beginners).
>>>>
>>>> --
>>>> Mihai Maruseac
>>>>
>>>> On Wed, Mar 31, 2010 at 6:40 PM, Jason Dagit <dagit at codersbase.com> wrote:
>>>>>
>>>>>
>>>>> On Wed, Mar 31, 2010 at 7:21 AM, Simon Marlow <marlowsd at gmail.com> wrote:
>>>>>>
>>>>>> On 30/03/2010 20:57, Mihai Maruseac wrote:
>>>>>>
>>>>>>> I'd like to introduce my idea for the Haskell GSOC of this year. In
>>>>>>> fact, you already know about it, since I've talked about it here on
>>>>>>> the haskell-cafe, on my blog and on reddit (even on #haskell one day).
>>>>>>>
>>>>>>> Basically, what I'm trying to do is a new debugger for Haskell, one
>>>>>>> that would be very intuitive for beginners, a graphical one. I've
>>>>>>> given some examples and more details on my blog [0], [1], also linked
>>>>>>> on reditt and other places.
>>>>>>>
>>>>>>> This is not the application, I'm posting this only to receive some
>>>>>>> kind of feedback before writing it. I know that it seems to be a
>>>>>>> little too ambitious but I do think that I can divide the work into
>>>>>>> sessions and finish what I'll start this summer during the next year
>>>>>>> and following.
>>>>>>>
>>>>>>> [0]: http://pgraycode.wordpress.com/2010/03/20/haskell-project-idea/
>>>>>>> [1]:
>>>>>>> http://pgraycode.wordpress.com/2010/03/24/visual-haskell-debugger-part-2/
>>>>>>>
>>>>>>> Thanks for your attention,
>>>>>>
>>>>>> My concerns would be:
>>>>>>
>>>>>> - it doesn't look like it would scale very well beyond small
>>>>>> examples, the graphical representation would very quickly
>>>>>> get unwieldy, unless you have some heavyweight UI stuff
>>>>>> to make it navigable.
>>>>>>
>>>>>> - it's too ambitious
>>>>>>
>>>>>> - have you looked around to see what kind of debugging tools
>>>>>> people are asking for? The most oft-requested feature is
>>>>>> stack traces, and there's lots of scope for doing something
>>>>>> there (but also many corpses littering the battlefield,
>>>>>> so watch out!)
>>>>>
>>>>> I would be much more interested in seeing the foundations improved than I
>>>>> would be in having nice things built on them. In other words, I agree with
>>>>> Simon that stack traces would be many times more valuable to me than
>>>>> graphical representations. Once the foundations are robust, then we can
>>>>> build nice things on top of them.
>>>>>
>>>>> Perhaps the reason you're interested in graphical representations is because
>>>>> you want to help people 'visualize', or understand, the problem. Not all
>>>>> visualizations need to be graphical in the GUI sense. It's really about
>>>>> representing things in a way that helps humans reason about it. Getting the
>>>>> right information to people as they need it is probably the best place to
>>>>> start.
>>>>>
>>>>> Jason
>>>>>
>>>> _______________________________________________
>>>> Haskell-Cafe mailing list
>>>> Haskell-Cafe at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>
>>>
>>>
>>>
>>> --
>>> Push the envelope. Watch it bend.
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>
More information about the Haskell-Cafe
mailing list