typelevel/scala — pull request #64 by fommil (2014-09-24 21:32:16+00:00)
Title: update documentation for ENSIME

**NOT READY FOR MERGE**

ENSIME support for hacking on scala seems to have rotted, so this is to bring it up to date.

I have a PR https://github.com/ensime/ensime-server/pull/622 which allows me to superficially hack on the the `scala-library` after issuing an `ant` on a clean checkout. We're also discussing a few further issues that we might need to address. In any case, I need some help from seasoned scala contributors on this PR:

1. which modules do you want to support? The previous config only supported `library`, `reflect` and `compiler` (I consider `asm` to be a module since you're compiling from source... so anything else like that is necessary)
2. what is the dependency tree of those modules?
3. where are your test sources? I'm completely lost
4. where do output classes (and test-classes) associated to each module go?
5. which version of scala is supposed to be used for a given branch? e.g. does the library for 2.11 actually use 2.11 or is it bootstrapped off 2.10? (or is it just the compiler that needs to be bootstrapped?). This might imply the need to create two separate `.ensime` configurations: an ENSIME project only supports one version of scala (it has a tightly coupled in-process presentation compiler).

And maybe this is a can of worms, but what does one type to produce `.class` output from library/compiler/reflect in a quick dev cycle? Will it completely break everything if we add compiled library/compiler/reflect classes to the presentation compiler classpath or should we just stick to a pure full source instance?