Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pharo-project/pharobootstrap


https://github.com/pharo-project/pharobootstrap

pharo

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Pharo Bootstrap

This repository contains the code required to bootstrap a new Pharo environment. This bootstrap takes as input a Pharo source code repository and outputs:

- a new bootstrapped image
- a bootstrap-cache/ directory containing all elements that are required to continue the building of the image. Hermes binary files to load trait spoort and the compiler, Smalltalk scripts to load monticello and metacello, the monticello packages for loading monticello, and some initialization code. With these elements is possible to generate an image that later can be used to load Metacello baselines.
- These elements are later used to generate the full Pharo image.

# Dependencies

This bootstrap runs on top of Pharo 10.0. It can however produce images for older formats (a feature that is however not so exploited). All other dependencies (Espell, Hermes) are loaded by the baseline automatically.

# Installation

Just download this repository and load the baseline in a new image. The easiest way to do it is as follows

```
$ wget -O - get.pharo.org/100+vm | bash
$ ./pharo Pharo.image eval "
Metacello new
baseline: 'BootstrapProcess';
repository: 'tonel://.';
load.

Smalltalk snapshot: true andQuit: true."
```

# Running the bootstrap

Run the bootstrap by calling the specialized Spur bootstrap class. This will generate a Spur image for the corresponding 32 or 64 bit architecture.

```
versionInfo := (PBVersionInfo fromLongGitDescribe: 'Pharo10.0-aaaddb-aaaa-vbb')
buildNumber: 42;
yourself.


(PBBootstrap for64Bits
versionInfo: versionInfo;
repositoryLocation: '../pharo-local/iceberg/pharo-project/pharo' asFileReference;
imageName: 'bootstrap.image';
yourself) bootstrap
```

- 'Pharo10.0-aaaddb-aaaa-vbb' is the version reported by Git. The first part is the version of Pharo, aaaa is the comittish to use (This is the output of the ```git describe``` command).
- The repository location should point to a valid Pharo image repository.
- bootstrap.image is the name of the generated image.