quchen / stgi

A user-centric visual STG implementation to help understand GHC/Haskell's execution model.
Other
527 stars 26 forks source link

pointer-tagging and indirect closure #84

Closed takenobu-hs closed 8 years ago

takenobu-hs commented 8 years ago

Amazing work! I'm impressed. Thank you for community.

Do you implement the pointer-tagging? (or it's CMM layer matter?)

When people learn STG behavior, they are a little confused by the pointer-tagging.

one more, Do you also implement the indirect closure? (or it's also CMM layer matter?)

It's important for lock-free updating.

Thank you for perseverance!

quchen commented 8 years ago

There is no pointer tagging right now, no. Some rules of thumb:

This is only the current state. If we can somehow extend this program incorporating those things without making the basic STG evaluation much more complicated, I think many things would make great additions. I just haven't spent much time thinking about that so far.

quchen commented 8 years ago

When people learn STG behavior, they are a little confused by the pointer-tagging.

Reading your question again, I think I should explain the choice to not consider pointer tagging and other advanced features:

The STGi is only partially for understanding the STG itself; it just happens that many interesting things happen at the STG level. The main goal was to be able to see Haskell being executed, not to teach the details of how GHC chooses to compile Haskell. The ExamplePrograms is the showcase of what the STGi is meant for I would say.

Again, I'm not opposed to having those advanced features eventually :-)

takenobu-hs commented 8 years ago

Thank you for your kind explanation. I understood that your project is based on the 1992 paper. I feel that the 1992 paper is valuable, too. I like it.

And, you focus on the STG-language rather than the STG-machine's implementation in first step. It's good choice. People can understand the STG more quickly.

Your project is very valuable for us to learn the STG. Thank you :-)

quchen commented 8 years ago

You're welcome, thanks for the feedback :-) I assume the question was answered, can we close the ticket?

takenobu-hs commented 8 years ago

Yes, sure. I close this. Thanks :)