, though we are rather fond of them for obvious reasons.
Submitted by Chandon on Tue, 06/01/2010 - 20:46
Parrot has Continuations. In fact, Parrot is *based* on Continuations: rather than having a call stack and stack frames, each sub call has a return continuation - a pointer back to the call frame and bytecode position to return to after the sub completes.
As the Scheme and Ruby users keep telling us, continuations are pretty neat stuff. In fact they're so neat that they give us light weight cooperative threads "for free".
Submitted by darbelo on Tue, 06/01/2010 - 17:49
"N̈" (Or "n̈" if you don't like caps) is a grapheme from several minor extended Latin alphabets. It occurs in the orthographies of the Jacaltec Mayan dialect, Cape Verdean Creole, and in the rockumentary "This is Spın̈al Tap". Today I want to talk about the injustices this symbol has faced in the past and how, starting today, parrot can right them.
Submitted by smash on Sat, 05/29/2010 - 13:30
We're coming up on the annual Parrot Foundation member's meeting. Which includes the nomination and election of the next Parrot Foundation board of directors. And being so, the foundation is inviting everyone eligible for membership to apply. To be eligible for becoming a member of the Parrot Foundation you must:
- be nominated by two current members
- have made at least two contributions to the project (or a language implementation targeting the project)
- sign a contributor agreement
Submitted by tcurtis on Thu, 05/27/2010 - 01:14
Coding for GSoC officially began this Monday, but I decided to get a head start and started working on PAST::Walker Thursday. PAST::Walker is the foundation for the rest of what I will be doing regarding PAST Optimization, and the foundation is largely laid. There have been a few complications, and a few decisions remain to be made(and implemented) before I can say that PAST::Walker and PAST::Transformer are finished, but implementing PAST::Walker has gone smoothly and quickly for the most part.
Submitted by darbelo on Tue, 05/25/2010 - 01:15
One of the features of NFG I've mentioned before is that it solves our problems with variable width characters without taking additional storage space over UCS-4, on top of which it's defined. The artifact that allows us to pull off that trick is called the 'grapheme table' and today, I'll try to explain how it works.
Submitted by Chandon on Tue, 05/25/2010 - 00:54
(This post is to show my thinking on my GSoC project. Sorry in advance if it's not especially coherent or interesting out of context.)
Over the past week I've been examining the Parrot code to figure out how hybrid threads are going to fit in. First, if I'm going to make Parrot do stuff concurrently, I have to figure out what Parrot is actually doing at all.
Submitted by ash on Thu, 05/20/2010 - 18:55
My Google Summer of Code (2010) objectives are to integrate libffi into the NCI framework and to build a new Stack Frame builder that takes advantage of the llvm.
Submitted by darbelo on Tue, 05/18/2010 - 21:06
After laying down the foundations of what NFG does in previous blog posts I've started implementing, as part of my work in this Summer of Code, a new Unicode encoding for parrot, UCS-4. In this post I'll try to explain what it is and how it makes NFG easier to achieve.
Submitted by tcurtis on Sun, 05/16/2010 - 06:31
Last Wednesday, I discussed a little bit of the rationale behind my GSoC project and summarized the most low-level portion of my project: PAST::Walker. Today, I want to describe another portion of my project: PAST::Pattern. PAST::Walker provides a very powerful and complete interface. Any possible transformation or other traversal of a PAST should be implementable using it. However, it will not be very convenient if you only want to turn return nodes containing only a call node into tail-call nodes.
Submitted by khairul on Thu, 05/13/2010 - 08:50
Having an instrumentation framework opens the doors to having many different tools that can help to diagnose problems within a piece of code. One main example of this is Valgrind. Valgrind provides an interface for making many different tools that help to diagnose and identify certain specific problems, ranging from memory leaks to multithreaded data races between threads. Furthermore, the framework is also used to provide profiling tools, such as Callgrind and Cachegrind, to determine useful information such as call graphs and execution times of functions.