IronPython 1.1.2 RC

It’s a little late, but we just pushed out the RC for IronPython 1.1.2. This is a minor release with a bunch of bug fixes we’ve backported from our 2.0 work.

However, there are two minor breaking changes I wanted to highlight:

  1. Work Item #16348 – We’ve changed the nt.unlink method so that it raises an exception if the file doesn’t exist. This brings nt.unlink in line with CPython’s behavior, but does change the public behavior of the method.
  2. Work Item #16735 – We’ve changed the return type of IronPython.Runtime.Operations.Ops.Id() from long to object. We return a boxed 32-bit integer for Ops.Id(), unless you’ve allocated over 2^32 objects in which case we roll over to our arbitrary precision IronMath.BigInteger type. Note, this only would affect statically typed languages compiled against the IronPython assembly. It wouldn’t affect python  code in any way.

We think these are fairly minor (hence the reason we green-lit them) and furthermore these changes mirrors the eventual behavior of 2.0. Please let me know if either of the changes is a problem for you or your project.

Morning Coffee 168 – E3 Edition

Yesterday, was Microsoft’s big reveal for Xbox 360 this coming holiday season. If you’re not a gamer, please move along, nothing to see here. Also note, I work @ Microsoft, but not in the games division so this is only my thoughts on yesterday’s announcements.

  • While several “hard-core” games were showcased – Fallout 3, Resident Evil 5, Fable 2, Gears of War 2 and the surprise announcement that Final Fantasy XIII – the rest of yesterday’s briefing screamed “we’re not just for hard core gamers!”  Call it the Wii effect. Even the title of the main E3 Press Release was Gameplay for Every Passion.
  • Honestly, my favorite announcement from yesterday wasn’t game related at all – it was the announcement of Netflix on Xbox 360. I’ve been hoping for a flat rate subscription plan since Video Marketplace first launched. Soon, I’ll have it.
  • I’m not sure what I think of the New Xbox Experience yet. On the one hand, the whole cartoon avatar thing isn’t really my bag. Plus, isn’t it quite the Mii clone? However, the ability to share photo and video viewing experiences – even with cartoony avatars – and the flashy + engaging navigation mechanism looks like a real improvement. Here’s hoping they improve the performance of navigating hard drive content (games library, gamer pictures, etc).
  • Congrats to my friend Matt who’s been very involved in the development of the new Primetime game show channel. I’m not that interested in “1 vs 100″, but I think the potential of that game model is pretty huge. If they created a Jeopardy game for Primetime, I think my parents would by a 360 right away.
  • Music / party games seem to have been the primary focus of the press briefing. I’m definitely getting Rock Band 2 (AC/DC woot!) and I think my wife would like Lips (she usually sings when we play Rock Band). I want to see how the “wireless interactive microphones: Featuring stylish interactive motion sensors and lights” will work. Guitar Hero World Tour looks cool too, but I’m not re-buying all new music hardware.
  • You’re in the Movies looks like a hoot, plus it doesn’t really look like a game, so much as a “party activity”. For example, while there are minigame winners or losers, “winning” takes a back seat to the final movie result. I’m guessing this will be big with the kids.
  • Speaking of kids, Patrick is really looking forward to Banjo-Kazooie Nuts & Bolts. He loves anything related to building, and building fantastic vehicles is a core part of the gameplay. As for Riley, I think she’s getting old enough to enjoy Viva Pinata – she enjoys watching Patrick and I play – though I’m not sure we need the new Viva Pinata.
  • Geometry Wars 2 and Portal: Still Alive, both coming to Xbox Live Arcade. ’nuff said.
  • Not really “new” news, but XNA Community Games launches this fall. I’ve got a creators club membership, so I’m able to experiment with this now – it rocks, though the available games are pretty shall I say “unpolished” at this point.
  • Halo Wars not coming until 2009. 😦
  • No new Bungie news, but their website is counting down to something tomorrow. I guess we’ll find out then.

Morning Coffee 167

  • If you’re a gamer, you’re probably already well aware that E3 is this week. The Too Human demo has already been released. I have a friend who’s been working on “something” that will be announced today (I think).
  • Live Mesh folks pushed out an update Friday. Among the new features is the ability to sync folders among peers but NOT up to the cloud. This is cool because it means I can sync my many many GB of pictures and music on my home machine backed up with Carbonite. This means I can sync them without blowing thru my 5GB Mesh storage limit.
  • It looks like there’s a new F# drop – 1.9.4.19but as usual there is no announcement or details as to what’s new. Release notes guys, look into it.  Update: Don Syme blogged the release, and it’s pretty minor. a .NET FX 3.5 SP1 bug fix, a fix for Mono, and they removed WebRequest.GetResponseAsync to make F# work on Silverlight. And the release notes are in the readme. My bad.
  • Speaking of F#, it was “partially inspired” by OCaml, so when I see papers related to OCaml, I immediately wonder if I an apply the described techniques to F#. “Catch me if you can, Towards type-safe, hierarchical, lightweight, polymorphic and efficient error management in OCaml” is one such paper. (via LtU)
  • Speaking of functional programming, Matthew Podwysocki posted a bunch of FP links as well as a Code Gallery Sample on FP in C#. Good stuff.
  • As per Scott Guthrie, it looks like there’s a new ASP.NET MVC drop coming this week.
  • Based on posts by Ted Neward, Dare Obasanjo and Steve Vinoski, Google Protocol Buffers sounds like it’s going to be a dud. Note, I haven’t looked at it depth personally, I’m just passing on opinions of some folks I read and trust.
  • Speaking of Dare, both he and James Hamilton take a look at Cassandra and come away impressed. I wonder how easy it is to code against from Python and/or .NET?
  • Bart de Smet has a cool sample of calling out to PowerShell from IronRuby via the backtick command. Pretty cool, but it would even cooler to show how to call out to PS and return .NET objects to Ruby (though that would probably not be spec compliant for the backtick command).
  • Here’s a MS code name I had never heard before – Zermatt. It’s “a framework for implementing claims-based identity in your applications.” (via Steve Gilham)

