Introduction, and IDE interface

3 views
Skip to first unread message

Seo Sanghyeon

unread,
May 29, 2007, 9:33:37 PM5/29/07
to JVM Languages
Hi,

My name is Seo Sanghyeon. I live in Uijeongbu, Korea. I have not
really worked on implementing languages on JVM, but I do have some
language implementation experience.

I was involved in PyPy project (http://codespeak.net/pypy/) since
2003. I wrote most of its (currently incomplete) Common Lisp backend,
and did the initial implementation of its command line entry point
(py.py) and compiler experiment shell (translator.py).

Then in 2005, I started working on IronPython, mainly porting
extension modules written in C like md5 and pyexpat (Expat XML parser
binding). For the first half of 2006 I tried to keep IronPython
working on Mono (it kept breaking with each release) by reporting
whatever bugs to Mono bugzilla. Then IronPython 1.0 Final was
released, and the breakage was mostly stopped.

Since September 2006, I maintain the "fork" of IronPython in the form
of "IronPython Community Edition". I published six releases since
then, with about 30 patches in total, which mainly addresses corner
cases of compatibility. Microsoft IronPython team did fix the most of
reported bugs (but did not use my patches; they fixed them their own
way) and the current release only has 3 patches applied.

http://fepy.sourceforge.net/
http://fepy.sourceforge.net/doc/ironpython-mono-report.html
http://fepy.sourceforge.net/doc/ipce-release-note.html

Okay, enough introduction.

Charles Oliver Nutter wrote:
> Also, I'd be interested in any discussions on JVM
> versus CLR design decisions, for those who know the details. We may be
> able to learn from CLR.

And:
> JRuby's AST used to match Ruby's, but to support IDEs we (Tom) added in
> comments as well. This is largely the reason why JRuby's parser and AST
> are the most widely used for Ruby IDE work. I believe all the major
> Java-based IDEs use our code.

Interfaces to IDE from language implementations would have a lot of
things in common, and I believe this is worth standardizing.
Microsoft's Dynamic Language Runtime has a Microsoft.Scripting.Hosting
namespace, which defines "language services". One of them is "token
categorizer".

I used monop tool (which is exactly like javap) to extract public
interfaces pertaining to this functionality. It's uploaded here:
http://sparcs.kaist.ac.kr/~tinuviel/misc/tokencategorizer

This looks like a very well thought out interface to me. TokenCategory
and TokenTriggers enumeration are quite interesting. Persumably, this
is an interface intended to be used by Visual Studio integration.

I would be interested in how existing JVM language-IDE interfaces
work. Like NetBeans JRuby integration, and PyDev Eclipse plugin.

Seo Sanghyeon

Frank Wierzbicki

unread,
May 30, 2007, 7:32:20 AM5/30/07
to jvm-la...@googlegroups.com
On 5/29/07, Seo Sanghyeon <san...@gmail.com> wrote:

> I used monop tool (which is exactly like javap) to extract public
> interfaces pertaining to this functionality. It's uploaded here:
> http://sparcs.kaist.ac.kr/~tinuviel/misc/tokencategorizer

I'm slightly nervous about looking at IronPython because it is largely
"owned" by Microsoft, but since it has an open source license, I could
get over it (There are potential patent problems, but I could get
comfortable with leaving that heartburn to the lawyers). On the other
hand looking at decompiled proprietary code is a terrifying
prospect... I don't think I would even consider doing that... the
legal issues (copyright, EULAs, etc) are much more clearcut even for
non-lawyers...

-Frank

Sanghyeon Seo

unread,
May 30, 2007, 8:21:42 PM5/30/07
to jvm-la...@googlegroups.com
2007/5/30, Frank Wierzbicki <fwier...@gmail.com>:

> I'm slightly nervous about looking at IronPython because it is largely
> "owned" by Microsoft

I don't understand this fear. Can anyone explain this?

--
Seo Sanghyeon

Frank Wierzbicki

unread,
May 30, 2007, 8:44:50 PM5/30/07
to jvm-la...@googlegroups.com
Microsoft has been saber-rattling with its patent portfolio lately --
this has been primarily directed at Linux, but could potentially turn
against other targets. Of course, patents work as a weapon even if
you have never looked at the company's code before, but patents
usually come from things that a given company is actually working on,
and I'm sure they have plenty of patents that are related to C#,
IronPython, etc etc.

That being said, the supreme court has recently weakened software
patents, but IANAL so I do not know all that much about it beyond the
sound bite.

My nervousness is minor, but it is enough to put CLR stuff a little
lower on the list of things that I want to look at someday.

-Frank

Sanghyeon Seo

unread,
May 30, 2007, 9:01:23 PM5/30/07
to jvm-la...@googlegroups.com
2007/5/31, Frank Wierzbicki <fwier...@gmail.com>:

> Microsoft has been saber-rattling with its patent portfolio lately --
> this has been primarily directed at Linux, but could potentially turn
> against other targets. Of course, patents work as a weapon even if
> you have never looked at the company's code before, but patents
> usually come from things that a given company is actually working on,
> and I'm sure they have plenty of patents that are related to C#,
> IronPython, etc etc.

Eh, so you think ITokenCategorizer interface can be patented? If not,
how is this relevant to this discussion?

--
Seo Sanghyeon

Frank Wierzbicki

unread,
May 30, 2007, 9:07:14 PM5/30/07
to jvm-la...@googlegroups.com
On 5/30/07, Sanghyeon Seo <san...@gmail.com> wrote:
> Eh, so you think ITokenCategorizer interface can be patented? If not,
> how is this relevant to this discussion?
Sorry it is just a feeling of unease, probably no point in talking
further about the patent issues, since really they are a nebulous and
hopefully overblown concern, and I have a feeling that I'm jumping at
shadows with that one.

Decompiled proprietary code on the other hand...

-Frank

Charles Oliver Nutter

unread,
May 30, 2007, 9:11:38 PM5/30/07
to jvm-la...@googlegroups.com

If "one click shopping" can be patented, all bets are off.

- Charlie

Sanghyeon Seo

unread,
May 30, 2007, 9:55:15 PM5/30/07
to jvm-la...@googlegroups.com
2007/5/31, Charles Oliver Nutter <charles...@sun.com>:

> If "one click shopping" can be patented, all bets are off.

This discussion is depressing.

However, I want to point out that IronPython license "grants you a
non-exclusive, worldwide, royalty-free license under its licensed
patents to make, have made, use, sell, offer for sale, import, and/or
otherwise dispose of its contribution in the software or derivative
works of the contribution in the software", where "licensed patents
are a contributor's patent claims that read directly on its
contribution".

http://www.codeplex.com/IronPython/Project/License.aspx

Maybe it's not good enough for others. It's good enough for me.

--
Seo Sanghyeon

Frank Wierzbicki

unread,
May 31, 2007, 7:09:44 AM5/31/07
to jvm-la...@googlegroups.com
On 5/30/07, Sanghyeon Seo <san...@gmail.com> wrote:
>
> 2007/5/31, Charles Oliver Nutter <charles...@sun.com>:
> > If "one click shopping" can be patented, all bets are off.
>
> This discussion is depressing.
I agree. I wish I never had to think about this stuff. Probably
working at Red Hat (where folks think about this stuff way too often)
has made me more sensitive. As I said, I think I am making too much
of this in the case of IronPython.

-Frank

David Pollak

unread,
May 31, 2007, 9:53:04 AM5/31/07
to jvm-la...@googlegroups.com
Folks,

<rant>
The Free Software movement has used the law as a primary tool since its inception.  The GPL is an amazingly powerful tool and has been wielded as such by a fair number of folks in a fair number of contexts.  My guess is that Sun chose to Open Source Java under the GPL (rather than MIT, BSD, or Apache) because of the sharp sword that is the GPL.

Just as we live fear of Microsoft and others, they live in fear of GPL code being introduced into their code base.  It's pretty simple to search for "efficient packet prioritization" find some tasty algorithm that does this and re-write into your code.  As a junior engineer @ Microsoft, you could do this, finish your project early, look like a super-star and poison the code base.

Given that RMS went to war with the Apache foundation over GPL/Apache 2.0 incompatibilities, the fear of GPL code infestation should not just be felt by "the bad guys" but by everyone.

(if you hate me so far, read on, because this is where I stop sounding like a GPL basher [which I'm not, I'm merely pointing out that Microsoft was not the one that started the war even though they're being nasty about fighting it])

On a broader note, it's wicked important to have clean ownership of code, open source or otherwise.  Click-wrap licenses are most likely enforceable and most software that Microsoft makes available in source form is covered by a license that's not Open Source compatible.

Copyright not only covers literal copies but also copying the structure sequence and organization of a program (and in reality the SS&O is the important stuff, not that I name my loop variables x&y vs. i&j.)  Looking at non-Open Source (or Open Source that's incompatible with your Open Source license) for clues about how a particular piece of software achieves its goals should raise concerns.

What I have done in the past, rather than looking at source or even object code (yes, I have walked through machine code to debug OS problems, but this was when I was young and stupid and the OS was DOS), is to write extensive benchmarks for software.  When I was writing spreadsheet applications, I would write very complex spreadsheets that contained nasty forward/backward references, calculations over small ranges and large ranges, etc. to do "passive sonar" about how other spreadsheets handled complexity.  By creating a hypothesis about which algorithm was used and then writing a spreadsheet to test that hypothesis and testing the time and space different spreadsheet applications used to compute the spreadsheet, I was able to understand the challenges and responses that other spreadsheet authors faced and chose.

So, I think the folks that are staying away from Microsoft source are very smart.  I think you guys understand that Microsoft is waking up to the concept of using legal tools as well as other tools to pursue their business goals.  It's not fun.  It's not open.  But it is what we all have to do to keep our code clean.  As I pointed out, however, there are ways (they take more work, but in the end I think they result in deeper understanding) that one can learn about how other engineers have solved problems without worrying about poisoning your code base.
</rant>

On the other hand (yes, this is outside the rant) software patents are the devil's work.  They can bite you no matter how clean you get.  They are especially nasty in that because closed vendors can review our code (rather than guess at how we implemented x or y) it's much much easier for them to use patent as a weapon against us.  I have been an active (or semi-active) opponent to software patents for a long time ( http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/famous.people)

Thanks,

David
--
lift, the fast, powerful, easy web framework
http://liftweb.net
Reply all
Reply to author
Forward
0 new messages