Vyper: Standalone Binary

Created on 7 May 2020  Â·  21Comments  Â·  Source: vyperlang/vyper

We need a way to allow multiple Vyper binaries to play nicely with each other. We also need a way to distribute vyper for client-side frameworks.

The idea is to build Vyper for different platforms as an executable file. See here and here. Check out if we can compile from C to WASM and other architectures with Clang/LLVM

Requirements:

  • [ ] Cross-platform
  • [ ] Minimally invasive to Vyper's current packaging and distribution process
  • [ ] Can use multiple versions of Vyper in any host framework that is supported with this proposal (in Python, Javascript, etc.)
bounty enhancement

Most helpful comment

@gitcoinbot I am still working on it, currently fixing issue with pyinstaller spec files (not correctly collecting vyper lib with ASC).

All 21 comments

Interesting project: https://github.com/pypa/manylinux

Meeting notes: Setup $200 gitcoin bounty

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


__This issue now has a funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to it.__

@fubuloubu can I start working or you have any questions ? :)

@Jorropo you seem to have a good grasp on this, perhaps we can chat tomorrow during our meeting? See #1965

@fubuloubu :ok:
see you tomorrow so :smile:

Quick update, cython doesn't support Automatic Script Creation, I've tried some hacky way around but that did not worked, I'll try with pyinstaller wich support it, I have seen some boiler plate repo using pyinstaller + cython, that might works but from what I remember this was meant for the other way around (using cython code in a pyinstaller image, not cythoning some python code).

It would be possible to use cython and have the performance boost we stop using entry points (providing a main.py).

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@gitcoinbot I am still working on it, currently fixing issue with pyinstaller spec files (not correctly collecting vyper lib with ASC).

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@jorropo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • [x] reminder (3 days)
  • [ ] escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

Sorry but I can't do it, I'm running short on time right now.

Hey @fubuloubu
What is the deliverable for this issue ?
Is it one binary that works on all platforms or binaries per platform ?
I had a look through this thread and the links and it looks like there already exists a bunch of binaries for linux and a JS framework.

I was originally going to try pyinstaller but I can see that is covered with this project right? : https://github.com/vyperlang/vyper-static-linux-build

@Ryan-Gordon we're basically looking for:

  1. Scripts that we can run on debian/osx/windows that will produce a standalone binary for the given platform. There is some work done toward this in https://github.com/vyperlang/vyper-static-linux-build but it's specific to linux and outdated - it was done before we moved to an entry-points style system in setuptools.
  2. A script to produce a javascript package so we can distribute Vyper via NPM. Some work toward this was done in https://github.com/vyperlang/vyper-in-browser but it relies on a fork of pyiodide and is fairly outdated by now.
  3. Tests to confirm that the above scripts work. We should be able to run them via the CI using each target operating system.

Upon further inspection, it seems like Brython is the best bet moving forwards. In order to use Brython, we need to do a couple of things:

  • [ ] Custom Parser using SLY (#1363)
  • [ ] Refactor our cryptographic libraries to use hashlib instead of pycryptodome (perhaps via eth-hash[pysha3])

Issue Status: 1. Open 2. Cancelled


__The funding of 200.0 DAI (200.0 USD @ $1.0/DAI) attached to this issue has been cancelled by the bounty submitter__

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lsaether picture lsaether  Â·  4Comments

fubuloubu picture fubuloubu  Â·  3Comments

fubuloubu picture fubuloubu  Â·  3Comments

fubuloubu picture fubuloubu  Â·  3Comments

vici0 picture vici0  Â·  3Comments