Followers? Seriously??

This is a  highly esoteric blog — really just a personal pet project — but I see that I have gathered some followers. That’s okay, there’s plenty of good seating, but I’m really curious why you’re here! I’m guessing it’s not that you have an interest in a weird programming language I’ve dabbled with for decades. (If I’m wrong about that, speak up; I’d love to hear from you.)

I’m going to stick this post up top. Perhaps I can encourage you to treat it as a “Guestbook” and leave a comment to sign in and say, “Howdy!” Common courtesy, really (although I realize the interweb tries to operate by different standards).  Maybe later, I’ll create a Guestbook page — that’s kind of a neat idea, actually — and edit this to point you there. (Or maybe I should do that on a blog that expects visitors.)

Honestly, this is just an excuse to try the “sticky post” thing.😀

BOOL Exceptions

When BOOL gets into trouble at run-time it throws an Exception. Such problems include resource issues (like a missing file) or code issues (such as when a Model can’t find an Action to handle a received Message).

There are a some native Exceptions, but user code often extends those for the sake of the application (following a common model used in Java, Python, and many other languages).

Continue reading →

More about “new”

Picking up the topic of Model implementation two years later, some further thoughts about the new method as well as about the set and get methods.

The summary here is that all three are virtual methods built into the implementation. They have to be to handle the under-the-hood aspects of Instances. They can be “extended” by user code, but not over-ridden.

Continue reading →

Array Redux

Strange how my thoughts turn to BOOL in the early part of even-numbered years. (I wonder if it has something to do with the San Francisco Giants baseball team, although I don’t know why, and I’ve been hitting even-numbered BOOL version years longer than they’ve been winning World Series, plus I hope they don’t win this year.)

But in any event, I found myself pondering the *array type (again)…

Continue reading →

BOOL Message Center

It’s been a while since I’ve waded in BOOL waters. As always, there are periods of strong interest and periods — often quite long — of dormancy. Finally solving most of the implementation problems of the language triggered a period of disinterest. That and some uncertainties about exactly how to implement Action Methods, especially the “new” method.

But I recently did have some fun with a BOOL/OS subsystem, the Message Center Service. I roughed out a crude working version in Python that provides a flavor of the real thing’s architecture.

Continue reading →

Implementing “new”

One of the last hurdles involves the implementation of the new behavior. Models manage Instance value objects and provide new data objects (used by Instance objects to populate Call Frame slots). Model objects must provide an API to support creating and destroying Instance objects as well as manipulating their value objects.

Continue reading →

Binding Instances and Models

There is a design choice involved with regard to how Instance objects are bound to their Model object. A similar choice exists concerning Actor objects and their Action objects. (Actors can be called “instances” of an Action.)

The choice is between a BOOL-like design where the Instance sends a message to the Model, or an implementation design that lets the Instance directly call the Model. This post documents the two choices and the resolution to use the latter.

Continue reading →

Singleton Messages and Actions

A recommended idiom involves defining Actions to implement Singleton Messages. This cleans up source code by removing the need to use the semi-colon, and shifts possible “Unknown Message” errors to data type errors, some of which can be detected at compile time.

Continue reading →

Action Walkthrough, part 4

While not really part of the Action walk-through, per se, the sequence of events involving Messages still involves Actions, because Model Actions implement message behaviors. Therefore, nearly all messages ultimately result invoking some (Model) Action.

This article details the sequence of events involving Message objects.

Continue reading →

Action Walkthrough, part 3

The discussion of how an Action works continues with a detailed list of Action start-up events. The example code for the Action under discussion is shown in the first article.

Continue reading →

Action Walkthrough, part 2

There are two protocols for invoking Actions that are under consideration. Both are described here. The example code for the discussion was shown in the previous article.

Continue reading →


Get every new post delivered to your Inbox.