Morning Coffee 166

Yes, I realize it’s been a while. I tried in vain to catch up with my blog reading after my Hawaii vacation and finally just gave up and hit “mark all as read”.

Dynamic Languages

  • There’s a new version of the DLR hosting spec available (doc, pdf). The DLR implementation is still in motion, so there are some inconsistencies between the spec and the code, but the spec should give you the high level overview you need if you want to host DLR languages inside your app.
  • Oleg Tkachenko recently joined the dynamic languages team. He’s the creator of the Interactive IronRuby Web Shell, an IronRuby version of Try Ruby. Of course, it’s not as cool as using SL2to execute the code directly in the browser. Michael Foord has his Python in the Browser and my teammates John and Jimmy demoed a Silverlight version of Try Ruby @ TechEd.
  • Jim Deville, also of the dynamic languages team, recently started blogging.
  • I have a new boss, Dave Remy. He doesn’t have a blog – yet – but you can follow him on Twitter as daveremy. When Twitter is actually working that is.
  • There’s a new homepage/wiki for IronRuby though I’m not sure why there’s a picture of Matz wearing a Python shirt on the home page.
  • My teammate Jimmy Schementi provides some “continued hope” for a better (heck, I’ll take current) ASP.NET and ASP.NET MVC story for DLR languages.
  • Via Michael Foord, sounds like IronClad is making good progress. V0.4 can run the bz2 module “in its entirity” (maybe run a spellcheck on your site, guys?) and now apparently, it’s now able to load numpy.core. Very exciting!

Other Stuff

  • Pat Helland, who has blogged even less than me for the past few months, has a post up about controller and doers in the IT department. After 18 months in MSIT, put me in the doer camp, please.
  • The F# team has pushed out a spec for v1.9.4 of the language. Don Syme says it’s not official, but it’s a huge improvement over the old informal spec
  • Speaking of F#, my friend Matthew Podwysocki recently published FsTest, a testing DSL for F#. I wrote about F# unit testing as part of my PEG parsing series, and I really like the direction Matthew has taken this project. You can pull it down from CodePlex.
  • When I did my PEG talk @ Lang.NET, Gilad Bracha mentioned I should check out oMeta. It looks really cool, though with the job change I haven’t had the time to play with it. Now I discover that Jeff Moser is working on a version for CLR called oMeta# that I’ve got to spend some time with. And in the comments to that post, I discovered pyMeta from Allen Short, though it apparently doesn’t work on IronPython (must investigate why).
  • James Kovacs introduces psake, a PowerShell based build automation tool which uses a rake-inspired internal DSL syntax similar to one I blogged last year. I’d love to see this take off, but given MSBuild’s tool integration, I wonder if that’s feasible.
  • I upgraded my home wireless network almost exactly a year ago. I’ve been happy with the range and coverage, but not so happy with the Buffalo Tech firmware. The built-in DHCP server is pretty flaky. So I upgraded to the open-source Tomato firmware. Upgrade was smooth, though I did need to reset my cable modem. But even that was smooth – Comcast has an automated service for that now,

Programming Languages @ PDC08

The PDC folks pushed out a bunch of new sessions yesterday, including a bunch from my part of DevDiv. You can see the full list of sessions that have been published (so far) at the PDC site.

An Introduction to F#
Learn about Microsoft’s new language, F#, a typed functional programming language for the .NET Framework. F# combines functional programming with the runtime support, libraries, tools, and object model of .Net. Understand how F# asynchronous workflows help tame the complexity of parallel and asynchronous I/O programming and how to use F# in conjunction with tools such as Parallel Extensions for .NET.

Deep Dive: Dynamic Languages in .NET
The CLR has great support for dynamic languages like IronPython. Learn how the new Dynamic Language Runtime (DLR) adds a shared dynamic type system, a standard hosting model, and support for generating fast dynamic code. Hear how these features enable languages that use the DLR to share code with other dynamic and static languages like VB.NET and C#.

Future Directions for Visual Basic
Come learn about the new capabilities in the next version of the language, including: extensions to LINQ, syntax simplifications, and improvements to the IDE. We’ll provide insight into the direction of the language, including dynamic binding, meta-programming, and scripting.

The Future of C#
In this talk Microsoft Technical fellow and C# Chief Architect Anders Hejlsberg outlines the future of C#. He will describe the many forces that influence and shape the future of programming languages and explain how they fit into C#.

Visual C++: 10 is the New 6
Get more done. The next version of Visual C++ is all about improving developer productivity for large-scale applications. Learn about the IntelliSense and browsing experiences, changes to the project and build system, project-less browsing, collaboration through remote symbol indexing, and custom visualization of symbolic information.