• Stars
    star
    193
  • Rank 201,081 (Top 4 %)
  • Language Pony
  • License
    BSD 2-Clause "Sim...
  • Created over 7 years ago
  • Updated 7 months ago

Reviews

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

Repository Details

The Pony toolchain multiplexer

ponyup

The Pony toolchain multiplexer

Status

This project is currently beta software.

Usage

Install dependencies

macOS (on Apple Silicon)

brew install libressl

Install ponyup

On Unix:

sh -c "$(curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.sh)"

On Windows PowerShell Core:

Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.ps1' -Outfile ponyup-init.ps1 && &.\ponyup-init.ps1

On Windows Powershell:

Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.ps1' -Outfile ponyup-init.ps1
&.\ponyup-init.ps1

Note that you will need to have Visual Studio 2022 or 2019 (available here) or the Microsoft C++ Build Tools (available here). Install the Desktop Development with C++ workload, along with the latest Windows 10 SDK (10.x.x.x) for Desktop individual component.

Install Pony

Choose the latest release of the Pony compiler or the latest nightly build.

ponyup update ponyc nightly
ponyup update ponyc release

These commands will download the chosen version of ponyc and install it to $HOME/.local/share/ponyup/bin by default. See the instructions below for how to set the install path and manage Pony applications.

Set install prefix

On Unix:

By default, ponyup will create its root directory in $HOME/.local/share ( on Windows). This prefix can be set manually with the --prefix (or -p) option. All packages selected as default will be symbolically linked into ${prefix}/ponyup/bin. So, by default, ponyup update release ponyc will install ponyc to $HOME/.local/share/ponyup/bin/ponyc.

On Windows:

By default, ponyup will create its root directory in %LOCALAPPDATA%\ponyup. This prefix can be set manually with the --prefix (or -p) option. ponyup will create batch file shims (e.g. ponyc.bat in %LOCALAPPDATA%\ponyup\bin) that will run the selected version.

Install a previous package version

You can install any prior release or nightly build available on Cloudsmith. For example, changelog-tool 0.4.0 can be installed with the following command:

ponyup update changelog-tool release-0.4.0

Show installed package versions

The ponyup show command will display the installed package versions with the selected packages marked as green with an asterisk. If a more recent version is not installed, then the more recent version will be shown in yellow following the selected version.

$ ponyup show
stable-nightly-20191116 *
stable-nightly-20191115
ponyc-release-0.33.0-musl *
ponyc-nightly-20191116-musl
ponyc-nightly-20191115-musl
corral-nightly-20191115 * -- corral-nightly-20191116
changelog-tool-nightly-20191116
changelog-tool-nightly-20191115 *

The show command also has an optional package argument to show only the installed versions of the given package:

$ ponyup show ponyc
ponyc-release-0.33.0-musl *
ponyc-nightly-20191116-musl
ponyc-nightly-20191115-musl

Select an installed package as default

The select command can switch which installed package version to set as default. Here is an example of switching from ponyc release-0.33.0 to nightly-20191116:

$ ponyup show ponyc
ponyc-release-0.33.0-ubuntu18.04 *
ponyc-nightly-20191116-ubuntu18.04
ponyc-nightly-20191115-ubuntu18.04
$ ponyc --version
0.33.0-98c36095 [release]
compiled with: llvm 7.0.1 -- cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Defaults: pic=true
$ ponyup select ponyc nightly-20191116
selecting ponyc-nightly-20191116-ubuntu18.04 as default for ponyc
$ ponyup show ponyc
ponyc-release-0.33.0-ubuntu18.04
ponyc-nightly-20191116-ubuntu18.04 *
ponyc-nightly-20191115-ubuntu18.04
$ ponyc --version
nightly-20191116 [release]
compiled with: llvm 7.1.0 -- cc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Defaults: pic=true

Platform options

Ponyup is able to detect the CPU architecture and operating system of the platform on which it is running. The --platform option is used to override any field in the platform identifier (e.g. x86_64-linux-ubuntu22.04).

Common Issues

  • Unable to install ponyc:

    error: unexpected selection: ponyc-release-x86_64-unknown-linux

    This is likely caused by a target triple that does not specify the libc ABI for the platform, as detected by cc -dumpmachine. The solution is to manually set the platform identifier using ponyup default <platform>, where <platform> is a platform identifier such as x86_64-linux-ubuntu22.04.

More Repositories

1

ponyc

Pony is an open-source, actor-model, capabilities-secure, high performance programming language
C
5,665
star
2

pony-tutorial

🐴 Tutorial for the Pony programming language
Markdown
310
star
3

corral

🐴 Pony dependency manager tool
Pony
189
star
4

pony-stable

🐴 A simple dependency manager for the Pony language.
Pony
134
star
5

pony-patterns

🐴 A cookbook style book of patterns for Pony
Markdown
61
star
6

ponylang-website

The ponylang.io website
Markdown
60
star
7

ponycheck

Property Based Testing for Ponylang 🐴 ✔️
Pony
59
star
8

rfcs

RFCs for changes to Pony
Markdown
59
star
9

http

ponylang HTTP client library
Pony
41
star
10

reactive_streams

🐴 Pony implementation of http://www.reactive-streams.org/
Pony
40
star
11

