GithubHelp home page GithubHelp logo

mathilde411 / pharo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pharo-project/pharo

0.0 0.0 0.0 92.93 MB

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

Home Page: http://pharo.org

License: Other

Shell 0.50% Perl 0.01% Smalltalk 99.50%

pharo's Introduction

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

pharo's People

Contributors

marcusdenker avatar ducasse avatar jecisc avatar astares avatar tesonep avatar guillep avatar estebanlm avatar privat avatar pavel-krivanek avatar lin777 avatar stevencostiou avatar dionisiydk avatar demarey avatar vincentblondeau avatar balsa-sarenac avatar hogoww avatar akgrant avatar carolahp avatar juliendelplanque avatar kasperosterbye avatar alisu avatar theseion avatar tinchodias avatar aboubacardiawara avatar jordanmontt avatar akevalion avatar fmqa avatar myroslavarm avatar gcotelli avatar gcorriga avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.