Trent Mick: March 2009

unladden swallow: a (potentially *much*) faster CPython

Discussed a bit at the Python Language Summit at PyCon this morning: unladen-swallow is a Google project to do a lot of performance work on CPython's VM.

  • Currently have about 30% speed up.
  • Currently for Python 2 (2.4, I think).
  • Currently focused on Linux and Python 3, but committed to get patches back to the core (which implies Python 3 support). "This is a branch, not a fork."
  • Currently in use on Youtube (where most of the frontend is Python).

They are shooting for a 5x speedup. From the ProjectPlan:

Our long-term proposal is to replace CPython's custom virtual machine with a JIT built on top of LLVM, while leaving the rest of the Python runtime relatively intact. We have observed that Python applications spend a large portion of their time in the main eval loop. In particular, even relatively minor changes to VM components such as opcode dispatch have a significant effect on Python application performance. We believe that compiling Python to machine code via LLVM's JIT engine will deliver large performance benefits.

Jesse has a good write-up.

2 comments

Komodo 5.1 released (fast open, history, hyperlinks, etc.)

We (ActiveState) released Komodo 5.1 today! Get it here:

Komodo IDE 5.1 is a free upgrade for Komodo IDE 5.x license holders. Your license entitles you to run Komodo IDE on any of the platforms we support (Windows, Mac OS X and Linux). Komodo Edit 5.1 is, as ever, open-source and free.

Read more »
27 comments

PyCon 2009

PyCon 2009: Chicago

I'll be attending PyCon this year. It's been a few years since I've attended and wow has it ever grown: 11 keynotes, 120 talks, 5 hours of lightning talks, the Python Language Summit, preceded by tutorial days and followed by days of sprints.

I'm looking forward to diving back into pure Python for a little while -- something I've had difficulty finding the time for with my work on Komodo. I'm especially looking forward to the "Package distribution & installation" session at the Python Language Summit, not the least of which is because ActiveState is starting to devote more resources to this area. My newest co-worker Sridhar Ratnakumar is currently looking at how ActiveState can help here.

2 comments

Pixelmator

In the bright pre-recession days of 2008 I, and a bunch of my co-workers, bought into MacHeist: get a bunch of Mac OS X apps for about $30. One of those apps was Pixelmator.

Pixelmator icon

Pixelmator is basically a lite Photoshop-clone for Mac OS X. Some thoughts on it:

Read more »
2 comments

hyperlinks in Komodo 5.1.0b1

We released Komodo 5.1 beta 1 yesterday! Get it here:

Please try it out and give us your feedback:

emailhttp://listserv.activestate.com/mailman/listinfo/komodo-beta
bugshttp://bugs.activestate.com/enter_bug.cgi?product=Komodo
forumshttp://community.activestate.com/products/Komodo

This is the third release of Komodo 5.1 on the way to a planned final release very soon (hopefully within a week or two). Here are a few goodies in this release. (See my previous posts about the Komodo 5.1a1 and Komodo 5.1a2 releases.)

Hyperlinks

Many IDEs that have code intelligence support allow you to Ctrl+click (Cmd+click on a Mac) on a symbol to Go to Definition. Here was Komodo's feature request for that. This is now implemented in Komodo 5.1b1.

Komodo hyperlink go to definition

However, we've gone one step further and made a generic system where Ctrl+mouse-hover will underline interesting regions (hyperlinks) in your text for clicking on. The most common type of hyperlink is a symbol for "Go to Definition". However other types of hyperlinks include:

  1. Colors in CSS (including CSS in HTML files):

    Komodo hyperlink colors

    As in Firebug, you'll get a swatch of the color when hovering over the color. What's more, Ctrl+click will bring up the system's color picker with which you can change the color.

  2. HTTP and FTP URLs:

    Komodo hyperlink URL

    Ctrl+click will load that URL in your browser.

  3. Regular expression mapping to an HTTP URL.

    Komodo hyperlink regex

    Currently 5.1.0b1 includes a regex to map occurrences of "bug \d+" to the appropriate bug in ActiveState's bug database. Eventually we'll have a preferences dialog where adding these mappings will be easier, but for now here is how you can add your own.

  4. A generic handler to do whatever you can think of.

    The hyperlinks above are all implemented with a simple mechanism in Komodo's ko.hyperlinks JavaScript namespace. You can add your own handlers to do other things. Following how the regexhandler works is a good place to start. We'll try to give more examples later.

Note: The hyperlink types other than "Go to Definition" are only in Komodo IDE (i.e. not in Komodo Edit) for the 5.1.0b1 release. So, if you want to play you should either use Komodo IDE 5.1.0b1 or use the latest nightlies.

koext updates

koext is a command-line tool for helping in building Komodo extensions. There are some great Komodo extensions that users have been building here. However, it is far from as easy as it should be to dig in and build Komodo extensions. Part of the solution is the koext tool. (Another part is documentation for extension authors, but that is a story for another time.)

We've started doing some updates to koext again (see the change log). Recent changes are working towards making it easier to have a quick development cycle -- i.e. make it so that to test a change to your extension you just need to:

  1. make your edit;
  2. possibly run koext build --dev, e.g. if you changed an IDL file; and
  3. re-start Komodo

Instead of the more laborious:

  1. make your edit;
  2. run koext build to build a new .xpi file;
  3. re-install that .xpi in Komodo;
  4. re-start Komodo

In a subsequent post I'll describe how I setup to build a Komodo extension. Here is a brief intro to koext from way back

Other stuff

A quick list of other feature work, notable bug fixes and fixed annoyances in Komodo 5.1.0b1:

  • Komodo's new "History" feature now has session support which is currently used to make your history specific to a single Komodo window.

  • In Komodo IDE, the History now shows the section title for locations in the History. This can make the "Recent locations" menu a lot more useful:

    Komodo section titles in recent history list

  • In XML (and HTML and PHP, etc.) files, clicking on a tag will briefly flash (highlight) the matching tag (bug 81606).

  • Komodo's "jump to matching brace" now works as you'd expect for opening and closing tags in XML/HTML (bug 43239).

  • We've done some crash fix work so that Komodo 5.1b1 should be more stable that 5.1a2. It is hard to quantify and we continue to look for crash issues in Komodo.

  • Greatly improved the annoyance of it being very hard to grab the bottom-pane and sidebar splitters on Mac OS X (bug 80756).

  • Fixed the annoyance of being unable to resize Name/Type/Value panes in Locals/Globals debugger window (bug 80566).

  • fix: codeintel: calltips cannot show unicode doc comments http://bugs.activestate.com/show_bug.cgi?id=70448

  • Added a "duplicate line or selection" command.

  • Added Korean and Japanese JIS encodings (bug 80890).

As well there is more coming. Try out the Komodo nightly builds for the very latest stuff:

22 comments