This page is no longer maintained — Please continue to the home page at www.scala-lang.org

any Visual Studio extenders out there?

3 replies
Miguel Garcia
Joined: 2009-06-10,
User offline. Last seen 42 years 45 weeks ago.

Hi,

From time to time, those outside the scala-internals mailing list get to
hear about the glorious compiler-hacker website,

The Scala Compiler Corner
http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner

where all sort of information on internals of the Scala compiler can be
found. On this occasion, that glorious website is adding a write-up on an
IDE-related topic, and thus my post here. Comments are welcome. However, you
know how this things work: it's all at a very, very early stage of
development. So please be patient. Very much so.

Title: Resources for Visual Studio 2010 Extensibility: A reading list for
Scala.NET IDE toolsmiths
http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/Resour...

Abstract: At this point, these notes just catalog information sources that
will be useful when providing IDE support for Scala on the .NET platform.
This catalog facilitates identifying early on the pre-requisites for
implementation work. For example, it appears that integration with the
Scandcastle documentation system does not require a self-hosting compiler
:-) If you notice some subtopic not being covered, please drop me a line!

Miguel Garcia
http://www.sts.tu-harburg.de/people/mi.garcia

Bakos Gábor
Joined: 2009-06-08,
User offline. Last seen 42 years 45 weeks ago.
Re: any Visual Studio extenders out there?

Hi Miguel,

2010.03.10. 10:01, Miguel Garcia wrote:
>
> Hi,
>
> From time to time, those outside the scala-internals mailing list get to
> hear about the glorious compiler-hacker website,
>
> The Scala Compiler Corner
> http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner
>
> where all sort of information on internals of the Scala compiler can be
> found. On this occasion, that glorious website is adding a write-up on
> an IDE-related topic, and thus my post here. Comments are welcome.
> However, you know how this things work: it's all at a very, very early
> stage of development. So please be patient. Very much so.
>
>
> Title: Resources for Visual Studio 2010 Extensibility: A reading list
> for Scala.NET IDE toolsmiths
> http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/Resour...
>
>
> Abstract: At this point, these notes just catalog information sources that
> will be useful when providing IDE support for Scala on the .NET platform.
> This catalog facilitates identifying early on the pre-requisites for
> implementation work. For example, it appears that integration with the
> Scandcastle documentation system does not require a self-hosting compiler
> :-) If you notice some subtopic not being covered, please drop me a line!
>
>
> Miguel Garcia
> http://www.sts.tu-harburg.de/people/mi.garcia

I have checked the Scala Compiler Corner and as I currently usually work
on .NET platform I would not mind if Scala were a viable alternative
here too. Do you know anyone working on the integration to MSBuild
system? Or further Visual Studio/MonoDevelop integration?
It looks like I will have some spare time, and this would be one of the
options I would like to work on.
Thanks, gabor

Miguel Garcia
Joined: 2009-06-10,
User offline. Last seen 42 years 45 weeks ago.
Re: any Visual Studio extenders out there?

Hi,

This is a good chance for me to sum up the status of Scala.NET. Based on
that status, you can decide whether to start developing a VS or MonoDevelop
integration.

Rather than branching the codebase of the compiler for each platform, we
have chosen to both:

(1) maintain a single codebase written in Scala with JDK dependencies; yet
(2) have a bootstrapping Scala.NET compiler (ie., the Scala.NET compiler
being able to compile its own sources on .NET, which means those sources
should rely on .NET APIs)

Seemingly contradictory? Not really. The bridge between (1) and (2) is
provided by jdk2ikvm [1], a converter from JDK-based sources to IKVM-based
ones, sources which can then be compiled by Scala.NET (compiled by either
its .exe or cross-compiler materializations).

The jdk2ikvm sub-project in turn builds upon a 'roundtripping unparser'
(given Abstract Syntax Trees, serialiaze them into .scala sources). And this
project is being worked on, it should be ready within a month. Longer is
planned for supporting the missing bits and pieces of 'generics in the
backend', which will be ready only early 2011.

The above (sub-) projects aim thus at automating bootstrapping builds of
Scala.NET from the single existing codebase (compiler and library) of Scala.
What about IDE integrations? Well, as you can guess not much attention has
been paid to that yet. There are good signs on the horizon however: pdb
files with debug information (both line and range spans) are being emitted
already, thus an IDE would have an easier time leveraging that. But a
crucial feature for an IDE integrator ('generics in the backend') is right
now not yet available (assuming the integrator wants to write the IDE plugin
in Scala.NET itself).

In addition to the resources listed at [2], futher resources of interest for
.NET/Mono IDEs have become available in the meantime. For example, [3]
provides an introduction to using the presentation compiler; and most
lessons from the new Eclipse Scala debugger [4] will also be applicable to
VS / MonoDevelop integrations.

We're getting closer to the point where those IDE integrations can be
started.

Miguel

[1]
http://lamp.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/2010Q4/jdk2ikv...

