dolphinsmalltalk / Dolphin

Dolphin Smalltalk Core Image
MIT License
294 stars 58 forks source link

Dolphin

Build status

Please note: The master branch is now the development branch for version 8.0. This adds support for namespaces and has numerous other improvements, but is currently in a beta state. It also changes the package and class file formats when namespaces are used, and consequently code saved in the new format is not loadable directly into earlier versions of Dolphin. It is still possible to save packages in the old format, but only if namespaces are not used or referenced. Please use the release/7.1 branch if you need to keep working with code in release 7.1, or if you require a stable version. PRs for bug fixes, etc, will still be accepted against the release/7.1 branch for the foreseeable future.

This repository contains:

Building the Virtual Machine

It is not always necessary to build the VM, since pre-built binaries are available for download from github using the FetchVM script in the repo. You can skip straight to building the product image if you are happy to work from the latest tag in the repo. If you want to work at the tip of master, you may need to build the VM as incompatible changes may have been made that have not yet been tagged. Building the VM is straightforward and requires only freely available tools.

Building the Dolphin 8 Product Image

Follow these instructions to create the product image and launch Dolphin Smalltalk for the first time.

You should see Dolphin Professional 8 launch successfully.

Dolphin System Folder

Contributing to Dolphin

If you want to submit changes, you will need to create your own fork and clone that instead. You will not be able to push directly to the main Dolphin repo.

If you wish to contribute to 8.0 VM, please make and commit your VM changes in this Dolphin repo and submit a PR here. PRs can contain synchronized changes to both the VM and the image, and the PR validation build will exercise both.

Any contributions are welcome, but are expected to be of a very high standard. You are more likely to have your contribution accepted unchanged if you follow these rules:

Releasing a new version of Dolphin

If sufficient changes have been made to the VM or image such that a new release is warranted, you can push a new tag of the form 8.x.y (eg: 8.0.4). When the tag is eventually pushed to the GitHub master branch (by a maintainer) this will trigger AppVeyor to build and generate a new Release. Each release consists of the full set of VM binaries wrapped up as a zip called DolphinVM.zip, and associated PDBs (native debug information for the binaries). The FetchVM script will automatically download the correct set of binaries associated with the latest tag at which the repository is checked out. The release build does also build a setup .exe, but this is not maintained so it may not function correctly.