Undeclared Variable Reparation, An Epic Journey In a Compiler – Part II

Part II – The Return Journey Welcome to the next step in the compiler journey. As a simple recap, we were compiling baz := 42 in a method bar, except that baz is not declared. We are currently in OCSemanticWarning>>#defaultAction, the default action of an uncaught Notification, that is ready to open a graphical menuContinue reading “Undeclared Variable Reparation, An Epic Journey In a Compiler – Part II”

Undeclared Variable Reparation, An Epic Journey In a Compiler – Part I

In this series of posts, I present how the current implementation of Pharo handles compilation errors on undeclared variables and the interactive reparation to fix them. Targeted readers are people interested in compilers or object-oriented programming. Non-Pharo developers are welcome since knowledge of the language or the developing environment is not required. Some parts ofContinue reading “Undeclared Variable Reparation, An Epic Journey In a Compiler – Part I”

Dynamic layouts with Spec2

As you may already know, Spec2 is the new version of the UI framework: Spec. Spec2 is not just a new version but a complete rewrite and redesign of Spec1. Contrary to Spec1, in Spec2 all the layouts are dynamic. It means that you can change on the fly the elements displayed. It is aContinue reading “Dynamic layouts with Spec2”

Advanced stepping and custom debugging actions in the new Pharo debugger

In this article, we describe the new advanced stepping menu available in the debugger. These advanced steps provide convenient and automated debugging actions to help you debug your programs. We will see how to build and add new advanced steps, and how to extend the debugger toolbar with your own customized debugging menus. Advanced stepsContinue reading “Advanced stepping and custom debugging actions in the new Pharo debugger”

Download musics from Google Play Music

Introduction Google Play Music (GPM) is a service proposed by Google to listen musics online (like Spotify, Deezer, …). Having a premium subscription, I can listen a lot of music by using the online service, but when I have no internet connection… I cannot 😦 . So I wanted to download the music ^^. ApproachContinue reading “Download musics from Google Play Music”

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”