Announce+Question: jDrIFT
John Meacham
john@foo.net
Mon, 29 Apr 2002 01:44:08 -0700
I often finding myself going back to good old trusty DrIFT, and have
over the past few months made a number of changes to it, many of which i
think people would appreciate. I was wondering what i should do to get
my changes folded into the main drift, or even if there is a main drift
any more?
new working features I implemented include:
* proper GetOpt command line handling, allows you to specify an
output file (-o) as well as list all possible derivations this
version can use (-l) and some others.
* proper LINE pragmas in generated code
* smarter error handling in some cases, parser smarter sometimes.
* can deal with/ignore as appropriate some ghc extensions now
* new rule to derive Typeable used by the Dynamic library.
* new rule to derive Observable from the HOOD object debugger
* rules to derive Term, a term representation for generic
computation, can be used in a similar fashion to the Strafunski one,
but has a number of advantages, fully lazy constant time implode/explode
being the main one. (the external library is compatable with their
work.)
and some other patches that i collected from around the net
jDrIFT -l lists the following:
Binary, Typeable, Term, OldTerm, Implode, Explode,
Observable, test, update, is, has, un, NFData,
Eq, Ord, Enum, Show, Read, Bounded, Haskell2Xml
features in the works:
* smarter rule format, allow descriptions (help info) to be embedded, and
options to be passed into the rule generators either from the command line or
in the DrIFT pragmas themselves. among other things, the code generation
should be able to find out what extensions you wish to let them use and let
them fail gracefully if one doesnt exist that is needed.
* MultiParameter typeclasses
* smarter/rethought import chasing rules.
* LibDrIFT, simply write your single rule, import libdrift and it will
build to a DrIFT module. these modules can be used standalone
executables and behave just like the original drift (with your
extension), but if placed in a searchable spot, the main jDrIFT
implementation will pick them up and integrate their rules into its
capabilities.
In Any case i made a prerelease of my modified version available at:
http://homer.netmar.com/~john/computer/haskell/jDrIFT/
but would like to somehow merge with the main development tree of this
tool, if one exists, if it doesnt look like that will happen then
perhaps i will have to branch to a new maintained DrIFT inspired
project.
--
---------------------------------------------------------------------------
John Meacham - California Institute of Technology, Alum. - john@foo.net
---------------------------------------------------------------------------