darbelo's blog

The extra pointer has to go.

I reached the midterms mostly as scheduled, and NFG is pretty much feature complete now. There's still some stuff to do here and there, but the 'big ticket' items are done. So, I have been looking at what needs to be done before the gsoc_nfg branch can be merged back into trunk. And that means giving a hard look at all of the places where I've cut corners and see if they can be made better. It's mostly minor stuff, like leaving out a cast, or not paying attention to const mismatches in a few places. Most of it is just a matter of code cleanup. Until you see the extra pointer I added to string headers.

A report from the (NFG) front lines.

After taking some time off GSoC work to pay the parrot Upgrade Tax that plumage had accumulated in the months since 2.3 shipped, and watching the World Cup this hasn't been an awfully productive week, code-wise. However, there's been quite a bit of work and planing done anyway.

Progress, refactorings and tests.

Since my last post I haven't spent as much time as I'd like coding, since getting a win32 development environment setup was a bigger time sink than I expected, but I've still managed to stay pretty close to the schedule. The main feature for the next week, once I'm done with the charset-level stuff will be Iterators, which will finally enable NFG 'literals' in PIR source, for which I have added, failing, tests the past week.

NFG is (somewhere in the vincinity of...) here

"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.

Dynamic code points, the grapheme tables and not getting your services denied.

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.

UCS-4, NFG and how the grapheme table makes it awesome.

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.

Encodings, charsets and how NFG fits in there.

The post from last week talked about what NFG was and tried to explain how it was a good feature for parrot to have. Today I'll be slightly more concrete and talk a bit about how NFG fits inside the parrot string structure. There's other parts of parrot that will need hacking on, but this time I want to limit myself to the the two bottommost pointers in the STRING structure definition and the concepts behind them.

What is NFG and why you want Parrot to have it.

The Grapheme Normal Form for Unicode (or NFG as we like to call it) has been specified as a feature parrot wants for a long time, it's been in the Parrot Design Document for strings since before I had a commit bit, or any involvement in the project come to that. Something that has gone that long unimplemented can't be that important, right? I mean, we clearly have survived without it. Turns out it is important, but it takes some background to realize why.

The last week in decnum-dynpmcs

Hit the GSoC "suggested pencils down" date yesterday. That means there's one week left on the project, so I figured it was time for a wider overview.

This week on decnum-dynpmcs

Another week, another #parrotsketch report:
* Made some small cleanups here and there. Added missing checks to a few DecNum METHODS.
* Added a method to DecNum to retrieve the actual exponent of a number. More useful than it sounds, really.
* DecInt is starting to work. Trying it out as a subclass of DecNum. Had to tweak the set_*_native() VTABLEs to properly round their input.
* It looks like SUPER() is misbehaving for dynpmcs. I'll look a bit more into that today and file a TT if it's actually a bug.
* The decTest parser is now functioning, it parses and runs most decTest files.

Syndicate content