Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Whiteknight (8626)

Whiteknight
  (email not shown publicly)
http://en.wikibo ... User:Whiteknight
AOL IM: wknight8111 (Add Buddy, Send Message)

My name's Andrew. I'm an open-content advocate at http://en.wikibooks.org. I'm also involved with Parrot as a semi-competent C hacker. This blog is going to be a forum where I can ramble about minutia and post information about perl-world stuff that I care about.
+ -

  Parrot 1.3.0 "Andean Swift" Released on 2009.06.16 16:32 Whiteknight

Submitted by Whiteknight on 2009.06.16 16:32
Parrot
Whiteknight writes "On behalf of the Parrot team, I'm proud to announce Parrot 1.3.0 "Andean Swift." Parrot is a virtual machine aimed at running all dynamic languages.

Parrot 1.3.0 is available on Parrot's FTP site, or follow the download instructions. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on our source code repository to get the latest and best Parrot code.

Parrot 1.3.0 News:
— Core + Optimized parts of the IO system + Fixed inheritance hierarchy of FileHandle and Socket PMC types + Fixed leaks involving subroutines and Parrot_Context + Cleaned up and refactored GC internals, including fixes and optimizations + Optimized PMC class manipulations to use type numbers instead of string names + Fixed problems involving hashval calculations in strings + Removed unnecessary MULTI dispatches in built-in PMCs + Fixed memory leaks involving PMCs that were not properly destroyed + Fixed creation of PMCProxy PMCs in correct namespaces + Added preliminary Pipe support + Fixed cloning of Object PMCs + Added root_new opcode + Added initial versions of Packfile PMCs with read/write capabilities — Compilers + Fixed several memory leaks in IMCC + Updated PCT to use root_new opcode + Added support for keyword "self" in NQP — Documentation + Improved and expanded /docs/book + Updated project documentation + Defined 'experimental' status and procedures in DEPRECATED.pod — Miscellaneous + Cleaned code and improved code-level documentation + Various bugfixes, code cleanups, and coding standard fixes + Added an experimental compiler library to help use PIR libraries from HLLs + Updated OpenGL library and examples to support experimental HLL import

Thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next release is 21 July 2009.

Enjoy!"
Read More 0 comments

+ -

  Comment: I agree, at length (Score 1) on 2009.05.13 9:09

