Object-centric breakpoints: a tutorial

The new Pharo debugger is shipped with object-centric breakpoints. An object-centric breakpoint is a breakpoint that applies to one specific object, instead of being active for all instances of that object’s class. We have two kinds of object-centric breakpoints: The haltOnCall breakpoint: give it a method selector and a target object, and the system willContinue reading “Object-centric breakpoints: a tutorial”

Testing UFFI Binding with Travis

Part of software system development is to write tests. More than writing tests, developers want to set up a CI that will automatically (each commit, day, …) check the status of the project tests. While it is easy to use Travis as a CI system thanks to the work of smalltalkCI, setting up Travis toContinue reading “Testing UFFI Binding with Travis”

Ed: your new Emergency Debugger

“What is the nature of your debugging emergency?” —Ed. In this post, we’ll speak about debugging emergencies due to system error handling failures. We’ll cover the current tools available to revert code changes provoking such failures and introduce Ed, the new emergency debugger with improved revert capabilities. What is a debugging emergency? Sometimes when youContinue reading “Ed: your new Emergency Debugger”

Implementing Indexes – Who uses all my memory

This is the second entry of the series about implementing full-text search indexes in Pharo. The first entry is Implementing Indexes – A Simple Index. You can start reading from this post, but there are things that we have presented in the previous one. For example, how to install the Trie implementation. In the first entry,Continue reading “Implementing Indexes – Who uses all my memory”

Implementing an object-centric breakpoint with Reflectivity

In this post, we describe how we implement a breakpoint that affects only one specific object, and how we implement it using the Reflectivity framework. What is an object-centric breakpoint? Let’s take a simple example: imagine two Point instances p1 and p2. Each of these points has two instance variables, x and y, that weContinue reading “Implementing an object-centric breakpoint with Reflectivity”

[Pharo features] The fusion of a developed program and IDE

In this series of blog-posts, we are explaining in more detail the Pharo features described in https://pharo.org/features. Pharo follows several design principles, and one of them says that the interaction between the human and computer should be modeless. The interface needs to be as direct and intuitive as possible. If you try to think forContinue reading “[Pharo features] The fusion of a developed program and IDE”