Roadmap for feature reinstatement?

8 views
Skip to first unread message

Joshua Ball

unread,
Aug 24, 2011, 3:38:35 AM8/24/11
to scion-lib-devel
Hi,

I see that you un-exposed the Scion.Inspect.DefinitionSite module when
you decided to rewrite the project from scratch for the multi-process
architecture. What must be done before this feature can be re-exposed?

Thanks,
Josh "Ua" Ball

Thomas Schilling

unread,
Aug 24, 2011, 6:31:16 AM8/24/11
to scion-l...@googlegroups.com

So far, Scion uses GHC's compilation manager (GHCi's :load, or --make)
to manage the dependencies. It's very difficult, however, to hook
into this process and do custom processing (like analysing the parse
tree to generate other information from it). Instead, we have to jump
around between modules and instruct the compilation manager to load
all the dependencies and then manually load the file we're interested
in. For larger projects this can get slow. The compilation manager
also keeps all dependencies in memory which can become quite
demanding. (There's a few unflushable caches, too, causing memory
leaks.)

So, my plan is to write a custom compilation manager and write all
generated files to disk. I.e., it's more like using "make + ghc -c"
than "ghc --make". Main difference is that it's not quite "ghc", but
a custom version that performs certain extra processing steps to
update the meta information that Scion needs.

There are two ways this might be implemented:
(a) Replicate GHC's compilation manager code and customize it where needed.
(b) Use something like openshake.

I've started looking into (b), but I found a bug in openshake (and one
in its dependency "Glob"). I tried to fix it, but my fix didn't work.
So now I'm trying to understand openshake better, but it needs a lot
of cleaning up and documenting. Using openshake would be better than
option (a) because it could handle lots of other files, too, like
.hsc, .y, etc.

So, once that is in place, it should be straightforward to re-instate
the disabled features and make a new release.

/ Thomas

Reply all
Reply to author
Forward
0 new messages