by Whiteknight on 2009.05.13 9:09 (#68566)
Attached to: Software Liability Protection

I was writing a comment to agree with you Ovid, but it got too long and turned into a whole blog post:

http://wknight8111.blogspot.com/2009/05/software-engineering-licenses.html

In short, software engineers for safety-critical systems should be licensed and certified in the same way that practitioners of other engineering disciplines are. Far from harming those other industries, regulations, licenses, and certifications have had a real business benefit to them.

Read More 14 comments
Comments: 14
+ -

  Journal: Cessation of Use.Perl blogging on 2009.05.01 21:23

Journal by Whiteknight on 2009.05.01 21:23
User Journal

This is going to be my last post to this use.perl journal. From now on, all my Parrot- and Perl-related posting will happen on my Blogger blog instead. There are a number of reasons for this:

Read More 1 comments
Comments: 1
+ -

  Comment: Small update (Score 1) on 2009.04.19 9:24

by Whiteknight on 2009.04.19 9:24 (#68178)
Attached to: JIT on Parrot

I found out this morning that the JIT system for PPC is also working. I wasn't aware of that previously. So, there are actually two platforms supported by JIT, not just one like I suggested in the post.

Read More 1 comments
Comments: 1
+ -

  Journal: JIT on Parrot on 2009.04.18 17:59

Journal by Whiteknight on 2009.04.18 17:59
User Journal

The JIT system on Parrot is a little bit of a mess, and one that has been mostly ignored for a while now, except for the increasingly-frequent occasions when it breaks.

Read More 1 comments
Comments: 1
+ -

  Journal: Project updates on 2009.03.21 12:01

Journal by Whiteknight on 2009.03.21 12:01
User Journal

A few miscellaneous updates:

1) Matrixy now has an assortment of TAP-related testing functions: plan(), ok(), nok(), is(). We also have functions start_todo() and end_todo() to mark blocks of tests as TODO tests. This morning I went through the test suite and updated most of our tests to use these routines. It isn't a perfect TAP implementation, and not all the expected functionality exists, but it's a start.

Read More 0 comments

+ -

  Journal: Function Definitions on 2009.03.19 18:20

Journal by Whiteknight on 2009.03.19 18:20
User Journal

Continuing with my series about M, I'm going to talk today about defining functions today. I discussed how to call and use functions last time, and today we are going to learn how to make our own.

Functions are defined simply with the "function" keyword, and are terminated with the "endfunction" keyword. Here's an example:

  function x()
      disp("Hello World!");
  endfunction

Read More 0 comments

+ -

  Journal: Matrices and Functions in M on 2009.03.15 9:04

Journal by Whiteknight on 2009.03.15 9:04
User Journal

Continuing my short tutorial about M, today I'm going to talk about variables and functions in M. This is, simultaneously, one of the hardest parts of the Matrixy compiler for us to get right, and we've just made our second attempt at it.

Functions in M are named and called very similarly to how functions are called in other languages like C or Perl:

  foo(1, 2, 3);

Read More 0 comments

+ -

  Journal: Basic statements in M on 2009.03.09 18:31

Journal by Whiteknight on 2009.03.09 18:31
User Journal

I promised to write a short series about programming in M, to try and show some of it's cool features. For those who don't know, M is the scripting language used by Matlab (proprietary) and Octave (Free). M is designed for linear algebra and engineering simulations.

Statements in M are very similar to statements like we would see in languages like C and JavaScript. Statements take very similar syntax, and are (mostly) terminated with a semicolon:

x = 1;

x = sin(y) + 1;

Read More 0 comments

+ -

  Journal: Progress on Matrixy on 2009.03.08 14:52

Journal by Whiteknight on 2009.03.08 14:52
User Journal

I haven't been doing much work on Parrot or even the Perl 6 book this week, instead focusing most of my efforts on Matrixy. Matrixy, which I introduced in my last post, is an M (Matlab/Octave) compiler for Parrot.

Progress has been going well, and just this morning I got a few more tricky features working. "working" is, of course, open to multiple definitions. This is especially true for such an idiomatic language as M.

Read More 0 comments

+ -

  Comment: Would be nice (Score 1) on 2009.03.04 12:46

by Whiteknight on 2009.03.04 12:46 (#67691)
Attached to: Matrixy: M on Parrot

Unfortunately, that's not how it works (or at least, I've never seen that effect). It binds to the function earlier then that, so you would probably get an error about the index being out of bounds or something.

My guess is that the name(5) will autovivify and return a value of 0. I need to test this though.

Read More 2 comments
Comments: 2
+ -

  Journal: Matrixy: M on Parrot on 2009.03.04 10:31

Journal by Whiteknight on 2009.03.04 10:31
User Journal

I've finally gotten my M interpreter project off the ground. M, for those not familiar with it, is the scripting language used by Matlab and Octave, and is oriented towards linear algebra and mathematical modeling. I had started idly working on it back when I was still in school as a way to pass the time on long train rides. I gave it up to focus on Parrot internals work for GSOC, and never went back to it because it felt to me like PCT was changing and evolving too rapidly for me to keep up

Read More 2 comments
Comments: 2
+ -

  Journal: parameter passing on 2009.02.24 9:54

Journal by Whiteknight on 2009.02.24 9:54
User Journal

All the magic about handling parameters in Parrot, all the slurpy params, flat args, named args, and optional params are all sorted out in the function Parrot_process_args. This function is called most often from parrot_pass_args and parrot_pass_args_fromc. These, in turn, are called from some very interesting places:

1) It gets called from the get_params opcode

2) Called from the set_returns opcodes

3) It gets called from inside the generated code of C-defined methods

Read More 0 comments

+ -

  Journal: Calling conventions refactor: Update on 2009.02.21 16:38

Journal by Whiteknight on 2009.02.21 16:38
User Journal

I've been keeping busy lately with two projects. The first, a new one, is finally starting to implement the Matlab/Octave-on-parrot compiler. The second, an old one, is my continuing work on the calling_conventions refactor stuff.

I'll talk about the Matlab/Octave compiler, which is now called "Matrixy" later. For now you can check it out at it's Googlecode homepage.

Read More 0 comments

+ -

  Journal: Examples Needed! on 2009.02.17 8:54

Journal by Whiteknight on 2009.02.17 8:54
User Journal

Yesterday I made a few misc changes to the Perl 6 book at Wikibooks, although nothing as substantial as I would have hoped. My wife hasn't been feeling well and Parrot is preparing for a big release today (the last one before 1.0 next month) so I've been keeping busy with those things and haven't had a lot of time to spare.

Read More 1 comments
Comments: 1