Sign In/My Account | View Cart  
advertisement


Listen Print

This week on Perl 6 (10/28-11/03, 2002)
by Piers Cawley | Pages: 1, 2

Nondeterministic Algorithms, Flexops and Stuff

Piers Cawley made heads hurt (his included) when he posted a question about using superpositions (aka flexops) to implement nondeterministic algorithms. The particular example given was an algorithm to find a path between two nodes of an acyclic-directed graph (lifted from a text on lisp). Jonathan Scott Duff thought the idea was 'neat.' For an encore, Piers redid the function without flexops, using a continuation-based implementation of choose and fail (which hurts my head more than the superposition-based version, frankly).

http://groups.google.com/groups

Primitive Boolean Type?

Michael Lazzaro asked a tricky question: Can a bit be undefined? If so, then it leads to the somewhat counterintuitive assumption that one would need two bits to store a single `bit.' Which is certainly odd. However, it turns out that native types like bit, int, cannot be undefined; so that's all right. This then branched off into a discussion of whether Perl 6 would have an explicit Boolean type. It won't. Unless Larry changes his mind.

http://groups.google.com/groups

Labeled If Blocks

Last week, Steve Canfield wondered whether Perl 6 would have labeled if blocks, which would allow one to jump out of arbitrary levels of nested ifs. It seems the answer is `no,' but this led to a discussion of possible control statements that affect the flow of control in different sorts of blocks (subs, conditionals, loops, etc.). It's looking like we may end up with a leave statement. The other possibility would be to make return a method, allowing one to do:

    Loop.return($x)

or whatever.

http://groups.google.com/groups

http://groups.google.com/groups

In Brief

There was some discussion on the internals list about what functions need to have an interpreter argument. The basic rule appears to be: `If it's going to allocate memory, it needs an interpreter.'

Leopold Toetsch has rejigged the startup procedure so that we will always have a valid interpreter, making patches like the one that allowed for a NULL interpreter in sprintf unnecessary.

Discussion of the Parrot Copyright/License changes was subdued, bordering on the nonexistent. Let's hope it stays as smooth.

Leo Toetsch has been doing various refactorings of Parrot ops.

There was discussion about how to generate the MD5 hashes for Parrot bytecode `fingerprints.' The catch is that the Perl module Digest::MD5 isn't guaranteed to be available on all Perl installations ... .

Josh Wilmes did a massive 'indentation cleanup' patch (2000+ line patch).

Allison Randal has a fascinating article all about Perl 6 topics and topicalizers at http://www.perl.com/pub/a/2002/10/30/topic.html, which is well worth the read.

Paul Johnson had some thoughts about using properties on statements and the like as a way of providing metadata to things like code-coverage tools.

Who's Who in Perl 6?

Who are you?
Mike Lazzaro. My wife and I own a company called Cognitivity (http://www.cognitivity.com/) in Burbank, California. We met at Caltech, in Pasadena. We use Perl5 for our commercial e-learning software (online, customizable corporate training software). This is the first company we actually own, after working as consultants/contractors/employees for years at other places. It's great.
What do you do for/with Perl 6?
Originally, I just wanted to document Perl6's OO behaviours, but I soon found that to be impossible without documenting everything else first, so that's what I'm doing. I'm going piece-by-piece through all the early Apocalypses, attempting to fill in all the details and implications, which I am writing up in book-like form. As I get them done, I'll post them for review and feedback -- but before that, I'll have a lot of little questions and inconsistencies that I need to pin down.

My feeling is, because I'm *not* on the design team, and I *don't* know all the thinking on how and why things are decided, I'm a good test person to write newbie-level documentation. If you can explain it to me, that's a pretty good indication that you and I can explain it to someone else. I think the disconnection between designer and documenter will be important, in this case, because we want Perl6 to be heavily adopted by mere mortals, not just experts.

Where are you coming from?
I've been using Perl since the 4 to 5 migration. Before that, I was mainly a C/C++ person. Before that, assembler. Perl5 is the best language I've ever used, but lately it's had some enterprise-level scalability problems that I need to solve, if I'm going to keep using it. Hence, I'm helping with Perl6.
When do you think Perl 6 will be released?
Sooner than people think ... maybe a robust alpha within six months, I bet. People are worried about the length of time it's taking to get through the initial decisions, but most of the hard ones have already been done. It's going to pick up dramatically after the next two or three Apocalypses.
Why are you doing this?
Because I've had to work in five different languages over the past few years, and they all suck, each in their own special way. Horribly. If I'm going to continue programming as a career, I want to work in a language that, as much as possible, takes the grunt work out. I don't like re-solving the same design patterns umpteen times. That's something a computer should do for me.

Why am I volunteering for documentation? Dunno, seemed like that effort was falling behind, since everyone keeps asking the same questions, over and over (like me, for example). And I can type fast. And I've got lots of experience at herding cats, which can't hurt ... .

You have five words. Describe yourself.
Programmer. Manager. Writer. Optimist. Cynic.
Do you have anything to declare?
I've grown to hate most technical terms, because nobody uses them to mean the same way. So I have an allergic reaction to descriptions that use a lot of big words to explain something that should be Much More Obvious. You'll find I post a lot of "please clarify" messages, to try to beat that out of people. :-) It doesn't always mean I'm dense, though sometimes it does. Sometimes it means "No -- really. Is that your final answer?"

Acknowledgements, Requests and the Third Thing.

This summary was once again brought to you from the comfort and security of a GNER Express train running between Newark and London, and from the greater comfort and security of my armchair at home. Production was abetted by industrial quantities of site tea (in the case of GNER) and Earl Grey China Moon tea (in the armchair).

Proofreading was mostly done by Piers Cawley, so you can blame him if there are any outrageous typos.

And, as the postamble usually goes, if you didn't like this summary, then what are you doing still reading it? If you did like it, then please consider one or both of the following options:

The fee paid for publication of these summaries on perl.com is paid directly to the Perl Foundation.