Hi, I read the old wiki and it mentions that the project is now more open. This implies that some parts are still closed, right? For understanding, it is helpful if I knew which that would be!
Also, do you have ideas on what the best concept for a debugger would be?
The wiki says that there is going to be a VS based debugger soon. Can you say how soon? Anyway, I would prefer a MonoDevelop debugger, that's why I would like to ask you how you do it for VS and if I can use the same approach maybe for MonoDevelop. I have had several ideas, but it's all kind of unsure because I don't know enough about CIL yet and maybe I need access to the CIL generation which isn't open source yet?
It is more open, by the fact that .dll of compiler are available, and can be used locally. It was previously possible to use them only using remote server calls. Source code of compiler are not yet available, however AFAIK Michał will release them after some cleanup (it is messy code, also needs more comments, and translating some parts to english).
You need to ask Michał (mkol) when it will be done.
As of debuger, there is already working Debugger based on Firebug+VisualStudio, done by mkol and two students from Jagiellonian University. Depending on their agreement it will be also released.
I heard nothing from mkol in last month, however I will try to ask him personally tomorrow.
One more thing. If you want to write some extensions, like bindings, wrappers, beetween JS/DOM and C#, it can be already done using available mechanisms.
As of debugger, it is not extreamally VS-specific, it is communicating using simple protocol, and most of the parts (like mapping bytecode location to source code lines; or breakpoints, etc.) can be reused in MonoDevelop (which I would love to see, as it is my prefered C# ide).
Hi, please find my answers below.
As for debugger:
an existing (but not yet released due to various reasons...hope this will change soon) debugger is written as VS plugin (it uses VS API for debugging engines). VS is used to provide UI functionality like marking breakpoints, step-by-step code running, viewing varibles, etc. Then it communicates with debugging web service, which is in permanent AJAX connection with web application. So basically main logical functionality of debugging is coded in JS and in that web service (which is unrelated to VS, so could be used also with MD if one could provide proper communication and treat MD as debugging UI. Probably one can relativly easy to write debugging plugin for MD, if VS has some mechanism - i believe MD has them as well. I will ask peaple who are working on our VS debugger to cmment on this.
As for the project being more open:
indeed, some parts are still closed but I would like to provide some day whole code on some reasonable licence (probably it will be GPL, for Framework part it's LGPS since this Framework.dll is used in "compiled" projects as integral part). The main reason it didnt happen yet is that a code is not in good condition. Lack of comments its only a peak of an iceberg. But I'm considering giving up with total refactorisation and providing the code as-is, if more people will be interested or total openess of the code will imply wider usage of the project.
I realised I didn't answer directly your question...
open part: Framework.dll (small library, used mainly for .net->JS mappings, but also providing some runtime functionality like transparent method calls via AJAX; code at LGPL)
close part (at least in currect form): Compiler (which processes .dll and makes output .js/.css/... files).
I was going to use Irony from Codeplex to to go from IL->JS , and then I was going to use Webkit Remote Debugging Protocol to automatically step forward in js when I step in c# by an amount of lines that would be specified in a c#->js line mapping file. This is all rather theoretical though, I also investigated the Internet Explorer route, but I like staying on Linux.
(If you are in the process of refactoring code, I would like to put a vote in to make the project a very standalone, purely client side il->js converter, without any convenience functions and dependencies to asp.net. The audience is bigger with less dependencies, especially on something relatively complex like asp.net, which could scare off people who investigate for pure client side development, like myself for example)
I think this project can be a real, already usable contender against even big projects like Google Dart.
Compiler source codes has been released under GPL.