Skip to content
A scene from Ireland

2021

Cataract Creek - functions and references

I've been active on my "Ocean" programming language design project again and have created another point release which I am calling "Cataract Creek". It contains a number of changes but the most significant are functions and references (aka pointers) so that is what I'll discuss here.

I found as I was working on some of the design that these two really need to come together, or at least I needed some understanding of references before I could do anything useful with functions. This is because functions need some form of "by-reference" parameter to be really useful, and that means there must be some concept of references.

Selections and clipping in The X11 Window System

One of the many tasks when writing an editor for Linux - which I am with my "edlib" project - is to support sending and received content from other applications for copy/paste operations. The X11 protocol provides support this is with "Selections" and a "clipboard" which are documented in the ICCCM - the Inter-Client Communication Conventions Manual. Unfortunately the big-picture of how this should work is poor described, and consequently different applications can behave quite differently and many, in my opinion, get it wrong.

While the selection mechanism can seem confusing and needlessly complex, it actually makes lot of sense and is easy to work with, providing you look at the right way. The important observation is that the "PRIMARY" selection and the "CLIPBOARD" should NOT provide different content. They are really just different interfaces to essentially the same content. Let me explain ....

LR Parsing with line breaks - 2021 edition

Yes, here it is over a year and a half since the last time I wrote about this, and I'm still working on it. Or maybe working on it again. But I really think I've got a much better solution this time. It certainly seems to be easier to work with.

I don't clearly remember the problems that I had with the previous design, but I do know that it seemed fragile and there was particularly some issue with not having a token that clearly closed a list of statements - like a '}' in C or "end" in Pascal. In any case I now have a new approach which is much simpler