DLR <> IronLanguages

Mar 30, 2013 at 3:17 AM
Hi,

What's the relationship between this DLR project and the IronLanguages project on GitHub (https://github.com/IronLanguages)?
Coordinator
Mar 30, 2013 at 5:05 PM
There's no current connection. PTVS is based upon the IronPythonTools which were originally shipped w/ the IronLanguages but has changed a huge amount since then. And I've personally worked on both, but there's no on going work that's shared between the two.
Apr 1, 2013 at 11:04 PM
Thanks for the reply.

Did I understand you correctly? The Python Tools for Visual Studio (http://pytools.codeplex.com/) are based on the IronPython Studio (http://ironpythonstudio.codeplex.com/). So, why did the projects split? Different goals?

Did the same happen to IronPython / IronRuby and IronLanguages? Are they all active? Do they still cooperate? The idea behind the DLR was to have a common shared infrastructure, so interoperation between the languages is possible. Shame if people are branching indefinitely.

Anyway, I am trying to implement a Smalltalk dialect on top the DLR - strangely enough called IronSmalltalk. The DLR documentation is not 100% up to date. Figuring out the expression and dynamic object and code generation was doable. Figuring out the hosting frameworks was much more tricky (and I still only get the basics).

My next task is to figure out how to write some debug tools. Ideally, I'd like to see a stack trace inside Visual Studio and being able to inspect the offending objects and code. I am currently thinking to investigate how PTVS works and if I can learn something from it.

Can you recommend some relevant reading or what direction to go from here?

Thanks,
  • Todor
Coordinator
Apr 1, 2013 at 11:12 PM

Fundamentally, we wanted to work toward standard python since that's what lots of people use.

Search for Jason Zander's blog on what happened to the iron languages, the full story is there. They are active and wholely owned by the community. Yes, the DLR was promising interop, and we had that with common hosting APIs, etc. We're not focusing on that now.

Is the hosting spec really out of date? Also, there was a smalltalk started at one point, but I don't recall what happened to it. I imagine you already searched for something to start from though.

In terms of more reading, it would be the ironpython mailing list since we do not work on this stuff now and are not updating docs.

Bill

Apr 1, 2013 at 11:33 PM
Thanks. I've found the blog and probably the entry you are mentioning. I did some reading earlier and found another blog and entry (I think it was a Ruby developer) on Microsoft's eternally changing policies and how this crippled the project :-/

Well, the hosting spec is not out of date, it's just not complete. Parts of it are written as "To-Do" and looking at the code, I get the same feeling, that those were still under development.

There was a project to create a Smalltalk on the DLR 3-4 years ago, but it didn't get off. I started another project (and took over the name http://ironsmalltalk.codeplex.com/) about 2½ years ago. Unfortunately I had to take a break for about an year, and now I am back working on it.

So, the DLR is not developed actively any more, not even as part of the IronPython or IronRuby projects. And the PTVS is a stand-alone project.

I'll look at the PTVS and try to see if I can figure anything out. My first goal will be to create an extension to VS to be able to see the stack-trace of IronSmalltalk project.

Take care.
Apr 3, 2013 at 6:29 PM
The DLR is still sort-of actively developed, in the IronLangauges github repo. Tomas Matousek has done a bunch of work to port it to Windows8/Metro. No major work is being done, but that's mainly because it's a pretty solid piece of code that doesn't need
major changes. None of that has been ported back to this project, however, since for a long time there wasn't much interest in the DLR outside of IronPython/IronRuby. I've mulled around the idea of breaking it out into its own github repo, but I'd need to
know that there's enough projects using it to be worth the effort. Unfortunately DLR languages tend to start with good intentions and then fizzle out.
Apr 3, 2013 at 7:01 PM
I'd be in favor of anything that we can do to make the DLR more accessible. I have a few languages that I would like to move over to the DLR, but this is a long term project, and it will take some time. I think that the DLR will be interesting to academics, especially as they become more documented, and more wildly known.
Apr 4, 2013 at 6:30 AM
Hi jdhardy,

My impression was that there was at least some development in the IronLanguages project. I've seen Windows 8 related code, and it's nice to see that people add functionality to it. Good Work (Tomas Matousek)!

It's also my impression that large parts of the framework are stable. The whole AST/Expressions part is working well and documented reasonably, and I was surprised how easy it is to use. I am trying to implement Smalltalk on top of the DLR, and most things are straight forward. The only things I am missing is the non-local returns, i.e. returns from a full-closure out of the context where the closure is defined. However, I am sure that it's not a trivial thing to implement and probably will need some CLR/MSIL support.

Anyway, I understand that it's not ported back here. In my opinion, it's enough to have the changes one place. Can you explain what's the purpose of the IronLanguages project? Is it to coordinate the IronPython and IronRuby projects, or is it the actual project where the IronPython and IronRuby development happens?

For now, keep it in IronLanguages. It can always be split later.

A completely unrelated question, do you know, or do you know where to ask if the DLR has debugging functionality? What I would like to be able to do is create stack traces of a dead/dying DLR application (my IronSmalltalk dialect). I've looked into the Python Tools for Visual Studio, bur if I understood the debugger correctly, it communicates with the Python process and contains Python code inside that process. Is that correct? Anyway, any ideas are welcome!

Thanks!

-- Todor
Apr 4, 2013 at 7:21 PM
IronPython and IronRuby were developed in the same TFS repo inside Microsoft, and the IronRuby team had a mirror on GitHub. after MS dumped the Iron languages, that GH repo was renamed to IronLanguages, and that's where the primary development of IronPython
and IronRuby take place. Re debugging, I know that IronPython has debugging information (i.e. it can be debugged by the normal VS debugger, although PTVS improves that quite a bit), stack traces, etc. I don't know how much of it is in the DLR and how much
is specific to IronPython though.
Apr 5, 2013 at 10:10 PM
jdhardy wrote:
The DLR is still sort-of actively developed, in the IronLangauges github repo. Tomas Matousek has done a bunch of work to port it to Windows8/Metro. No major work is being done, but that's mainly because it's a pretty solid piece of code that doesn't need
major changes. None of that has been ported back to this project, however, since for a long time there wasn't much interest in the DLR outside of IronPython/IronRuby. I've mulled around the idea of breaking it out into its own github repo, but I'd need to
know that there's enough projects using it to be worth the effort. Unfortunately DLR languages tend to start with good intentions and then fizzle out.
Speaking as someone with a language project still using parts of the DLR and not fizzling out (ClojureCLR), any updates to DLR would be welcome. Win8/Metro has been asked for. A separate github would be nice, but I'd be happy with an official nuget packaged of just the DLR. Some of the folks interested in this have expressed interest that this be signed the same as the regular IronPython package, to aid in compatibility.

-David