Profile cover photo
Profile photo
Alan & Kim Zimmerman
71 followers
71 followers
About
Communities and Collections
View all
Posts

Post has attachment
So there are now a pair of Harrier Hawks in the tree, being threatened by a Yellow Billed kite, circled. Making a helluva noise.
Photo

Post has attachment
This guy hangs out in the tree outside our house.
Photo

The long wait for HaRe for GHC 7.10.2 is nearly over.

The current wip branch is complete, and just needs further shakeout testing.

For the brave, it can be tried by installing

https://github.com/alanz/ghc-exactprint/tree/wip
and then
https://github.com/alanz/HaRe/tree/wip

Please note: The HaRe tests will not run if you build via stack, something to do with the individual cabal files in the the test data and ghc-mod

Alan

Post has attachment
Now that GHC 7.10.2 is finally out, we have released the next version of ghc-exactprint on hackage.

This is the result of a tremendous amount of work and refinement by +Matthew Pickering , and some from me too.

We are confident that it can fully round trip most of hackage, bar a few known issues such as mult-line string literals in pragmas.

Work is in progress to integrate it into HaRe, and initial signs are very promising, judging by the amount of code that can be deleted.

The major difference is that tokens are completely gone, and the refactorings take place against ParsedSource rather than Renamed. To support variable lookup, there is a NameMap which indexes each Located RdrName to the corresponding Name.

http://hackage.haskell.org/package/ghc-exactprint-0.3

After a long gestation ghc-exactprint is finally ready for use against GHC 7.10.2, as soon as it is released. It currently builds and passes tests against the ghc-7.10 branch, as well as GHC master.

Version 0.3 will be made available on hackage as soon as GHC 7.10.2 is released.

For people who can't wait and have ghc-7.10 built, the project is available at https://github.com/alanz/ghc-exactprint.

The next steps will be to work AST transformations into ghc-exactprint, driven both by MatthewPickering's GSOC project and the integration of ghc-exactprint into HaRe.

I am conteplating attending ICFP this year, and I see all sorts of deadlines appearing on haskell-cafe.

I am not an academic, and have not attended something like this before.

Would there be any interest in my presenting anything on the state of HaRe and/or the enabling GHC changes in 7.10, and if so what form should it take?

I suspect just getting together with interested people may be the best way.

Any advice will be gladly accepted.

Alan

Post has attachment
A quick State of the nation.

GHC 7.10 RC2 will have API Annotations in it which will allow full round tripping of source code without using tokens.

A library that does this roundtripping is at https://github.com/alanz/ghc-exactprint

This is being integrated into HaRe in the ghc-7.10 branch, and is currently able to do the ifToCase transformation, as the initial proof of concept for the new architecture.  This will result in a considerable simplification of the code, as only the AST now needs to be manipulated (together with the annotations), and all the fiddly token stuff falls away.

So active development of HaRe is starting again, which is being helped by Matthew Pickering who has begun to be involved in the process. There is still plenty of scope for others to get involved, it is a massive project, so please feel free to chip in.

We have also decided to rather use a mailing list than this community, so the emphasis will be shifting to the list at https://groups.google.com/forum/#!forum/hare, please join it.

Regards
  Alan

HaRe 0.7.1.3 is now on hackage. It has mainly been a stabilisation process, with focus on renaming of real world source code.

HaRe Version 0.7.1.1 corrects the target file path construction by using the cabal file path rather than the current directory path.

Version 0.7.1.0 is out

This one adresses the issue of refactoring multiple main modules : executables, tests, benchmarks, etc.
Wait while more posts are being loaded