ponylang-mode

🐴 Pony syntax highlighting, Code formatting, Playground and more things for Emacs.
Emacs Lisp
34
star
12

http_server

Pony library for building HTTP server applications.
Pony
29
star
13

library-project-starter

🐴 Kickstart setting up your Pony library project. See USAGE.md for instructions.
Shell
26
star
14

pony-language-server

Language server for Pony
Pony
20
star
15

peg

🐴 A parsing expression grammar package for Pony
Pony
16
star
16

sublime-pony

🐴 Pony language plugin for Sublime Text 2/3
14
star
17

pony-for-x

Source of the "Pony for X" intro to Pony series
14
star
18

lori

Pony TCP classes reimagined
Pony
13
star
19

changelog-tool

🐴 Tool for modifying the "standard pony" changelogs
Pony
13
star
20

VS-pony

Visual Studio plugin for Pony
C#
12
star
21

crypto

Library of common cryptographic algorithms and functions for Pony
Pony
11
star
22

pony-lldb-extensions

A script with functions for using LLDB with Pony
Python
10
star
23

postgres

Pure Pony Postgres driver
Pony
10
star
24

pony-ctags

Exuberant Ctags support for the Pony programming language
8
star
25

flycheck-pony

🐴 A Flycheck syntax checker for the Pony language.
Shell
8
star
26

semver

🐴 A semantic versioning library for Ponylang.
Pony
8
star
27

library-scaffolding-generator

Scaffolding generator for starting Pony libraries
Shell
8
star
28

fork_join

🐴 Pony parallel processing library
Pony
8
star
29

appdirs

Library for getting platform-specific application directories e.g. directory for user-based config 🐴 📁
Pony
8
star
30

spacemacs-ponylang-layer

🐴 A Spacemacs layer for Pony
Emacs Lisp
7
star
31

templates

A template engine for Pony
Pony
7
star
32

github_rest_api

Pony library for working with GitHub's REST API
Pony
7
star
33

main.actor.archived

JavaScript
6
star
34

regex

🐴 Perl compatible regular expression support for Pony
Pony
5
star
35

net_ssl

SSL library for Pony
Pony
5
star
36

mkdocs-theme

Ponylang official theme for mkdocs.
SCSS
5
star
37

library-documentation-action

🐴 Generates documentation for Pony libraries
Python
4
star
38

contributors

Information for Pony contributors
Markdown
4
star
39

ponydoc

🐴 Documentation generator for Pony
Shell
4
star
40

logger

A simple logging library for Pony
Pony
4
star
41

json

A JSON library for Pony
Pony
4
star
42

gsoc-2019

Ideas for the Google Summer of Code 2019
4
star
43

pony-playground

A web interface for running Pony code
JavaScript
3
star
44

valbytes

Dealing with multiple concatenated byte-arrays as if it were a single byte-array.
Pony
3
star
45

glob

🐴 Pony package provides the ability find all pathnames matching a given pattern based on Unix shell rules.
Pony
3
star
46

pony-snippets

🐴 YASnippet Pony snippets for Emacs
YASnippet
3
star
47

distributed-cycle-detection

Work product from the development a distributed cycle detection protocol for the Pony runtime
Pony
3
star
48

stdlib.ponylang.io

🐴 Generated standard library documentation
2
star
49

zulip-orb

Create custom Zulip notifications for CircleCI job statuses
2
star
50

application-scaffolding-generator

Scaffolding generator for starting Pony applications
2
star
51

rfc-tool

🐴 Tool for working with Pony RFCs
Shell
2
star
52

ponydep-ncurses

RPM packages for a tricky dependency of the Pony compiler
Shell
1
star
53

action-testing

Ignore. Nothing interesting happens here.
Pony
1
star
54

release-notes-bot-action

🐴 Bot to update release notes with new entries
Python
1
star
55

readme-version-updater-action

🐴 Bot that updates the version of an action in its README on release
Python
1
star
56

release-notes-reminder-bot-action

🐴 Bot to remind that release notes are needed when a CHANGELOG label is added to a PR
Python
1
star
57

hugo-documentation-site-theme

Hugo theme used for Pony Tutorial and Pony Patterns websites
HTML
1
star
58

changelog-bot-action

🐴 Bot to update a Pony format CHANGELOG with new entries
Python
1
star
59

release-bot-action

Bot that handles the standard release process for ponylang projects
Python
1
star
60

library-documentation-action-v2

Generates documentation for Pony libraries
Python
1
star
61

corral-test-repo

🐴 Repository for testing Corral interactions with GitHub
Pony
1
star
62

main-actor-documentation-action

🐴 Generates documentation for the release and uploads to https://main.actor
Shell
1
star
63

pony-sync-helper

Grab the recently modified open issues and display them in markdown
Pony
1
star
64

i18n

Type-safe internationalisation
1
star
65

main.actor-package-markdown

Generated markdown documentation for packages hosted on https://main.actor
Shell
1
star
66

discussions

🐴 Discussions of things that are less focused than an RFC
1
star
67

accepted-rfc-bot-action

🐴 Bot that handles creating content associated with an accepted Pony RFC
1
star
68

shared-docker

Dockerfiles that are useful across Ponylang repositories
Shell
1
star