Direct implementation of shift/reset in Smalltalk

Frank Shearar wrote “My work on zippers led me to a very strange thought, which I’ve constructed from Oleg Kiselyov‘s and Chung-Chieh Shan‘s papers: “a zipper is a suspended walk is a delimited continuation”. That was too intriguing to let go, so I started reading. That in turn led me to the “control operators”, things that let us…”

The Anatomy of a Browser

Frank Shearar wrote “I’ve been busy rewriting the guts of Squeak’s Browser. It’s an important tool: it’s the primary way we write code and explore the system. It’s also the tool I must use to edit the Browser. Time to operate on my own brain again!”

Traversing objects functionally

Frank Shearar wrote “Like Tim, I’ve been playing around with zippers recently, only I’ve been working in Smalltalk. In particular, I’m trying to explore how easy it is to work with objects in a fully functional way [1]. With that in mind, I’m working within certain constraints, most important of which is “thou shalt use immutable data structures”.…”

Squeak 4.2 released

Frank Shearar wrote “Squeak 4.2 has finally shipped! It continues the improvements started in 4.0 and 4.1, with the trunk model revitalising the community: a small group of dedicated, frequent committers provide the main thrust of development, supported by a very simple and lightweight way of providing bugfixes, enhancements, and the like. Squeak 4.2 also ships with the Cog VM, Eliot…”

“Try again” with Exceptions

Frank Shearar wrote “Like many modern languages, Smalltalk has the concept of an exception. When an exception’s signalled, the current stack of contexts – activation frames – is gradually unwound (with unwind blocks – what in Delphi would be called try-finally blocks – being executed at each stage), until a context handles that particular exception. If no context…”

Conditional statements, the lambda calculus and early/late binding

Frank Shearar wrote “Soon after I started learning Smalltalk, I found my brain broken. Smalltalk doesn’t have control structures. No ifs, no whiles, no for loops. All these structures are instead patterns of message passing [1].”