• Stars
    star
    1,195
  • Rank 39,145 (Top 0.8 %)
  • Language
    Smalltalk
  • License
    Other
  • Created over 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.

Pharo

This repository contains sources of the Pharo language. Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).

Pharo screenshot

Download Pharo

To download the Pharo stable version for your platform, please visit:

Virtual machine

This repository contains only sources of the Pharo image. The virtual machine source code is managed in a separate repository:

Automated Builds

This repository is being built on a Jenkins server and uploaded to files.pharo.org.

The minimal image contains the basic Pharo packages without the graphical user interface. It is useful as a base for server-side applications deployment.

Bootstrapping Pharo from sources

To bootstrap a new Pharo image you need the latest stable version of Pharo. For more information about bootstrapping, refer to guillep/PharoBootstrap.

The bootstrapping can be done on a properly-named branch using the following script:

./bootstrap/scripts/bootstrap.sh

This will generate and archive images at various stages of the bootstrap process up to the full image in Pharo11.0-64bit-hhhhhhh.zip where hhhhhhh is the hash of the current checkout. Additional information on the stages of the bootstrap and how to snapshot during the process are provided as comments in bootstrap.sh.

  • You can set the BUILD_NUMBER environment variable to a unique integer (this is typically used only for the official builds and will default to 0 if not specified).
  • You can set the BOOTSTRAP_ARCH environment variable to either 64 (the default) or 32.
  • You can set the BOOTSTRAP_REPOSITORY and BOOTSTRAP_CACHE environment variables to do the bootstrap outside of the source repository.
  • You can set the BOOTSTRAP_VMTARGET environment variable to make the bootstrap use a virtual machine already present in your system (otherwise it will download it).
  • If you are on a branch that doesn't follow the expected naming convention ('PharoX.Y'), then the script will pick an appropriate default (such as Pharo11.0). To build Pharo11.0 from a custom branch, you need to set BRANCH_NAME=Pharo11 before the bootstrap script is run.

Bootstrapping with Docker

You can also use Docker if you prefer to control the bootstrapping environment completely. The following Dockerfile provides a Docker image with a fresh build. You can repeat the command git pull && ./bootstrap/scripts/bootstrap.sh in a container at any time:

# docker build --tag pharo .
# docker run --rm --name pharo -it pharo
FROM ubuntu:22.04
RUN apt-get update && apt-get -y install build-essential git wget zip
RUN git clone https://github.com/pharo-project/pharo.git /root/pharo
WORKDIR /root/pharo
RUN git pull && ./bootstrap/scripts/bootstrap.sh
ENTRYPOINT [ "bash" ]

Alternatively, in the root directory of this project (after a git clone), you can set up a Docker volume pointing to the project directory and build from within the Docker container (nice for Windows environments!):

# in the host environment start a Docker container
docker run --rm -it -v $(pwd)/:/pharo --workdir /pharo ubuntu:22.04 bash
# in the container add the required packages and start the bootstrap script
apt-get update && apt-get -y install build-essential git wget zip
./bootstrap/scripts/bootstrap.sh

File format

This source code repository is exported in Tonel format. In this format, packages are represented as directories and each class is inside a single file.

How to contribute

Pharo is an open source project very friendly to contributions of the users. See the document CONTRIBUTING how you can help to improve Pharo.

Pharo friendly links and organizations

http://github.com/Pharo-project/PharoMap

More Repositories

1

pharo5-vm

Discontinued The PharoVM repository
C
115
star
2

pharo-vm

This is the VM used by Pharo
Smalltalk
113
star
3

pharo-launcher

Lets you manage your pharo images and download new ones
Smalltalk
108
star
4

pharo-core

pharo-core git mirror
94
star
5

pharo-changelogs

To describe each version
25
star
6

PharoMap

To have a map of the Pharo related projects
18
star
7

pharo-zeroconf

ZeroConf script generator for http://get.pharo.org
Shell
16
star
8

pharo-gsoc

Pharo GSOC website https://gsoc.pharo.org/
JavaScript
14
star
9

pharo-unicorn

Pharo bindings to the Unicorn machine code simulation library
Smalltalk
13
star
10

pharo-beacon

Beacon is a small event and logging framework for pharo
Smalltalk
12
star
11

PharoBootstrap

Shell
10
star
12

pharo-ubuntu

Builds packages for pharo-launcher and pharo-vm on Ubuntu
Shell
8
star
13

pharo-docker

Shell
7
star
14

pheps

Pharo Enhancement Proposals
7
star
15

pharo-website

JavaScript
7
star
16

threadedFFI-Plugin

A Threaded FFI plugin for Pharo. It extends the Cog VM with non blocking queue based FFI.
Smalltalk
7
star
17

pharo-llvmDisassembler

Pharo bindings to the LLVM disassembler
Smalltalk
6
star
18

homebrew-pharo

Homebrew formulae and casks for Pharo
Ruby
6
star
19

aleph

an index system for the pharo system
Smalltalk
5
star
20

pharo-minimal-scripts

Smalltalk
5
star
21

pharo-update

A collection of the updates files used for the system-updates of Pharo
Smalltalk
5
star
22

pharo-potentialEnhancementLogs

To share roadmaps of current work with co-workers
5
star
23

pharo-StarterKitScripts

Some scripts to help build the Pharo starter kit
Shell
4
star
24

pharo-archlinux

Builds packages for pharo-launcher and pharo-vm on Arch Linux
Shell
3
star
25

pharo-flyers

A flyer/leaflet for Pharo
TeX
3
star
26

hermes

Smalltalk
3
star
27

app-deployer

Build and deploy application written in Pharo
3
star
28

pharo-vm-tunning

Smalltalk
3
star
29

pharo-build-scripts

Scripts for building pharo distributions
StringTemplate
3
star
30

newsletter

The next Pharo Newsletter
2
star
31

pharo-deployment-scripts

Scripts to be used to deploy Pharo applications into production
Shell
2
star
32

PharoEnhancementProposals

To collect in a lightweight manner potential enhancement proposals
2
star
33

largeImages

Smalltalk
2
star
34

pharo-ci

CI Scripts
Smalltalk
2
star
35

pharo-icon-packs

A repository to keep icon packs for Pharo
2
star
36

pharo-benchmarks

Smalltalk
2
star
37

PermSpaceSupport

Smalltalk
2
star
38

pharo-project-contributors

Contributors of Pharo project
1
star
39

app-images

Repository holding material to build Pharo images with pre-loaded libraries to start the development of your application quickly
Smalltalk
1
star
40

pharo-project-consultants

Consultants list of Pharo Project
1
star
41

OldCompiler

The old Smalltalk compiler and AST, deprecated
Smalltalk
1
star
42

pharo-weekly

To get some news about pharo
Shell
1
star
43

pharo-regression-testing

System-wide Regression Testing
1
star