Support isn’t perfect yet, but it’s enough of a start to get us moving with
other things. Specifically, I don’t have modifiers like g and i working
yet, but once I figure out the way to tell PCRE to do what I want it shouldn’t
be too hard to add.

If you don’t build Parrot with PCRE support, the RegExp object won’t be
available, and I think it’s going to spit out some ugly warning messages.
Considering this is just an ugly bootstrapping stage and it’s not complete
yet, I don’t mind making these kinds of things optional.

I also added in the beginnings of a runtime. Now there are some basic objects
like Process which you can use to interact with the environment, and
FileStream which you can use for input and output. The process variable
is always available as a global, and it gives access to the standard streams
and command-line arguments. Here are some examples:

And so, after several weeks of development, you can finally write a simple
“Hello World” program in Jaesop.

What my hacking today has shown me is that the one thing I am severely lacking
on are the tests. I do have some tests but I don’t have nearly enough.
Specifically, I’ve learned that my test coverage of Arrays is severely
inadequate. I also need to test a few other details which I found out were
horribly broken when I went to play with them today.

Despite some of the setbacks, Jaesop stage 0 compiler is progressing nicely
and it’s getting to the point when we can start to do some real work with
it. These few runtime additions, though small, have greatly improved the
situation. There are a few things I still need to do to it, besides the
testing I mentioned above: I need to improve the PCRE bindings because right
now they are very basic. I need to add methods to Object, Array, and String
for usability. I also need to add in a mechanism like node.js’ require
routine to load modules, and maybe a few other similar code management
details. When that stuff is all done, and when Parrot has proper 6model
support, we can start moving forward on the stage1 compiler. I’m really
starting to get excited about taking that next step.