http://lampsvn.epfl.ch/trac/scala/browser/scala-experimental/trunk/jdk2ikvm

[2]
http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/Resour...

[3]
http://ensime.blogspot.com/2010/08/building-ide-with-scala-presentation....

[4] http://article.gmane.org/gmane.comp.lang.scala.internals/4130

"Bakos Gábor" wrote in
message news:id107k$n2v$1 [at] dough [dot] gmane [dot] org...
> Hi Miguel,
>
> 2010.03.10. 10:01, Miguel Garcia wrote:
>>
>> Hi,
>>
>> From time to time, those outside the scala-internals mailing list get to
>> hear about the glorious compiler-hacker website,
>>
>> The Scala Compiler Corner
>> http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner
>>
>> where all sort of information on internals of the Scala compiler can be
>> found. On this occasion, that glorious website is adding a write-up on
>> an IDE-related topic, and thus my post here. Comments are welcome.
>> However, you know how this things work: it's all at a very, very early
>> stage of development. So please be patient. Very much so.
>>
>>
>> Title: Resources for Visual Studio 2010 Extensibility: A reading list
>> for Scala.NET IDE toolsmiths
>> http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/Resour...
>>
>>
>> Abstract: At this point, these notes just catalog information sources
>> that
>> will be useful when providing IDE support for Scala on the .NET platform.
>> This catalog facilitates identifying early on the pre-requisites for
>> implementation work. For example, it appears that integration with the
>> Scandcastle documentation system does not require a self-hosting
>> compiler
>> :-) If you notice some subtopic not being covered, please drop me a
>> line!
>>
>>
>> Miguel Garcia
>> http://www.sts.tu-harburg.de/people/mi.garcia
>
> I have checked the Scala Compiler Corner and as I currently usually work
> on .NET platform I would not mind if Scala were a viable alternative
> here too. Do you know anyone working on the integration to MSBuild
> system? Or further Visual Studio/MonoDevelop integration?
> It looks like I will have some spare time, and this would be one of the
> options I would like to work on.
> Thanks, gabor
>
>

Bakos Gábor
Joined: 2009-06-08,
User offline. Last seen 42 years 45 weeks ago.
Re: any Visual Studio extenders out there?

Hi Miguel,

On 2010.12.01. 8:25, Miguel Garcia wrote:
>
> Hi,
>
> This is a good chance for me to sum up the status of Scala.NET. Based on
> that status, you can decide whether to start developing a VS or
> MonoDevelop integration.
>
> Rather than branching the codebase of the compiler for each platform, we
> have chosen to both:
>
> (1) maintain a single codebase written in Scala with JDK dependencies; yet
> (2) have a bootstrapping Scala.NET compiler (ie., the Scala.NET compiler
> being able to compile its own sources on .NET, which means those sources
> should rely on .NET APIs)
>
> Seemingly contradictory? Not really. The bridge between (1) and (2) is
> provided by jdk2ikvm [1], a converter from JDK-based sources to
> IKVM-based ones, sources which can then be compiled by Scala.NET
> (compiled by either its .exe or cross-compiler materializations).
This sounds really interesting. :)

> The jdk2ikvm sub-project in turn builds upon a 'roundtripping unparser'
> (given Abstract Syntax Trees, serialiaze them into .scala sources). And
> this project is being worked on, it should be ready within a month.
> Longer is planned for supporting the missing bits and pieces of
> 'generics in the backend', which will be ready only early 2011.
>
> The above (sub-) projects aim thus at automating bootstrapping builds of
> Scala.NET from the single existing codebase (compiler and library) of
> Scala. What about IDE integrations? Well, as you can guess not much
> attention has been paid to that yet. There are good signs on the horizon
> however: pdb files with debug information (both line and range spans)
> are being emitted already, thus an IDE would have an easier time
> leveraging that. But a crucial feature for an IDE integrator ('generics
> in the backend') is right now not yet available (assuming the integrator
> wants to write the IDE plugin in Scala.NET itself).
I have seen in the papers that the generics support is not yet ready,
that's why I considered to write the initial stuff in C#/F#.

> In addition to the resources listed at [2], futher resources of interest
> for .NET/Mono IDEs have become available in the meantime. For example,
> [3] provides an introduction to using the presentation compiler; and
> most lessons from the new Eclipse Scala debugger [4] will also be
> applicable to VS / MonoDevelop integrations.
>
> We're getting closer to the point where those IDE integrations can be
> started.
Thanks for the information Miguel, this was really helpful. I am going
to investigate further during the weekend.
Kind Regards, gabor

> Miguel
>
>
>
> [1]
> http://lamp.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/2010Q4/jdk2ikv...
>
>
>
> http://lampsvn.epfl.ch/trac/scala/browser/scala-experimental/trunk/jdk2ikvm
>
> [2]
> http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner/Resour...
>
>
> [3]
> http://ensime.blogspot.com/2010/08/building-ide-with-scala-presentation....
>
>
> [4] http://article.gmane.org/gmane.comp.lang.scala.internals/4130

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland