This document discusses the goals and progress of integrating the full Scala compiler into Eclipse for improved Scala IDE features like error highlighting and code completion. It aims for reliability and responsiveness over new features. The team is working on merging codebases from Eclipse 2.8 and 2.9 versions and releasing a solid 2.0 version before adding more features in 2.1.
3. Eugene Vigdorchik
Miles Sabin
Martin Odersky
Hubert Plociniczak
Mirko Stocker
and many more: Matt Russell, Josh Suereth,
David Bernard
3
Daniel Ratiu, Donna Malayeri..
4. Goals
• work with large projects/files
• Scala compiler (80k LOC), 4-5000 LOC/file
• advanced use of the type system
• path-dependent types, self-types, mix-ins
• reliable (no crashes/lock ups)
• responsive (never wait when typing)
4
5. Howto?
• mixed team with compiler and IDE expertise
• ScalaSolutions/Typesafe involvement started
around September 2010
• Martin, Eugene and Iulian
• branch ‘wip_experiment’ in the scala-ide
repo
5
6. • use the full-blown Scala compiler for:
• interactive error highlight, completion,
hyperlinking
• turning Scala symbols into Java model
elements
6
7. • Why?
• reuse (type-checker == 1-2 person years)
• consistency
• Why not?
• SPEED
• (no) support for different Scala versions
7
13. Presentation Compiler Eclipse Threads
Thread
Work Queue
AskTypeCompletion
AskTypeAt ...
Result is communicated through a SyncVar
12
14. • All compiler activity happens on PC thread
• Background compile loaded files when
work queue is empty
• Check work queue when type checker
reaches “safe-points” in the AST
• Drop everything when a file is changed
(AskReload)
13
19. Versions
• wip_experiment
• feature freeze, focus on getting the basics
right
• wip_exp_backports
• backported many patches
• new features (SoC - highlight implicits)
18