Leopold Toetsch : prolific Perl and Parrot contributor, Parrot patchmonster pumpking, “Perl 6 and Parrot Essentials” book co-author and long term almost-anything-related-to-computers hacker.
Now he’s here committed to answer our questions and let us know a bit more about his thoughts, feelings and Parrot (of course)
Enjoy the interview !
How do you describe yourself to the Perl world?
I’m programming computers now since 30 years. But I’m for sure not the typical Perl hacker. I started with the Z80/8080 assembly language and Fortran. Then was some longer time of (Turbo-)Pascal programming. Eventually I switched over to C and wrote my first interpreter using yacc and C.
How do you reach the Perl language? Perl as a community? Other Perl facets?
I was just some Perl user. I used Perl for my average scripting jobs: text mangling and such. I did enter the Perl community not before I had a talk at YAPC::EU in Paris probably [1]. But that was really impressive. As a Perl
outsider, I received a heartily welcome from the community and I’ve to admit that I very much enjoyed that feeling.
Regarding other Perl facets: one of my clients is producing parts of all major European car brands. Some time ago they replaced the programmable controller, which my program was talking to via RS232, with a more advanced model, which had an ActiveX interface (yes - they are using Windows). So my program is now
launching a Perl script, which is doing the nasty “interfacing with the machine job” 24/7 all over the year ;)
How did you decide to take on the Parrot patchmonster role and, formerly, in the Parrot pumking one?
Well, the mentioned interpreter above was the base of a legacy program I’ve licensed to a company using it all over Eastern Europe. The German head quarters of the company some day decided to unify their IT landscape and they
switched over to SAP, which reduced my time doing contract work for them to zero.
So having plenty of free time, I started submitting patches for the Perl6 compiler - this was 2002: P6C was written in Perl and a lot of tests were failing. I eventually tracked it down to a major bug inside Parrot core related to argument handling in opcodes. All the sudden I’ve reached the very heart of the interpreter and that was the beginning of the patchmonster role.
What do you absolutely hate about working with Parrot? Contrarily, what do you really like? Did that surprise you? Why?
I can’t say that I hate anything when working with Parrot. There are of course some items which aren’t that interesting like reading other folks patches and submitting them. But that’s part of a pumpking’s day job. The really
demanding and “interesting” parts are designing the internals and guts of the interpreter, which is mainly a balancing act of compromises between flexibility and introspection capabilities towards dynamic languages, achievable peak interpretation speed and memory consumption.
What does your programming environment look like? Emacs? Vim and the Unix tools? Mac OS X?
Vim, Unix tools on linux and on OS/X when traveling.
If three people reading this interview suddenly said “Hey, I have a couple of spare hours to help out! What can I do?”, what would you suggest?
Parrot is a big project. There are many more or less self-contained subsystems to start with: I/O, the assemblers, some PMCs, the config & build system or whatever. It really depends on the interest and skills of folks who want to
jump in. There are a lot ot TODO tickets in the tracker (RT) system, some are Perl related, some need C programming knowledge and there are of course a lot of tests, which aren’t written yet e.g. some corner cases, testing the
unexpected. The latter is probably a very cheap entry point to help us: write tests and join parrot-porters@perl.org.
If time, money, and resources were no object, would you use your coding powers for good or awesome? What would you do?
The goal is of course: “one bytecode to rule them all”.
What’s the most valuable lesson you’ve learned while programming and how painful was it to learn?
The most painful one was: even I’m making mistakes - incredible, isn’t it. This was really painful, when an edit-compile-run cycle took at least one hour in ancient times (the more when the run failure was a simply typo on some punch card). Now it’s a lot simpler: edit some files, then ‘make test’ and you have a high chance that you didn’t break anything, given that you have a fair amount of tests, or that you’ve written tests for a new feature in the
first place. That’s it.
What non-Parrot, non-Perl 6 projects are you watching with wise and considered eyes? Why?
I’m trying to follow (not closely though) major OSS projects, opinions, trends, future directions, hardware, whatever. Why: I’m of course curious. E.g. recent trends towards multi-core CPUs made me thinking that STM [2] would be a nice project for Google Summer of Code - which it indeed happened to be.
What’s one question you wish I asked and what is your answer?
Q: You are living in Europe: what do you think about software patents?
A: The European Parliament has mostly defeated all the industrial’s lobby
attempts for now, to follow the American way of life here. But whenever
software patents become reality, it’ll be the slow death of small software
companies and a serious threat to OSS. I’m strongly against software patents.
[1] I’m proud to mention that YAPC::EU 2007 will be held in Vienna/Austria
[2] http://en.wikipedia.org/wiki/Software_transactional_memory

