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

Part III – More fun with OCUndeclaredVariableWarning Foo is a nice class, but could it become nicer if we added an instance variable? Let us click on the Foo tab of the Calypso window. We get some code that declares the class. Object subclass: #Foo instanceVariableNames: ” classVariableNames: ” package: ” It is a legalContinue reading “Undeclared Variable Reparation, An Epic Journey In a Compiler – Part III”

Sentiment Analysis in Pharo using a real data set

You are a movie reviewer, and a colleague has just sent to you a set of files with hundreds of reviews to determine their sentiments, for example classify them into positive or negative. You read that machine learning can help here processing massive amounts of data by using a classifier. But computers are not goodContinue reading “Sentiment Analysis in Pharo using a real data set”

Custom transmissions in the Inspector

In this post, I will explain what is a transmission, a transformation and how to have custom transmissions in the Pharo Inspector. We will show how transmissions are used in the inspector with a soccer database analysis tool that you can find at https://github.com/akevalion/Futbol/. We used this application because we needed a real domain toContinue reading “Custom transmissions in the Inspector”

Setting up your environment for working on the Pharo VM

To work on Pharo’s virtual machine, you’ll need to set up both the virtual machine you’ll be modifying, as well as a Pharo image. Below are the instructions required to set up the environment. You will need both the VM and the image containing the VM compilation chain (VMMaker package). Building the Pharo VM CloneContinue reading “Setting up your environment for working on the Pharo VM”

Using styles in Spec applications

In this post we will see how to use custom styles in Spec applications. We will start to present styles and then build a little editor as the one displayed hereafter. We will show that an application in Spec manages styles and let you adapt the look of a presenter. How do styles work? StylesContinue reading “Using styles in Spec applications”

Binding an external library into Pharo

In this post I am going to show you how to call external functions from a Pharo image. Here, we are going to use the LAPACK (Linear Algebra Package) library that is written in Fortran. Why do we need this library? In the Pharo AI project (https://github.com/pharo-ai), we are working on an implementation of linearContinue reading “Binding an external library into Pharo”

Debugging the JIT compiler Hotspot detection for ARM64

The other day we were working on the compiler detection of hotspots, originally implemented by Clément Béra during his PhD thesis. In Sista, hotspot detection is implemented as a countdown that looks like the following: the counter is loaded in a register, decremented and then a jump if carry detects if the substraction underflowed. WeContinue reading “Debugging the JIT compiler Hotspot detection for ARM64”

Installing Pharo in Linux using the System Package Manager

One of the improvements that we are including in Pharo 9 is the update of the build process in OpenBuildService. This service allows us to produce packages for different distributions of Linux. These pacakges are built using the versions loaded in the distribution and they can be installed and updated using the tools present inContinue reading “Installing Pharo in Linux using the System Package Manager”